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

> Поиск цвета пикселя в заданных координатах
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Отправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
DarkMaster
сообщение 8.11.2020, 22:33
Сообщение #2


***********

Модератор UOPilot
Сообщений: 9.742
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29658
Пользователь №: 11.279



Цитата
Понятия не имею как это сделать, только начинаю изучать эту программу. Буду пробовать разобраться что за (gosub).

Это типа функций на старом синтаксисе.
Цитата
Вставил рестарт в двух местах, но так он не срабатывает. Может я вас не так понял

Так не бывает. Должен запускаться. Попробуйте выставить в начало:
log commands
и посмотреть вывод в лог.
Цитата
Тут тоже если честно не совсем понял как это реализовать

Я кусочек скрипта шаблончик, как раз для этого накидал в предыдущем посте. После какой строки можно сделать проверку? Когда мы можем сделать проверку чтобы понять надо нам переходить на вторую попытку или нет?


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
paxael
сообщение 8.11.2020, 22:47
Сообщение #3


**

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



Цитата(DarkMaster @ 8.11.2020, 22:33) *

После какой строки можно сделать проверку? Когда мы можем сделать проверку чтобы понять надо нам переходить на вторую попытку или нет?

Вот можно после этого кода:
Код
// перемещение к захвату
kleft 858, 381 5 5 // ПЕРВАЯ попытка
wait 1500 + 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

// перемещение к захвату
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
Пользователь в офлайне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
paxael   не совсем понял, что вы хотите сделать. Вот смотр...   8.11.2020, 17:03
DarkMaster   Что-то у меня на радикале грузится весь хлам, кром...   8.11.2020, 20:23
paxael   Для начала начните использовать в пилоте "Ск...   8.11.2020, 21:56
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:11
Designed by Nickostyle