UoKit.com Форумы > Кликер > UO Pilot
Страницы: 1, 2
bumer
Понадобилась поймать около 700 рыбок одинакового типа и я просто сдох, пальцы отваливаются после поимки 100 рыбок.
Что то надо с этим делать.., вот и создал эту тему тут. Надеюсь получится...
Так выглядит поплавок после заброса:

Задумка такая, заброс снасти, далее в большой области экрана ищется поплавок.
Выбираем точку опознания цвета на поплавке в середине, вроде жёлтый.

Так как поиск большой области наверно очень прожорлив, это на картинке обведено красным.
Как только поплавок будет найден, нужно уменьшить область сканирования, до зеленого квадрата.
Тут для меня сложность, надо рассчитать эти координаты относительно найденной точки на поплавке
Далее выжидаем момента когда жёлтый цвет почти пропадёт, это и есть поклёвка.

Данное действие происходит не дольше секунды, так что переход сканирования маленькой области необходимость. Далие курсор мыши перемешается и нажимает на поплавок...
Вот этот кусок кода работает и находит поплавок в большой области моментально:
Цитата

// Рыбалка WoW

set #handle findwindow (World of Warcraft) // поиск окна с именем World of Warcraft
set #a findcolor (558, 274 1347, 646 (2359295-5373951) %arr #handle)
//log #a // количество найденных цветов
if #a > 0 // если цвет найден
msg %arr [1 1] %arr [1 2] // сообщает координаты поплавка
End_script

Его же можно использовать для малой области.
Нужно добавить переход поиска сканирования маленькой области, вокруг поплавка...
П.С. Прошу помощи
Вверх
bumer
Ещё дополнительный вопрос. Код может работать со звуком, его опознавать и на него реагировать?
Вверх
cirus
Цитата
Код может работать со звуком, его опознавать и на него реагировать?

Нет.
Вверх
bumer
попробовал формировать координаты вот так
Код

                 // Рыбалка WoW

set #handle findwindow (World of Warcraft)                // поиск окна с именем Google
set #a findcolor (558, 274 1347, 646 (10082553-7054536) %arr #handle)
//log #a                                         // количество найденных цветов
if #a > 0                                      // если цвет найден
    msg %arr [1 1] %arr [1 2]                // просто месяга
    set #x=%arr [1 1]-100
    set #у=%arr [1 2]+100
    msg #x #у

end_if
End_script

Место ожидаймого сообщения новых координат выводит просто
Код

10:00:48 0 (0.txt, 6): msg - 784 379
10:00:50 0 (0.txt, 9): msg - #x #у

Что не так, почему невычесляются новые значения координат?
Думал будет вот так
Код

10:00:48 0 (0.txt, 6): msg - 784 379
10:00:50 0 (0.txt, 9): msg - 684 479

Вверх
cirus
Цитата
set #x=%arr [1 1]-100

Код
set #x %arr [1 1]-100

Вверх
bumer
угу, понятно. Вот сделал вот так
Код

                 // Рыбалка WoW

set #handle findwindow (World of Warcraft)                // поиск окна с именем Google
set #a findcolor (558, 274 1347, 646 (10082553-7054536) %arr #handle)
//log #a                                         // количество найденных цветов
if #a > 0                                      // если цвет найден
//    msg %arr [1 1] %arr [1 2]                // переместить курсор на первый найденный цвет
    set #b %arr [1 1]-100
    set #c %arr [1 2]-100
//    msg #b #c
    set #d %arr [1 1]+100
    set #e %arr [1 2]+100
//    msg #d #e
set #f findcolor (#b, #c #d, #e (10082553-7054536) %arr #handle)
if #f > 70
    msg поймана
end_if
end_if
// End_script

Почему то он не замыкается в поске области
Код

set #f findcolor (#b, #c #d, #e (10082553-7054536) %arr #handle)
if #f > 70
    msg поймана
end_if

а обрабыатывает сверху вниз. Что можно сделать, а луче переделать чтоб логика работы была верной.
Сначало скан большой облости, при нахождении цвета свормировать новую область сканирования, более маленкую и обрабатывать только её, смотрим значение if #f > 70 и как поплавок скрывается под водой это значение снижается, надо потсекать рыбку, тут у меня вставлена поймана мы двигаем туда мыш и нажимаем...


Вверх
cirus
Цитата
Почему то он не замыкается в поске области

Потому что в коде этого нет.
Код
while 1 = 1    // бесконечный цикл
    set #f findcolor (#b, #c #d, #e (10082553-7054536) %arr #handle)
    if #f > 70
        msg поймана
        break  // выход из цикла
    end_if
end_while

Вверх
bumer
Получилось почти идеально. Но вот всплыла проблема
Сразу после заброса, попловок проявляется плавно. из за этого ложные срабатывания.
Можно как то придумать, чтоб после заброса скрипт выжидал секунды три, а после начинал работать в своём цикле?
Код

                     // Рыбалка WoW

set #handle findwindow (World of Warcraft)                // поиск окна World of Warcraft
set #a findcolor (558, 274 1347, 646 (10082553-7054536) %arr #handle)
//log #a                                         // количество найденных цветов
if #a > 0                                      // если цвет найден
//    msg %arr [1 1] %arr [1 2]                // месяга для теста
    set #х %arr [1 1]
    set #y %arr [1 2]
    set #b %arr [1 1]-100
    set #c %arr [1 2]-100
//    msg #b #c
    set #d %arr [1 1]+100
    set #e %arr [1 2]+100
//    msg #d #e
while 1 = 1    // бесконечный цикл
    set #f findcolor (#b, #c #d, #e (10082553-7054536) %arr #handle)
    if #f < 70
double_right #х #y
double_right #х #y
        break  // выход из цикла
    end_if
end_while
end_if
send217_down 1 [100]
wait 5000
// End_script

Пока что выглядит вот так...
Вот добавил так
Код

send217_down 1
wait 5000

Но не уверен что это правельно
Вверх
bumer
Есть проблема с прожатием мыши, что то нетак.
Мне кажется замедлить как то сам процес нажатие удержания и отпукания правой кнопки мыши.
Как это воплатить?
Оказалось в варианте по умолчанию, нажатие мыши срабатывает 1-3 раза. Далие мыш двигается а на нажатия неотрабатывает...
Вверх
Madeus
Во вкладке "Еще" увеличить паузу в кликах мыши
Вверх
Invision Power Board © 2001-2024 Invision Power Services, Inc.
Version for Pocket PC © 2006-2024, IPBest Studio.