|
Поиск цвета пикселя в заданных координатах |
|
|
paxael |
7.11.2020, 22:26
|
 
Neophyte
Сообщений: 10
Регистрация: 1.11.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.789
Возраст: 36

|
Доброе время суток. Помогите разобраться. Я только начинаю знакомство с UO Pilotоm по этому многих тонкостей не знаю. Вот кусок моего скрипта в которым у меня возникают проблемы: скрипт
Код // перемещение к захвату kleft 858, 381 5 5 // ПЕРВАЯ попытка wait 1500 + random (500) if 632, 474 1585282 // проверка иконки перемещения kleft 936, 554 5 5 // применить wait 2000 + random (500) kleft 698, 543 5 5 // да wait 2000 + random (500) kleft 729, 451 5 5 // жмяк по захвату wait 3000 + random (500)
// бьём эту ТВАРЬ Repeat 33 kleft 676, 648 wait 3000 if_not 998, 363 39305 // проверка энергии kleft 947, 404 5 5 // добавить wait 2000 + random (500) move 976, 345 5 5 // навести курсор wait 500 + random (300) kleft 987, 384 5 5 // больше wait 2000 + random (500) kleft 1016, 568 5 5 // покупка wait 2000 + random (500) kleft 684, 636 5 5 // купить и применить wait 2000 + random (500) kleft 1086, 91 5 5 // закрыть окно wait 2000 + random (500) end_if End_Repeat kleft 1025, 202 5 5 // закрыть логово wait 2000 + random (500)
else // если нет иконки ищем крест и закрываем окно set #a findcolor (999, 86 1049, 316 1 1 (8708095) %arr 2) // поиск креста if #a > 0 kleft %arr [1 1], %arr[1 2] wait 2000 + random (500) end_if end_if Это скрипт для игры Викинги, с помощью его хочу бить захватчиков. Проблема в этой части if 632, 474 1585282 // проверка иконки перемещения не всегда срабатывает поиск цвета пикселей, хотя картинка на которой ищу не изменяется, может 50 раз нормально найти, а потом нет. В чём может быть проблема и как её можно решить, может заменить на другой код? Буду рад любой помощи. Так же принимаются поправки по остальному коду в этом скрипте, буду благодарен за совету, так как сам в этом полный бот)
|
|
|
|
|
  |
Ответов
DarkMaster |
8.11.2020, 20:23
|
          
Модератор UOPilot
Сообщений: 9.742
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 29658
Пользователь №: 11.279

|
Что-то у меня на радикале грузится весь хлам, кроме ваших изображений... Для начала начните использовать в пилоте "Скрипт/Форматировать". Вам же проще будет глаза не ломать. Вообще по уму раскидать бы все это по подпрограммам (gosub) и было бы проще и красивее. Рестарт нулевого скрипта при этом делать нужно? Если нужно, то следующий блок просто пропустите, если рестарт делать не надо то: В данных условиях мы можем переместить: restart_script 0 внутрь тела if в оба блока (истины и else) последней строкой. Как только мы сможем проверить отсутствие необходимых условий вкрутить еще один if. Будет что-то вроде: Код if код кликов до появления возможности определить нужен ли переход ко второй попытке if_not надо во второую попытку? код который нужно выполнить, если вторая попытка не нужна. end else // если нет иконки ищем крест и закрываем окно ..... end
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
paxael |
8.11.2020, 21:56
|
 
Neophyte
Сообщений: 10
Регистрация: 1.11.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.789
Возраст: 36

