Pull to refresh

Умная консоль для WoW 3.3.5a

Reading time1 min
Views5.5K

Начну с того, что я написал на Rust консольный клиент для WoW. В текущий момент он работает в режиме прослушки пакетов и может быть использован, как бот. В дальнейшем планируется усовершенствовать ручную отправку пакетов. Что именно на данный момент реализовано...


...вы можете узнать уже в этом абзаце. Вход на сервер, вход в мир, поддержка конфига, парсер UpdatePacket и MovementPacket, поддержка чата - это то, что работает на данный момент.

Рассказал - "что", теперь расскажу - "как". После подключения все приходящие с сервера пакеты считываются в очередь и отправляются специальным процессорам. Каждый процессор представляет собой группу обработчиков (handler), привязанных к определенным опкодам. Каждый опкод - это информация в заголовке пакета, которая определяет, что это за пакет, какое действие он выполняет. Результат обработки в процессоре затем отправляется в исходящую очередь и, далее - на сервер в виде ответа (на самом деле, результат может быть нескольких типов, но об этом можно будет узнать, более подробно ознакомившись с проектом, т.е. - не здесь).

По сути своей, отправка пакетов из процессоров - это автоматическая реакция на запросы с сервера. Но есть и второй способ отправки: реализация специального менеджера, который уже сам будет решать, какие пакеты отправлять и когда. Таким образом, можно написать поведения для бота (AI).

Если вы заинтересованы, вот мой проект на гитхабе.

Проект будет полезен так же тем, кто изучает Rust.

Tags:
Hubs:
Total votes 14: ↑8 and ↓6+2
Comments11

Articles