редактор простенький и визуально вложенность отображается не очень явно, поэтому использую goto() для изменения направления выполнения скрипта, и сходу видно куда заворачивается действие, советую попробывать уменьшить вложеность, распологая все последовательно и перепрыгивая ненужные участки скрипта.
зы. я даже заморачиваюсь зарисовкой алгоритма на бумажке, а потом отдельные участки отлаживаю и вписываю.
старенький скрипт в черновом варианте, но наглядно отображает мой стиль
//========================================START
#adaptive_scirpt
#logfile
//set work window
hset(hget(500,500),1)
logwrite(hget(500,500),-window id)
//variables for checks status
//define($mob,0)
//define($battle,0)
//define($hp,0)
//define($deadmob,0)
//define($button,0)
//kors for searching mobs
define($xkor,560)
define($ykor,310)
define($ykor_second,320)
define($xkor_min,560) //==xkor
define($xkor_max,650)
//vars for check battle
//define($battle_x,179)
//define($battle_y,395)
//define($battle_color,9229311)
//vars for button
///define($button_x,752)
//define($button_y,462)
//define($button_color,2176074)
//define($atk_x,681)
//define($atk_y,460)
//vars for deadmob
//define($deadmob_x,1051)
//define($deadmob_y,76)
//define($deadmob_color,5946095)
//vars for HP
//define($hp_x,279)
//define($hp_y,88)
//define($hp_color,255)
//vars for search exit_battle
//define($pic_x1,680)
//define($pic_x2,796)
//define($pic_y1,322)
//define($pic_y2,592)
//counter dead mobs
define($counter,0)
//
//============================INFO_ABOUT_LABELS
//
// battle -check starting battle
// button -check attack button
// deadmob -check dead mob
// mobsearch -start/resume mob searching
// mobsearch1 -resume searching mobs after
// restore xkor
// start_fight -start battle after
// all checking
// exit_battle -search exit button
//
//===================================ALL_CHECKS
//
//check hp
hp:
getscreen
IF(pxl(286,92)=255)
logwrite("loop#",$counter," ","full_hp")
goto(loop)
else
wait(1)
goto(battle)
end_if
//looping
loop:
if($new_loop=1)
goto(mobsearch)
else
goto(mobsearch_loop)
end_if
//check battle
battle:
getscreen
if(pxl(66,294)=1067288)
goto(check_heal)
end_if
//screenshot("check_battle") for debug
goto(hp)
//check_heal
check_heal:
WAIT(2)
if($eliks=2 | $eliks>2)
goto(button)
end_if
if(pxl(122,303)>600000)
logwrite("loop#",$counter," ","need heal")
LCLICK(300, 510)
inc($eliks)
goto(button)
end_if
//elik
//heal:
//getscreen
//if_picture_in (211, 378, 425, 736, "elik.bmp", -1, 70)
// lcklick(291, 490)
// logwrite("heeeeal")
// goto(button)
//else
// logwrite("elik not found")
// colormode(7,211,378,425,736)
// screenshot
//end_if
//check attack_button
button:
WAIT(1)
getscreen
colormode(7,458,442,822,479)
if_picture_in (458,442,822,479,"fight_button.bmp")
lclick($_return1-160, $_return2+5)
goto(start_fight)
end_if
//screenshot("check_attack") for debug
goto(deadmob)
//check mob die or not
deadmob:
wait(1)
getscreen
if(pxl($deadmob_x,$deadmob_y)=$deadmob_color)
goto(exit_battle)
else
goto(battle)
end_if
//======================================ACTIONS
//start search mobs
mobsearch:
logwrite("loop#",$counter," ","searching mobs...")
Inc($counter,1)
logwrite(""loop#"",$counter)
//for looping return
mobsearch_loop:
$new_loop=0
waitms(100)
$xkor=450
for ($xkor, $xkor<670)
inc($xkor,5)
waitms(50)
dblclick($xkor, 350)
dblclick($xkor, 360)
end_cyc
goto(battle)
//starting battle
start_fight:
waitms(500)
logwrite("loop#",$counter," ","attack")
goto(battle)
//search exit_button
exit_battle:
getscreen
colormode(7,400,300,800,900)
if_picture_in (500,200,800,900,"exit_button.bmp")
lclick($_return1+5, $_return2+5)
logwrite("loop#",$counter," ","exit battle")
wait(2)
$eliks=0
$new_loop=1
end_if
goto(battle)
halt