Skip to content

Instantly share code, notes, and snippets.

@davispuh
Last active August 29, 2015 14:23
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save davispuh/f91b0eb4bd6ce02b1842 to your computer and use it in GitHub Desktop.
SmartAttackScript
javascript:var Settings={Mode:0,Times:[0,6,12,18],Range: 1,Include:{Scout:1},Troops:[{Ram:1,All:1},{Catapult:1,All:1},{Spear:1,Sword:1,Axe:1,Light:1,Heavy:1,All:0}],Limit:{},Keep:0,Coords:'469|513 472|509 476|535 558|505 562|506 566|505 568|504 568|510 568|512 570|504 570|505 571|506 403|543 404|524 407|500 410|501 413|549 413|550 414|543 414|544 415|546 431|529 433|521 433|526 438|517 440|523 443|527 444|521 451|528 452|525 453|532 454|521 454|522 458|518 460|515 472|527 472|528 475|537 475|539 477|537 478|541 479|541 480|526 480|538 480|542 481|539 482|522 484|519 484|538 486|513 486|530 488|526 490|525 493|511 494|523 526|502 529|500 536|537 537|512 537|536 537|537 538|536 539|539 541|538 562|504 564|501 566|501 569|501 571|504 592|523 593|520 593|525 594|522 595|511 596|519 596|525 596|527 597|524 461|510 463|516 465|517 465|520 466|517 466|519 485|538 487|534 487|536 492|527 492|528 492|529 493|527 494|521 496|516 497|521 499|518 499|520 499|521 499|522 500|520 500|521 500|522 509|514 513|516 513|517 514|514 515|516 515|517 515|518 515|519 516|528 517|525 517|530 518|529 518|530 519|522 519|524 519|525 519|530 520|524 521|524 521|527 521|529 521|530 522|525 522|526 522|527 522|528 523|525 523|526 523|529 524|524 524|526 524|527 525|525 525|526 525|527 526|525 526|526 528|522 538|540 539|515 539|533 539|541 540|533 540|534 541|516 541|534 542|513 542|515 542|534 543|516 544|507 546|515 547|516 470|524 477|523 479|523 536|503 537|506 539|503 540|503 540|514 541|513 558|502 558|504 579|509 586|516 587|514 587|516 588|510 590|511 592|511 594|519 595|512 596|510 400|518 401|518 402|518 403|518 404|522 409|523 410|524 411|521 415|529 417|527 433|519 435|518 435|521 436|518 439|525 445|527 445|529 446|527 446|528 446|529 446|530 446|531 447|527 447|528 447|530 454|509 455|508 456|509 456|528 457|507 459|518 461|519 461|520 463|526 463|529 463|530 464|525 464|526 471|523 482|521 516|525 522|529 402|516 409|509 411|500 412|517 413|501 413|516 413|518 415|523 416|522 416|523 416|528 417|519 417|520 417|528 418|512 418|527 418|529 418|530 419|547 420|511 420|518 420|526 420|548 420|549 421|526 421|527 422|520 423|506 424|506 425|530 426|505 429|534 430|534 433|512 436|512 437|514 438|508 439|501 451|537 452|532 452|534 453|533 454|532 456|529 456|532 457|526 457|527 457|531 479|530 482|535 496|505 539|540 584|502 587|517 591|500 593|510 599|515 408|508 408|509 408|510 429|502 482|526 483|535 491|528 596|520 598|505 598|510 598|529 599|519 457|510 459|513 461|511 462|509 462|510 462|511 462|516 462|517 463|510 465|510 465|511 466|509 466|510 522|500 528|500 528|504 533|500 534|501 534|503 538|503 551|511 552|514 553|512 509|513 510|513 510|514 512|514 527|511 590|506 590|508 591|506 591|518 592|507 593|508 594|507 594|520 595|526 596|528 401|534 402|534 404|528 404|530 404|531 405|529 405|530 405|531 406|508 406|522 406|530 406|532 407|531 408|527 408|528 408|531 408|533 409|527 410|526 412|537 418|528 425|532 475|535 477|534 590|500 476|541 478|542 479|539 480|541 481|534 481|540 482|537 482|539 482|541 483|539 488|533 402|548 408|548 408|550 408|551 409|548 409|549 409|550 410|547 412|550 413|548 415|548 415|551 418|551 419|550 439|532 442|533 444|514 445|514 449|512 449|518 449|519 450|514 450|517 450|518 450|519 450|520 451|512 451|518 ', Click:2 };(function()%7Bvar%20SmartAttackScript%20%3D%7BVersion%3A%201.0%2CModes%3A%20%5B0%2C1%2C3%5D%2CTextData%3A%20%7BNotTWPage%3A%20%22This%20script%20needs%20to%20be%20run%20in%20TribalWars%20page!%22%2CNotRallyPoint%3A%20%22This%20script%20needs%20to%20be%20run%20from%20the%20Rally%20point!%22%2CNoSettings%3A%20%22Script%20Settings%20not%20specified!%22%2CNoCoordsTroops%3A%20%22Nothing%20done%2C%20no%20coords%20and%20troops%20specified!%22%2CNoTimes%3A%20%22Times%20not%20specified!%22%2CNoRange%3A%20%22Range%20not%20specified!%22%2CInvalidCoords%3A%20%22Some%20coordinates%20are%20invalid!%22%2CNoStorageSupport%3A%20%22Your%20browser%20doesn't%20support%20Storage%2C%20please%20update%20or%20change%20your%20browser!%22%2CProtection%3A%20%22Bot%20Protection!%22%2CError%3A%20%22Error%3A%20%22%2CFailedLoad%3A%20%22Failed%20to%20load%20data%20from%20server!%22%7D%2CUnitInputID%3A%20%22unit_input_%22%2CGameConfigURL%3A%20%22%2Finterface.php%3Ffunc%3Dget_config%22%2CUnitInfoURL%3A%20%22%2Finterface.php%3Ffunc%3Dget_unit_info%22%2CBuildingInfoURL%3A%20%22%2Finterface.php%3Ffunc%3Dget_building_info%22%2CStorageName%3A%20%22SmartAttackScriptStorage%22%2CHashPrefix%3A%20%22sd_%22%2CSeed%3A%20%22JustSomeSeed%22%2CTroopNames%3A%20%7BSpear%3A%22spear%22%2CSword%3A%22sword%22%2CAxe%3A%22axe%22%2CScout%3A%22spy%22%2CLight%3A%22light%22%2CHeavy%3A%22heavy%22%2CRam%3A%22ram%22%2CCatapult%3A%22catapult%22%2CPaladin%3A%22knight%22%2CNoble%3A%22snob%22%7D%2CScriptSettings%3A%20null%2CScriptHash%3A%20null%2CStoredData%3A%20null%2CGameData%3A%20null%2CServerTime%3A%20null%2CUnitData%3A%20null%2CSlowestUnit%3A%20%7BName%3A%20null%2CSpeed%3A%20null%7D%2CTroops%3A%20%7BSpear%3A0%2CSword%3A0%2CAxe%3A0%2CScout%3A0%2CLight%3A0%2CHeavy%3A0%2CRam%3A0%2CCatapult%3A0%2CPaladin%3A0%2CNoble%3A0%7D%2CFillRallyPoint%3A%20function()%7Bthis.GameData%20%3D%20this.Data.GetGameData()%3Bthis.ScriptSettings%20%3D%20this.Data.GetSettings()%3Bif%20(this.IsTribalWars()%20!%3D%20true)%7Balert(this.TextData.NotTWPage)%3Breturn%20false%3B%7Dif%20(this.IsRallyPoint()%20!%3D%20true)%7BUI.InfoMessage(this.TextData.NotRallyPoint%2C3000%2Ctrue)%3Breturn%20false%3B%7Dif%20(this.IsSettings()%20!%3D%20true)%7BUI.InfoMessage(this.TextData.NoSettings%2C3000%2Ctrue)%3Breturn%20false%3B%7Dif%20(this.ScriptSettings.Protection%20%3D%3D%201)%7Bif%20(this.IsBotProtection())%7BUI.InfoMessage(this.TextData.Protection%2C3000%2Ctrue)%3Breturn%20false%3B%7D%7Dif%20(this.ScriptSettings.Focus%20%3D%3D%202)%7B%24(%22%23troop_confirm_go%22).focus()%3B%7Dif%20(this.ScriptSettings.Click%20%3D%3D%202)%7B%24(%22%23troop_confirm_go%22).click()%3B%7Dif%20(this.IsUnitForm()%20%3D%3D%20false)%7Breturn%20false%3B%7Dif%20(this.ScriptSettings.Keep%20!%3D%201%20%26%26%20this.ScriptSettings.Keep%20!%3D%203)%20%7Bthis.ClearCoords()%3B%7Dif%20(this.ScriptSettings.Keep%20!%3D%202%20%26%26%20this.ScriptSettings.Keep%20!%3D%203)%20%7Bthis.ClearRallyPointTroops()%3B%7Dthis.ReadRallyPointTroops()%3Bthis.VerifyTroops()%3Bthis.VerifyInclude()%3Bthis.VerifyLimit()%3Bvar%20AllCoordsValid%20%3D%20this.VerifyCoords()%3Bif%20(AllCoordsValid%20!%3D%20true)%7BUI.InfoMessage(this.TextData.InvalidCoords%2C3000%2Ctrue)%3B%7Dif%20(this.ScriptSettings.Mode%20%3E%200)%20%7Bif%20(this.GetAllStoredData()%20%3D%3D%20true)%7Bthis.VerifyStoredData()%3B%7D%20else%20%7BUI.InfoMessage(this.TextData.NoStorageSupport%2C3000%2Ctrue)%3Breturn%20false%3B%7Dif%20(this.ScriptSettings.Mode%20%3D%3D%204)%20%7Bvar%20CurrentStorageName%20%3D%20this.GetStorageName()%3Bif%20(this.StoredData%5BCurrentStorageName%5D.ModeIndex%20%3E%3D%20this.Modes.length)%7Bthis.StoredData%5BCurrentStorageName%5D.ModeIndex%20%3D%200%3B%7Dthis.ScriptSettings.Mode%20%3D%20this.Modes%5Bthis.StoredData%5BCurrentStorageName%5D.ModeIndex%5D%3Bthis.StoredData%5BCurrentStorageName%5D.ModeIndex%2B%2B%3B%7Dif%20(this.ScriptSettings.Mode%20%3D%3D%203)%20%7Bif%20(this.ScriptSettings.Times.length%20%3C%3D%200)%7BUI.InfoMessage(this.TextData.NoTimes%2C3000%2Ctrue)%3Breturn%20false%3B%7Dif%20(this.ScriptSettings.Range%20%3C%3D%200)%7BUI.InfoMessage(this.TextData.NoRange%2C3000%2Ctrue)%3Breturn%20false%3B%7D%7D%7Dif%20(this.Utilities.IsLocalStorageAvailable()%20%3D%3D%20true)%7Bthis.UnitData%20%3D%20this.GetUnitData()%3B%7Dvar%20TroopsFilled%20%3D%20this.FillRallyPointTroops()%3Bvar%20CoordsFilled%20%3D%20this.FillCoords()%3Bif%20(TroopsFilled%20!%3D%20true%20%26%26%20CoordsFilled%20!%3D%20true%20%26%26%20AllCoordsValid%20%3D%3D%20true)%7BUI.InfoMessage(this.TextData.NoCoordsTroops%2C3000%2Ctrue)%3Breturn%20false%3B%7Dif%20(this.ScriptSettings.Focus%20%3D%3D%201%20%7C%7C%20this.ScriptSettings.Focus%20%3D%3D%202)%7B%24(%22%23target_attack%22).focus()%3B%7Dif%20(this.ScriptSettings.Click%20%3D%3D%201%20%7C%7C%20this.ScriptSettings.Click%20%3D%3D%202)%7B%24(%22%23target_attack%22).click()%3B%7Dthis.StoreAllData()%3Breturn%20true%3B%7D%2CIsTribalWars%3A%20function()%7Bif%20(this.GameData%20instanceof%20Object)%7Breturn%20true%3B%7Dreturn%20false%3B%7D%2CIsRallyPoint%3A%20function()%7Bif%20(this.GameData.screen.toLowerCase()%20%3D%3D%20%22place%22)%7Breturn%20true%3B%7Dreturn%20false%3B%7D%2CIsUnitForm%3A%20function()%7Bif%20(typeof(document.forms.units)%20!%3D%20%22undefined%22)%7Breturn%20true%3B%7Dreturn%20false%3B%7D%2CIsSettings%3A%20function()%7Bif%20(this.ScriptSettings%20!%3D%20null%20%26%26%20this.ScriptSettings%20instanceof%20Object)%7Breturn%20true%3B%7Dreturn%20false%3B%7D%2CIsBotProtection%3A%20function()%7Bvar%20captcha%20%3D%20%24.grep(%24('img')%2C%20function(element%2C%20index)%20%7Breturn%20(element.src.match(%2F%5C%3Fcaptcha%2Fi)%20!%3D%20null)%7D)%3Bif%20(captcha.length%20%3D%3D%200%20%26%26%20%24('%23bot_check').length%20%3D%3D%200)%7Breturn%20false%3B%7Dreturn%20true%3B%7D%2CReadRallyPointTroops%3A%20function()%7Bvar%20Element%20%3D%20null%3Bvar%20Value%20%3D%20null%3Bfor%20(var%20Unit%20in%20this.TroopNames)%20%7BElement%20%3D%20%24('%23'%2Bthis.UnitInputID%2Bthis.TroopNames%5BUnit%5D).next(%22a%22)%3Bif%20(Element.length%20%3E%200)%7BValue%20%3D%20Element.text().match(%2F%5C((%5Cd*)%5C)%2F)%3Bif%20(Value%20instanceof%20Array%20%26%26%20Value.length%20%3E%201)%7Bthis.Troops%5BUnit%5D%20%3D%20parseInt(Value%5B1%5D%2C10)%3B%7D%7D%7D%7D%2CFillCoords%3A%20function()%7Bif%20(this.ScriptSettings.Coords.length%20%3E%200)%7Bvar%20Coords%20%3D%20this.ScriptSettings.Coords%5B0%5D%3Bif%20(this.ScriptSettings.Coords.length%20%3E%201)%7Bif%20(this.ScriptSettings.Mode%20%3D%3D%201%20%7C%7C%20this.ScriptSettings.Mode%20%3D%3D%202)%20%7Bvar%20CurrentStorageName%20%3D%20this.GetStorageName()%3Bif%20(this.StoredData%5BCurrentStorageName%5D.CoordIndex%20%3E%3D%20this.ScriptSettings.Coords.length)%7Bthis.StoredData%5BCurrentStorageName%5D.CoordIndex%20%3D%200%3B%7Dthis.StoredData%5BCurrentStorageName%5D.CoordIndex%2B%2B%3Bif%20(this.ScriptSettings.Mode%20%3D%3D%202)%7Bthis.ScriptSettings.Coords.reverse()%3B%7DCoords%20%3D%20this.ScriptSettings.Coords%5Bthis.StoredData%5BCurrentStorageName%5D.CoordIndex-1%5D%3B%7D%20else%20if%20(this.ScriptSettings.Mode%20%3D%3D%203)%20%7Bif%20(this.SlowestUnit.Name%20!%3D%20null%20%26%26%20this.SlowestUnit.Speed%20!%3D%20null)%7Bthis.ServerTime%20%3D%20this.Data.GetServerTime()%3Bvar%20IntervalCoords%20%3D%20this.GetIntervalCoords()%3Bif%20(IntervalCoords.length%20%3C%3D%200)%7BIntervalCoords%20%3D%20this.ScriptSettings.Coords%3B%7DCoords%20%3D%20IntervalCoords%5Bthis.Utilities.Random(IntervalCoords.length)%5D%3B%7D%7D%20else%20%7BCoords%20%3D%20this.ScriptSettings.Coords%5Bthis.Utilities.Random(this.ScriptSettings.Coords.length)%5D%3B%7D%7Dvar%20CoordSplit%20%3D%20Coords.split('%7C')%3Bif%20(CoordSplit.length%20%3E%3D%202)%7BselectTarget(CoordSplit%5B0%5D%2CCoordSplit%5B1%5D)%3Breturn%20true%3B%7D%7Dreturn%20false%3B%7D%2CFillRallyPointTroops%3A%20function()%7Bvar%20TroopsInserted%20%3D%20false%3Bvar%20Name%3Bfor%20(var%20Key%20in%20this.ScriptSettings.Troops)%20%7Bvar%20Data%20%3D%20this.ScriptSettings.Troops%5BKey%5D%3Bif%20(Data.All%20%3D%3D%201)%7Bvar%20NeedFillTroops%20%3D%200%3Bvar%20CanFillTroops%20%3D%200%3Bfor%20(Name%20in%20this.Troops)%20%7Bif%20(Data%5BName%5D%20%3E%200)%7BNeedFillTroops%2B%2B%3Bif%20%20(this.Troops%5BName%5D-this.ScriptSettings.Limit%5BName%5D%20%3E%3D%20Data%5BName%5D)%7BCanFillTroops%2B%2B%3B%7D%7D%7Dif%20(NeedFillTroops%20%3E%200%20%26%26%20CanFillTroops%20%3E%3D%20NeedFillTroops%20)%7Bfor%20(Name%20in%20this.TroopNames)%20%7Bif%20(Data%5BName%5D%20%3E%200)%7Bthis.InsertUnits(Name%2CData%5BName%5D)%3BTroopsInserted%20%3D%20true%3B%7D%7Dbreak%3B%7D%7D%20else%20%7Bvar%20FillTroops%20%3D%20new%20Array()%3Bfor%20(Name%20in%20this.Troops)%20%7Bif%20(Data%5BName%5D%20%3E%200%20%26%26%20this.Troops%5BName%5D-this.ScriptSettings.Limit%5BName%5D%20%3E%3D%20Data%5BName%5D)%7BFillTroops.push(Name)%3B%7D%7Dif%20(FillTroops.length%20%3E%200%20)%7BUnitName%20%3D%20FillTroops%5Bthis.Utilities.Random(FillTroops.length)%5D%3Bthis.InsertUnits(UnitName%2CData%5BUnitName%5D)%3BTroopsInserted%20%3D%20true%3Bbreak%3B%7D%7D%7Dfor%20(Name%20in%20this.Troops)%20%7Bif%20(this.ScriptSettings.Include%5BName%5D%20%3E%200)%7Bif%20%20(this.Troops%5BName%5D-this.ScriptSettings.Limit%5BName%5D%20%3E%3D%20this.ScriptSettings.Include%5BName%5D)%7Bthis.InsertUnits(Name%2Cthis.ScriptSettings.Include%5BName%5D)%3BTroopsInserted%20%3D%20true%3B%7D%7D%7Dreturn%20TroopsInserted%3B%7D%2CVerifyTroops%3A%20function()%7Bfor%20(var%20Key%20in%20this.ScriptSettings.Troops)%7Bvar%20Data%20%3D%20this.ScriptSettings.Troops%5BKey%5D%3Bfor%20(var%20Name%20in%20this.Troops)%20%7Bif%20(typeof(Data%5BName%5D)%20%3D%3D%20%22undefined%22%20%7C%7C%20typeof(Data%5BName%5D)%20!%3D%20%22number%22%20%7C%7C%20Data%5BName%5D%20%3C%200)%7Bthis.ScriptSettings.Troops%5BKey%5D%5BName%5D%20%3D%200%3B%7D%7Dif%20(typeof(Data.All)%20%3D%3D%20%22undefined%22%20%7C%7C%20typeof(Data.All)%20!%3D%20%22number%22)%7Bthis.ScriptSettings.Troops%5BKey%5D.All%20%3D%200%3B%7D%7Dreturn%20true%3B%7D%2CVerifyInclude%3A%20function()%7Bfor%20(var%20Name%20in%20this.Troops)%20%7Bif%20(typeof(this.ScriptSettings.Include%5BName%5D)%20%3D%3D%20%22undefined%22%20%7C%7C%20typeof(this.ScriptSettings.Include%5BName%5D)%20!%3D%20%22number%22)%7Bthis.ScriptSettings.Include%5BName%5D%20%3D%200%3B%7D%7Dreturn%20true%3B%7D%2CVerifyLimit%3A%20function()%7Bfor%20(var%20Name%20in%20this.Troops)%20%7Bif%20(typeof(this.ScriptSettings.Limit%5BName%5D)%20%3D%3D%20%22undefined%22%20%7C%7C%20typeof(this.ScriptSettings.Limit%5BName%5D)%20!%3D%20%22number%22)%7Bthis.ScriptSettings.Limit%5BName%5D%20%3D%200%3B%7D%7Dreturn%20true%3B%7D%2CVerifyTimes%3A%20function()%7Bfor%20(var%20Name%20in%20this.Troops)%20%7Bif%20(typeof(this.ScriptSettings.Limit%5BName%5D)%20%3D%3D%20%22undefined%22%20%7C%7C%20typeof(this.ScriptSettings.Limit%5BName%5D)%20!%3D%20%22number%22)%7Bthis.ScriptSettings.Limit%5BName%5D%20%3D%200%3B%7D%7Dreturn%20true%3B%7D%2CVerifyCoords%3A%20function()%7Bvar%20AllValid%20%3D%20true%3Bif%20(this.ScriptSettings.Coords.length%20%3E%200)%7Bif%20(this.ScriptSettings.Coords%5B0%5D.match(%2F%5Cd%2B%5C%7C%5Cd%2B%2F)%20instanceof%20Array)%7B%7D%20else%20%7Bthis.ScriptSettings.Coords.splice(0%2C1)%3B%7Dfor%20(var%20Index%20in%20this.ScriptSettings.Coords)%20%7Bif%20(this.ScriptSettings.Coords%5BIndex%5D.match(%2F%5Cd%2B%5C%7C%5Cd%2B%2F)%20instanceof%20Array)%7B%7D%20else%20%7Bthis.ScriptSettings.Coords.splice(Index%2C1)%3BAllValid%20%3D%20false%3B%7D%7D%7Dreturn%20AllValid%3B%7D%2CVerifyStoredData%3A%20function()%7Bif%20(typeof(this.StoredData.Version)%20%3D%3D%20%22undefined%22%20%7C%7C%20typeof(this.StoredData.Version)%20!%3D%20%22number%22)%7Bthis.StoredData.Version%20%3D%20this.Version%3B%7Dif%20(this.StoredData.Version%20!%3D%20this.Version)%7Bthis.StoredData%20%3D%20%7BVersion%3A%20this.Version%7D%3B%7Dvar%20CurrentStorageName%20%3D%20this.GetStorageName()%3Bif%20(typeof(this.StoredData%5BCurrentStorageName%5D)%20%3D%3D%20%22undefined%22%20%7C%7C%20typeof(this.StoredData%5BCurrentStorageName%5D)%20!%3D%20%22object%22)%7Bthis.StoredData%5BCurrentStorageName%5D%20%3D%20%7B%7D%3B%7Dif%20(typeof(this.StoredData%5BCurrentStorageName%5D.CoordIndex)%20%3D%3D%20%22undefined%22%20%7C%7C%20typeof(this.StoredData%5BCurrentStorageName%5D.CoordIndex)%20!%3D%20%22number%22)%7Bthis.StoredData%5BCurrentStorageName%5D.CoordIndex%20%3D%200%3B%7Dif%20(typeof(this.StoredData%5BCurrentStorageName%5D.ModeIndex)%20%3D%3D%20%22undefined%22%20%7C%7C%20typeof(this.StoredData%5BCurrentStorageName%5D.ModeIndex)%20!%3D%20%22number%22)%7Bthis.StoredData%5BCurrentStorageName%5D.ModeIndex%20%3D%200%3B%7Dif%20(this.StoredData%5BCurrentStorageName%5D.CoordIndex%20%3C%200)%7Bthis.StoredData%5BCurrentStorageName%5D.CoordIndex%20%3D%200%3B%7Dreturn%20true%3B%7D%2CGetAllStoredData%3A%20function()%7Bif%20(this.Utilities.IsLocalStorageAvailable()%20%3D%3D%20true)%7Bthis.StoredData%20%3D%20this.Utilities.GetStoredData(this.StorageName)%3Breturn%20true%3B%7Dreturn%20false%3B%7D%2CStoreAllData%3A%20function()%7Bif%20(this.Utilities.IsLocalStorageAvailable()%20%3D%3D%20true%20%26%26%20this.StoredData%20instanceof%20Object)%7Bthis.Utilities.StoreData(this.StorageName%2Cthis.StoredData)%3Breturn%20true%3B%7Dreturn%20false%3B%7D%2CGetStorageName%3A%20function()%7Bvar%20Hash%20%3D%20this.GetHash()%3Breturn%20this.HashPrefix%2Bthis.GameData.player.id%2B%22_%22%2BHash%2B%22_%22%2Bthis.ScriptSettings.RealMode%3B%7D%2CGetHash%3A%20function()%7Bif%20(this.ScriptHash%20%3D%3D%20null)%7Bthis.ScriptHash%20%3D%20this.Utilities.MurmurHash3(JSON.stringify(this.ScriptSettings.Coords)%2Cthis.Seed)%3B%7Dreturn%20this.ScriptHash%3B%7D%2CSetAccessKey%3A%20function()%7B%24(document).bind('keyup'%2C%20function(Event)%20%7Bif%20(Event.which%20%3D%3D%20%22Q%22.charCodeAt(0))%7B%24(%22%23target_attack%22).click()%3B%7D%7D)%3B%7D%2CInsertUnits%3A%20function(UnitName%2CCount)%7B%24('%23'%2Bthis.UnitInputID%2Bthis.TroopNames%5BUnitName%5D).val(Count)%3Bthis.UpdateSlowestUnit(UnitName)%3Breturn%20true%3B%7D%2CUpdateSlowestUnit%3A%20function(UnitName)%7Bif%20(this.UnitData%20!%3D%20null%20%26%26%20this.UnitData%20instanceof%20Object)%7Bvar%20UnitSpeed%20%3D%20this.UnitData%5Bthis.TroopNames%5BUnitName%5D%5D.speed%3Bif%20(typeof(UnitSpeed)%20%3D%3D%20%22number%22%20%26%26%20(this.SlowestUnit.Speed%20%3D%3D%20null%20%7C%7C%20UnitSpeed%20%3E%20this.SlowestUnit.Speed))%7Bthis.SlowestUnit.Speed%20%3D%20UnitSpeed%3Bthis.SlowestUnit.Name%20%3D%20UnitName%3B%7Dreturn%20true%3B%7Dreturn%20false%3B%7D%2CGetIntervalCoords%3A%20function()%7Bvar%20Coordinates%20%3D%20%5B%5D%3Bfor%20(var%20Index%20%3D%200%3B%20Index%20%3C%20this.ScriptSettings.Coords.length%3B%20Index%2B%2B)%20%7Bvar%20CoordSplit%20%3D%20this.ScriptSettings.Coords%5BIndex%5D.split('%7C')%3Bvar%20CoordSplit2%20%3D%20this.GameData.village.coord.split('%7C')%3Bif%20(CoordSplit.length%20%3E%3D%202%20%26%26%20CoordSplit2.length%20%3E%3D%202)%7Bvar%20Distance%20%3D%20this.GetDistance(CoordSplit%5B0%5D%2CCoordSplit%5B1%5D%2CCoordSplit2%5B0%5D%2CCoordSplit2%5B1%5D)%3Bvar%20TravelTime%20%3D%20this.GetTravelTime(this.SlowestUnit.Speed%2C%20Distance)%3Bvar%20ArrivalTime%20%3D%20%20new%20Date(this.ServerTime.getTime())%3BArrivalTime.setTime(%20ArrivalTime.getTime()%20%2B%20TravelTime*1000)%3Bfor%20(var%20T%20in%20this.ScriptSettings.Times)%20%7Bvar%20Time%20%3D%20this.ScriptSettings.Times%5BT%5D%3Bvar%20TimeBefore%20%3D%20Time%20-%20this.ScriptSettings.Range%3Bvar%20TimeAfter%20%3D%20Time%20%2B%20this.ScriptSettings.Range%3Bvar%20BeforeHours%20%3D%20Math.floor(TimeBefore)%3Bvar%20BeforeMinutes%20%3D%2060*(TimeBefore%20%25%201)%3Bvar%20AfterHours%20%3D%20Math.floor(TimeAfter)%3Bvar%20AfterMinutes%20%3D%2060*(TimeAfter%20%25%201)%3Bif%20((ArrivalTime.getHours()%20%3E%20BeforeHours%20%7C%7C%20(ArrivalTime.getHours()%20%3D%3D%20BeforeHours%20%26%26%20ArrivalTime.getMinutes()%20%3E%3D%20BeforeMinutes%20))%20%26%26(ArrivalTime.getHours()%20%3C%20AfterHours%20%7C%7C%20(ArrivalTime.getHours()%20%3D%3D%20AfterHours%20%26%26%20ArrivalTime.getMinutes()%20%3C%3D%20AfterMinutes)))%20%7BCoordinates.push(this.ScriptSettings.Coords%5BIndex%5D)%3B%7D%7D%7D%7Dreturn%20Coordinates%3B%7D%2CClearRallyPointTroops%3A%20function()%7Bvar%20UnitFields%20%3D%20%24('.unitsInput')%3Bif%20(UnitFields.length%20%3E%200)%7BUnitFields.each(function(Index%2CValue)%7B%24(Value).val('')%3B%7D)%3Breturn%20true%3B%7Dreturn%20false%3B%7D%2CClearCoords%3A%20function()%7BselectTarget(''%2C'')%3B%7D%2CFailedLoadData%3A%20function(jqXHR%2C%20textStatus%2C%20errorThrown)%20%7BUI.InfoMessage(SmartAttackScript.TextData.Error%20%2B%20SmartAttackScript.TextData.FailedLoad%2C5000%2Ctrue)%3Breturn%20false%3B%7D%2CGetUnitData%3A%20function()%7Bvar%20Data%20%3D%20this.Utilities.GetStoredData(%22UnitData%22)%3Bif%20(Data%20!%3D%20null%20%26%26%20%24.isEmptyObject(Data)%20%3D%3D%20true)%7BData%20%3D%20null%3Bvar%20XML%20%3D%20this.Utilities.GetXMLData(this.UnitInfoURL%2C%20this.FailedLoadData%20)%3Bif%20(XML%20!%3D%20null%20%26%26%20XML%20instanceof%20Object)%7BData%20%3D%20this.Utilities.XMLToObject(XML.documentElement)%3B%7Dthis.Utilities.StoreData(%22UnitData%22%2CData)%3B%7Dreturn%20Data%3B%7D%2CGetDistance%3A%20function(X1%2CY1%2CX2%2CY2)%7Breturn%20Math.sqrt((X1%20-%20X2)%20*%20(X1%20-%20X2)%20%2B%20(Y1%20-%20Y2)%20*%20(Y1%20-%20Y2))%3B%7D%2CGetTravelTime%3A%20function(UnitSpeed%2CDistance)%7Breturn%20UnitSpeed*60*Distance%3B%7D%2CData%3A%20%7BGetGameData%3A%20function()%7Bvar%20GameData%20%3D%20null%3Bif%20(typeof(%24)%20!%3D%20%22undefined%22%20%26%26%20typeof(game_data)%20!%3D%20%22undefined%22)%7Bif%20(game_data%20instanceof%20Object%20%26%26%20typeof(game_data.screen)%20%3D%3D%20%22string%22%20%26%26%20game_data.screen.length%20%3E%200)%7BGameData%20%3D%20game_data%3B%7D%7Dreturn%20GameData%3B%7D%2CGetSettings%3A%20function()%7Bvar%20ScriptSettings%20%3D%20null%3Bif%20(typeof(Settings)%20%3D%3D%20%22object%22)%7BScriptSettings%20%3D%20Settings%3BScriptSettings.Mode%20%3D%20this.GetMode()%3BScriptSettings.RealMode%20%3D%20ScriptSettings.Mode%3BScriptSettings.Times%20%3D%20this.GetTimes()%3BScriptSettings.Range%20%3D%20this.GetRange()%3BScriptSettings.Troops%20%3D%20this.GetTroops()%3BScriptSettings.Include%20%3D%20this.GetInclude()%3BScriptSettings.Limit%20%3D%20this.GetLimit()%3BScriptSettings.Keep%20%3D%20this.GetKeep()%3BScriptSettings.Coords%20%3D%20this.GetCoords()%3BScriptSettings.Protection%20%3D%20this.GetProtection()%3BScriptSettings.Focus%20%3D%20this.GetFocus()%3BScriptSettings.Click%20%3D%20this.GetClick()%3B%7Dreturn%20ScriptSettings%3B%7D%2CGetMode%3A%20function()%7Bvar%20Mode%20%3D%200%3Bif%20(typeof(Settings.Mode)%20%3D%3D%20%22number%22)%7BMode%20%3D%20Settings.Mode%3B%7Dreturn%20Mode%3B%7D%2CGetTimes%3A%20function()%7Bvar%20Times%20%3D%20%5B%5D%3Bif%20(typeof(Settings.Times)%20!%3D%20%22undefined%22%20%26%26%20Settings.Times%20instanceof%20Array)%7BTimes%20%3D%20Settings.Times%3B%7Dreturn%20Times%3B%7D%2CGetRange%3A%20function()%7Bvar%20Range%20%3D%200%3Bif%20(typeof(Settings.Range)%20%3D%3D%20%22number%22)%7BRange%20%3D%20Settings.Range%3B%7Dreturn%20Range%3B%7D%2CGetTroops%3A%20function()%7Bvar%20Troops%20%3D%20%5B%7B%7D%5D%3Bif%20(typeof(Settings.Troops)%20!%3D%20%22undefined%22%20%26%26%20Settings.Troops%20instanceof%20Array)%7BTroops%20%3D%20Settings.Troops%3B%7Dreturn%20Troops%3B%7D%2CGetInclude%3A%20function()%7Bvar%20Include%20%3D%20%7BSpear%3A0%2CSword%3A0%2CAxe%3A0%2CScout%3A0%2CLight%3A0%2CHeavy%3A0%2CRam%3A0%2CCatapult%3A0%2CPaladin%3A0%2CNoble%3A0%7D%3Bif%20(typeof(Settings.Include)%20!%3D%20%22undefined%22%20%26%26%20Settings.Include%20instanceof%20Object)%7BInclude%20%3D%20Settings.Include%3B%7Dreturn%20Include%3B%7D%2CGetLimit%3A%20function()%7Bvar%20Limit%20%3D%20%7BSpear%3A0%2CSword%3A0%2CAxe%3A0%2CScout%3A0%2CLight%3A0%2CHeavy%3A0%2CRam%3A0%2CCatapult%3A0%2CPaladin%3A0%2CNoble%3A0%7D%3Bif%20(typeof(Settings.Limit)%20!%3D%20%22undefined%22%20%26%26%20Settings.Limit%20instanceof%20Object)%7BLimit%20%3D%20Settings.Limit%3B%7Dreturn%20Limit%3B%7D%2CGetKeep%3A%20function()%7Bvar%20Keep%20%3D%200%3Bif%20(typeof(Settings.Keep)%20%3D%3D%20%22number%22)%7BKeep%20%3D%20Settings.Keep%3B%7Dreturn%20Keep%3B%7D%2CGetCoords%3A%20function()%7Bvar%20Coords%20%3D%20new%20Array()%3Bif%20(typeof(Settings.Coords)%20%3D%3D%20%22string%22)%7BCoords%3DSettings.Coords.split('%20')%3B%7Dreturn%20Coords%3B%7D%2CGetServerTime%3A%20function()%7Bvar%20TextDate%20%3D%20%24(%22%23serverDate%22).text()%3Bvar%20TextTime%20%3D%20%24(%22%23serverTime%22).text()%3Bvar%20DateValues%20%3D%20TextDate.match(%2F(%5Cd%2B)%5C%2F(%5Cd%2B)%5C%2F(%5Cd%2B)%2F)%3Bvar%20TimeValues%20%3D%20TextTime.match(%2F(%5Cd%2B)%3A(%5Cd%2B)%3A(%5Cd%2B)%2F)%3Breturn%20new%20Date(DateValues%5B3%5D%2CDateValues%5B2%5D-1%2CDateValues%5B1%5D%2CTimeValues%5B1%5D%2CTimeValues%5B2%5D%2CTimeValues%5B3%5D)%3B%7D%2CGetProtection%3A%20function()%7Bvar%20Protection%20%3D%201%3Bif%20(typeof(Settings.Protection)%20%3D%3D%20%22number%22)%7BProtection%20%3D%20Settings.Protection%3B%7Dreturn%20Protection%3B%7D%2CGetFocus%3A%20function()%7Bvar%20Focus%20%3D%200%3Bif%20(typeof(Settings.Focus)%20%3D%3D%20%22number%22)%7BFocus%20%3D%20Settings.Focus%3B%7Dreturn%20Focus%3B%7D%2CGetClick%3A%20function()%7Bvar%20Click%20%3D%200%3Bif%20(typeof(Settings.Click)%20%3D%3D%20%22number%22)%7BClick%20%3D%20Settings.Click%3B%7Dreturn%20Click%3B%7D%7D%2CUtilities%3A%20%7BRandom%3A%20function(Max)%7Breturn%20Math.floor(Math.random()*Max)%3B%7D%2CIsLocalStorageAvailable%3A%20function()%7Bif%20(typeof(localStorage)%20!%3D%20%22undefined%22%20%26%26%20%22localStorage%22%20in%20window%20%26%26%20localStorage%20instanceof%20Object)%7Breturn%20true%3B%7Dreturn%20false%3B%7D%2CGetStoredData%3A%20function(StorageName)%7Bvar%20StoredData%20%3D%20localStorage.getItem(StorageName)%3Bif%20(typeof(StoredData)%20%3D%3D%20%22string%22)%7BStoredData%20%3D%20JSON.parse(StoredData)%3B%7D%20else%20%7BStoredData%20%3D%20%7B%7D%3B%7Dreturn%20StoredData%3B%7D%2CStoreData%3A%20function(StorageName%2CData)%7Breturn%20localStorage.setItem(StorageName%2C%20JSON.stringify(Data))%3B%7D%2CReLoadPage%3A%20function()%7B%24(document).bind('load'%2C%20this.ReLoadPage)%3BsetTimeout(this.ReLoadPage%2C5000)%3Bwindow.location.reload(true)%3B%7D%2CGetXMLData%3A%20function(URL%2CErrorFunction)%7Bvar%20ResultData%20%3D%20null%3Bfunction%20SetResult(XML)%7BResultData%20%3D%20XML%3B%7D%24.ajax(%7Basync%3A%20false%2Ctype%3A%20%22GET%22%2Curl%3A%20URL%2CdataType%3A%20%22xml%22%2Csuccess%3A%20SetResult%2Cerror%3A%20ErrorFunction%7D)%3Breturn%20ResultData%3B%7D%2CXMLToObject%3A%20function(XML)%7Bvar%20Data%20%3D%20%7B%7D%3Bvar%20Text%20%3D%20%22%22%3Bvar%20Childs%20%3D%20XML.childNodes%3Bfor%20(var%20i%20%3D%200%3B%20i%20%3C%20Childs.length%3B%20i%2B%2B)%20%7Bif%20(Childs%5Bi%5D.nodeType%20%3D%3D%20document.ELEMENT_NODE)%7BData%5BChilds%5Bi%5D.nodeName%5D%20%3D%20%7B%7D%3Bif%20(Childs%5Bi%5D.hasChildNodes()%20%3D%3D%20true)%7BData%5BChilds%5Bi%5D.nodeName%5D%20%3D%20this.XMLToObject(Childs%5Bi%5D)%3B%7D%7D%20else%20if%20(Childs%5Bi%5D.nodeType%20%3D%3D%20document.TEXT_NODE)%20%7BText%20%3D%20%24.trim(Childs%5Bi%5D.nodeValue)%3Bif%20(Text.length%20%3E%200)%7Bif%20(isNaN(Text)%20%3D%3D%20false%20)%7BText%20%3D%20%2BText%3B%7DData%20%3D%20Text%3B%7D%7D%7Dreturn%20Data%3B%7D%2CMurmurHash3%3A%20function%20(key%2C%20seed)%20%7Bvar%20remainder%2C%20bytes%2C%20h1%2C%20h1b%2C%20c1%2C%20c1b%2C%20c2%2C%20c2b%2C%20k1%2C%20i%3Bremainder%20%3D%20key.length%20%26%203%3Bbytes%20%3D%20key.length%20-%20remainder%3Bh1%20%3D%20seed%3Bc1%20%3D%200xcc9e2d51%3Bc2%20%3D%200x1b873593%3Bi%20%3D%200%3Bwhile%20(i%20%3C%20bytes)%20%7Bk1%20%3D((key.charCodeAt(i)%20%26%200xff))%20%7C((key.charCodeAt(%2B%2Bi)%20%26%200xff)%20%3C%3C%208)%20%7C((key.charCodeAt(%2B%2Bi)%20%26%200xff)%20%3C%3C%2016)%20%7C((key.charCodeAt(%2B%2Bi)%20%26%200xff)%20%3C%3C%2024)%3B%2B%2Bi%3Bk1%20%3D%20((((k1%20%26%200xffff)%20*%20c1)%20%2B%20((((k1%20%3E%3E%3E%2016)%20*%20c1)%20%26%200xffff)%20%3C%3C%2016)))%20%26%200xffffffff%3Bk1%20%3D%20(k1%20%3C%3C%2015)%20%7C%20(k1%20%3E%3E%3E%2017)%3Bk1%20%3D%20((((k1%20%26%200xffff)%20*%20c2)%20%2B%20((((k1%20%3E%3E%3E%2016)%20*%20c2)%20%26%200xffff)%20%3C%3C%2016)))%20%26%200xffffffff%3Bh1%20%5E%3D%20k1%3Bh1%20%3D%20(h1%20%3C%3C%2013)%20%7C%20(h1%20%3E%3E%3E%2019)%3Bh1b%20%3D%20((((h1%20%26%200xffff)%20*%205)%20%2B%20((((h1%20%3E%3E%3E%2016)%20*%205)%20%26%200xffff)%20%3C%3C%2016)))%20%26%200xffffffff%3Bh1%20%3D%20(((h1b%20%26%200xffff)%20%2B%200x6b64)%20%2B%20((((h1b%20%3E%3E%3E%2016)%20%2B%200xe654)%20%26%200xffff)%20%3C%3C%2016))%3B%7Dk1%20%3D%200%3Bswitch%20(remainder)%20%7Bcase%203%3Ak1%20%5E%3D%20(key.charCodeAt(i%20%2B%202)%20%26%200xff)%20%3C%3C%2016%3Bcase%202%3Ak1%20%5E%3D%20(key.charCodeAt(i%20%2B%201)%20%26%200xff)%20%3C%3C%208%3Bcase%201%3Ak1%20%5E%3D%20(key.charCodeAt(i)%20%26%200xff)%3Bk1%20%3D%20(((k1%20%26%200xffff)%20*%20c1)%20%2B%20((((k1%20%3E%3E%3E%2016)%20*%20c1)%20%26%200xffff)%20%3C%3C%2016))%20%26%200xffffffff%3Bk1%20%3D%20(k1%20%3C%3C%2016)%20%7C%20(k1%20%3E%3E%3E%2016)%3Bk1%20%3D%20(((k1%20%26%200xffff)%20*%20c2)%20%2B%20((((k1%20%3E%3E%3E%2016)%20*%20c2)%20%26%200xffff)%20%3C%3C%2016))%20%26%200xffffffff%3Bh1%20%5E%3D%20k1%3B%7Dh1%20%5E%3D%20key.length%3Bh1%20%5E%3D%20h1%20%3E%3E%3E%2016%3Bh1%20%3D%20(((h1%20%26%200xffff)%20*%200x85ebca6b)%20%2B%20((((h1%20%3E%3E%3E%2016)%20*%200x85ebca6b)%20%26%200xffff)%20%3C%3C%2016))%20%26%200xffffffff%3Bh1%20%5E%3D%20h1%20%3E%3E%3E%2013%3Bh1%20%3D%20((((h1%20%26%200xffff)%20*%200xc2b2ae35)%20%2B%20((((h1%20%3E%3E%3E%2016)%20*%200xc2b2ae35)%20%26%200xffff)%20%3C%3C%2016)))%20%26%200xffffffff%3Bh1%20%5E%3D%20h1%20%3E%3E%3E%2016%3Breturn%20h1%20%3E%3E%3E%200%3B%7D%7D%7D%3BSmartAttackScript.FillRallyPoint()%7D)();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment