[2.2.3] Структура Item.edf и серверных эквивалентов

Перейти вниз

[2.2.3] Структура Item.edf и серверных эквивалентов

Сообщение  Admin в Пн Дек 06, 2010 12:39 pm

Item.edf и с чем его едят.
В этом зашифрованном файле хранится информация о всём, что можно положить в инвентарь, о частях мау, о комбинация крафта для устройств крафта, о комбинациях обмена (Редкая руда на коробочки флема ювелира) а так же, если это 223, описание ко всем вещам.

Сначала нам надо подготовить файл к работе. Для этого юзаем старенький edf конвертер. Берём наш итем файлик и перетаскиваем его на иконку EdfDeCrypt.exe Получили наш дат файл. По окончании работы его надо собрать назад. Для этого перетащим его в EdfCrypt.exe
Вот выложу если у кого нет:
EdfConv.rar

Строение Item.dat
Файл состоит из листов. 49 в 223 и 47 в ГА
У каждого листа есть заголовок. Заголовок состоит из 10 байт:
Первым листом идёт лист с лицами. его заголовок 00 f1 88 2f 00 00 00 00 00 00
00 f1 индекс. F1 всегда повторяется в каждом листе .
88 2f 00 00 - размер листа (без заголовка)
00 00 00 00 - оффсет положения индекса листа. (сколько байт над отступить от начала листа чтобы добраться до индекса)
Далее идёт тело листа, которое начинается со стандартных 8 байт* (те всегда есть 8 байт но они могут быть разными): 50 00 00 00 98 00 00 00
50 00 00 00 - количество подблоков в листе
98 00 00 00 - размер 1 подблока.
Если умножить в 16тиричной системе счисления 50 на 98 и добавить 8 байт (число подблоков и размер 1 подблока) то мы должны получить 2f88, что соответствует размеру листа.
Отступив от заголовка листа это количество байт вы увидите новый индекс листа 01f1. и так далее.
-------
* - в листах с описаниями в 223 итеме структура другая нет 8 байт заголовка. (чуть позже подробнее)

Значит если мы хотим вписать что то новенькое в клиент мы должны увеличить размер листа, количество подблоков, и исправить все оффсеты в последующих листах (добавить к ним количество байт добавленных в изменённый лист. Но это касается только листов следующих за изменённым. Предыдущие листы в порядке.

В самом конце файла, перед описание в 223 и в самом конце в ГА, есть неопознанный блок. он не имеет структуры, и никто пока не знает зачем он нужен. в структуре я его обозначил как Unk3

Касательно описания. Оно присутствует только в 223 версии. в ГА его вынесли в отдельный файл вместе с именами вещей, поэтому в га структуре вы не увидите названий.
В 223 же лист с описаниями есть и имеет следующую структуру:
описание сделано на все блоки в том числе и части мау, но в некоторыз местах описания нет и там стоит нулевой блок. 00 00 00 00
После 10 байт заголовка листа описания мы увидим 00 00 00 00 этот блок отвечает за количество описаний самого первого блока - блока лиц. Так как лица не носятся в инвентаре то и описание им не нужно поэтому 00 00 00 00. Далее идут торсы. и следующие 4 байта показывают количество описаний для торсов. Далее блок описания. в нём динамическая длина текста, т.е. постоянно меняется и нет постоянного размера блока описания.
Структура блока такова: серийник описания, код описания, длина текста, и непосредственно сам текст.
Когда бллоки описаний торсов кончатся вы снова увидите 4 байта количества блоков предметов следующих за торсом и так далее.
Опять таки если заметите что в середине появится 00 00 00 00 это описание эвент предметов которые падают в данже но при подборе в инвентарь не попадают. ну и части мау, поэтому будет казаться что лист заполнен не полностью в самом конце но это не так. эти 00 00 00 00 указывают что для блока такого то количество описаний - 0.

Структуры Item.dat
Сказать нечего просто выложу.
Для 223 итема
Item2.rar
Для ГА итема
ItemG.rar
Все файлы 1 архивом
iFolder
PS Связки с сервером выложу чуть попозже как и серверные структуры.

Admin
Admin

Сообщения : 71
Дата регистрации : 2010-12-06
Возраст : 26
Откуда : Москва

Посмотреть профиль http://rf-moscow.2x2forumy.net

Вернуться к началу Перейти вниз

Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения