гыг.
нормальный бот должен содержать минимум 4 слоя (имхо):
1. самый веселый слой "мозх". выполняющий действия над обьектами с слоя-ядра по своему желанию. грубо говоря АИ.
2. слой - ядро, а именно набор классов представляющий собой модели объектов (игрок, спаунобьекты, инвентарь, скилы и т.д.). каждый класс содержит информацию об конкретном объекте и набор методов-действий которые возможно выполнить над этим объектом (выкинуть, кристализироваться, двигаться к и т.д.). этот слой является некой прослойкой для скриптов и собственно мозга. это фундамент для гуи. создание и собственно действия над объектами на совести слоя-парсера
3. слой парсер - собственно разбор уже дешифрованых пакетов приходящих от сервера управление свойствами обьектов 2го слоя и конструирование пакетов по требованию 2го слоя. данный слой должен быть "слотовым" т.е. в любой момент мы должны иметь возможность выдернуть разбор/конструирование пакетов и вставить совсем другой код.
4. модуль работы с протоколом. собственно дешифрация/шифрация. короче, то что по требованию пройдет авторизацию на сервере, и законектиться на гс и будет подсовывать дешифрованный трафик 3му слою и по требованию 3го слоя будет шифровать порцию данных и отправлять на сервер. так же слотовый.
так вот. реализовывать слой парсер в отдельной дллке - имхо сущщий бред, ибо временные затраты слишком большие. 4й слой еще можно и даже нужно. там экспортов и калбэк функций не так уж много, если его вынести будет довольно удобно проводить модификации под тот или иной сервер, на счет же 3го - только кол-во калбеков зашкалит за 2 сотни.
у меня, даже при учете того что львиная доля 3го слоя подгружаеться отдельно с сервера (собственно "слотовость") оставшийся код по взаимодействию между 3 и 2м слоем = 4.1к+ строчек.
__________________
L2Ext - project closed.
Последний раз редактировалось alexteam, 05.02.2010 в 12:40.
|