Ищу батраку в команде на постоянной основе. С вас: добро и четкие указания. С меня: хорошая работа. Умею: редактировать файлики дата, ставить карты, писать на пхп и шарпе, разбираюсь в серверной/клиентской части, сисадминистрирование и защита от лоика. За еду не работаю.
Китайцы - добрые люди. В каждом (шаровом) билде своего PW сервера оставляют кучу полезной и не совсем дебаг информации. И мы можем ее достать! Если читатель этой темы захочет написать свой собственный и инновационный редактор - будет полезно тут прочитать. Будем мы пользоваться программой GDB (GNU Debugger). Вообще эта программа предназначена для отладки приложений, но мы будем только доставать информацию из таблицы символов исполняемых файлов. 1. Установим GDB (8-12 МБ) apt-get install gdb 2. Откроем GDB gdb 3. Загрузим наш файл геймсервера (gdb) file /server/gamed/gsПоявится: (gdb) Reading symbols from /server/gamed/gs...done. Придется подождать. 3.1 Добавим вывод в файл всего, что выведется на экран (gdb) set logging file /путь к файлу (gdb) set logging on 4. Дальше нам нужно найти тип "elementdataman" (gdb) ptype elementdataman Появится очень много строк, нажимаем Enter до конца вывода. 5. Ищем наш файл из пункта 3.1. Открываем. В этом файле представлен листинг структуры elementsdataman. Находим public часть этого файла. В ней будут упорядочены все листы этого файла. Пример public части elementsdataman(Версия 1.4.6 v80) public: elementdataman(void); ~elementdataman(int); void add_structure(unsigned int, EQUIPMENT_ADDON &); void add_structure(unsigned int, WEAPON_MAJOR_TYPE &); void add_structure(unsigned int, WEAPON_SUB_TYPE &); void add_structure(unsigned int, WEAPON_ESSENCE &); void add_structure(unsigned int, ARMOR_MAJOR_TYPE &); <...> void add_structure(unsigned int, FASHION_WEAPON_CONFIG &); void add_structure(unsigned int, PET_EVOLVE_CONFIG &); void add_structure(unsigned int, PET_EVOLVED_SKILL_CONFIG &); void add_structure(unsigned int, MONEY_CONVERTIBLE_ESSENCE &); void add_structure(unsigned int, STONE_CHANGE_RECIPE_TYPE &); unsigned int get_data_id(ID_SPACE, unsigned int, DATA_TYPE &); unsigned int get_first_data_id(ID_SPACE, DATA_TYPE &); unsigned int get_cur_data_id(ID_SPACE, DATA_TYPE &); unsigned int get_next_data_id(ID_SPACE, DATA_TYPE &); unsigned int get_data_num(ID_SPACE); DATA_TYPE get_data_type(unsigned int, ID_SPACE); const void * get_data_ptr(unsigned int, ID_SPACE, DATA_TYPE &); int save_data(const char *); int load_data(const char *); 6. Из этого всего нам нужно только то, что находится в функциях add_structure(int, listdef) Где listdef - структура листа. Например, listdef EQUIPMENT_ADDON (Самый первый лист доп статов). Они находятся в правильном порядке (как ни странно). 7. Выписываем все listdef по порядку в блокнот: EQUIPMENT_ADDON WEAPON_MAJOR_TYPE ... 8. Снова заходим в GDB И для каждого listdef набираем (gdb) ptype EQUIPMENT_ADDON В выводе будет структура этого листа. Более того, если вы не закрывали GDB, она будет экспортироваться в файлик из п. 3.1. Дальше проделываем для каждого листа (gdb) ptype WEAPON_MAJOR_TYPE - экспортируется структура второго листа И так далее для каждого листа из п.6. 9. Финишная прямая. Теперь напоминаю, что первым восьми байтам файла соответствует структура: short version; - версия файла short hashtag; - точно не знаю. Кажется контрольная сумма. Отпишитесь, кто знает. int timestamp; вспомогательное значение для последнего изменения файла. 10. На последок. Не забудьте также, что перед каждым листом в файле стоит int число с количеством итемов в листе. Вуаля! Соединив все воедино сначала начало файла (п. 9), затем все листы из п.8 мы получим готовую структуру файла elements.data. Гайд написан для mmorpg-devs by DEFiNE. Лицензия: Beerware.
Реквестую октет Камня лагеря (Показатель защиты +2).
https://mmorpg-devs.ru/index.php?members/define.9667/ Мою прошлую учетку выше забанили. Или я ее просрал. Не важно. Сейчас гляжу на нее, а там статус "Пидр". И вроде бы пофиг на нее. Но у кого постоянно возникает баттхерт насчет меня? Кто умудряется ставить такие обремененные мыслью, смыслом и лучами трололо надписи на профилях?:D (Пруф, если выпилят: http://SSMaker.ru/a081aaf0/) И кстати я так и не понял: за что нынешнюю учетку банили. Причина была "Spam". Что за фигня?
Имена участников (разделяйте запятой).