Здравствуйте, гость ( Вход | Регистрация )

> Поиск цвета пикселя в заданных координатах
paxael
сообщение 7.11.2020, 22:26
Сообщение #1


**

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 раз нормально найти, а потом нет. В чём может быть проблема и как её можно решить, может заменить на другой код? Буду рад любой помощи. Так же принимаются поправки по остальному коду в этом скрипте, буду благодарен за совету, так как сам в этом полный бот)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
paxael
сообщение 8.11.2020, 17:03
Сообщение #2


**

Neophyte
Сообщений: 10
Регистрация: 1.11.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.789
Возраст: 36



Цитата(DarkMaster @ 8.11.2020, 13:04) *
не совсем понял, что вы хотите сделать.

Вот смотрите это мой полный скрипт:
скрипт
Код
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 (7569542) %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)

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
restart_script 0

// перемещение к захвату
kleft 862, 464 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 737, 371 5 5 // жмяк по захвату
wait 3000 + random (500)

// бьём эту ТВАРЬ
Repeat 33
kleft 676, 648
wait 2900
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
restart_script 0

// перемещение к захвату
kleft 745, 454 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 2900
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
restart_script 0

// перемещение к захвату
kleft 748, 387 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 872, 452 5 5 // жмяк по захвату
wait 3000 + random (500)

// бьём эту ТВАРЬ
Repeat 33
kleft 676, 648
wait 2900
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
restart_script 0

В этом коде у меня есть 4 попытки переместится к нужному мне захватчику, вот этот кусок кода(первая попытка):
Код
// перемещение к захвату
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)

Скрипт делает клик, открывается окно в котором он ищет иконку перемещения, если находит то идёт дальше по коду, если нет то ищет крестик окна закрывает его и переходит ко второй попытке. Вот этот скрин окна:
(IMG:https://c.radikal.ru/c19/2011/9e/e2ccc822fedd.png)
Если какое другое окно откроется то скрипт его закроет и перейдёт на вторую попытку. Но иногда происходит ситуация когда захватчик стоит возле воды, как на этом скрине:
(IMG:https://c.radikal.ru/c05/2011/0c/f0e3373b314f.png)
Клик делается где я нарисовал галочку, в этом случае не открывается не какое окно и скрипт уходит в рестарт. Так вот вопрос в следующем, как мне объяснить программе что окна здесь нету иди на вторую попытку, какое здесь подойдёт условие?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
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
DarkMaster   Что-то у меня на радикале грузится весь хлам, кром...   8.11.2020, 20:23
paxael   Для начала начните использовать в пилоте "Ск...   8.11.2020, 21:56
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

 

- Текстовая версия | Версия для КПК Сейчас: 7.7.2025, 20:00
Designed by Nickostyle