Показать сообщение отдельно
Старый 28.10.2011, 14:17   #10
Пользователь
 
Регистрация: 08.05.2008
Сообщений: 61
Сказал Спасибо: 0
Имеет 21 спасибок в 12 сообщенях
Hint пока неопределено
По умолчанию

Цитата:
Сообщение от Be3geBJIa3 Посмотреть сообщение
Пишу редактор файлов (dat,ini,int,thm) для новых хроник пока еще нет правильных ddf структур файлов, приходится разбирать в ручную. Может у кого есть чем поделиться и объединить усилия, так как много времени уходит на это.
Разбираю ItemName-ru.dat, и так понимаю аналогов функций в ddf нету.
Да, l2disasm устарел. Можно обойтись ENBBY, но это ужасные костыли (и не работает, если число элементов в массиве увеличивается). Нужные новые сложные элементы, похожие на MAT, MTX. Да и вообще, таблица (текстовый файл с табуляциями) уже не подходит, нужен вывод в более сложном формате (например, xml). Лично я, когда начала работать с GoD, написал свой l2disasm и не жалею.

Ущербный DDF для ItemName, который на некоторых файлах работать не будет, если в них встречаются длинные многомерные массивы (не работал на PTS клиенте L2.ru из-за того, что в "кривом" описании одного предмета был массив из 50+ элементов):
Код:
FS = "\t"; 
HEADER = 1; 
RECCNT = OFF; 
MTXCNT_OUT = 1; 
MATCNT_OUT = 1; 
ORD_IGNORE = 0; 
{ 
   UINT id;
   UNICODE name; 
   UNICODE add_name; 
   ASCF description; 
   INT popup;
   UINT supercnt0;
   UINT count_1;ENBBY = [(supercnt0:-1,1)];ENBBY = [(supercnt0:-2,2)];ENBBY = [(supercnt0:-4,4)];ENBBY = [(supercnt0:-8,8)];
   UINT item_list_1[count_1];ENBBY = [(supercnt0:-1,1)];ENBBY = [(supercnt0:-2,2)];ENBBY = [(supercnt0:-4,4)];ENBBY = [(supercnt0:-8,8)];
   UINT count_2;ENBBY = [(supercnt0:-2,2)];ENBBY = [(supercnt0:-4,4)];ENBBY = [(supercnt0:-8,8)];
   UCHAR item_list_2[count_2];ENBBY = [(supercnt0:-2,2)];ENBBY = [(supercnt0:-4,4)];ENBBY = [(supercnt0:-8,8)];
   UCHAR item_list_2[count_2];ENBBY = [(supercnt0:-2,2)];ENBBY = [(supercnt0:-4,4)];ENBBY = [(supercnt0:-8,8)];
   UCHAR item_list_2[count_2];ENBBY = [(supercnt0:-2,2)];ENBBY = [(supercnt0:-4,4)];ENBBY = [(supercnt0:-8,8)];
   UCHAR item_list_2[count_2];ENBBY = [(supercnt0:-2,2)];ENBBY = [(supercnt0:-4,4)];ENBBY = [(supercnt0:-8,8)];
   UINT count_3;ENBBY = [(supercnt0:-1,3)];ENBBY = [(supercnt0:-4,4)];ENBBY = [(supercnt0:-8,8)];
   UINT item_list_3[count_3];ENBBY = [(supercnt0:-1,3)];ENBBY = [(supercnt0:-4,4)];ENBBY = [(supercnt0:-8,8)];
   UINT count_4;ENBBY = [(supercnt0:-4,4)];ENBBY = [(supercnt0:-8,8)];
   UINT item_list_4[count_4];ENBBY = [(supercnt0:-4,4)];ENBBY = [(supercnt0:-8,8)];
   UINT count_5;ENBBY = [(supercnt0:-1,5)];ENBBY = [(supercnt0:-2,6)];ENBBY = [(supercnt0:-8,8)];
   UINT item_list_5[count_5];ENBBY = [(supercnt0:-1,5)];ENBBY = [(supercnt0:-2,6)];ENBBY = [(supercnt0:-8,8)];
   UINT count_6;ENBBY = [(supercnt0:-2,6)];ENBBY = [(supercnt0:-8,8)];
   UINT item_list_6[count_6];ENBBY = [(supercnt0:-2,6)];ENBBY = [(supercnt0:-8,8)];
   UINT count_7;ENBBY = [(supercnt0:-1,7)];ENBBY = [(supercnt0:-8,8)];
   UINT item_list_7[count_7];ENBBY = [(supercnt0:-1,7)];ENBBY = [(supercnt0:-8,8)];
   UINT count_8;ENBBY = [(supercnt0:-8,8)];
   UINT item_list_8[count_8];ENBBY = [(supercnt0:-8,8)];
   UINT count_9;ENBBY = [(supercnt0:-1,9)];ENBBY = [(supercnt0:-6,10)];ENBBY = [(supercnt0:-4,12)];
   UINT item_list_9[count_9];ENBBY = [(supercnt0:-1,9)];ENBBY = [(supercnt0:-6,10)];ENBBY = [(supercnt0:-4,12)];
   UINT count_10;ENBBY = [(supercnt0:-6,10)];ENBBY = [(supercnt0:-4,12)];
   UINT item_list_10[count_10];ENBBY = [(supercnt0:-6,10)];ENBBY = [(supercnt0:-4,12)];
   UINT cnt0;
   UCHAR cnt0_empty;ENBBY = [(cnt0,0)];
   ASCF set_bonus_desc[cnt0];
   UINT supercnt1;
   UINT extra_count;ENBBY = [(supercnt1:-1,1)];
   UINT extra_item_list[extra_count];ENBBY = [(supercnt1:-1,1)];
   UINT cnt1;
   ASCF set_extra_desc;
   FILLER unk1{6};
   UCHAR unk2;ENBBY = [(cnt0:-1,1)];ENBBY = [(supercnt0:-1,1)];ENBBY = [(supercnt0:-2,2)];ENBBY = [(supercnt0:-4,4)];
   UCHAR unk3;ENBBY = [(cnt1:-1,1)];ENBBY = [(supercnt1:-1,1)];ENBBY = [(supercnt1:-2,2)];ENBBY = [(supercnt1:-4,4)];
   UINT special_enchant_amount;
   ASCF special_enchant_desc;
   UINT unk4; 
}
Hint вне форума   Ответить с цитированием
За это сообщение Hint нажился 2 спасибками от: