UOExt - Ultima Online protocol Extender
Текущая версия: 0.1.0-RC2 (RC3 в разработке)
Вместо предыстории(Для знакомства с проектом это не важно, я просто удовлетворяю свое графоманство)Когда-то давно я играл уже не помню на каком шарде... Отлаживал бота для сбора коллекций... Суть коллекции была в том, что надо было нарубить 60К фрост логов что-бы получить шмотку. У меня за один заход скрипта (до падения или ошибки) больше 10К не получалось собрать, но не суть... Так вот... Я это время я подумал... А почему не падают деревья? Вот ты его срубил... А оно не упало! Как так? Непорядок. С этого и началась история развития UOExt...
ОписаниеИтак... Что такое UOExt... Это программа, направленная, в первую очередь, на владельцев шардов, которая позволяет модифицировать поведение клиента. У нас много эмуляторов... Хороших и разных, а вот модифицирование клиента развито не так сильно... Единственно что я нашел на просторах интернетов - мультипатч, который просто вносит изменения в клиент... Небольшие. Собственно именно на это и направлена данная программа.
UOExt - это фреимворк, который берет на себя некоторые задачи, с которыми вы можете столкнуться на поприще модифицирования клиента. Собственно что он делает:
- Берет на себя загрузку вашего кода в пространство клиента
- Берет на себя проблемы перехвата протокола, распаковки, дешифровки и запаковки обратно.
- Предоставляет базовый API для работы с клиентом (в основном с протоколом) и другими плагинами
- Пытается сделать все вышеперечисленное наиболее эффективным и менее ресурсозатратным способом.
Итак, преимущества (не знаю по сравнению с чем, правда):
- Выполняет ваш код в адресном пространстве клиента.
- Обработку протокола ведет в отдельном потоке, что позволяет выполнять довольно сложные расчеты не боясь затормозить клиент (обычно такое делается на этапе получаения данных с сети клиентом (recv) что может привести к фризам и менее комфортной игре )
- Имеет очень маленький размер и потр<вырезано анти-матом>ет порядка 2Мб оперативной памяти для своей работы.
- Распространяется под лицензией GPL
- Не требует эту-же лицензию для плагинов, так как они являются отдельными библиотеками (dll).
Исходный код программы написан на Object Pascal (Delphi), однако плагины могут быть написаны на любом языке (соглашение о вызовах stdcall или, в терминах Си это должно быть, WINAPI соглашение).
Всю эту радость вы можете найти по адресу:
http://code.google.com/p/uo-ext/Как-то так.
Do. Or do not. There is no Try!
© Master Joda, Dagobah, Star Wars: Episode V.