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

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


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26707
Пользователь №: 16.971
Возраст: 29



Цитата
не всегда срабатывает поиск цвета

Может цвет незначительно меняется. Проверьте всегда ли нужный цвет.
Цитата
get color #color 632, 474 // получить цвет в координатах
log #color // вывести в лог

if 632, 474 1585282 // проверка иконки перемещения
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
paxael
сообщение 8.11.2020, 11:06
Сообщение #3


**

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



Цитата(cirus @ 8.11.2020, 0:56) *

Может цвет незначительно меняется. Проверьте всегда ли нужный цвет.

Да, действительно цвет меняется:
Код
788340 -> Vikings
10:55:41 2 (autosaved_2.txt, 1): 11889312
10:55:49 2 (autosaved_2.txt, 1): 11889312
10:56:41 2 (autosaved_2.txt, 1): 10116233
10:56:52 2 (autosaved_2.txt, 1): 10116233

И это зависит от локации, когда находишься в лесу цвет в этом окне почему то отличается, странно) Как можно с этим бороться?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 8.11.2020, 11:08
Сообщение #4


***********

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



https://forum.uokit.com/index.php?showtopic=22116
if приобретет при этом вид:
if x y цвет1 цвет2


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


**

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



И ещё такой вопрос у меня возник. Есть ли команда которая перекидывает на нужную мне строчку выполнение скрипта. Короче есть проблема с перемещением к захвату, когда захватчик находится возле воды клик возле него делается, ну проблема в том что окно не открывается в котором скрипт должен найти иконку перемещения, вот этот кусок скрипта:
Код
// перемещение к захвату
kleft 858, 381 5 5 // ПЕРВАЯ попытка
wait 1500 + random (500)
if 636, 520 10116233 // проверка иконки перемещения
kleft 936, 554 5 5 // применить
wait 2000 + random (500)

вообщем не могу сообразить какое мне тут можно условие прописать, чтоб скрипт понимал что тут нечего искать и переходил на вторую попытку:
Код
// перемещение к захвату
kleft 862, 464 5 5 // ВТОРАЯ попытка
wait 1500 + random (500)
if 636, 520 10116233 // проверка иконки перемещения
kleft 936, 554 5 5 // применить
wait 2000 + random (500)


Цитата(DarkMaster @ 8.11.2020, 11:08) *

https://forum.uokit.com/index.php?showtopic=22116
if приобретет при этом вид:
if x y цвет1 цвет2

Спасибо огромное за помощь)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 8.11.2020, 13:04
Сообщение #6


***********

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



Цитата
Есть ли команда которая перекидывает на нужную мне строчку выполнение скрипта.

Код

log 1
goto qwe
log 2
:qwe

Но в целом очень рекомендую не использовать goto. Это очень сильно убивает читаемость кода и возможность его гибко изменять. Работать оно будет и отлично, но качество кода резко вниз. Есть некоторые частные случаи, когда я считаю допустимым его использование, например, для из нескольких циклов если отсуствует возможность это сделать через break либо если отсутствует оператор continue. В рамках старого синтаксиса пилота - все возможности по прерыванию циклов присутствуют, т.е. goto _в_моем_ понимании там вообще смысла испозовать нет. В рамках синтаксиса lua есть некоторые вопросы (прерывание 2+ циклов одновременно), тем не мене не использую goto вообще ни там ни там и вам рекомендую. Продумывайте логику скрипта так, чтобы в нем не было необходимости - вы только выиграете от этого.

Цитата
вообщем не могу сообразить какое мне тут можно условие прописать, чтоб скрипт понимал что тут нечего искать и переходил на вторую попытку:

не совсем понял, что вы хотите сделать.


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


**

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Отправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 8.11.2020, 20:23
Сообщение #8


***********

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



Что-то у меня на радикале грузится весь хлам, кроме ваших изображений...
Для начала начните использовать в пилоте "Скрипт/Форматировать". Вам же проще будет глаза не ломать.

Вообще по уму раскидать бы все это по подпрограммам (gosub) и было бы проще и красивее.

Рестарт нулевого скрипта при этом делать нужно? Если нужно, то следующий блок просто пропустите, если рестарт делать не надо то:
В данных условиях мы можем переместить:
restart_script 0
внутрь тела if в оба блока (истины и else) последней строкой.


Как только мы сможем проверить отсутствие необходимых условий вкрутить еще один if. Будет что-то вроде:

Код
if
    код кликов
    до появления возможности
    определить нужен ли переход
    ко второй попытке
    if_not надо во второую попытку?
        код который
        нужно выполнить,
        если вторая попытка не нужна.
    end
else // если нет иконки ищем крест и закрываем окно
    .....
end



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


**

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)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 8.11.2020, 22:33
Сообщение #10


***********

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



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

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

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

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


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


**

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Отправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 8.11.2020, 23:21
Сообщение #12


***********

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



Код

// перемещение к захвату
kleft 858, 381 5 5 // ПЕРВАЯ попытка
wait 1500 + random (500)
if проверка на необходимость перейти к второму
    if  636, 520 10116233 11889312 // проверка иконки перемещения
         ....
    else // если нет иконки ищем крест и закрываем окно
         ....
    end_if
end_if


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


**

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



Цитата(DarkMaster @ 8.11.2020, 23:21) *

Код

// перемещение к захвату
kleft 858, 381 5 5 // ПЕРВАЯ попытка
wait 1500 + random (500)
if проверка на необходимость перейти к второму
    if  636, 520 10116233 11889312 // проверка иконки перемещения
         ....
    else // если нет иконки ищем крест и закрываем окно
         ....
    end_if
end_if


Спасибо вам огромное за помощь. Сейчас экспериментирую с Gosub, похоже это что мне нужно в этом скрипте (IMG:style_emoticons/default/biggrin.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 8.11.2020, 23:29
Сообщение #14


***********

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



Цитата
Gosub

учтите, что в старом синтаксисе переменные все глобальные и области видимости (как local в луа) тут нет. Не перезапишите что-нибудь лишнее)


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

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

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