The Bytecode Club
Log inJoin the club
Video Game Reverse Engineering

Deadbase Search

Started by AtoZ · Jan 4, 2015

37 replies492,887 views
Jan 29, 2015#31
GLOBAL $AdjustTolerance=0
Global $Tolerance[5][11]=[[55,55,55,80,70,    70,75,80,0,75, 65],[55,55,55,80,80,    70,75,80,0,75, 65],[55,55,55,80,80,    70,75,80,0,75, 65],[55,55,55,80,80,    60,75,75,0,75, 60],[55,55,55,80,80,    70,75,80,0,75, 65]]

Func ZombieSearch()
 $ZombieCount = 0
 For $i = 0 To 3 Step 1
 $ZC = 0
 For $s = 0 To ($ZombieFileSets - 1) Step 1
 For $p = 0 + $ZSExclude To 10 Step 1
  If FileExists($E[$s][$p]) Then
 $Area[$s][$p][$i] = _ImageSearchArea($E[$s][$p], 0, $Lx[$i], $Ly[$i], $Rx[$i], $Ry[$i], $IS_x[$p][$i], $IS_y[$p][$i], $Tolerance[$s][$p]+$AdjustTolerance)
 If $Area[$s][$p][$i] > 0 Then
 $ZC = 1
 ExitLoop (2)
 EndIf
  Else
 $Area[$s][$p][$i]=0
  EndIf
 Next
 Next
 $ZombieCount += $ZC
 Next
 If $ZombieCount > 0 Then
 Return True
 Else
 Return False
 EndIf
EndFunc   ;==>IS_Area

I'm using this one with SET B pictures for TH9. Kindly replace the two function with above code.

Note: $tolerance=55 may have disabled the imagesearch corresponding the file images. Good for collectors level 9 above, but idk for th7 below. I think you may replace those image files but I think there is no need anymore.

I'm a th9 and I'm getting ATLEAST 12m gold per day with this. When I optimize(w/o boosting), I sometimes reach 50% more but could not maintain trophy level. I believe this is already better than commercial bots in terms of performance LOL.

I would like to update the pictures but I don't see the need to do so because of its performance and the method used may not work for 32bit systems. Alternatively, we may use other algorithm for deadbase search like pixelsearch/pixelgetcolor/ memory reading.

Further suggestions for Bot: Optimization/Efficiency Logs like gold/troop, gold per hour, atk per hour, idle time per hour, etc.
Jan 29, 2015#32

Deadbase mode dont work on the background right?? now i fixed it and its working with hidden BS..
i will post script tomorrow in my thread

Jan 30, 2015#33

@safar46
were you able to run it with 32bit systems? you should message GKevinOD/Antidote.

@Gahzirra
Reduce idle time and the effects of out of sync. These should translate to 5-6 attacks per hour minimum with 1k gold/troop efficiency or 1M/hr (hypothetically 24M per day depending on loot availability). I'm LvL101 and I go up and down from Gold 2 to Crystal3.

Jan 30, 2015#34

@safar46
were you able to run it with 32bit systems? you should message GKevinOD/Antidote.

@Gahzirra
Reduce idle time and the effects of out of sync. These should translate to 5-6 attacks per hour minimum with 1k gold/troop efficiency or 1M/hr (hypothetically 24M per day depending on loot availability). I'm LvL101 and I go up and down from Gold 2 to Crystal3.

i dont have 32bit system, but i was tested on 64bit system with 32bit DLL

Jan 30, 2015#35

@AtoZ

I got error - variable not declared for the below line:

For $p = 0 + $ZSExclude To 10 Step 1
Jan 31, 2015#36

Here are the complete declarations.

Global $Title = "BlueStacks App Player"
Global $HWnD = WinGetHandle(WinGetTitle($Title))

GLOBAL $AdjustTolerance=0
Global $Tolerance[5][11]=[[55,55,55,80,70,   70,75,80,0,75,65],[55,55,55,80,80,70,75,80,0,75, 65],[55,55,55,80,80,70,75,80,0,75, 65],[55,55,55,80,80,60,75,75,0,75, 60],[55,55,55,80,80,70,75,80,0,75, 65]]

Global $ZC = 0, $ZombieCount = 0;, $E
Global $ZombieFileSets = 4 ;Variant Image to use organized as per Folder
Global $ZSExclude = 2 ;Set to 0 to include Elixir Lvl 6, 1 to include lvl 7 and so on..

Global $Lx[4] = [0, 400, 0, 400]
Global $Ly[4] = [0, 0, 265, 265]
Global $Rx[4] = [460, 860, 400, 860]
Global $Ry[4] = [325, 325, 590, 590]


Global $Area[5][11][4], $IS_x[11][4], $IS_y[11][4], $E[5][11]

$E[0][0] = @ScriptDir & "\images\ELIX1\E6F9.bmp"
$E[0][1] = @ScriptDir & "\images\ELIX1\E7F9.bmp"
$E[0][2] = @ScriptDir & "\images\ELIX1\E8F9.bmp"
$E[0][3] = @ScriptDir & "\images\ELIX1\E9F9.bmp"
$E[0][4] = @ScriptDir & "\images\ELIX1\E10F8.bmp"
$E[0][5] = @ScriptDir & "\images\ELIX1\E10F9.bmp"
$E[0][6] = @ScriptDir & "\images\ELIX1\E11F8.bmp"
$E[0][7] = @ScriptDir & "\images\ELIX1\E11F9.bmp"
$E[0][8] = @ScriptDir & "\images\ELIX1\E12F7.bmp"
$E[0][9] = @ScriptDir & "\images\ELIX1\E12F8.bmp"
$E[0][10] = @ScriptDir & "\images\ELIX1\E12F9.bmp"

