@Antidote,GKevinOD,Others
Here is my revised imagesearch code for zombie detection. I simplified it to 2x2 (4 search areas instead of 9). You may add it to func village search TWICE for double check.
#include <ImageSearch.au3>
#include <MsgBoxConstants.au3>
HotKeySet("{ESC}", "Terminate")
HotKeySet("p", "checkForImage")
Func Terminate()
Exit 0
EndFunc
opt("mousecoordmode",0)
Global $Title = "BlueStacks App Player"
Global $HWnD = WinGetHandle (WinGetTitle($Title))
Global $ZC=0,$ZombieCount=0, $E
Global $SearchZombie=0, $ZombieCount=0
Global $Tolerance=90
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][4], $IS_x[8][4], $IS_y[8][4], $E[3][5]
$E[0][0] = @ScriptDir&"\ELIX1\E9F9.bmp"
$E[0][1] = @ScriptDir&"\ELIX1\E10F8.bmp"
$E[0][2] = @ScriptDir&"\ELIX1\E10F9.bmp"
$E[0][3] = @ScriptDir&"\ELIX1\E11F8.bmp"
$E[0][4] = @ScriptDir&"\ELIX1\E11F9.bmp"
$E[1][0] = @ScriptDir&"\ELIX2\E9F9.bmp"
$E[1][1] = @ScriptDir&"\ELIX2\E10F8.bmp"
$E[1][2] = @ScriptDir&"\ELIX2\E10F9.bmp"
$E[1][3] = @ScriptDir&"\ELIX2\E11F8.bmp"
$E[1][4] = @ScriptDir&"\ELIX2\E11F9.bmp"
$E[2][0] = @ScriptDir&"\ELIX3\E9F9.bmp"
$E[2][1] = @ScriptDir&"\ELIX3\E10F8.bmp"
$E[2][2] = @ScriptDir&"\ELIX3\E10F9.bmp"
$E[2][3] = @ScriptDir&"\ELIX3\E11F8.bmp"
$E[2][4] = @ScriptDir&"\ELIX3\E11F9.bmp"
ZombieSearch()
Func ZombieSearch()
WinActivate ($HWnD)
$SearchZombie=0
$ZombieCount=0
For $i=0 to 3 Step 1 ;Search per area
IS_Area($i)
$ZombieCount=$ZombieCount+$ZC
Next
If $ZombieCount > 0 Then
$SearchZombie=1
EndIf
MsgBox(0,"","$ZombieCount= "&$ZOmbieCount&", $SearchZombie= "&$SearchZombie&", $MatchCount= "&$MatchCount&@CRLF&"----------------FILE1 E9F9"&@CRLF&$Area[0][0]&","&$Area[0][1]&@CRLF&$Area[0][2]&","&$Area[0][3]&@CRLF&"----------------FILE2: E10F8"&@CRLF&$Area[1][0]&","&$Area[1][1]&@CRLF&$Area[1][2]&","&$Area[1][3]&@CRLF&"----------------FILE3:E10F9"&@CRLF&$Area[2][0]&","&$Area[2][1]&@CRLF&$Area[2][2]&","&$Area[2][3]&@CRLF&"----------------FILE4:E11F8"&@CRLF&$Area[3][0]&","&$Area[3][1]&@CRLF&$Area[3][2]&","&$Area[3][3]&@CRLF&"----------------FILE4:E11F9"&@CRLF&$Area[4][0]&","&$Area[4][1]&@CRLF&$Area[4][2]&","&$Area[4][3]&@CRLF)
EndFunc
Func IS_Area($i)
$ZC =0
For $s=0 to 2 Step 1
For $p=0 to 4 Step 1
$Area[$p][$i]=_ImageSearchArea($E[$s][$p],0,$Lx[$i],$Ly[$i],$Rx[$i],$Ry[$i], $IS_x[$p][$i], $IS_y[$p][$i],$Tolerance)
If $Area[$p][$i]>0 Then
$ZC=1
EndIf
If $ZC=1 Then
ExitLoop
EndIf
Next
; MsgBox(0,"","$Area ["&$i&"] $ZC: "&$ZC&" $march="&$match&" ElixSet["&$s&"] = "&$Area[0][$i]&","&$Area[1][$i]&","&$Area[2][$i]&","&$Area[3][$i]&","&$Area[4][$i])
If $ZC=1 Then
ExitLoop
EndIf
Next
; MsgBox(0,"",$E&" $Area ["&$p&"]["&$i&"] $ZC: "&$ZC&" = "&@CRLF&$Area[$p][0]&","&$Area[$p][1]&","&$Area[$p][2]&@CRLF&""&$Area[$p][3]&","&$Area[$p][4]&","&$Area[$p][5]&@CRLF&""&$Area[$p][6]&","&$Area[$p][7]&","&$Area[$p][8])
EndFunc