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

 
Ответить в эту темуОткрыть новую тему
> Помощь в опознавании
FizzyElf
сообщение 23.7.2020, 9:30
Сообщение #1


*

Registred
Сообщений: 3
Регистрация: 23.7.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.703
Возраст: 20



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

Код
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


Сообщение отредактировал Fors1k - 23.7.2020, 21:35


Эскизы прикрепленных изображений
Прикрепленное изображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 23.7.2020, 11:01
Сообщение #2


**********

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



Ищем картинку рыбы, потом ищем знак что она занята. Если знак не найдён, то ловим рыбу, если найден, то считаем разницу в координатах рыбы и знака. Если разница меньше какого-то числа, значит знак рядом с рыбой, т. е. она занята, если больше значит знак далеко от рыбы, можно ловить её.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
FizzyElf
сообщение 23.7.2020, 21:16
Сообщение #3


*

Registred
Сообщений: 3
Регистрация: 23.7.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.703
Возраст: 20



Цитата(cirus @ 23.7.2020, 11:01) *

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


Не могли бы вы подсказать как?Я дилетант в этом деле, на ум ничего кроме как придумать что-то с clickoffsetX не приходит
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 24.7.2020, 1:35
Сообщение #4


**********

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



код
Код
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
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
FizzyElf
сообщение 24.7.2020, 7:59
Сообщение #5


*

Registred
Сообщений: 3
Регистрация: 23.7.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.703
Возраст: 20



Цитата(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




Я вам очень благодарен
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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