Авторыбалка в TESO (The Elder Scroll Online) - код на Python - The Elder Scrolls Online: Morrowind

Авторыбалка в TESO (The Elder Scroll Online) - код на Python

Регистрация
11 Май 2022
Сообщения
6
Репутация
20
Спасибо
3
Монет
0
Приветствую.
Играл в своё время в TESO ... но игра надоела, и абы для того, чтобы не пропадать добру и создана данная тема.

Написал на языке программирования небольшой код для авторыбалки в The Elder Scroll online.
Код сырой, нуждается в правках, если есть навыки программирования в Python, да в принципе любой язык программирования, можете доработать. Хотел доработать сам в Java или в C# но игра недоела, времени нету, поэтому выложу идею с кодом.

Неоходимо:
1. Для тех, кто не слишком знаком с программированием, то понадобиться PyCharm Community Edition и умение создавать там проекты. (это не обязательно)
2. Аддон для TESO Votan's Fisherman (обязательно)

Как работает:

1. Встаёте к лунке, закидывете удочку
2. Поклёвка (Аддон для TESO Votan's Fisherman - включает изображение на экране большого крючка, который растёт в размере некоторое время), в это время бот жмякает кнопку "E" на клавиатуре. (бот срабатывает на появляющуюся часть рисунка на экране компьютера и жмякает кнопку ловли, после чего снова закидывает удочку) Рыбка поймана
3. Бот снова закидывает удочку.
4. Для нового лова ищём лунку, и повторяем всё снова.

Код
Код:
# импортируем библиотеку Python - компьютерное зрение
import pyautogui

#папка, в которой находится изображение (создаёте сами и закидываете туда рисунок)
# а также название рисунка
yacor = "image/fish1.jpg"

#логика (как пояявляется на экране рисунок, бот жмякает на кнопку Е и снвоа закидвает удочку
while True:
    yacor1 = pyautogui.locateOnScreen(yacor, region=(564, 205, 1000, 1000), confidence=0.4)
    if yacor1 != None:
        pyautogui.hotkey('e')
        pyautogui.sleep(1)
        pyautogui.hotkey('e')
    else:
        pyautogui.sleep(0.1)

0af7d27f249b.jpg
- рисунок, который необходимо закинуть в папку, переименовать его в fish1.jpg

Для тех, кто мало знаком с программированием.
1. Желательно два монитора (для удобства)
2. Надо скачать и установить Python 3.5 и выше (гуглите где и как это бесплатно)
3. Надо скачать и установить PyCharm Community Edition (гуглите где и как - выбирайте именно эту версию, она бесплатная)
4. Найдите в ютубе или в гугле, как создавать проекты в PyCharm (за минут 5 -10 это можно освоить)
5. Создаёте проект, создаёте виртуальное окружение, создаёте новый файл fisherman.py, копируйте туда код
6. включаете виртуальное окружение (как правило во вкладке терминал в PyCharm Community Edition вводите . env/Scripts/activate
активируется виртуальное окружение (нужно для того, чтобы пакеты были именно там, где нужны, а именно для бота, а не были разбросаны по компу)
7. Можно включить бота и не выключать, пока присходит рыбалка в разных лунках. Он по логике ищёт постоянно необходимый рисунок на экране. Т.е подошли к лунке, нажали Е ... если сработал норм, можно идти по делам. Пришли. лунка выловлена, идите к другой, снова Е ... сработал, пошли по делам. Как выходите из игры, или надоело рыбачить, выключайте и бота в ручарме.

рис
21ac96987dba.jpg


Не обращайте внимания на размытие .. просто у меня в PyCharm много других файлов, не относящихся к авторыбалке. :cool:

7. Заливаете в виртуальное окружение библиотеку компьютерного зрения для Python командой pip install pyautogui

b39f46a8c1e4.jpg


Жмякаете Enter.

8 в TESO устанавливаете аддон Votan's Fisherman, в настройках аддона устанавливаете рисунок крючок и делаете цвет красным. (бот срабатывает на появляющуюся часть рисунка на экране компьютера и жмякает кнопку ловли, после чего снова закидывает удочку)

9. В PyCharm запускаете бота

b949266bef4c.jpg


Особенности

1. В идеале желательно камеру повернуть так, чтобы видна была одна вода с лункой (без гор, деревьев и т.д) , без бликов (желательно), но с видом 3- го лица (не от 1-го!!!) , иначе может ложно срабатывать.
2. Обязательно раскладка клавиатуры должна быть английской.
3. Если плохо срабатывает, можно подстроить в коде параметр confidence=0.4 (если поставить 1.0 то будет реагировать очень чётко 100% соответствие, т.е бот делает скриншот части монитора по размерам указанным в коде и ищет картинку, если соответствие есть, то срабатывает (вылавливает рыбу) 1.0 - полное соответствие, 0.1 - минимальное соответствие)
4. разрешение экрана должно быть 1920*1080, игра на весь монитор, тогда бот реагирует на область внутри экрана монитора, где посередине появляется значок поклёвки от аддона. Если размера экрана другой или размер игры другой, следует редактировать циферки внутри кода yacor1 = pyautogui.locateOnScreen(yacor, region=(564, 205, 1000, 1000), confidence=0.4)
первая цифра точка левого верха прямоугольника на экране монитора, от которого бот ищёт изображение (ширина, высота, длина в ширину, длина в высоту)


P.S Я предупредил, что код сырой, требует доработки, меня вполне устраивал, хотите дорабатывать, или делать в окне, для продажи или каким либо ещё способом, без вопросов. Будут вопросы, возможно отвечу .. Но в TESO уже не играю, игра удалено, поэтому тестить не смогу, если смогу ответить по памяти, то отвечу, если нет, то нет, просьба тухлыми помидорами не бросаться. И да, за него не банят, ибо он не лезет в ресурсы игры, а имитирует действия человека, а по идее он вообще только жмякает одну кнопку, если видит то, что вы ему положили в папку с картинкой :cool:
 
Последнее редактирование:
  • Спасибо
Реакции: Zizr
Регистрация
11 Май 2022
Сообщения
6
Репутация
20
Спасибо
3
Монет
0
если есть ошибки, возможно придётся до установить библиотеки:
  • Pillow
  • opencv-python (устанавливает и numpy)
 
  • Спасибо
Реакции: Zizr
Сверху Снизу