Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Hito on September 09, 2014, 09:04:29 AM
-
Почему у меня подпрограммы (klich) и (mikctura) не срабатывают? Всю голову уже сломал...
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)
slepoy boy:
LOGWRITE ("Слепой бой")
WAITMS(1250)
KEYPRESS(52)
WAITMS(700)
KEYPRESS(52)
WAITMS(700)
KEYPRESS(52)
GETSCREEN
IF_PIXEL_IN(33,62, 33,62, 1930288) // Минимум хп
LOGWRITE ("В слепом бою у перса не минимум хп")
GOTO(1)
Else
BEEP(800,200)
LOGWRITE ("В слепом бою у перса нет ХП")
mikctura()
klich()
LOGWRITE ("Зацикливаем слепой бой")
GOTO(slepoy boy)
END_IF
END_SUB
SUB(boy)
boy:
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
GETSCREEN
IF_PIXEL_IN(506,63, 506,63, 4539822) // Моб
LOGWRITE ("Моб на персе - зацикливаем бой")
GOTO(boy)
END_IF
END_SUB
LOGWRITE ("1")
1:
GETSCREEN
IF_PIXEL_IN(506,63, 506,63, 4539822) // Моб
LOGWRITE ("На персе моб - в бой")
boy()
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
-
(http://f5.s.qip.ru/1HDgEPa5.png)
-
не смог разобраться вы извращенец, мало того что goto так еще и внутрь определения сабов, скорее всего срабатывает какой механизм который отрабатывает до клича и увеличивает переменную $time и поэтому она никогда не становится меньше текущего времени, у вас одна и таже переменная $time следит и за бафами и за кличами используйте разные переменные для разных счетчиков времени
-
$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
Если ничего я не напутал.
-
В стр.82 GOTO(1) идёт за пределы саба, что делать нельзя
ну почему же ведь для кликера это абсолютно нормально должно выглядеть, другое дело что мозги дымятся
-
По моему нигде нельзя.
В ассемблере при вызове подпрограммы на вершину стека помещается адрес возврата.
При вложенных подпрограммах, если мы пропустим нормальный возврат, то из внешней подпрограммы вернётся не туда.
В любом случае без нормального завершения подпрограмм стек не освобождается от лишних значений и не восстанавливается очередь. Что может повлиять и на циклы и другие значения в стеке.
Как в Кликермэне, не знаю.
-
Как в Кликермэне, не знаю.
ну исходя из личных наблюдений, кликер защищен от таких вещей поскольку парсер просто последовательно анализирует скрипт и выполняет соответствующие инструкции и для него все эти прыжки тупо не видны. могу ошибаться но мне это видится так
-
Исправленный код
SUB(klich)
IF($time1 < $_time_t)
LOGWRITE ("Клич")
KEYPRESS(189) // Клич
WAITMS(1150)
$time1 = $_time_t + 45
END_IF
END_SUB
SUB(mikctura)
IF($time2 < $_time_t)
KEYDOWN (16)
WAITMS (50)
KEYDOWN (187) // Микстура
WAITMS (50)
KEYUP (187)
KEYUP (16)
BEEP(800,200)
WAITMS(500)
LOGWRITE ("Микстура")
$time2 = $_time_t + 10
END_IF
END_SUB
SUB(udar)
LOGWRITE ("Удар")
GETSCREEN
IF_PIXEL_IN(803,850, 803,850, 16050845) // Молот
KEYPRESS(56)
WAITMS(1250)
Else
IF_PIXEL_IN(711,850, 711,850, 723077) // Вихрь ударов
KEYPRESS(54)
WAITMS(1250)
Else
IF_PIXEL_IN(670,850, 670,850, 264226) // Решающий
KEYPRESS(53)
WAITMS(1250)
Else
IF_PIXEL_IN(506,850, 506,850, 2102876) // Адреналин
KEYPRESS(49)
WAITMS(650)
Else
IF_PIXEL_IN(629,850, 629,850, 4563158) // Тройной 1
KEYPRESS(52)
WAITMS(650)
Else
IF_PIXEL_IN(629,850, 629,850, 733864) // Тройной 2
KEYPRESS(52)
WAITMS(650)
Else
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)
slepoy boy:
LOGWRITE ("Слепой бой")
WAITMS(1250)
KEYPRESS(52)
WAITMS(700)
KEYPRESS(52)
WAITMS(700)
KEYPRESS(52)
GETSCREEN
IF_PIXEL_IN(33,62, 33,62, 1930288) // Минимум хп
LOGWRITE ("В слепом бою у перса не минимум хп")
GOTO(1)
Else
BEEP(800,200)
LOGWRITE ("В слепом бою у перса нет ХП")
mikctura()
klich()
LOGWRITE ("Зацикливаем слепой бой")
GOTO(slepoy boy)
END_IF
END_SUB
SUB(boy)
boy:
LOGWRITE ("В бою")
GETSCREEN
IF_PIXEL_IN(506,63, 506,63, 4539822) // Моб
// Если Моб висит на персе, сканируем ХП перса
LOGWRITE ("Моб на персе")
IF_PIXEL_IN(33,62, 33,62, 1930288) // Минимум хп
LOGWRITE ("У перса НЕ минимум ХП")
// Если ХП перса не минимум, то проверяем ХП под клич
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
GETSCREEN
IF_PIXEL_IN(506,63, 506,63, 4539822) // Моб
LOGWRITE ("Моб на персе - зацикливаем бой")
GOTO(boy)
END_IF
END_SUB
LOGWRITE ("1")
1:
GETSCREEN
IF_PIXEL_IN(506,63, 506,63, 4539822) // Моб
LOGWRITE ("На персе моб - в бой")
boy()
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) // Моб
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($time3 < $_time_t)
KEYDOWN (16)
WAITMS (50)
KEYDOWN (48)
WAITMS (50)
KEYUP (48)
KEYUP (16)
WAITMS(10000)
$time3 = $_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
-
Ребят, там таймеры потому, что микстуру можно использовать только 1 раз в 10 секунд, а клич 1 раз в 45 секунд. Вот и нужно, чтобы эли скилы срабатывали 1 раз в свое время, из какой бы части скрипта они не были вызваны. Что касаемо выпрыгивания из подпрограммы, дак там иначе я просто ума не приложу, как сделать... Дело в том, что в бою может наступить такое время, когда при подходе хп к минимуму, весь экран начинает заволакивать пульсирующей красной дымкой, из за чего кликер вообще перестает видеть, и ХП, и скилы и все остально. Если вы заметили, то в слепом бою он юзает всего 3 скила вслепую. У меня перс просто вставал в таком случае и никера не делал, но если в это время хоть как-то пользоваться скилами, или вовремя успеть юзнуть микстуру, или клич (если посчастливится и они откатятся к этому времени), то из этой слепой зоны есть шанс вырваться и если это получится, то перса необходимо как можно скорее вернуть в нормальный бой, чтобы он полноценно воспользовался скилами и добил моба.
-
Спасибо за ваши ответы. Сейчас буду в них разбираться. Мне это надолго... ))
-
А! Понял! Просто вы умным языком говорите и я не мог въехать )) Если б Oraven не выложил свой скрипт, то я бы и не догнал, о чем вы говорите... )) Иными словами, если в одном и том же скрипте встречается несколько IF($time < $_time_t), то $time нужно переименовывать ))) Спс большое! )) А насчет выпригиваний... Ребят, я ж не себя прыгать заставляю, а кликер ;D Если у него это получается, то пусть пашет ))) А с выпрыгиваниями и ныряниями между двумя боями он справляется )) Большое СПС!
-
Ребят, опять я... Вот как Oraven скрипт исправил, все заработало, как часики. Но я решил еще пару функций добавить:
SUB(klich)
IF($time1 < $_time_t)
LOGWRITE ("Клич")
KEYPRESS(189) // Клич
WAITMS(1150)
$time1 = $_time_t + 45
END_IF
END_SUB
SUB(mikctura)
IF($time2 < $_time_t)
KEYDOWN (16)
WAITMS (50)
KEYDOWN (187) // Микстура
WAITMS (50)
KEYUP (187)
KEYUP (16)
BEEP(800,200)
WAITMS(500)
LOGWRITE ("Микстура")
$time2 = $_time_t + 10
END_IF
END_SUB
SUB(udar)
LOGWRITE ("Удар")
GETSCREEN
IF_PIXEL_IN(803,850, 803,850, 16050845) // Молот
KEYPRESS(56)
WAITMS(1250)
Else
IF_PIXEL_IN(711,850, 711,850, 723077) // Вихрь ударов
KEYPRESS(54)
WAITMS(1250)
Else
IF_PIXEL_IN(670,847, 670,847, 263185,6791167) // Решающий
KEYPRESS(53)
WAITMS(1250)
Else
IF_PIXEL_IN(506,850, 506,850, 2102876) // Адреналин
KEYPRESS(49)
WAITMS(650)
Else
IF_PIXEL_IN(629,850, 629,850, 4563158) // Тройной 1
KEYPRESS(52)
WAITMS(650)
Else
IF_PIXEL_IN(629,850, 629,850, 733864) // Тройной 2
KEYPRESS(52)
WAITMS(650)
Else
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)
slepoy boy:
LOGWRITE ("slepoy boy")
WAITMS(1250)
KEYPRESS(52)
WAITMS(700)
KEYPRESS(52)
WAITMS(700)
KEYPRESS(52)
GETSCREEN
IF_PIXEL_IN(80,64, 80,64, 1930288) // Минимум хп
LOGWRITE ("slepoy boy - у перса не минимум хп")
GOTO(1)
Else
BEEP(800,200)
LOGWRITE ("slepoy boy - у перса нет ХП")
KEYPRESS(40)
WAITMS(100)
mikctura()
klich()
GETSCREEN
IF_PIXEL_IN(80,64, 80,64, 1930288) // Минимум хп
LOGWRITE ("slepoy boy - ХП прибавилось - boy")
boy()
Else
LOGWRITE ("slepoy boy - ХП не прибавилось - slepoy boy")
GOTO(slepoy boy)
END_IF
END_IF
END_SUB
SUB(boy)
boy:
LOGWRITE ("boy")
GETSCREEN
IF_PIXEL_IN(506,63, 506,63, 4539822) // Моб
// Если Моб висит на персе, сканируем ХП перса
LOGWRITE ("boy - Моб на персе")
IF_PIXEL_IN(80,64, 80,64, 1930288) // Минимум хп
LOGWRITE ("boy - у перса НЕ минимум ХП")
// Если ХП перса не минимум, то проверяем ХП под клич
IF_PIXEL_IN(242,63, 242,63, 3379030) // Хп под клич
LOGWRITE ("boy - ХП достаточно")
udar()
Else
LOGWRITE ("boy - у перса ХП под клич")
// Если ХП уменьшилось
klich()
udar()
END_IF
Else
// Если минимума ХП у перса нет
BEEP(800,200)
LOGWRITE ("boy - у перса ХП под микстуру")
mikctura() // Пьем микстуру и снова проверяем ХП
klich()
GETSCREEN
IF_PIXEL_IN(80,64, 80,64, 1930288) // Минимум хп
LOGWRITE ("boy - Хп прибавилось")
// Если ХП появилось, то бьем
udar()
Else
LOGWRITE ("boy - ХП не прибавилось - переходим в слепой бой")
// Если ХП не появилось, переходим в слепой бой
BEEP(800,200)
slepoy boy()
END_IF
END_IF
Else
LOGWRITE ("boy - моб не найден")
// Если моб не найден, то проверяем минимальное ХП перса
GETSCREEN
IF_PIXEL_IN(80,64, 80,64, 1930288) // Минимум хп
LOGWRITE ("boy - у перса остались ХП и переходим в пункт 1")
// Если ХП есть, то переходим в режим отдыха
GOTO(1)
Else
BEEP(800,200)
LOGWRITE ("boy ХП нет - в слепой бой")
// Если ХП нет, то переходим в слепой бой
slepoy boy()
END_IF
END_IF
GOTO(boy)
END_SUB
1:
LOGWRITE ("1")
GETSCREEN
IF_PIXEL_IN(506,63, 506,63, 4539822) // Моб
LOGWRITE ("1 - На персе моб - в бой")
boy()
END_IF
Time Out:
LOGWRITE ("Time Out")
GETSCREEN
IF_PIXEL_IN(749,645, 749,645, 16449535) // Дроп
LOGWRITE ("Time Out - Дроп")
KEYPRESS(70)
WAITMS(1000)
Else
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (2,44, 320,96, "хп-мп.bmp", -1, 100)
LOGWRITE ("Time Out - ХП восстановлены - таргет")
poisk moba:
KEYPRESS(69) // Таргет
WAITMS(1000)
GETSCREEN
IF_PIXEL_IN(506,63, 506,63, 4539822) // Моб
IF_PIXEL_IN(844,850, 844,850, 9025437) // Лассо
KEYPRESS(57)
LOGWRITE ("Time Out - Лассо")
WAITMS(1850)
LOGWRITE ("Time Out - Переходим в бой")
boy()
Else
// Если лассо не найдено, идем на позицию Time Out
LOGWRITE ("Time Out - лассо не найдено - Time Out")
GETSCREEN
IF_PIXEL_IN(28,729, 130,849, 14708977) // Чат
BEEP(800,200)
END_IF
GOTO(Time Out)
END_IF
Else
// Если не найден моб, то идем на позицию Time Out
LOGWRITE ("Time Out - моб не найден - Time Out")
GOTO(Time Out)
END_IF
Else
GETSCREEN
IF_PIXEL_IN(28,729, 130,849, 14708977) // Чат
BEEP(800,200)
END_IF
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (1,83, 353,163, "второе дыхание.bmp", -1, 100)
LOGWRITE ("Time Out - Бафы в порядке")
// Если бафы в порядке, пополняем МП
IF($time3 < $_time_t)
LOGWRITE ("Time Out - медитация")
KEYDOWN (16)
WAITMS (50)
KEYDOWN (48)
WAITMS (50)
KEYUP (48)
KEYUP (16)
WAITMS(10000)
$time3 = $_time_t + 120
END_IF
Else
LOGWRITE ("Time Out - Бафы закончились - бафаемся")
// Если бафы закончились. Бафаемся
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
END_IF
И при запуске кликера стало вот такую хрень выдавать:
(http://f5.s.qip.ru/1HDgEPaV.png) (http://f5.s.qip.ru/1HDgEPaW.png)
Чего я опять напортачил, а...?
-
В стр 87 вызываешь boy()
А сам бой находится ниже.
Выше ты его переместить не можешь, т.к. из него вызывается слепой пью.
Вот ты и запутался. Работает, работает... Теперь у тебя подпрограммы вызывают друг друга, так быть не должно.
-
Точно! GOTO(1) же надо! Подпрограмма boy же ниже, чем slepoy boy... Спс! )