Guest User

scipt with checking for max troops

a guest
Dec 21st, 2014
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 32.42 KB | None | 0 0
  1. #RequireAdmin
  2. #include <StaticConstants.au3>
  3. #include <ButtonConstants.au3>
  4. #include <ComboConstants.au3>
  5. #include <GuiComboBox.au3>
  6. #include <GUIConstantsEx.au3>
  7. #include <EditConstants.au3>
  8. #include <WindowsConstants.au3>
  9. #include <TrayConstants.au3>
  10. #include <Misc.au3>
  11. #include "GkevinODGoldFunction.au3"
  12. #include "GkevinODElixirFunction.au3"
  13.  
  14.  
  15. Opt ("GUIOnEventMode", 1)
  16. Opt ("MouseClickDelay", 10)
  17. Opt ("MouseClickDownDelay", 10)
  18. Opt ("MouseCoordMode", 0)
  19. Opt ('PixelCoordMode', 0)
  20.  
  21. GUIRegisterMsg($WM_COMMAND, "GUIControl")
  22. GUIRegisterMsg($WM_SYSCOMMAND, "GUIControl")
  23.  
  24. Global $Title = "BlueStacks App Player"
  25. Global $HWnD = WinGetHandle (WinGetTitle($Title))
  26. WinActivate ($HWnD)
  27.  
  28. $BlueStacks_XY = WinGetPos($HWnD, "")
  29. $x_gold = $BlueStacks_XY [0] + 53
  30. $y_gold = $BlueStacks_XY [1] + 94
  31.  
  32. $x_elixir = $BlueStacks_XY [0] + 53
  33. $y_elixir = $BlueStacks_XY [1] + 94+29
  34.  
  35.  
  36. Global $RunState = False, $KeepAlive = False
  37. Global $Gold, $Elixir, $MinGold = 50000, $MinElixir = 50000, $SearchMode = 1, $SearchCheck = 0, $SearchCount = 0
  38.  
  39. Global $Attack = 0xF0E5D6, $FindAMatch = 0xF8E0A7
  40. Global $Config = @ScriptDir & "\config.ini"
  41. Global $Left = 50.23, $Top = 67.5, $Right = 613.95, $Bottom = 431.67
  42. Global $BSsize = WinGetClientSize($hWnd)
  43. Global $x_ratio = $BSsize[0]/800, $y_ratio = $BSsize[1]/600
  44. ;~ Msgbox(0,"", "x_ratio= " & $x_ratio & "y_ratio= " & $y_ratio)
  45.  
  46. Global $Troop[5][2] = [[60*$x_ratio,505*$y_ratio],[130*$x_ratio,505*$y_ratio],[200*$x_ratio,505*$y_ratio],[265*$x_ratio,505*$y_ratio],[372*$x_ratio,505*$y_ratio]]
  47. Global $Barbarian[2] = [0,0], $Archer[2] = [0,0], $Golbin[2] =[0,0], $Giant[2] = [0,0]
  48. Global $B1Pos[2] = [0,0], $B2Pos[2] = [0,0], $B3Pos[2] = [0,0], $B4Pos[2] = [0,0]
  49. Global $B1Troop, $B2Troop, $B3Troop, $B4Troop
  50.  
  51. Global $UpLeft[5][2] = [[350*$x_ratio,51*$y_ratio],[230*$x_ratio,100*$y_ratio],[186*$x_ratio,160*$y_ratio],[144*$x_ratio,187*$y_ratio],[125*$x_ratio,200*$y_ratio]]
  52. Global $UpRight[5][2] = [[460*$x_ratio,62*$y_ratio],[520*$x_ratio,97*$y_ratio],[570*$x_ratio,134*$y_ratio],[647*$x_ratio,186*$y_ratio],[692*$x_ratio,211*$y_ratio]]
  53. Global $LowLeft[5][2] = [[77*$x_ratio, 306*$y_ratio],[130*$x_ratio,353*$y_ratio],[181*$x_ratio,395*$y_ratio],[214*$x_ratio,415*$y_ratio],[250*$x_ratio,442*$y_ratio]]
  54. Global $LowRight[5][2] = [[734*$x_ratio,290*$y_ratio],[685*$x_ratio,318*$y_ratio],[630*$x_ratio,350*$y_ratio],[600*$x_ratio,369*$y_ratio],[535*$x_ratio,425*$y_ratio]]
  55.  
  56.  
  57.  
  58. #Region ##### GUI #####
  59. $BotGUI = GUICreate("Clash of Clans Bot", 300, 500)
  60. GUICtrlSetFont(-1, 10, 800, 0, "Calibri")
  61. GUISetOnEvent($GUI_EVENT_CLOSE, "Terminate")
  62. $Button = GUICtrlCreateButton("START", 20, 450, 260, 40)
  63. GUICtrlSetOnEvent(-1, "Start")
  64. $LBButton = GUICtrlCreateButton("Locate Barrack", 20, 380, 85, 30)
  65. GUICtrlSetOnEvent(-1, "LB")
  66. $TrButton = GUICtrlCreateButton("Train", 110, 380, 80, 30)
  67. GUICtrlSetOnEvent(-1, "Tr")
  68. $AtkButton = GUICtrlCreateButton("Attack", 195, 380, 85, 30)
  69. GUICtrlSetOnEvent(-1, "Atk")
  70. $VSButton = GUICtrlCreateButton("Village Search", 20, 415, 127.5, 30)
  71. GUICtrlSetOnEvent(-1, "SearchFunction")
  72. $DTButton = GUICtrlCreateButton("Drop Troop", 152.5, 415, 127.5, 30)
  73. GUICtrlSetOnEvent(-1, "DrpTrp")
  74. $KAButton = GUICtrlCreateButton("Keep Alive: OFF", 30, 110, 100, 20)
  75. GUICtrlSetOnEvent(-1, "KeepAlive")
  76. $MeetAll = GUICtrlCreateCheckbox("Meet all conditions", 30, 30, 140, 17)
  77. GUICtrlSetState(-1, $GUI_CHECKED)
  78. GUICtrlCreateLabel("Min Gold:", 30, 58, 58, 17)
  79. $MinGoldInput = GUICtrlCreateInput("", 80, 54, 55, 21, $ES_NUMBER)
  80. GUICtrlSetLimit(-1, 6)
  81. GUICtrlSetData(-1, $MinGold)
  82. GUICtrlCreateLabel("Min Elixir:", 30, 82, 57, 17)
  83. $MinElixirInput = GUICtrlCreateInput("", 80, 78, 55, 21, $ES_NUMBER)
  84. GUICtrlSetLimit(-1, 6)
  85. GUICtrlSetData(-1, $MinElixir)
  86. $Barrack01 = GUICtrlCreateCombo("Barrack 01", 175, 20, 80, 30, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
  87. GUICtrlSetData(-1, "Barbarian|Archer|Goblin|Giant")
  88. _GUICtrlComboBox_SelectString(-1, "Archer")
  89. $Barrack02 = GUICtrlCreateCombo("Barrack 02", 175, 46, 80, 30, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
  90. GUICtrlSetData(-1, "Barbarian|Archer|Goblin|Giant")
  91. _GUICtrlComboBox_SelectString(-1, "Archer")
  92. $Barrack03 = GUICtrlCreateCombo("Barrack 03", 175, 72, 80, 30, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
  93. GUICtrlSetData(-1, "Barbarian|Archer|Goblin|Giant")
  94. _GUICtrlComboBox_SelectString(-1, "Barbarian")
  95. $Barrack04 = GUICtrlCreateCombo("Barrack 04", 175, 98, 80, 30, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
  96. GUICtrlSetData(-1, "Barbarian|Archer|Goblin|Giant")
  97. _GUICtrlComboBox_SelectString(-1, "Barbarian")
  98. ;~ $Results = GUICtrlCreateEdit("", 20, 140, 260, 225, BitOR($SS_SUNKEN,$ES_READONLY, $SS_LEFT))
  99. $Results = GUICtrlCreateList("", 20, 140, 260, 225, BitOR($SS_SUNKEN,$ES_READONLY, $SS_LEFT, $WS_VSCROLL))
  100. GUISetState(@SW_SHOW)
  101. WinSetOnTop($BotGUI,"",1)
  102. #EndRegion ##### GUI #####
  103.  
  104. While 1
  105.    $Msg = GUIGetMsg()
  106. WEnd
  107.  
  108. Func GUIControl($hWind, $iMsg, $wParam, $lParam)
  109.    Local $nNotifyCode = BitShift($wParam, 16)
  110.    Local $nID = BitAND($wParam, 0x0000FFFF)
  111.    Local $hCtrl = $lParam
  112.    #forceref $hWind, $iMsg, $wParam, $lParam
  113.    Switch $iMsg
  114.       Case 273
  115.          Switch $nID
  116.             Case $Button
  117.                $RunState = Not $RunState
  118.                If $RunState = True Then
  119.                   GUICtrlSetData($Button,"STOP")
  120.                   GUICtrlSetData($Results, "Bot Started.." & @CRLF, -1)
  121.                ElseIf $RunState = False Then
  122.                   GUICtrlSetData($Button,"START")
  123.                   GUICtrlSetData($Results, "Bot Stopped" & @CRLF, -1)
  124.                EndIf
  125.             Case $LBButton
  126.                GUICtrlSetData($LBButton,"Locating...")
  127.                GUICtrlSetData($Results, "Bot Started.." & @CRLF, -1)
  128.             Case $TrButton
  129.                GUICtrlSetData($TrButton,"Training...")
  130.                GUICtrlSetData($Results, "Bot Started.." & @CRLF, -1)
  131.             Case $AtkButton
  132.                GUICtrlSetData($AtkButton,"Attacking...")
  133.                GUICtrlSetData($Results, "Bot Started.." & @CRLF, -1)
  134.             Case $VSButton
  135.                GUICtrlSetData($VSButton,"Searching...")
  136.                GUICtrlSetData($Results, "Bot Started.." & @CRLF, -1)
  137.             Case $DTButton
  138.                GUICtrlSetData($DTButton,"Dropping...")
  139.                ;GUICtrlSetData($Results, "Bot Started.." & @CRLF, -1)
  140.             Case $KAButton
  141.                $KeepAlive = Not $KeepAlive
  142.                If $KeepAlive = True Then
  143.                   GUICtrlSetData($KAButton,"Keep Alive: ON")
  144.                ElseIf $KeepAlive = False Then
  145.                   GUICtrlSetData($KAButton,"Keep Alive: OFF")
  146.                EndIf
  147.          EndSwitch
  148.       Case 274
  149.          Switch $wParam
  150.             Case 0xf060
  151.                Exit
  152.          EndSwitch
  153.    EndSwitch
  154.    Return $GUI_RUNDEFMSG
  155. EndFunc
  156.  
  157. Func Start()
  158.    GUICtrlSetData($Results, "Func Start" & @CRLF, -1)
  159.    Sleep(1000)
  160.    While 1
  161.       If $RunState = False Then
  162.          ExitLoop
  163.       EndIf
  164.       MainScreen()  ;Check if main screen
  165.       If $RunState = False Then
  166.          ExitLoop
  167.       EndIf
  168.       GetInput()    ;Read user's input
  169.       If $RunState = False Then
  170.          ExitLoop
  171.       EndIf
  172.       ZoomOut()
  173.       If $RunState = False Then
  174.          ExitLoop
  175.       EndIf
  176.       LocateBarrack()   ;If barrack not located, ask user to manually click on barrack to locate position
  177.       If $RunState = False Then
  178.          ExitLoop
  179.       EndIf
  180.       If $RunState = False Then
  181.          ExitLoop
  182.       EndIf
  183.       Train()           ;Locate Barrack, Train Barrack
  184.       If $RunState = False Then
  185.          ExitLoop
  186.       EndIf
  187.       ClearBox()
  188.       Idle(900)
  189.       If $RunState = False Then
  190.          ExitLoop
  191.       EndIf
  192.       Attack()          ;Prepare Attack, Read Value, Compute Value, Compare Value, Search Village, Drop Troop, Return Home
  193.    WEnd
  194. EndFunc
  195.  
  196. Func GetInput()
  197.    GUICtrlSetData($Results, "Func GetInput" & @CRLF, -1)
  198.    $B1Troop = GUICtrlRead($Barrack01)
  199.    $B2Troop = GUICtrlRead($Barrack02)
  200.    $B3Troop = GUICtrlRead($Barrack03)
  201.    $B4Troop = GUICtrlRead($Barrack04)
  202.    $MinGold = Number(GUICtrlRead($MinGoldInput))
  203.    $MinElixir = Number(GUICtrlRead($MinElixirInput))
  204.    If GUICtrlRead($MeetAll) = $GUI_CHECKED Then
  205.       $SearchMode = 2
  206.    Else
  207.       $SearchMode = 1
  208.    EndIf
  209.    $B1Pos[0] = IniRead($Config, "Barrack 01", "X", "0")
  210.    $B1Pos[1] = IniRead($Config, "Barrack 01", "Y", "0")
  211.    $B2Pos[0] = IniRead($Config, "Barrack 02", "X", "0")
  212.    $B2Pos[1] = IniRead($Config, "Barrack 02", "Y", "0")
  213.    $B3Pos[0] = IniRead($Config, "Barrack 03", "X", "0")
  214.    $B3Pos[1] = IniRead($Config, "Barrack 03", "Y", "0")
  215.    $B4Pos[0] = IniRead($Config, "Barrack 04", "X", "0")
  216.    $B4Pos[1] = IniRead($Config, "Barrack 04", "Y", "0")
  217.    If $B1Pos[0]*$B2Pos[0]*$B3Pos[0]*$B4Pos[0] <> 0 Then
  218.       GUICtrlSetData($Results, "Barracks' position loaded successfully" & @CRLF, -1)
  219.       GUICtrlSetData($Results, "Barrack 01: " & $B1Pos[0] & ", " & $B1Pos[1] & @CRLF, -1)
  220.       GUICtrlSetData($Results, "Barrack 02: " & $B2Pos[0] & ", " & $B2Pos[1] & @CRLF, -1)
  221.       GUICtrlSetData($Results, "Barrack 03: " & $B3Pos[0] & ", " & $B3Pos[1] & @CRLF, -1)
  222.       GUICtrlSetData($Results, "Barrack 04: " & $B4Pos[0] & ", " & $B4Pos[1] & @CRLF, -1)
  223.    EndIf
  224. EndFunc
  225.  
  226. #Region ##### TRAIN #####
  227. Func LocateBarrack()
  228.    GUICtrlSetData($Results, "Func LocateBarrack" & @CRLF, -1)
  229.    Local $ClickCheck, $LocateCheck = 0
  230.    While 1
  231.       While 1
  232.          If $RunState = False Then
  233.             ExitLoop(2)
  234.          EndIf
  235.          If $B1Pos[0] = 0 Then
  236.             $ClickCheck = MsgBox(6+262144, "Locate first barrack", "Click Continue then click on your first barrack. Cancel if not available. Try again to start over.", 0, $BotGUI)
  237.             If $ClickCheck = 11 Then
  238.                WinActivate ($HWnD)
  239.                FindPos($B1Pos)
  240.                IniWrite ($Config, "Barrack 01", "X", $B1Pos[0])
  241.                IniWrite ($Config, "Barrack 01", "Y", $B1Pos[1])
  242.             ElseIf $ClickCheck = 10 Then
  243.                $B1Pos[0] = 0
  244.                $B2Pos[0] = 0
  245.                $B3Pos[0] = 0
  246.                $B4Pos[0] = 0
  247.                ExitLoop
  248.             EndIf
  249.             Sleep(500)
  250.          EndIf
  251.          If $RunState = False Then
  252.             ExitLoop(2)
  253.          EndIf
  254.          If $B2Pos[0] = 0 Then
  255.             $ClickCheck = MsgBox(6+262144, "Locate second barrack", "Click Continue then click on you second barrack. Cancel if not available. Try again to start over.", 0, $BotGUI)
  256.             If $ClickCheck = 11 Then
  257.                WinActivate ($HWnD)
  258.                FindPos($B2Pos)
  259.                IniWrite ($Config, "Barrack 02", "X", $B2Pos[0])
  260.                IniWrite ($Config, "Barrack 02", "Y", $B2Pos[1])
  261.             ElseIf $ClickCheck = 10 Then
  262.                $B1Pos[0] = 0
  263.                $B2Pos[0] = 0
  264.                $B3Pos[0] = 0
  265.                $B4Pos[0] = 0
  266.                ExitLoop
  267.             EndIf
  268.             Sleep(500)
  269.          EndIf
  270.          If $RunState = False Then
  271.             ExitLoop(2)
  272.          EndIf
  273.          If $B3Pos[0] = 0 Then
  274.             $ClickCheck = MsgBox(6+262144, "Locate third barrack", "Click Continue then click on your third barrack. Cancel if not available. Try again to start over.", 0, $BotGUI)
  275.             If $ClickCheck = 11 Then
  276.                WinActivate ($HWnD)
  277.                FindPos($B3Pos)
  278.                IniWrite ($Config, "Barrack 03", "X", $B3Pos[0])
  279.                IniWrite ($Config, "Barrack 03", "Y", $B3Pos[1])
  280.             ElseIf $ClickCheck = 10 Then
  281.                $B1Pos[0] = 0
  282.                $B2Pos[0] = 0
  283.                $B3Pos[0] = 0
  284.                $B4Pos[0] = 0
  285.                ExitLoop
  286.             EndIf
  287.             Sleep(500)
  288.          EndIf
  289.          If $RunState = False Then
  290.             ExitLoop(2)
  291.          EndIf
  292.          If $B4Pos[0] = 0 Then
  293.             $ClickCheck = MsgBox(6+262144, "Locate fourth barrack", "Click Continue then click on your fourth barrack. Cancel if not available. Try again to start over.", 0, $BotGUI)
  294.             If $ClickCheck = 11 Then
  295.                WinActivate ($HWnD)
  296.                FindPos($B4Pos)
  297.                IniWrite ($Config, "Barrack 04", "X", $B4Pos[0])
  298.                IniWrite ($Config, "Barrack 04", "Y", $B4Pos[1])
  299.             ElseIf $ClickCheck = 10 Then
  300.                $B1Pos[0] = 0
  301.                $B2Pos[0] = 0
  302.                $B3Pos[0] = 0
  303.                $B4Pos[0] = 0
  304.                ExitLoop
  305.             EndIf
  306.             Sleep(500)
  307.          EndIf
  308.          ExitLoop(2)
  309.       WEnd
  310.    WEnd
  311. EndFunc
  312.  
  313. Func TrainBarrack($x, $y, $z)
  314.    GUICtrlSetData($Results, "Func TrainBarrack" & @CRLF, -1)
  315.    While 1
  316.       If $RunState = False Then
  317.          ExitLoop
  318.       EndIf
  319.       ControlClick ($HWnD, "","", "left", "1", $x, $y)
  320.       Sleep(1000)
  321.       ControlClick ($HWnD, "","", "left", "1", 560*$x_ratio, 490*$y_ratio)
  322.       Sleep(1000)
  323. ;~    ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  324.       GUICtrlSetData($Results, "PixelGetColor" & @CRLF, -1)
  325.       $Pixel = PixelGetColor(351*$x_ratio, 455*$y_ratio, $HWnD)
  326.       If $Pixel = 13645880 OR $Pixel = 13645881 OR $Pixel = 13645888 OR $Pixel = 13645889 OR $Pixel = 13645890 OR $Pixel = 13645891 Then
  327.       ControlClick ($HWnD, "","", "left", "1", 656*$x_ratio, 113*$y_ratio)
  328.       sleep(1000)
  329.       Attack()
  330.       EndIf
  331. ;~    ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  332.       Select
  333.       Case $z = "Barbarian"
  334.          For $i = 1 To 65 Step 1
  335.             ControlClick ($HWnD, "","", "left", "1", 220*$x_ratio, 270*$y_ratio)
  336.             If $RunState = False Then
  337.                ExitLoop
  338.             EndIf
  339.             Sleep(50)
  340.          Next
  341.       Case $z = "Archer"
  342.          For $i = 1 To 65 Step 1
  343.             ControlClick ($HWnD, "","", "left", "1", 310*$x_ratio, 270*$y_ratio)
  344.             If $RunState = False Then
  345.                ExitLoop
  346.             EndIf
  347.             Sleep(50)
  348.          Next
  349.       Case $z = "Goblin"
  350.          For $i = 1 To 65 Step 1
  351.             ControlClick ($HWnD, "","", "left", "1", 490*$x_ratio, 270*$y_ratio)
  352.             If $RunState = False Then
  353.                ExitLoop
  354.             EndIf
  355.             Sleep(50)
  356.          Next
  357.       Case $z = "Giant"
  358.          For $i = 1 To 15 Step 1
  359.             ControlClick ($HWnD, "","", "left", "1", 400*$x_ratio, 270*$y_ratio)
  360.             If $RunState = False Then
  361.                ExitLoop
  362.             EndIf
  363.             Sleep(50)
  364.          Next
  365.       EndSelect
  366.       If $RunState = False Then
  367.          ExitLoop
  368.       EndIf
  369.       Sleep(1000)
  370.       ControlClick ($HWnD, "","", "left", "1", 656*$x_ratio, 113*$y_ratio)
  371.       Sleep(1000)
  372.       ExitLoop
  373.    WEnd
  374. EndFunc
  375.  
  376. Func Train()
  377.    GUICtrlSetData($Results, "Func Train" & @CRLF, -1)
  378.    GUICtrlSetData($Results,"Begin training" & @CRLF, -1)
  379.    If $B1Pos[0] <> 0 Then
  380.       TrainBarrack($B1Pos[0],$B1Pos[1],$B1Troop)
  381.    EndIf
  382.    If $B2Pos[0] <> 0 Then
  383.       TrainBarrack($B2Pos[0],$B2Pos[1],$B2Troop)
  384.    EndIf
  385.    If $B3Pos[0] <> 0 Then
  386.       TrainBarrack($B3Pos[0],$B3Pos[1],$B3Troop)
  387.    EndIf
  388.    If $B4Pos[0] <> 0 Then
  389.       TrainBarrack($B4Pos[0],$B4Pos[1],$B4Troop)
  390.    EndIf
  391.    GUICtrlSetData($Results, "Training complete" & @CRLF, -1)
  392. EndFunc
  393. #EndRegion ##### TRAIN #####
  394.  
  395. #Region ##### ATTACK #####
  396. Func Attack()
  397.    GUICtrlSetData($Results, "Func Attack" & @CRLF, -1)
  398.    While 1
  399.       If $RunState = False Then
  400.          ExitLoop
  401.       EndIf
  402.       AssignTroop()
  403.       If $RunState = False Then
  404.          ExitLoop
  405.       EndIf
  406.       PrepareAttack()
  407.       If $RunState = False Then
  408.          ExitLoop
  409.       EndIf
  410.       GUICtrlSetData($Results, "Attack started. Begin searching.." & @CRLF, -1)
  411.       VillageSearch()
  412.       If $RunState = False Then
  413.          ExitLoop
  414.       EndIf
  415.       Sleep(5000)
  416.       DropTroop()
  417.       If $RunState = False Then
  418.          ExitLoop
  419.       EndIf
  420.       ReturnHome()
  421.       ExitLoop
  422.    WEnd
  423. EndFunc
  424.  
  425. Func PrepareAttack()
  426.    GUICtrlSetData($Results, "Func PrepareAttack" & @CRLF, -1)
  427.    While 1
  428.       If $RunState = False Then
  429.          ExitLoop
  430.       EndIf
  431.       ControlClick ($HWnD, "","", "left", "1", 50*$x_ratio, 500*$y_ratio) ;Click Attack
  432.       If $RunState = False Then
  433.          ExitLoop
  434.       EndIf
  435.       Sleep(2000)
  436.       ControlClick ($HWnD, "","", "left", "1", 190*$x_ratio, 420*$y_ratio) ;Click Find a Match
  437.       If $RunState = False Then
  438.          ExitLoop
  439.       EndIf
  440.       Sleep(2000)
  441.       ControlClick ($HWnD, "","", "left", "1", 470*$x_ratio, 330*$y_ratio) ;Click Break Shield
  442.       ExitLoop
  443.    WEnd
  444. EndFunc
  445.  
  446. Func CheckSearch()
  447.    GUICtrlSetData($Results, "Func CheckSearch" & @CRLF, -1)
  448.    Sleep(1000)
  449.    $Pixel = PixelSearch(0,0,900,700,0xC00000,30,1,$HWnD) ;End Battle Button
  450.    While Not IsArray($Pixel)
  451.       $Pixel = PixelSearch(0,0,900,700,0xC00000,30,1,$HWnD) ;End Battle Button
  452.       Sleep(200)
  453.       If $RunState = False Then
  454.          ExitLoop
  455.       EndIf
  456.    WEnd
  457. EndFunc
  458.  
  459. Func VillageSearch()
  460.    GUICtrlSetData($Results, "Func VillageSearch" & @CRLF, -1)
  461.    While 1
  462.       If $RunState = False Then
  463.          ExitLoop
  464.       EndIf
  465.       CheckSearch()
  466.       If $RunState = False Then
  467.       ExitLoop
  468.       EndIf
  469.       ReadValue()
  470.       If $RunState = False Then
  471.          ExitLoop
  472.       EndIf
  473.       CompareValue()
  474.       If $RunState = False Then
  475.          ExitLoop
  476.       EndIf
  477.       While $SearchCheck = 0
  478.          If $RunState = False Then
  479.             ExitLoop
  480.          EndIf
  481.          ControlClick ($HWnD, "","", "left", "1", 715*$x_ratio, 405*$y_ratio) ;Click Next
  482.          If $RunState = False Then
  483.             ExitLoop
  484.          EndIf
  485.          CheckSearch()
  486.          If $RunState = False Then
  487.             ExitLoop
  488.          EndIf
  489.          ReadValue()
  490.          If $RunState = False Then
  491.             ExitLoop
  492.          EndIf
  493.          CompareValue()
  494.          If $RunState = False Then
  495.             ExitLoop
  496.          EndIf
  497.       WEnd
  498.       If $RunState = False Then
  499.          ExitLoop
  500.       EndIf
  501.       GUICtrlSetData($Results, "Enemy Found!" & @CRLF, -1)
  502.       TrayTip ("Enemy Found!","Requirement met:  Gold: " & $Gold & ". Elixir: " & $Elixir, 0, $TIP_ICONASTERISK)
  503.       ExitLoop
  504.    WEnd
  505. EndFunc
  506.  
  507. Func CheckTroop($a)
  508.    GUICtrlSetData($Results, "Func CheckTroop" & @CRLF, -1)
  509.    If $B1Troop = $a Or $B2Troop = $a Or $B3Troop = $a Or $B4Troop = $a Then
  510.       Return True
  511.    Else
  512.       Return False
  513.    EndIf
  514. EndFunc
  515.  
  516. Func AssignTroop()
  517.    GUICtrlSetData($Results, "Func AssignTroop" & @CRLF, -1)
  518.    If CheckTroop("Barbarian") Then
  519.       $Barbarian[0] = $Troop[0][0]
  520.       $Barbarian[1] = $Troop[0][1]
  521.       If CheckTroop("Archer") Then
  522.          $Archer[0] = $Troop[1][0]
  523.          $Archer[1] = $Troop[1][1]
  524.          If CheckTroop("Goblin") Then
  525.             $Goblin[0] = $Troop[2][0]
  526.             $Goblin[1] = $Troop[2][1]
  527.             If CheckTroop("Giant") Then
  528.                $Giant[0] = $Troop[3][0]
  529.                $Giant[1] = $Troop[3][1]
  530.                ;MsgBox(0,"","Barbarian, Archer, Goblin, Giant")
  531.             EndIf
  532.          ElseIf CheckTroop("Giant") Then
  533.             $Giant[0] = $Troop[2][0]
  534.             $Giant[1] = $Troop[2][1]
  535.             ;MsgBox(0,"","Barbarian, Archer, Giant")
  536.          EndIf
  537.       ElseIf CheckTroop("Goblin") Then
  538.          $Goblin[0] = $Troop[1][0]
  539.          $Goblin[1] = $Troop[1][1]
  540.          If CheckTroop("Giant") Then
  541.             $Giant[0] = $Troop[2][0]
  542.             $Giant[1] = $Troop[2][1]
  543.             ;MsgBox(0,"","Barbarian, Goblin, Giant")
  544.          EndIf
  545.       ElseIf CheckTroop("Giant") Then
  546.          $Giant[0] = $Troop[1][0]
  547.          $Giant[1] = $Troop[1][1]
  548.          ;MsgBox(0,"","Barbarian, Giant")
  549.       EndIf
  550.    ElseIf CheckTroop("Archer") Then
  551.       $Archer[0] = $Troop[0][0]
  552.       $Archer[1] = $Troop[0][1]
  553.       If CheckTroop("Goblin") Then
  554.          $Goblin[0] = $Troop[1][0]
  555.          $Goblin[1] = $Troop[1][1]
  556.          If CheckTroop("Giant") Then
  557.             $Giant[0] = $Troop[2][0]
  558.             $Giant[1] = $Troop[2][1]
  559.             ;MsgBox(0,"","Archer, Goblin, Giant")
  560.          EndIf
  561.       ElseIf CheckTroop("Giant") Then
  562.          $Giant[0] = $Troop[1][0]
  563.          $Giant[1] = $Troop[1][1]
  564.          ;MsgBox(0,"","Archer, Giant")
  565.       EndIf
  566.    ElseIf CheckTroop("Goblin") Then
  567.       $Goblin[0] = $Troop[0][0]
  568.       $Goblin[1] = $Troop[0][1]
  569.       If CheckTroop("Giant") Then
  570.          $Giant[0] = $Troop[1][0]
  571.          $Giant[1] = $Troop[1][1]
  572.          ;MsgBox(0,"","Goblin, Giant")
  573.       EndIf
  574.    ElseIf CheckTroop("Giant") Then
  575.       $Giant[0] = $Troop[0][0]
  576.       $Giant[1] = $Troop[0][1]
  577.       ;MsgBox(0,"","Giant")
  578.    EndIf
  579. EndFunc
  580.  
  581. Func DropTroop()
  582.    GUICtrlSetData($Results, "Func DropTroop" & @CRLF, -1)
  583.    While 1
  584.       GUICtrlSetData($Results, "Start to drop troops" & @CRLF, -1)
  585.       If $RunState = False Then
  586.          ExitLoop
  587.       EndIf
  588.       DropSingle("Giant",$UpLeft)
  589.       If $RunState = False Then
  590.          ExitLoop
  591.       EndIf
  592.       DropSingle("Barbarian", $UpLeft)
  593.       If $RunState = False Then
  594.          ExitLoop
  595.       EndIf
  596.       DropSingle("Archer", $UpLeft)
  597.       If $RunState = False Then
  598.          ExitLoop
  599.       EndIf
  600.       DropSingle("Giant",$UpRight)
  601.       If $RunState = False Then
  602.          ExitLoop
  603.       EndIf
  604.       DropSingle("Barbarian", $UpRight)
  605.       If $RunState = False Then
  606.          ExitLoop
  607.       EndIf
  608.       DropSingle("Archer", $UpRight)
  609.       If $RunState = False Then
  610.          ExitLoop
  611.       EndIf
  612.       DropSingle("Barbarian", $UpLeft)
  613.       If $RunState = False Then
  614.          ExitLoop
  615.       EndIf
  616.       DropSingle("Archer", $UpLeft)
  617.       If $RunState = False Then
  618.          ExitLoop
  619.       EndIf
  620.       ExitLoop
  621.    WEnd
  622. EndFunc
  623.  
  624. Func DropSingle($T, $W)
  625.    GUICtrlSetData($Results, "Func DropSingle" & @CRLF, -1)
  626.    While 1
  627.       If $RunState = False Then
  628.          ExitLoop
  629.       EndIf
  630.       If CheckTroop($T) Then
  631.          Select
  632.          Case $T = "Giant"
  633.             ControlClick ($HWnD, "","", "left", "1", $Giant[0], $Giant[1])
  634.             Sleep(300)
  635.             For $i = 1 to 5 Step 1
  636.                ControlClick ($HWnD, "","", "left", "1", $W[$i][0], $W[$i][1])
  637.                Sleep(100)
  638.             Next
  639.             Sleep(3000)
  640.          If $RunState = False Then
  641.             ExitLoop
  642.          EndIf
  643.          Case $T = "Barbarian"
  644.             ControlClick ($HWnD, "","", "left", "1", $Barbarian[0], $Barbarian[1])
  645.             Sleep(300)
  646.             For $x = 0 to 7 Step 1
  647.                For $i = 0 to 4 Step 1
  648.                   ControlClick ($HWnD, "","", "left", "1", $W[$i][0], $W[$i][1])
  649.                   Sleep(100)
  650.                Next
  651.             Next
  652.             Sleep(1000)
  653.          If $RunState = False Then
  654.             ExitLoop
  655.          EndIf
  656.          Case $T = "Archer"
  657.             ControlClick ($HWnD, "","", "left", "1", $Archer[0], $Archer[1])
  658.             Sleep(300)
  659.             For $x = 0 to 7 Step 1
  660.                For $i = 0 to 4 Step 1
  661.                   ControlClick ($HWnD, "","", "left", "1", $W[$i][0], $W[$i][1])
  662.                   Sleep(100)
  663.                Next
  664.             Next
  665.             Sleep(1000)
  666.          If $RunState = False Then
  667.             ExitLoop
  668.          EndIf
  669.          Case $T = "Goblin"
  670.             ControlClick ($HWnD, "","", "left", "1", $Goblin[0], $Goblin[1])
  671.             Sleep(300)
  672.             For $x = 0 to 7 Step 1
  673.                For $i = 0 to 4 Step 1
  674.                   ControlClick ($HWnD, "","", "left", "1", $W[$i][0], $W[$i][1])
  675.                   Sleep(100)
  676.                Next
  677.             Next
  678.             Sleep(300)
  679.          EndSelect
  680.       EndIf
  681.       ExitLoop
  682.    WEnd
  683. EndFunc
  684.  
  685. Func DropCombo($W)
  686.    GUICtrlSetData($Results, "Func DropCombo" & @CRLF, -1)
  687.    While 1
  688.       If $RunState = False Then
  689.          ExitLoop
  690.       EndIf
  691.       If CheckTroop("Giant") Then
  692.          ControlClick ($HWnD, "","", "left", "1", $Giant[0], $Giant[1])
  693.          Sleep(500)
  694.          For $i = 1 to 5 Step 1
  695.             ControlClick ($HWnD, "","", "left", "1", $W[$i][0], $W[$i][1])
  696.             Sleep(500)
  697.          Next
  698.          Sleep(2000)
  699.       EndIf
  700.       If $RunState = False Then
  701.          ExitLoop
  702.       EndIf
  703.       If CheckTroop("Barbarian") Then
  704.          ControlClick ($HWnD, "","", "left", "1", $Barbarian[0], $Barbarian[1])
  705.          Sleep(300)
  706.          For $x = 0 to 7 Step 1
  707.             For $i = 0 to 4 Step 1
  708.                ControlClick ($HWnD, "","", "left", "1", $W[$i][0], $W[$i][1])
  709.                Sleep(100)
  710.             Next
  711.          Next
  712.          Sleep(500)
  713.       EndIf
  714.       If $RunState = False Then
  715.          ExitLoop
  716.       EndIf
  717.       If CheckTroop("Archer") Then
  718.          ControlClick ($HWnD, "","", "left", "1", $Archer[0], $Archer[1])
  719.          Sleep(300)
  720.          For $x = 0 to 7 Step 1
  721.             For $i = 0 to 4 Step 1
  722.                ControlClick ($HWnD, "","", "left", "1", $W[$i][0], $W[$i][1])
  723.                Sleep(100)
  724.             Next
  725.          Next
  726.          Sleep(500)
  727.       EndIf
  728.       If $RunState = False Then
  729.          ExitLoop
  730.       EndIf
  731.       If CheckTroop("Goblin") Then
  732.          ControlClick ($HWnD, "","", "left", "1", $Goblin[0], $Goblin[1])
  733.          Sleep(300)
  734.          For $x = 0 to 7 Step 1
  735.             For $i = 0 to 4 Step 1
  736.                ControlClick ($HWnD, "","", "left", "1", $W[$i][0], $W[$i][1])
  737.                Sleep(100)
  738.             Next
  739.          Next
  740.          Sleep(500)
  741.       EndIf
  742.       ExitLoop
  743.    WEnd
  744. EndFunc
  745.  
  746. Func ReadValue()
  747.    GUICtrlSetData($Results, "Func ReadValue" & @CRLF, -1)
  748.    While 1
  749.       If $RunState = False Then
  750.          ExitLoop
  751.       EndIf
  752.       $Gold = Number(getGold($x_gold, $y_gold))
  753.       If $Gold < 100 Then
  754.          $Gold = Number(getGold($x_gold-1, $y_gold-1))
  755.       EndIf
  756.       $Elixir = Number(getElixir($x_elixir, $y_elixir))
  757.       If $Elixir < 100 Then
  758.          $Elixir = Number(getElixir($x_elixir-1, $y_elixir-1))
  759.       EndIf
  760.       GUICtrlSetData($Results, "(" & $SearchCount+1 & ") Gold: " & $Gold & ". Elixir: " & $Elixir & @CRLF, -1)
  761.       $SearchCount += 1 ; Counter for number of searches
  762.       ExitLoop
  763.    WEnd
  764. EndFunc
  765.  
  766. Func CompareValue()
  767.    GUICtrlSetData($Results, "Func CompareValue" & @CRLF, -1)
  768.    If $Gold >= $MinGold Then
  769.       If $Elixir >= $MinElixir Then
  770.          ;MsgBox(0, "Gold & Elixir Check", "Gold: " & $Gold & @CR & "Elixir: " & $Elixir & @CR & "Requirement met.")
  771.          Select
  772.             Case $SearchMode = 1
  773.                $SearchCheck = 1
  774.             Case $SearchMode = 2
  775.                $SearchCheck = 1
  776.             Case Else
  777.                $SearchCheck = 0
  778.          EndSelect
  779.       Else
  780.          ;MsgBox(0, "Gold & Elixir Check", "Gold: " & $Gold & @CR & "Elixir: " & $Elixir & @CR &  "Not enough " & $MinElixir & " Elixir.")
  781.          Select
  782.             Case $SearchMode = 1
  783.                $SearchCheck = 1
  784.             Case $SearchMode = 2
  785.                $SearchCheck = 0
  786.             Case Else
  787.                $SearchCheck = 0
  788.          EndSelect
  789.       EndIf
  790.    Else
  791.       If $Elixir >= $MinElixir Then
  792.          ;MsgBox(0, "Gold & Elixir Check", "Gold: " & $Gold & @CR & "Elixir: " & $Elixir & @CR & "Not enough " & $MinGold & " Gold.")
  793.          Select
  794.             Case $SearchMode = 1
  795.                $SearchCheck = 1
  796.             Case $SearchMode = 2
  797.                $SearchCheck = 0
  798.             Case Else
  799.                $SearchCheck = 0
  800.          EndSelect
  801.       Else
  802.          ;MsgBox(0, "Gold & Elixir Check", "Gold: " & $Gold & @CR & "Elixir: " & $Elixir & @CR & "Not enough " & $MinGold & " Gold and " & $MinElixir & " Elixir." )
  803.          Select
  804.             Case $SearchMode = 1
  805.                $SearchCheck = 0
  806.             Case $SearchMode = 2
  807.                $SearchCheck = 0
  808.             Case Else
  809.                $SearchCheck = 0
  810.          EndSelect
  811.       EndIf
  812.    EndIf
  813. EndFunc
  814. #EndRegion ##### ATTACK #####
  815.  
  816. #Region ##### MINI FUNCTION #####
  817.  
  818. #cs
  819. Func MainScreen()
  820.    While 1
  821.       If $RunState = False Then
  822.          ExitLoop
  823.       EndIf
  824.       GUICtrlSetData($Results, "Waiting for Clash of Clans to load..." & @CRLF, -1)
  825.       $Pixel = PixelGetColor(630*$x_ratio, 390*$y_ratio, $HWnD)
  826.       If Hex($Pixel,6) = 282828 Or $Pixel = 2962704 Then
  827.          ControlClick ($HWnD, "","", "left", "1", 293*$x_ratio, 329*$y_ratio)
  828.          If $RunState = False Then
  829.             ExitLoop
  830.          EndIf
  831.          Sleep(5000)
  832.       EndIf
  833.       $Pixel = PixelSearch(0,0,900,700,0xF8ED90,0,1,$HWnD)
  834.       If IsArray($Pixel) Then
  835.          ControlClick ($HWnD, "","", "left", "1", 400*$x_ratio, 450*$y_ratio)
  836.          If $RunState = False Then
  837.             ExitLoop
  838.          EndIf
  839.          Sleep(5000)
  840.       EndIf
  841.       $Pixel = PixelSearch(0,0,900,700,$Attack,0,1,$HWnD)
  842.       While Not IsArray($Pixel)
  843.          $Pixel = PixelSearch(0,0,900,700,$Attack,0,1,$HWnD)
  844.          If $RunState = False Then
  845.             ExitLoop
  846.          EndIf
  847.          Sleep(200)
  848.       WEnd
  849.       GUICtrlSetData($Results, "In main screen" & @CRLF, -1)
  850.       ExitLoop
  851.    WEnd
  852. EndFunc
  853. #ce
  854. Func CheckScreenChange($a, $b, $c, $d)
  855.    $Pixel = PixelChecksum($a*$BSsize[0],$b*$BSsize[1], $c*$BSsize[0], $d*$BSsize[1], 2, $hWnD)
  856.    Sleep(500)
  857.    $Pixel1 = PixelChecksum($a*$BSsize[0],$b*$BSsize[1], $c*$BSsize[0], $d*$BSsize[1], 2, $hWnD)
  858.    If $Pixel = $Pixel1 Then
  859.       Return False
  860.    Else
  861.       Return True
  862.    EndIf
  863. EndFunc
  864.  
  865. Func MainScreen()
  866.    If Not CheckScreenChange(0.25, 0.25, 0.75, 0.75) Then
  867.       ControlClick ($HWnD, "","", "left", "1", 293*$x_ratio, 329*$y_ratio)
  868.       ControlClick ($HWnD, "","", "left", "1", 400*$x_ratio, 408*$y_ratio)
  869.       GUICtrlSetData($Results, "Waiting for Clash of Clans to load..." & @CRLF, -1)
  870.       Sleep(5000)
  871.    EndIf
  872.    While Not CheckScreenChange(0.25, 0.25, 0.75, 0.75)
  873.       Sleep(1000)
  874.    WEnd
  875.    If Not CheckScreenChange(0.25, 0.25, 0.75, 0.75) Then
  876.       ControlClick ($HWnD, "","", "left", "1", 400*$x_ratio, 408*$y_ratio)
  877.    EndIf
  878.    While Not CheckScreenChange(0.25, 0.25, 0.75, 0.75)
  879.       Sleep(1000)
  880.    WEnd
  881.    GUICtrlSetData($Results, "In Main Screen" & @CRLF, -1)
  882. EndFunc
  883.  
  884. Func Idle($s)
  885.    GUICtrlSetData($Results, "Func Idle" & @CRLF, -1)
  886.    For $i = 0 to $s/60 Step 1
  887.       ClearBox()
  888.       GUICtrlSetData($Results, $s/60 - $i & " minutes left. " & @CRLF, -1)
  889.       If $RunState = False Then
  890.          ExitLoop
  891.       EndIf
  892.       Train()
  893.       If $RunState = False Then
  894.          ExitLoop
  895.       EndIf
  896.       Sleep(30000)
  897.    Next
  898. EndFunc
  899.  
  900. Func ReturnHome()
  901.    GUICtrlSetData($Results, "Func ReturnHome" & @CRLF, -1)
  902.    #cs
  903.    While CheckScreenChange(0.25, 0.9, 0.75, 0.95)
  904.       Sleep(1000)
  905.    WEnd
  906.    GUICtrlSetData($Results, "Return Home" & @CRLF, -1)
  907.    ControlClick ($HWnD, "","", "left", "1", 400*$x_ratio, 450*$y_ratio)
  908.    #ce
  909.    While 1
  910.       While GoldChange()
  911.          Sleep(1000)
  912.          If $RunState = False Then
  913.             ExitLoop
  914.          EndIf
  915.       WEnd
  916.       If $RunState = False Then
  917.          ExitLoop
  918.       EndIf
  919.    GUICtrlSetData($Results, "Return Home" & @CRLF, -1)
  920.       ControlClick ($HWnD, "","", "left", "1", 70*$x_ratio, 454*$y_ratio)
  921.       Sleep(1000)
  922.  
  923.       $Date = @MDAY & "." & @MON & "." & @YEAR
  924.       $Time = @HOUR & "_" & @MIN
  925.       _ScreenCapture_CaptureWnd(@ScriptDir & "\Screenshots\" & $Date & "-" & $Time & ".jpg", $hWnd)
  926.  
  927.       ControlClick ($HWnD, "","", "left", "1", 482*$x_ratio, 350*$y_ratio)
  928.       Sleep(1000)
  929.       ControlClick ($HWnD, "","", "left", "1", 400*$x_ratio, 450*$y_ratio)
  930.       GUICtrlSetData($Results, "Return Home" & @CRLF, -1)
  931.       Sleep(4000)
  932.       ExitLoop
  933.    WEnd
  934. EndFunc
  935.  
  936. Func GoldChange()
  937.    GUICtrlSetData($Results, "Func GoldChange" & @CRLF, -1)
  938.    While 1
  939.       $Gold1 = Number(getGold($x_gold, $y_gold))
  940.       If $Gold1 < 100 Then
  941.          $Gold1 = Number(getGold($x_gold-1, $y_gold-1))
  942.       EndIf
  943.       Sleep(60000)
  944.       If $RunState = False Then
  945.          ExitLoop
  946.       EndIf
  947.       $Gold2 = Number(getGold($x_gold, $y_gold))
  948.       If $Gold2 < 100 Then
  949.          $Gold2 = Number(getGold($x_gold-1, $y_gold-1))
  950.       EndIf
  951.       If $Gold1 = $Gold2 Then
  952.          Return False
  953.       Else
  954.          Return True
  955.          GUICtrlSetData($Results, "Gold change detected. Waiting." & @CRLF, -1)
  956.       EndIf
  957.       ExitLoop
  958.    WEnd
  959. EndFunc
  960.  
  961. Func ZoomOut()
  962.    GUICtrlSetData($Results, "Zoom Out" & @CRLF, -1)
  963.    For $i = 1 To 20 Step 1
  964.       ControlSend($HWnD, "", "", "{DOWN}", 0)
  965.       If $RunState = False Then
  966.          ExitLoop
  967.       EndIf
  968.       Sleep(500)
  969.    Next
  970. EndFunc
  971.  
  972. Func Button($hex)
  973.    $Count = 0
  974.    $Pixel = PixelSearch(0,0,900,700,$hex,0,1,$HWnD) ;Attack! button
  975.    While Not IsArray($Pixel) And $Count < 5
  976.       $Pixel = PixelSearch(0,0,900,700,$hex,0,1,$HWnD) ;Attack! button
  977.       Sleep(200)
  978.       $Count += 1
  979.    WEnd
  980.    If $Count < 5 Then
  981.       ControlClick ($HWnD, "","", "left", "1", $Pixel[0], $Pixel[1])
  982.    EndIf
  983.    Sleep(1000)
  984. EndFunc
  985.  
  986. Func Terminate()
  987.    Exit
  988. EndFunc
  989.  
  990. Func FindPos(ByRef $Pos)
  991.    Opt ("MouseCoordMode", 2)
  992.    Local $x = 1
  993.    While $x = 1
  994.       If _IsPressed("01") Then
  995.          $Pos = MouseGetPos()
  996.          $x = 0
  997.       EndIf
  998.    WEnd
  999.    Opt ("MouseCoordMode", 0)
  1000. EndFunc
  1001.  
  1002. Func ClearBox()
  1003.    GUICtrlDelete($Results)
  1004. ;~    $Results = GUICtrlCreateEdit("", 20, 140, 260, 225, BitOR($SS_SUNKEN,$ES_READONLY, $SS_LEFT))
  1005.    $Results = GUICtrlCreateList("", 20, 140, 260, 225, BitOR($SS_SUNKEN,$ES_READONLY, $SS_LEFT, $WS_VSCROLL))
  1006. EndFunc
  1007.  
  1008. Func LB()
  1009.    GUICtrlSetData($Results, "Func LB" & @CRLF, -1)
  1010.    ClearBox()
  1011.    $RunState = True
  1012.    GUICtrlSetData($Button,"STOP")
  1013.    MainScreen()
  1014.    ZoomOut()
  1015.    $B1Pos[0] = 0
  1016.    $B2Pos[0] = 0
  1017.    $B3Pos[0] = 0
  1018.    $B4Pos[0] = 0
  1019.    LocateBarrack()
  1020.    GUICtrlSetData($LBButton,"Locate Barracks")
  1021.    GUICtrlSetData($Results, "Barracks located" & @CRLF, -1)
  1022.    GUICtrlSetData($Results, "Barrack 01: " & $B1Pos[0] & ", " & $B1Pos[1] & @CRLF, -1)
  1023.    GUICtrlSetData($Results, "Barrack 02: " & $B2Pos[0] & ", " & $B2Pos[1] & @CRLF, -1)
  1024.    GUICtrlSetData($Results, "Barrack 03: " & $B3Pos[0] & ", " & $B3Pos[1] & @CRLF, -1)
  1025.    GUICtrlSetData($Results, "Barrack 04: " & $B4Pos[0] & ", " & $B4Pos[1] & @CRLF, -1)
  1026.    $RunState = False
  1027.    GUICtrlSetData($Button,"START")
  1028. EndFunc
  1029.  
  1030. Func Tr()
  1031.    GUICtrlSetData($Results, "Func Tr" & @CRLF, -1)
  1032.    ClearBox()
  1033.    $RunState = True
  1034.    GUICtrlSetData($Button,"STOP")
  1035.    MainScreen()
  1036.    GetInput()
  1037.    ZoomOut()
  1038.    Train()
  1039.    $RunState = False
  1040.    GUICtrlSetData($TrButton, "Train")
  1041.    GUICtrlSetData($Button,"STOP")
  1042. EndFunc
  1043.  
  1044. Func Atk()
  1045.    GUICtrlSetData($Results, "Func Atk" & @CRLF, -1)
  1046.    ClearBox()
  1047.    $RunState = True
  1048.    GUICtrlSetData($Button,"STOP")
  1049.    MainScreen()
  1050.    GetInput()
  1051.    ZoomOut()
  1052.    Attack()
  1053.    GUICtrlSetData($AtkButton, "Attack")
  1054.    $RunState = False
  1055.    GUICtrlSetData($Button,"START")
  1056. EndFunc
  1057.  
  1058. Func SearchFunction()
  1059.    GUICtrlSetData($Results, "Func SearchFunction" & @CRLF, -1)
  1060.    ClearBox()
  1061.    $RunState = True
  1062.    GUICtrlSetData($Button,"STOP")
  1063.    GetInput()
  1064.    ClearBox()
  1065.    ControlClick ($HWnD, "","", "left", "1", 715*$x_ratio, 405*$y_ratio) ;Click Next
  1066.    VillageSearch()
  1067.    GUICtrlSetData($VSButton, "Village Search")
  1068.    $RunState = False
  1069.    GUICtrlSetData($Button,"START")
  1070. EndFunc
  1071.  
  1072. Func DrpTrp()
  1073.    GUICtrlSetData($Results, "Func DrpTrp" & @CRLF, -1)
  1074.    ClearBox()
  1075.    $RunState = True
  1076.    GUICtrlSetData($Button,"STOP")
  1077.    GetInput()
  1078.    AssignTroop()
  1079.    DropTroop()
  1080.    ReturnHome()
  1081.    GUICtrlSetData($DTButton, "Drop Troop")
  1082.    $RunState = False
  1083.    GUICtrlSetData($Button,"START")
  1084. EndFunc
  1085.  
  1086. Func KeepAlive()
  1087.    GUICtrlSetData($Results, "Func KeepAlive" & @CRLF, -1)
  1088.    While $KeepAlive = True
  1089.       ControlSend($HWnD, "", "", "{DOWN}", 0)
  1090.       Sleep(10000)
  1091.       If $KeepAlive = False Then
  1092.          ExitLoop
  1093.       EndIf
  1094.    WEnd
  1095. EndFunc
  1096.  
  1097. #cs
  1098. Func Pause()
  1099.    $Paused = NOT $Paused
  1100.    While $Paused
  1101.       Sleep(100)
  1102.    TrayTip("Script Paused","SHIFT+1 to Unpause", 0, $TIP_ICONASTERISK)
  1103.    WEnd
  1104. EndFunc
  1105.  
  1106. Func Restart()
  1107.    ControlClick ($HWnD, "","", "left", "1", 125, 575)
  1108.    Sleep(2000)
  1109.    ControlClick ($HWnD, "","", "left", "1", 125, 577)
  1110.    Sleep(2000)
  1111.    ControlClick ($HWnD, "","", "left", "1", 205, 575)
  1112.    Sleep(2000)
  1113.    MouseClickDrag("left", 700, 300, 700, 120)
  1114.    Sleep(2000)
  1115.    ControlClick ($HWnD, "","", "left", "1", 290, 160)
  1116.    Sleep(50000)
  1117. EndFunc
  1118.  
  1119. Func Initiate()
  1120.    ControlClick ($HWnD, "","", "left", "1", 290, 150) ;Click BlueStacks
  1121.    Sleep(60000)
  1122.    ZoomOut()
  1123.    Sleep(10000)
  1124. EndFunc
  1125. #ce
  1126. #EndRegion ##### MINI FUNCTION ######
Advertisement
Add Comment
Please, Sign In to add comment