After testing GkevinOD's v5.4.0 for a while, I noticed some possible issue so I made some quick fix here for anyone having it to test.
==========
Change logs:
==========
It wasn't able to locate train troop button for mine (clicking Upgrade instead), with this color hex it manages to find train troop button
[code=autoit]
Func Train()
Local $TrainPos = _PixelSearch(390, 580, 665, 665, Hex(0x687DA1, 6), 10) ;Finds Train Troops button
[/code]
Change maximum zoom to 40 as 20 won't completely zoom out in some case
[code=autoit]
Func ZoomOut()
If $i = 40 Then ;20 sometimes not completely zoom out
ExitLoop
EndIf
[/code]
Optimize Start/Stop button a bit (prevent pressing twice)
Other than that it has been running good, I can finally let it run continuously now. Good job GkevinOD