Вернуться   CoderX :: Forums > Основные форумы > Программинг
Войти через OpenID

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
 
 
Опции темы Опции просмотра
Старый 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 спасибками от:
 

  CoderX :: Forums > Основные форумы > Программинг



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 13:52.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!