Главные задержки возникают при работе цикла в этом месте
GETSCREEN(548,646, 876,780)
COLORMODE(7)
IF_PICTURE_IN (548,646, 876,780, "quest_done.bmp", -1, 90)
IF($close = 1 )
1. в одном цикле дважды обновляется графический буфер и дважды выполняется цветокоррекция, а можно сделать единый уровень цветокоррекции для всех картинок и обновлять одну общую область один раз это заметно быстрее.
2. 90 % совпадения, да ещё если картинка не маленькая это заведомо очень долгий поиск. лучше подготавливайте картинки, чтоб они находились ближе к 100%
3. условие IF($close = 1 ) ни когда не сработает, пока строка // $check = 1 превращена в комментарий
IF($var777 = 0) // условие сработает один раз
$rnd1_x = 960
$rnd1_y = 441
$rnd2_x = 1043
$rnd2_y = 447
$rnd3_x = 1071
$rnd3_y = 501
$rnd4_x = 1026
$rnd4_y = 546
$rnd5_x = 961
$rnd5_y = 573
$rnd6_x = 886
$rnd6_y = 563
$rnd7_x = 864
$rnd7_y = 510
$rnd8_x = 959
$rnd8_y = 543
$rnd = RNDFROM($rnd1,$rnd2,$rnd3,$rnd4,$rnd5,$rnd6,$rnd7,$rnd8) //переменная $rnd ни где не используется, у переменных типа $rnd1 все значения нулевые
//$rnd_x = RNDFROM(829,1085,957,1030,900,1007,906,1092,1076)
//$rnd_y = RNDFROM(533,424,503,566,411,610)
$rnd_wait = RND(2000,5000)
END_IF
IF($first = 0)
$first = 1
$g = HGET(868, 296)
HSETTEXT($g, "MU_QUEST")
$quest = INPUTBOX("Какого монстра ищем?", ".bmp", 500)
LOGWRITE($quest)
$exit = DIALOGBOX("Закрыть окно по завершению квеста?", 4)
IF ($exit = 6)
print("Да")
$close = 1
ELSE
print("Нет")
$close = 0
END_IF
WAITMS(300)
WNDBUMP($g)
SETTHREAD(move_rnd, 1)
END_IF
$check = 0
WHILE($check = 0)
GETSCREEN(547,270, 1354,791)
COLORMODE(8)
IF_PICTURE_IN(547,270, 1354,791, $quest, -1, 99)
SETTHREAD(move_rnd, 0) // изменено название потока
LUP($_xmouse, $_ymouse)
WAITMS(200)
$check = 1 // коммент не давал выхода из цикла !!!
MOVE($_return1+30, $_return2+100)
WAITMS(500)
LDOWN($_return1+30, $_return2+100)
WAITMS(500)
LUP($_return1+30, $_return2+100)
WAIT(1)
KEYPRESS(#F6)
WAIT(3)
KEYPRESS(#F8)
WAITMS(500)
GETSCREEN(548,646, 876,780)
COLORMODE(7)
IF_PICTURE_IN (548,646, 876,780, "quest_done.bmp", -1, 90)
IF($close = 1 )
WAITMS(1000)
MOVE(1337,236)
WAITMS(300)
LCLICK(1337,236)
LOGWRITE("Окно закрыто")
EXECUTE("CMH.exe", "TMessage Квест успешно выполнен! Окно закрыто")
WAIT(1)
HALT
ELSE
EXECUTE("CMH.exe", "TMessage Квест успешно выполнен! Окно на месте ")
HALT
END_IF
ELSE
WAITMS(1000)
SETTHREAD(move_rnd, 1)
END_IF
ELSE
WAITMS(100)
END_IF
END_CYC
THREAD(move_rnd, 0)
WAITMS(100)
//MOVE($rnd_x, $rnd_y)
MOVE(RNDFROM($rnd1_x,$rnd2_x,$rnd3_x,$rnd4_x,$rnd5_x,$rnd6_x,$rnd7_x,$rnd8_x), RNDFROM($rnd1_y,$rnd2_y,$rnd3_y,$rnd4_y,$rnd5_y,$rnd6_y,$rnd7_y,$rnd8_y))
WAITMS(500)
LDOWN($_xmouse, $_ymouse)
WAITMS($rnd_wait)
LUP($_xmouse, $_ymouse)
WAIT(1)
END_THREAD