Настройка Path of Exile для боттинга
Ботоводим с помощью Exiled Bot, в виртуальных машинах. Поэтому мы хотим экономить ресурсы компьютера.
Настраиваем клиент PoE
Уменьшаем требования к графике:
В файле c:\Users\ИмяПользователя\Documents\My Games\Path of Exile\production_Config.ini
пропишите
[DISPLAY] adapter_name=Intel(R) HD Graphics 4000 antialias_mode=0 borderless_windowed_fullscreen=false fullscreen=false post_processing=false resolution_height=600 resolution_width=800 screen_shake=false shadow_type=no_shadows texture_filtering=1 texture_quality=10 vsync=false
В частности важны texture_filtering
и texture_quality
. Эти настройки дадут нам нетребовательный к графике клиент, это будет выглядеть некрасиво, но нам нужна эффективность, а не красота.
Параметры командной строки
Далее, укажем параметры командной строки для запуска игры. Я запускаю игру из-под администратора.
z:\poe\PathOfExile.exe --nosound -gc 2 --nopreload
--nosound
отключит звук
-gc 2
прикажет использовать более агрессивную сборку мусора, что должно экономить оперативную память. Ещё более агрессивная сборка gc 1
--nopreload
прикажет игре не подгружать контент заранее, поэтому загрузка игры станет практически моментальной; однако за это вы можете поплатиться лагами при появлении новых монстров или эффектов
Теперь наша игра запускается моментально, но всё ещё пытается использовать так много процессора, как может. Нажав дефолтную кнопку F1 в игре вы можете убедиться, что игра отрисовывает или сотни FPS, или около 60, если вы включили vsync.
Dxtory
Устанавливаем и настраиваем Dxtory, отличная маленькая программка, которая делает своё дело. Устанавливаем лимит FPS на комфортное для вас число. Если установить меньше 20, бот начинает работать заметно хуже, я рекомендую 20+.
Теперь игра будет работать на 20 ФПС, и что самое главное — очень заметно снизится нагрузка на процессор и видеокарту. Т.е. это не просто хак, который выкидывает отрисованные фреймы, Dxtory реально заставляет игру отрисовывать фреймы реже.
Multiscript
В принципе, к программам для боттинга можно отнести и Multiscript. Если хотите, можете использовать и его. В связи с анти-читинговыми инициативами GGG пользоваться оригинальным мультискриптом должно быть опасно. Поэтому мы создадим собственную версию.
git clone https://github.com/Guruds/PoE_MultiScript.git
- Удаляем
Poe MultiScript.exe
- Если до сих пор не было, устанавливаем Autohotkey.
- Пробуем запустить
Poe MultiScript.ahk
. Если не запускается и ругается на 32bit, то идём в папку автохоткея и заменяем исполняемый файл на тот, что содержит 32бит в названии. Теперь мультискрипт запустится. - Переименовываем
Poe MultiScript.ahk
во что-то нейтральное. - Открываем наш «нейтральный» ahk с помощью блокнота и редактируем.
- затираем начальный текстовый хедер
- убираем строчку
Gui, Add, Button, x332 y609 w120 h40 gDonate, Donate
- заменяем
Created by Gurud.
наEdited by Dimps.
- и самое главное, убираем строчку
Gui, Show, x760 y198 h665 w474, PoE MultiScript v12.18.2014
.
Таким образом мы получили «уникальный» скрипт, у которого нет узнаваемого имени файла, и нет узнаваемого имени окна. Желающие могут пойти дальше и поменять что-нибудь в именах и обращениях кAutoHotkeyMemoryLib.ahk
- Не забываем изменить имя папки на нейтральное.
Теперь мы имеем мультискрипт, который поверхностно защищён от анти-чита. По-хорошему, чем меньшим количеством читов мы пользуемся, тем меньше шанс, что нас обнаружат. Так что если у вас есть возможность, не используйте мультискрипт.
Обсуждение
Спасибо, твои статьи очень помогли.
Пожалуйста, Алекс :)
Статьи уже, должно быть, устарели. Но общую идею, возможно, всё ещё передают.
Очень рад, что наткнулся на твою страничку, Дмитрий. Все написано доступно, кратко и информативно, как раз то, что нужно для такого лентяя, как я. Спасибо!
Здравствуйте, TLID. Спасибо за лестный отзыв!
Присоединяюсь, огромное спасибо за цикл статей на эту тему. Очень полезно.
Спасибо, Виталий!
Большое спасибо за статью! Есть один важный вопрос. Почему увеличивается нагрузка на оперативную память с каждым часом работы POE . Как только запускаю клиент игра ест около 1ГБ, а сутки бот пробегает, эта цифра может возрасти до 2,5 а то и 3+ ГБ. Как можно ограничить потребление ОЗУ?
Если есть какой-нибудь выход из этой ситуации, пожалуйста поделитесь. Буду очень благодарен!
P.S еще раз спасибо за статью! Из статью про вирт. машины тоже))
Здравствуйте, Александр. Пожалуйста =)
На ваш вопрос может быть два ответа. Возможно, PoE за это время успевает загрузить в оперативную память много разных ресурсов, с которыми сталкивается в процессе игры, и не видит смысла освобождать использованную память. Особенно этот вариант ответа вероятен, если у вас есть ещё достаточно свободной оперативной памяти. Умный код понимает, что память ещё есть, и для ускорения игры в будущем, чтобы не потребовалось загружать заново — не освобождает память.
А второй ответ, вовсе не менее вероятный — это самая обычная утечка памяти, memory leak. Производительные программы вроде игр пишутся на небезопасных быстрых языках вроде C++. Там память вручную нужно не только выделять, но и освобождать. Сложно представить, насколько большой и сложный клиент PoE. Несколько небольших ошибок, и вот у вас через сутки уже не 1 ГБ, а 3 ГБ занято.
Просто перезапускайте клиенты игры раз в Х времени.
Спасибо Вам за оперативный ответ! Свои выводы сделал. Буду экспериментировать дальше!
Как ещё можно попробовать решить это? -gc 2 —nopreload , может быть подойдёт gc 1.
Попробуйте также посмотреть в этом направлении.
есть рабочий бот в данный момент?
Здравствуйте, Вадим, не знаю. Интересовался ботами ПоЕ в 2015 году.
Полюбому что-то есть, не может не быть.