UoKit.com Форумы > Кликер > UO Pilot > UO Pilot в онлайн играх
Dryg
Здравствуйте! Помогите написать скрипт на рыбалку, года 3-4 назад играл в эту игру рыбачил, скрипт был макс 5-6 строчек или команд. Навык рыбалки на цифре 1 и левой мышкой в рандомное место закидывать, затем на полоске с рыбалкой начинает бегать ползунок 1 лево-право и надо нажать пробел когда ползунок пересечется с меткой 2 на скрине
ссылка на полный скрин (http://s019.radikal.ru/i633/1706/99/c4142de6a60d.png)
Вверх
cirus
Посмотрел видео рыбалки, ползунок быстро перемещается, так что вариант с ожиданием когда ползунки совпадут не подойдёт, т. к. нажимать кнопку надо заранее.
код
Код
send 1         // нажать 1
wait 500
kleft 100 100   // указать координаты куда закидывать
set #polzunok2 0
while #polzunok2 = 0      // ждать пока не появится ползунок 2
    set #polzunok2 findimage (0 0 1920 1080 (путь к картинке ползунок2) %a 2 80 1 3)  // искать ползунок 2
    wait 100
end_while

while 1 = 1
    set #polzunok1 findimage (0 0 1920 1080 (путь к картинке ползунок1) %a1 2 80 1 3)  // искать ползунок 1  (поиск 1)
    if #polzunok1 > 0       // если найден
        // определяем приближается ползунок 1 к ползунку 2 или отдаляется
        wait 20             // ждать 20 мсек, подобрать время
        set #polzunok1 findimage (0 0 1920 1080 (путь к картинке ползунок1) %a2 2 80 1 3)  // искать ползунок 1 (поиск 2)
        if #polzunok1 > 0   // если найден
            set #dist1 round(point_distance(%a[1 1] 0 %a1[1 1] 0))  // расстояние между ползунком 2 и ползунком 1 (поиск 1)
            set #dist2 round(point_distance(%a[1 1] 0 %a2[1 1] 0))  // расстояние между ползунком 2 и ползуноком 1 (поиск 2)
            // log #dist1 #dist2
            if #dist1 > #dist2    // если растояние между ползунками при первом поиске больше чем втором, значит ползунок 1 приближается ко второму
                while 1 = 1
                    set #polzunok1 findimage (0 0 1920 1080 (путь к картинке ползунок1) %a3 2 80 1 3)  // искать ползунок 1
                    if #polzunok1 > 0
                        set #dist3 round(point_distance(%a[1 1] 0 %a3[1 1] 0))  // расстояние между ползунком 2 и 1
                        if #dist3 < 30   // если расстояние между ползунками меньше 30 пикселей нажать пробел, расстояние нужно подобрать
                              send {Space}
                              log !!!
                              break 2   // выйти из циклов
                        end_if
                    end_if
                end_while
            end_if
        end_if
    end_if
end_while
end_script

Вкратце схема такая:
1. Закидываем.
2. Ждём появления ползунка2. Дальше нужно определить приближается ползунок1 к ползунку2 или отдаляется.
3. Находим ползунок1 'поиск1', ждём немного, снова ищем ползунок1 'поиск2'.
4. Сравниваем расстояние между (ползунком2 и ползунком1 'поиск1') и (ползунком2 и ползунком1 'поиск2'). Если расстояние между поиском1 и поиском2 больше, значит ползунок1 приближается ко второму ползунку.
5. Ищем ползунок1 и сравниваем расстояние до полузнка2, если оно меньше какой-то константы нажать пробел.

Для начала нужно сделать картинки ползунков и подобрать нужные параметры точности и погрешности в цвете. Что они всегда находились, а не через раз.
Код
set #polzunok findimage (0 0 1920 1080 (путь к картинке ползунок2) %a 2 80 1 3)  // искать ползунок1
hint #polzunok
wait 100

Координаты поиска указать свои.
Если на экране есть ползунок1 в правом нижнем углу должно быть число больше 0.
Вверх
Invision Power Board © 2001-2024 Invision Power Services, Inc.
Version for Pocket PC © 2006-2024, IPBest Studio.