1
Общие вопросы / Re: Создал раба, для захвата мира, а он не слушается
« on: August 25, 2017, 02:00:59 PM »
Я ей никогда не пользовалась. Спасибо за новое знание
Добавлена тема оформления "Clickermann" для кода с подсветкой синтаксиса. Выбирается из выпадающего списка "Код" (рядом с "цвет", "размер" и "шрифт") в режиме редактирования поста. Либо просто BB-тегом "code=clickermann"
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Может нужно дальше в код заглянуть? Проверить окончания например...Молодец! Спасибо. Надо было просто поныть после двух безрезультатных вечеров поиска потеряшки "END_IF", чтобы услышать ту же версию подразумеваемой ошибки, разобрать цепочку условий на блоки и найти бермуд в коде.
SUB(OPA)
GETSCREEN
COLORMODE(7)
// сканирование здоровья для PvE
IF_PIXEL_IN($start_X+285,$start_Y-479, $start_X+286,$start_Y-474, 8355839)
$HP_full=1
ELSE
$HP_full=0
END_IF
// сканирование маны для PvP
IF_PIXEL_IN($start_X+285,$start_Y-459, $start_X+286,$start_Y-454, 16777087)
$EP_full=1
ELSE
$EP_full=0
END_IF
END_SUB
// __________ 7.Охота ____________________
WAIT(2)
OPA()
IF($log=1)
LOGWRITE("HP_full = ",$HP_full, ", EP_full = ", $EP_full)
END_IF
WAIT(2)
IF($HP_full=1)
WORLD()
WAIT(1)
IF($world ! 1) //если не в городе (не равно 1)
MOVE($town_X+RND(0,20),$town_Y+RND(0,15)) // идем в город
WAIT(RND(2,3))
LCLICK(-1,-1)
Не могу понять, почему вне зависимости от значения $HP_full (0 или 1) выполняются все последующие действия. Всё определяется верно, альтернатива условия и окончание прописаны. Но он уперто прет в город, если хп не полное... Где я туплю?
Вот для этого и нужно заключать код в кодМои бодания с упрямым слеповатым смайликом произошли при попытке Изменить, ранее написанныйCode: [Select]COLORMODE( 8 )
COLORMODE(8)
COLORMODE(8))
$stop=0
WHILE($stop=0)
KEYPRESS(#M)
WAIT(2)
DBLCLICK(1233,413)
WAIT(2)
DBLCLICK(1270,510)
WAIT(1)
DBLCLICK(1118,863)
WAIT(1)
GETSCREEN
IF_PICTURE_IN(754,889, 764,897, "search.bmp", -1, 100)
$stop=1
ELSE
SCREENSHOTEX(754,889, 764,897, "Ups_", 0)
HALT // остановка. пройдите в папку screens и сравните искомое с результатом
END_IF
END_CYC
Правда при таком раскладе цикл не особо нужен, ибо скрипт у вас скорее всего долгое время будет выполняться ровно до строки 16. Если убрать остановку скрипта, то ваша папка перезахламиться скринами, на которые вы даже внимания не обратите. Если же убрать существование самого цикла, то это не будет соответствовать вашим требованиям, но можете попробовать и так:$log=0
KEYPRESS(#M)
WAIT(2)
DBLCLICK(1233,413)
WAIT(2)
DBLCLICK(1270,510)
WAIT(1)
DBLCLICK(1118,863)
WAIT(1)
GETSCREEN
IF_PICTURE_IN(754,889, 764,897, "search.bmp", -1, 100)
IF($log=1)
LOGWRITE("Усё ништяки.")
END_IF
ELSE
SCREENSHOTEX(754,889, 764,897, "Ups_", 0)
IF($log=1)
LOGWRITE("Здесь и сейчас лично я вижу вот это... Твой Clickermann")
END_IF
END_IF
HALT
Как-то так. Анализируйте, сравнивайте. Если картинка не соответствует стандартам функции IF_PICTURE_IN или находится не совсем в той области, то на скрине это будет видно. При нейтрализации ошибки SCREENSHOTEX и HALT можно закомментировать или убрать. Тут дело вкуса.
$stop=0
WHILE($stop=0)
GETSCREEN
IF_PICTURE_IN(754,889, 764,897, "search.bmp", -1, 100)
$stop=1
ELSE
KEYPRESS(#M)
WAIT(2)
DBLCLICK(1233,413)
WAIT(2)
DBLCLICK(1270,510)
WAIT(1)
DBLCLICK(1118,863)
WAIT(1)
END_IF
END_CYC
а мне вот некогда в школу к дяде-винтуА ещё активный участник называется... Как не стыдно прогуливать?
пичаль