$E[1][0] = @ScriptDir & "\images\ELIX2\E6F9.bmp"
$E[1][1] = @ScriptDir & "\images\ELIX2\E7F9.bmp"
$E[1][2] = @ScriptDir & "\images\ELIX2\E8F9.bmp"
$E[1][3] = @ScriptDir & "\images\ELIX2\E9F9.bmp"
$E[1][4] = @ScriptDir & "\images\ELIX2\E10F8.bmp"
$E[1][5] = @ScriptDir & "\images\ELIX2\E10F9.bmp"
$E[1][6] = @ScriptDir & "\images\ELIX2\E11F8.bmp"
$E[1][7] = @ScriptDir & "\images\ELIX2\E11F9.bmp"
$E[1][8] = @ScriptDir & "\images\ELIX2\E12F7.bmp"
$E[1][9] = @ScriptDir & "\images\ELIX2\E12F8.bmp"
$E[1][10] = @ScriptDir & "\images\ELIX2\E12F9.bmp"

$E[2][0] = @ScriptDir & "\images\ELIX3\E6F9.bmp"
$E[2][1] = @ScriptDir & "\images\ELIX3\E7F9.bmp"
$E[2][2] = @ScriptDir & "\images\ELIX3\E8F9.bmp"
$E[2][3] = @ScriptDir & "\images\ELIX3\E9F9.bmp"
$E[2][4] = @ScriptDir & "\images\ELIX3\E10F8.bmp"
$E[2][5] = @ScriptDir & "\images\ELIX3\E10F9.bmp"
$E[2][6] = @ScriptDir & "\images\ELIX3\E11F8.bmp"
$E[2][7] = @ScriptDir & "\images\ELIX3\E11F9.bmp"
$E[2][8] = @ScriptDir & "\images\ELIX3\E12F7.bmp"
$E[2][9] = @ScriptDir & "\images\ELIX3\E12F8.bmp"
$E[2][10] = @ScriptDir & "\images\ELIX3\E12F9.bmp"

$E[3][0] = @ScriptDir & "\images\ELIX4\E6F9.bmp"
$E[3][1] = @ScriptDir & "\images\ELIX4\E7F9.bmp"
$E[3][2] = @ScriptDir & "\images\ELIX4\E8F9.bmp"
$E[3][3] = @ScriptDir & "\images\ELIX4\E9F9.bmp"
$E[3][4] = @ScriptDir & "\images\ELIX4\E10F8.bmp"
$E[3][5] = @ScriptDir & "\images\ELIX4\E10F9.bmp"
$E[3][6] = @ScriptDir & "\images\ELIX4\E11F8.bmp"
$E[3][7] = @ScriptDir & "\images\ELIX4\E11F9.bmp"
$E[3][8] = @ScriptDir & "\images\ELIX4\E12F7.bmp"
$E[3][9] = @ScriptDir & "\images\ELIX4\E12F8.bmp"
$E[3][10] = @ScriptDir & "\images\ELIX4\E12F9.bmp"

$E[4][0] = "*Trans0xED1C24 "&@ScriptDir&"\images\ELIXSNOW\E6F9.bmp"
$E[4][1] = "*Trans0xED1C24 "&@ScriptDir&"\images\ELIXSNOW\E7F9.bmp"
$E[4][2] = "*Trans0xED1C24 "&@ScriptDir&"\images\ELIXSNOW\E8F9.bmp"
$E[4][3] = "*Trans0xED1C24 "&@ScriptDir&"\images\ELIXSNOW\E9F9.bmp"
$E[4][4] = "*Trans0xED1C24 "&@ScriptDir&"\images\ELIXSNOW\E10F8.bmp"
$E[4][5] = "*Trans0xED1C24 "&@ScriptDir&"\images\ELIXSNOW\E10F9.bmp"
$E[4][6] = "*Trans0xED1C24 "&@ScriptDir&"\images\ELIXSNOW\E11F8.bmp"
$E[4][7] = "*Trans0xED1C24 "&@ScriptDir&"\images\ELIXSNOW\E11F9.bmp"
$E[4][8] = "*Trans0xED1C24 "&@ScriptDir&"\images\ELIXSNOW\E12F7.bmpx"
$E[4][9] = "*Trans0xED1C24 "&@ScriptDir&"\images\ELIXSNOW\E12F8.bmp"
$E[4][10] = "*Trans0xED1C24 "&@ScriptDir&"\images\ELIXSNOW\E12F9.bmp"
Jan 31, 2015#37

I still have that error. By the way below all the error info:

Line 3624

For $p = 0 + $ZSExclude To 10 Step 1
For $p = 0 + ^ ERROR

Error: Variable used without being declared.
Jan 31, 2015#38

I still have that error. By the way below all the error info:

Line 3624

For $p = 0 + $ZSExclude To 10 Step 1
For $p = 0 + ^ ERROR

Error: Variable used without being declared.

the error there is the $ZSExclude declaration. Do you have this?:

Global $ZSExclude = 2 ;Set to 0 to include Elixir Lvl 6, 1 to include lvl 7 and so on..

If yes, where did you placed it? It should be located at the top where the global declarations are.

Got something to add?

Log in to post a reply.

Join the conversation