UoKit.com Форумы > Кликер > UO Pilot > UO Pilot в онлайн играх
FizzyElf
Здравствуйте, немного опишу проблему, в которой нуждаюсь в помощи.
Имеется скрипт на ловлю рыбы в одной игре, рыба спавнится в рандомной точке локации, поиск этой самой рыбы производится по части картинки этой рыбы.

Код
set $path "C:\Users\Имя пользователя\Desktop\Pilot\"
set %cash[1] *Картинка рыбки*

set #a findimage (#startX #startY #endX #endY ($path%cash[#i].bmp) %crds #handle  2 25 1 10)
log #a
if #a > 0
log X= %crds[1 1] Y= %crds[1 2]. Цель Найдена
  kleft %crds[1 1] %crds[1 2] // кликнули
  end_if
end_for


Работает хорошо,но есть одна проблема, кто-то так же может ловить рыбу и пока кто-то ловит рыбу, скрипт может приступить к ловле занятой рыбы,как итог, рыбу вылавливает тот,кто первый ее начал ловить и подозрения падают на меня,на то,что я бот. Если рыба уже кем-то занята,то у нее появляется опознавательный знак, возможно ли как-нибудь проверять после успешного поиска на наличие у рыбы этот опознавательный знак относительно того места, где находится триггер.Внизу прикреплю фото рыбы с опознавательным знаком.

---
Правило 1.9

Вверх
cirus
Ищем картинку рыбы, потом ищем знак что она занята. Если знак не найдён, то ловим рыбу, если найден, то считаем разницу в координатах рыбы и знака. Если разница меньше какого-то числа, значит знак рядом с рыбой, т. е. она занята, если больше значит знак далеко от рыбы, можно ловить её.
Вверх
FizzyElf
Цитата(cirus @ 23.7.2020, 11:01)

Ищем картинку рыбы, потом ищем знак что она занята. Если знак не найдён, то ловим рыбу, если найден, то считаем разницу в координатах рыбы и знака. Если разница меньше какого-то числа, значит знак рядом с рыбой, т. е. она занята, если больше значит знак далеко от рыбы, можно ловить её.


Не могли бы вы подсказать как?Я дилетант в этом деле, на ум ничего кроме как придумать что-то с clickoffsetX не приходит
Вверх
cirus
код
Код
set #delta 25   // на каком расстоянии может находится знак от рыбы

log clear
log mode compact

set #a findimage (0 0 1920 1080 ("C:\Рыба.bmp") %crds 2 80 1 10)
log "#a" = #a
if  #a > 0
    log X= %crds[1 1] Y= %crds[1 2]. Рыба Найдена
    move %crds[1 1] %crds[1 2]
    wait 1000

    set #b findimage (0 0 1920 1080 (C:\знак.bmp) %crds2 2 80 1 10)
    log "#b" = #b
    if  #b > 0
        move %crds2[1 1] %crds2[1 2]
        wait 1000
        log X= %crds2[1 1] Y= %crds2[1 2]. Знак Найден

        set #deltaX %crds[1 1] - %crds2[1 1]
        set #deltaY %crds[1 2] - %crds2[1 2]
        log Разница между координатами: abs(#deltaX)  abs(#deltaY)
        if  abs(#deltaX) < #delta and abs(#deltaY) < #delta
            log Нельзя ловить рыбу
        else
            log Можно ловить рыбу
            kleft %crds[1 1] %crds[1 2]
        end_if
    else
        log Знак не найден, можно ловить рыбу
        kleft %crds[1 1] %crds[1 2]
    end_if
end_if
end_script

Вверх
FizzyElf
Цитата(cirus @ 24.7.2020, 1:35)

код
Код
set #delta 25   // на каком расстоянии может находится знак от рыбы

log clear
log mode compact

set #a findimage (0 0 1920 1080 ("C:\Рыба.bmp") %crds 2 80 1 10)
log "#a" = #a
if  #a > 0
    log X= %crds[1 1] Y= %crds[1 2]. Рыба Найдена
    move %crds[1 1] %crds[1 2]
    wait 1000

    set #b findimage (0 0 1920 1080 (C:\знак.bmp) %crds2 2 80 1 10)
    log "#b" = #b
    if  #b > 0
        move %crds2[1 1] %crds2[1 2]
        wait 1000
        log X= %crds2[1 1] Y= %crds2[1 2]. Знак Найден

        set #deltaX %crds[1 1] - %crds2[1 1]
        set #deltaY %crds[1 2] - %crds2[1 2]
        log Разница между координатами: abs(#deltaX)  abs(#deltaY)
        if  abs(#deltaX) < #delta and abs(#deltaY) < #delta
            log Нельзя ловить рыбу
        else
            log Можно ловить рыбу
            kleft %crds[1 1] %crds[1 2]
        end_if
    else
        log Знак не найден, можно ловить рыбу
        kleft %crds[1 1] %crds[1 2]
    end_if
end_if
end_script




Я вам очень благодарен
Вверх
Invision Power Board © 2001-2024 Invision Power Services, Inc.
Version for Pocket PC © 2006-2024, IPBest Studio.