$time для клича и микстуры нужно разделить наверно.
$time1, $time2 и ниже по скрипту тоже это учесть и разделить.
...
зачем там таймеры? Что они меряют? Если до окончания времени нельзя применить другие, то должно быть как у тебя. Если таймер на время действия... то зачем он, если вызов не по таймеру а по анализу.
В стр.82 GOTO(1) идёт за пределы саба, что делать нельзя
SUB(klich)
IF($time < $_time_t)
LOGWRITE ("Клич")
KEYPRESS(189) // Клич
WAITMS(1150)
$time = $_time_t + 45
END_IF
END_SUB
SUB(mikctura)
IF($time < $_time_t)
KEYDOWN (16)
WAITMS (50)
KEYDOWN (187) // Микстура
WAITMS (50)
KEYUP (187)
KEYUP (16)
BEEP(800,200)
WAITMS(500)
LOGWRITE ("Микстура")
$time = $_time_t + 10
END_IF
END_SUB
SUB(udar)
LOGWRITE ("Удар")
GETSCREEN
IF_PIXEL_IN(803,850, 803,850, 16050845) // Молот
KEYPRESS(56)
WAITMS(1250)
Else
GETSCREEN
IF_PIXEL_IN(711,850, 711,850, 723077) // Вихрь ударов
KEYPRESS(54)
WAITMS(1250)
Else
GETSCREEN
IF_PIXEL_IN(670,850, 670,850, 264226) // Решающий
KEYPRESS(53)
WAITMS(1250)
Else
GETSCREEN
IF_PIXEL_IN(506,850, 506,850, 2102876) // Адреналин
KEYPRESS(49)
WAITMS(650)
Else
GETSCREEN
IF_PIXEL_IN(629,850, 629,850, 4563158) // Тройной 1
KEYPRESS(52)
WAITMS(650)
Else
GETSCREEN
IF_PIXEL_IN(629,850, 629,850, 733864) // Тройной 2
KEYPRESS(52)
WAITMS(650)
Else
GETSCREEN
IF_PIXEL_IN(629,850, 629,850, 1526137) // Тройной 3
KEYPRESS(52)
WAITMS(1200)
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
END_SUB
SUB(slepoy boy)
WHILE(slepoy_boy = 1)
LOGWRITE ("Слепой бой")
WAITMS(1250)
KEYPRESS(52)
WAITMS(700)
KEYPRESS(52)
WAITMS(700)
KEYPRESS(52)
GETSCREEN
IF_PIXEL_IN(33,62, 33,62, 1930288) // Минимум хп
LOGWRITE ("В слепом бою у перса не минимум хп")
slepoy_boy = 0 // выходим из слепого боя
Else
BEEP(800,200)
LOGWRITE ("В слепом бою у перса нет ХП")
mikctura()
klich()
LOGWRITE ("Зацикливаем слепой бой")
END_IF
END_CYC
END_SUB
SUB(boy)
boy = 1
slepoy_boy = 1
WHILE(boy = 1)
LOGWRITE ("В бою")
GETSCREEN
IF_PIXEL_IN(506,63, 506,63, 4539822) // Моб
// Если Моб висит на персе, сканируем ХП перса
LOGWRITE ("Моб на персе")
GETSCREEN
IF_PIXEL_IN(33,62, 33,62, 1930288) // Минимум хп
LOGWRITE ("У перса НЕ минимум ХП")
// Если ХП перса не минимум, то проверяем ХП под клич
GETSCREEN
IF_PIXEL_IN(242,63, 242,63, 3379030) // Хп под клич
LOGWRITE ("ХП достаточно")
udar()
Else
LOGWRITE ("У перса ХП под клич")
// Если ХП уменьшилось
klich()
udar()
END_IF
Else
// Если минимума ХП у перса нет
LOGWRITE ("У перса ХП под микстуру")
mikctura() // Пьем микстуру и снова проверяем ХП
klich()
GETSCREEN
IF_PIXEL_IN(33,62, 33,62, 1930288) // Минимум хп
LOGWRITE ("Хп прибавилось")
// Если ХП появилось, то бьем
udar()
Else
LOGWRITE ("ХП не прибавилось - переходим в слепой бой")
// Если ХП не появилось, переходим в слепой бой
slepoy boy()
END_IF
END_IF
Else
LOGWRITE ("В бою моб не найден")
// Если моб не найден, то проверяем минимальное ХП перса
GETSCREEN
IF_PIXEL_IN(33,62, 33,62, 1930288) // Минимум хп
LOGWRITE ("У перса остались ХП и переходим в пункт 1")
// Если ХП есть, то переходим в режим отдыха
GOTO(1)
Else
LOGWRITE ("ХП нет - в слепой бой")
// Если ХП нет, то переходим в слепой бой
slepoy boy()
END_IF
END_IF
IF(slepoy_boy = 0) // были в слепом бою
boy = 0 // выходим из боя
ELSE
GETSCREEN
IF_PIXEL_IN(506,63, 506,63, 4539822) // Моб
LOGWRITE ("Моб на персе - зацикливаем бой")
ELSE
boy = 0 // выходим из боя
END_IF
END_IF
END_CYC
END_SUB
LOGWRITE ("1")
1:
GETSCREEN
IF_PIXEL_IN(506,63, 506,63, 4539822) // Моб
LOGWRITE ("На персе моб - в бой")
boy()
IF(slepoy_boy = 0) // были в слепом бою
GOTO(1)
END_IF
END_IF
Time Out:
GETSCREEN
IF_PIXEL_IN(749,645, 749,645, 16449535) // Дроп
LOGWRITE ("Дроп")
KEYPRESS(70)
WAITMS(1000)
END_IF
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (2,44, 320,96, "хп-мп.bmp", -1, 100)
poisk moba:
KEYPRESS(69) // Таргет
WAITMS(1000)
GETSCREEN
IF_PIXEL_IN(506,63, 506,63, 4539822) // Моб
GETSCREEN
IF_PIXEL_IN(844,850, 844,850, 9025437) // Лассо
KEYPRESS(57)
LOGWRITE ("Лассо")
WAITMS(1850)
LOGWRITE ("Переходим в бой")
boy()
Else
// Если лассо не найдено, идем на позицию 1
GOTO(Time Out)
END_IF
Else
// Если не найден моб, то идем на позицию 1
GOTO(Time Out)
END_IF
Else
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (1,83, 353,163, "второе дыхание.bmp", -1, 100)
LOGWRITE ("Бафы в порядке - МП")
// Если бафы в порядке, пополняем МП
IF($time < $_time_t)
KEYDOWN (16)
WAITMS (50)
KEYDOWN (48)
WAITMS (50)
KEYUP (48)
KEYUP (16)
WAITMS(10000)
$time = $_time_t + 120
END_IF
Else
LOGWRITE ("Бафы закончились - бафаемся")
// Если бафы закончились. Бафаемся
KEYDOWN (16)
WAITMS (50)
KEYDOWN (189)
WAITMS (50)
KEYUP (189)
KEYUP (16)
WAITMS(1300)
KEYDOWN (16)
WAITMS (50)
KEYDOWN (187)
WAITMS (50)
KEYUP (187)
KEYUP (16)
WAITMS(1300)
END_IF
END_IF
Если ничего я не напутал.