Показать сообщение отдельно
Старый 05.02.2010, 12:22   #7
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

гыг.
нормальный бот должен содержать минимум 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.
alexteam вне форума   Ответить с цитированием