|
Цитата(DarkMaster @ 8.11.2020, 20:23)  Для начала начните использовать в пилоте "Скрипт/Форматировать". Вам же проще будет глаза не ломать.
Очень дельный совет, спасибо) Теперь всё красиво, как я люблю))) Цитата Вообще по уму раскидать бы все это по подпрограммам (gosub) и было бы проще и красивее. Понятия не имею как это сделать, только начинаю изучать эту программу. Буду пробовать разобраться что за (gosub). Цитата Рестарт нулевого скрипта при этом делать нужно? Если нужно, то следующий блок просто пропустите, если рестарт делать не надо то: В данных условиях мы можем переместить: restart_script 0 внутрь тела if в оба блока (истины и else) последней строкой. Ну рестарт мне нужен после тога как закончу бить захватчика, после выполнения этого кода: скрипт
Код // бьём эту ТВАРЬ Repeat 33 kleft 676, 648 wait 3000 if_not 998, 363 39305 // проверка энергии kleft 947, 404 5 5 // добавить wait 2000 + random (500) move 976, 345 5 5 // навести курсор wait 500 + random (300) kleft 987, 384 5 5 // больше wait 2000 + random (500) kleft 1016, 568 5 5 // покупка wait 2000 + random (500) kleft 684, 636 5 5 // купить и применить wait 2000 + random (500) kleft 1086, 91 5 5 // закрыть окно wait 2000 + random (500) end_if End_Repeat kleft 1025, 202 5 5 // закрыть логово wait 2000 + random (500) Из вашего совета я понял нужно сделать так (или я не правильно понял): скрипт
Код if 724, 66 2706009 // проверка кнопки навигатора set #a findcolor (975, 90 1273, 337 1 1 (8708095) %arr 2) // поиск креста if #a > 0 kleft %arr [1 1], %arr[1 2] wait 2000 + random (500) end_if end_if
kleft 725, 63 5 5 // навигатор wait 2000 + random (500)
while 1017, 162 5252419 set #a findcolor (386, 284 500, 756 1 1 (7569544) %arr 2 10) // поиск захвата if #a > 0 kleft %arr [1 1], %arr[1 2] // жмяк по захвату wait 1500 + random (500) kleft 695, 541 5 5 // да wait 1500 + random (500) else // если на страницы нет нужного захвата, клацаем 6 раз в низ kleft 1202, 741 2 2 // 1 wait 100 + random (150) kleft 1202, 741 2 2 // 2 wait 100 + random (150) kleft 1202, 741 2 2 // 3 wait 100 + random (150) kleft 1202, 741 2 2 // 4 wait 100 + random (150) kleft 1202, 741 2 2 // 5 wait 100 + random (150) kleft 1202, 741 2 2 // 6 wait 100 + random (150) end_if end_while
// перемещение к захвату kleft 858, 381 5 5 // ПЕРВАЯ попытка wait 1500 + random (500) if 636, 520 10116233 11889312 // проверка иконки перемещения kleft 936, 554 5 5 // применить wait 2000 + random (500) kleft 698, 543 5 5 // да wait 2000 + random (500) kleft 729, 451 5 5 // жмяк по захвату wait 3000 + random (500)
// бьём эту ТВАРЬ Repeat 33 kleft 676, 648 wait 3000 if_not 998, 363 39305 // проверка энергии kleft 947, 404 5 5 // добавить wait 2000 + random (500) move 976, 345 5 5 // навести курсор wait 500 + random (300) kleft 987, 384 5 5 // больше wait 2000 + random (500) kleft 1016, 568 5 5 // покупка wait 2000 + random (500) kleft 684, 636 5 5 // купить и применить wait 2000 + random (500) kleft 1086, 91 5 5 // закрыть окно wait 2000 + random (500) end_if End_Repeat kleft 1025, 202 5 5 // закрыть логово wait 2000 + random (500) restart_script 0 else // если нет иконки ищем крест и закрываем окно set #a findcolor (999, 86 1049, 316 1 1 (8708095) %arr 2) // поиск креста if #a > 0 kleft %arr [1 1], %arr[1 2] wait 2000 + random (500) end_if restart_script 0 end_if Вставил рестарт в двух местах, но так он не срабатывает. Может я вас не так понял (IMG: style_emoticons/default/unsure.gif) Цитата Как только мы сможем проверить отсутствие необходимых условий вкрутить еще один if. Будет что-то вроде: Тут тоже если честно не совсем понял как это реализовать (IMG: style_emoticons/default/sad.gif)
|
|
|
|
Сообщений в этой теме
paxael Поиск цвета пикселя в заданных координатах 7.11.2020, 22:26 cirus
Может цвет незначительно меняется. Проверьте всег... 8.11.2020, 0:56 paxael
Может цвет незначительно меняется. Проверьте всег... 8.11.2020, 11:06 DarkMaster https://forum.uokit.com/index.php?showtopic=22116
... 8.11.2020, 11:08 paxael И ещё такой вопрос у меня возник. Есть ли команда ... 8.11.2020, 11:27 DarkMaster
log 1
goto qwe
log 2
:qwe
Но в целом очень ... 8.11.2020, 13:04 paxael не совсем понял, что вы хотите сделать.
Вот смотр... 8.11.2020, 17:03 DarkMaster
Это типа функций на старом синтаксисе.
Так не бы... 8.11.2020, 22:33 paxael
После какой строки можно сделать проверку? Когда ... 8.11.2020, 22:47 DarkMaster
// перемещение к захвату
kleft 858, 381 5 5 // ПЕ... 8.11.2020, 23:21 paxael
// перемещение к захвату
kleft 858, 381 5 5 // П... 8.11.2020, 23:26 DarkMaster
учтите, что в старом синтаксисе переменные все гл... 8.11.2020, 23:29
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|