Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Игровой клиент (https://forum.zone-game.info/forumdisplay.php?f=54)
-   -   Некоторые ddf для Lindvior (l2.ru PTS) (https://forum.zone-game.info/showthread.php?t=28209)

Hint 12.04.2013 17:47

Некоторые ddf для Lindvior (l2.ru PTS)
 
Файлы ddf для Lindvior (PTS клиент Lindvior c l2.ru от 12 апреля 2013).

questname-e.ddf:
Код:

// Lindvior (12.04.2013). Editors: Anonymous, Hint.

FS = "\t";
HEADER = 1;
RECCNT = OFF;
MTXCNT_OUT = 1;
MATCNT_OUT = 1;
ORD_IGNORE = 0;

{
  UINT tag_?;
  UINT quest_id;
  INT quest_prog;
  ASCF main_name;
  ASCF prog_name;
  ASCF description;
  CNTR item_id_cnt;
  INT item_id[item_id_cnt];
  CNTR item_unk_cnt;
  INT item_unk[item_unk_cnt]; // ? (0 or 1)
  CNTR item_count_cnt;
  INT item_count[item_count_cnt];
  FLOAT quest_x;
  FLOAT quest_y;
  FLOAT quest_z;
  UCHAR quest_pos_cnt;
  FLOAT quest_x_1; ENBBY = [(quest_pos_cnt:1,1)]; ENBBY = [(quest_pos_cnt:2,2)]; ENBBY = [(quest_pos_cnt:4,4)]; ENBBY = [(quest_pos_cnt:8,8)];
  FLOAT quest_y_1; ENBBY = [(quest_pos_cnt:1,1)]; ENBBY = [(quest_pos_cnt:2,2)]; ENBBY = [(quest_pos_cnt:4,4)]; ENBBY = [(quest_pos_cnt:8,8)];
  FLOAT quest_z_1; ENBBY = [(quest_pos_cnt:1,1)]; ENBBY = [(quest_pos_cnt:2,2)]; ENBBY = [(quest_pos_cnt:4,4)]; ENBBY = [(quest_pos_cnt:8,8)];
  FLOAT quest_x_2; ENBBY = [(quest_pos_cnt:2,2)]; ENBBY = [(quest_pos_cnt:4,4)]; ENBBY = [(quest_pos_cnt:8,8)];
  FLOAT quest_y_2; ENBBY = [(quest_pos_cnt:2,2)]; ENBBY = [(quest_pos_cnt:4,4)]; ENBBY = [(quest_pos_cnt:8,8)];
  FLOAT quest_z_2; ENBBY = [(quest_pos_cnt:2,2)]; ENBBY = [(quest_pos_cnt:4,4)]; ENBBY = [(quest_pos_cnt:8,8)];
  FLOAT quest_x_3; ENBBY = [(quest_pos_cnt,3)]; ENBBY = [(quest_pos_cnt:4,4)]; ENBBY = [(quest_pos_cnt:8,8)];
  FLOAT quest_y_3; ENBBY = [(quest_pos_cnt,3)]; ENBBY = [(quest_pos_cnt:4,4)]; ENBBY = [(quest_pos_cnt:8,8)];
  FLOAT quest_z_3; ENBBY = [(quest_pos_cnt,3)]; ENBBY = [(quest_pos_cnt:4,4)]; ENBBY = [(quest_pos_cnt:8,8)];
  FLOAT quest_x_4; ENBBY = [(quest_pos_cnt:4,4)]; ENBBY = [(quest_pos_cnt:8,8)];
  FLOAT quest_y_4; ENBBY = [(quest_pos_cnt:4,4)]; ENBBY = [(quest_pos_cnt:8,8)];
  FLOAT quest_z_4; ENBBY = [(quest_pos_cnt:4,4)]; ENBBY = [(quest_pos_cnt:8,8)];
  FLOAT quest_x_5; ENBBY = [(quest_pos_cnt,5)]; ENBBY = [(quest_pos_cnt,6)]; ENBBY = [(quest_pos_cnt,7)]; ENBBY = [(quest_pos_cnt:8,8)];
  FLOAT quest_y_5; ENBBY = [(quest_pos_cnt,5)]; ENBBY = [(quest_pos_cnt,6)]; ENBBY = [(quest_pos_cnt,7)]; ENBBY = [(quest_pos_cnt:8,8)];
  FLOAT quest_z_5; ENBBY = [(quest_pos_cnt,5)]; ENBBY = [(quest_pos_cnt,6)]; ENBBY = [(quest_pos_cnt,7)]; ENBBY = [(quest_pos_cnt:8,8)];
  FLOAT quest_x_6; ENBBY = [(quest_pos_cnt,6)]; ENBBY = [(quest_pos_cnt,7)]; ENBBY = [(quest_pos_cnt:8,8)];
  FLOAT quest_y_6; ENBBY = [(quest_pos_cnt,6)]; ENBBY = [(quest_pos_cnt,7)]; ENBBY = [(quest_pos_cnt:8,8)];
  FLOAT quest_z_6; ENBBY = [(quest_pos_cnt,6)]; ENBBY = [(quest_pos_cnt,7)]; ENBBY = [(quest_pos_cnt:8,8)];
  FLOAT quest_x_7; ENBBY = [(quest_pos_cnt,7)]; ENBBY = [(quest_pos_cnt:8,8)];
  FLOAT quest_y_7; ENBBY = [(quest_pos_cnt,7)]; ENBBY = [(quest_pos_cnt:8,8)];
  FLOAT quest_z_7; ENBBY = [(quest_pos_cnt,7)]; ENBBY = [(quest_pos_cnt:8,8)];
  FLOAT quest_x_8; ENBBY = [(quest_pos_cnt:8,8)];
  FLOAT quest_y_8; ENBBY = [(quest_pos_cnt:8,8)];
  FLOAT quest_z_8; ENBBY = [(quest_pos_cnt:8,8)];
  INT UNK_VAL[quest_pos_cnt];
  UCHAR UNK_2;
  UINT lvl_min;
  UINT lvl_max;
  UINT quest_type;       
  ASCF entity_name;
  UINT get_item_in_quest;
  UINT UNK_3; // 1 = same tab stack, 0 = end of stack (ex: |11110|10| if ur in the 2nd stack id 6 or 7 in quest prog |12345|67| the displayed stack would be |167| in the display)
  UINT UNK_4;
  CNTR contact_npc_cnt;     
  UINT contact_npc[contact_npc_cnt];
  FLOAT contact_npc_x;
  FLOAT contact_npc_y;
  FLOAT contact_npc_z;
  ASCF restricions;
  ASCF short_description;
  UCHAR req_class_cnt; // race restriction count
  UCHAR UNK_6; // id of class that can do quest
    ENBBY = [(req_class_cnt:64,64)];
  INT req_class[req_class_cnt]; // id of class that can do quest
  CNTR req_item_cnt;
  INT req_item[req_item_cnt]; // id of items needed to do quest
  UINT clan_pet_quest;
  UINT req_quest_complete; // id of quest that must be completed first
  UINT UNK_7;
  UINT area_id;
  UINT UNK_8;
  CNTR reward_id_cnt;
  INT reward_id[reward_id_cnt];
  CNTR reward_count_cnt;
  INT reward_count[reward_count_cnt];
  CNTR parent_step_cnt;
  INT parent_step[parent_step_cnt];
}

recipe-c.ddf:
Код:

// Lindvior (12.04.2013). Editors: Anonymous, Hint.

FS = "\t";
HEADER = 1;
RECCNT = OFF;
MTXCNT_OUT = 1;
MATCNT_OUT = 1;
ORD_IGNORE = 0;

{
  ASCF name;
  UINT id_mk;
  UINT id_recipe;
  UINT level;
  UINT id_item;
  UINT count;
  UINT UNK1;
  UINT UNK2;
  UINT mp_cost;
  UINT success_rate;
  UINT mat_cnt;
  UINT mat_id_1; ENBBY = [(mat_cnt:1,1)]; ENBBY = [(mat_cnt:2,2)]; ENBBY = [(mat_cnt:4,4)]; ENBBY = [(mat_cnt:8,8)];
  UINT mat_cnt_1; ENBBY = [(mat_cnt:1,1)]; ENBBY = [(mat_cnt:2,2)]; ENBBY = [(mat_cnt:4,4)]; ENBBY = [(mat_cnt:8,8)];
  UINT mat_unk_1; ENBBY = [(mat_cnt:1,1)]; ENBBY = [(mat_cnt:2,2)]; ENBBY = [(mat_cnt:4,4)]; ENBBY = [(mat_cnt:8,8)];
  UINT mat_id_2; ENBBY = [(mat_cnt:2,2)]; ENBBY = [(mat_cnt:4,4)]; ENBBY = [(mat_cnt:8,8)];
  UINT mat_cnt_2; ENBBY = [(mat_cnt:2,2)]; ENBBY = [(mat_cnt:4,4)]; ENBBY = [(mat_cnt:8,8)];
  UINT mat_unk_2; ENBBY = [(mat_cnt:2,2)]; ENBBY = [(mat_cnt:4,4)]; ENBBY = [(mat_cnt:8,8)];
  UINT mat_id_3; ENBBY = [(mat_cnt,3)]; ENBBY = [(mat_cnt:4,4)]; ENBBY = [(mat_cnt:8,8)];
  UINT mat_cnt_3; ENBBY = [(mat_cnt,3)]; ENBBY = [(mat_cnt:4,4)]; ENBBY = [(mat_cnt:8,8)];
  UINT mat_unk_3; ENBBY = [(mat_cnt,3)]; ENBBY = [(mat_cnt:4,4)]; ENBBY = [(mat_cnt:8,8)];
  UINT mat_id_4; ENBBY = [(mat_cnt:4,4)]; ENBBY = [(mat_cnt:8,8)];
  UINT mat_cnt_4; ENBBY = [(mat_cnt:4,4)]; ENBBY = [(mat_cnt:8,8)];
  UINT mat_unk_4; ENBBY = [(mat_cnt:4,4)]; ENBBY = [(mat_cnt:8,8)];
  UINT mat_id_5; ENBBY = [(mat_cnt,5)]; ENBBY = [(mat_cnt,6)]; ENBBY = [(mat_cnt,7)]; ENBBY = [(mat_cnt:8,8)];
  UINT mat_cnt_5; ENBBY = [(mat_cnt,5)]; ENBBY = [(mat_cnt,6)]; ENBBY = [(mat_cnt,7)]; ENBBY = [(mat_cnt:8,8)];
  UINT mat_unk_5; ENBBY = [(mat_cnt,5)]; ENBBY = [(mat_cnt,6)]; ENBBY = [(mat_cnt,7)]; ENBBY = [(mat_cnt:8,8)];
  UINT mat_id_6; ENBBY = [(mat_cnt,6)]; ENBBY = [(mat_cnt,7)]; ENBBY = [(mat_cnt:8,8)];
  UINT mat_cnt_6; ENBBY = [(mat_cnt,6)]; ENBBY = [(mat_cnt,7)]; ENBBY = [(mat_cnt:8,8)];
  UINT mat_unk_6; ENBBY = [(mat_cnt,6)]; ENBBY = [(mat_cnt,7)]; ENBBY = [(mat_cnt:8,8)];
  UINT mat_id_7; ENBBY = [(mat_cnt,7)]; ENBBY = [(mat_cnt:8,8)];
  UINT mat_cnt_7; ENBBY = [(mat_cnt,7)]; ENBBY = [(mat_cnt:8,8)];
  UINT mat_unk_7; ENBBY = [(mat_cnt,7)]; ENBBY = [(mat_cnt:8,8)];
  UINT mat_id_8; ENBBY = [(mat_cnt:8,8)];
  UINT mat_cnt_8; ENBBY = [(mat_cnt:8,8)];
  UINT mat_unk_8; ENBBY = [(mat_cnt:8,8)];
  UINT mat_id_9; ENBBY = [(mat_cnt,9)]; ENBBY = [(mat_cnt,10)];
  UINT mat_cnt_9; ENBBY = [(mat_cnt,9)]; ENBBY = [(mat_cnt,10)];
  UINT mat_unk_9; ENBBY = [(mat_cnt,9)]; ENBBY = [(mat_cnt,10)];
  UINT mat_id_10; ENBBY = [(mat_cnt,10)];
  UINT mat_cnt_10; ENBBY = [(mat_cnt,10)];
  UINT mat_unk_10; ENBBY = [(mat_cnt,10)];
}

npcgrp.ddf:
Код:

// Lindvior (12.04.2013). Editors: Anonymous, Allen (L2Sexi), Hint.

FS = "\t";
HEADER = 1;
RECCNT = OFF;
MTXCNT_OUT = 1;
MATCNT_OUT = 1;
ORD_IGNORE = 0;

{
  UINT tag;
  UNICODE class;
  UNICODE mesh;
  UINT cnt_tex1;
  UNICODE tex1[cnt_tex1];
  UINT cnt_tex2;
  UNICODE tex1[cnt_tex2];
  CNTR cnt_dtab1;
  UINT dtab1[cnt_dtab1];
  FLOAT npc_speed;
  UINT unk0_cnt;
  UNICODE unk0_tab[unk0_cnt];
  CNTR cnt_snd1;
  UNICODE snd1[cnt_snd1];
  CNTR cnt_snd2;
  UNICODE snd2[cnt_snd2];
  CNTR cnt_snd3;
  UNICODE snd3[cnt_snd3];

  UINT rb_effect_cnt;
  UNICODE rb_effect_1; ENBBY = [(rb_effect_cnt:1,1)]; ENBBY = [(rb_effect_cnt:2,2)]; ENBBY = [(rb_effect_cnt:4,4)];
  FLOAT rb_effect_fl_1; ENBBY = [(rb_effect_cnt:1,1)]; ENBBY = [(rb_effect_cnt:2,2)]; ENBBY = [(rb_effect_cnt:4,4)];
  UNICODE rb_effect_2; ENBBY = [(rb_effect_cnt:2,2)]; ENBBY = [(rb_effect_cnt:4,4)];
  FLOAT rb_effect_fl_2; ENBBY = [(rb_effect_cnt:2,2)]; ENBBY = [(rb_effect_cnt:4,4)];
  UNICODE rb_effect_3; ENBBY = [(rb_effect_cnt,3)]; ENBBY = [(rb_effect_cnt:4,4)];
  FLOAT rb_effect_fl_3; ENBBY = [(rb_effect_cnt,3)]; ENBBY = [(rb_effect_cnt:4,4)];
  UNICODE rb_effect_4; ENBBY = [(rb_effect_cnt:4,4)];
  FLOAT rb_effect_fl_4; ENBBY = [(rb_effect_cnt:4,4)];

  CNTR quests_cnt;
  UINT quests[quests_cnt];

  CNTR unk2_cnt;
  UINT unk2_tab[unk2_cnt];

  UNICODE effect;
  UINT UNK_3;
  FLOAT sound_rad;
  FLOAT sound_vol;
  FLOAT sound_rnd;
  UINT quest_be;
  UINT class_lim_?;
  UINT npcend_cnt;
  ASCF npcend[npcend_cnt];
  UINT unk1[4];
  FLOAT unk_glory;
  ASCF icon;
  UINT unk_glory_null; // always 0
}

Так как ENBBY стало очень много, написал скрипт для их генерации:
PHP код:

<?php
/**
 * @author Hint (12.04.2013)
 */
function generateEnbby($counter$fields$count)
{
  
$count max(1min(24, (int)$count));
  if (!
is_string($counter) || !$counter) return false;
  if (!
is_array($fields) || !$fields) return false;

  
$p = array();
  
$i 1;
  do
  {
    
$p[] = $i;
    
$i *= 2;
  }
  while (
$i <= $count);

  
$result '';
  for (
$i 1$i <= $count; ++$i)
  {
    
$c '';
    
    
$l null;
    foreach (
$p as $n)
    {
      if (
$n >= $i)
      {
        if (
is_null($l))
        {
          
$l $n;
        }
        
$c .= ' ENBBY = [(' $counter ':' $n ',' $n ')];';
      }
    }
    
    
$s '';
    if (
is_null($l))
    {
      
$l $count 1;
    }
    for (
$j $i$j $l; ++$j)
    {
      
$s .= ' ENBBY = [(' $counter ',' $j ')];';
    }
    
    
$c $s $c;

    foreach (
$fields as $f)
    {
      
$result .= str_replace('%'$i$f) . ';' $c "\n";
    }  
  }
  
  return 
$result;
}

$s generateEnbby('rb_effect_cnt', array('UNICODE rb_effect_%''FLOAT rb_effect_fl_%'), 10);
echo 
'<html><body><pre>' $s '</pre></body></html>';


Zubastic 12.04.2013 18:10

Re: Некоторые ddf для Lindvior (l2.ru PTS)
 
От души просто.

KilRoy 12.04.2013 19:33

Re: Некоторые ddf для Lindvior (l2.ru PTS)
 
Душевно! Но где же ты был раньше :(
---
Добавлю парочку :) точней 1н, но он под 2ве одинаковых датки:
HairExName, FaceExName:
Код:

FS = "\t";
RECCNT = -1;
HEADER = NO;
MTXCNT_OUT = YES;
MATCNT_OUT = YES;
ORD_IGNORE = NO;

{
        UINT id;
        UINT itemID;
        UNICODE name;
        ASCF desc;
}


darkevil 12.04.2013 19:41

Re: Некоторые ddf для Lindvior (l2.ru PTS)
 
Кому все это нужно? Не в обиду Хинту :)
Линдвиором заняты разве что мы да килрой, что у нас что у дяди килроя все что нужно есть для декодирования.

KilRoy 12.04.2013 19:47

Re: Некоторые ddf для Lindvior (l2.ru PTS)
 
Цитата:

Сообщение от darkevil (Сообщение 292689)
Кому все это нужно?

Ну самый вариант - для любителей "фреш" пух\масок\касок\свистелок-перделок :) Хотя сомневаюсь что там они найдут нужной инфы О_о

smeli 12.04.2013 19:52

Re: Некоторые ddf для Lindvior (l2.ru PTS)
 
что ц1 что линдвиор - почти никому ето ненужно :)
но хочется почитать про линдвиор не только на гохе

Hint 12.04.2013 20:10

Re: Некоторые ddf для Lindvior (l2.ru PTS)
 
Цитата:

Сообщение от darkevil (Сообщение 292689)
Кому все это нужно? Не в обиду Хинту :)
Линдвиором заняты разве что мы да килрой, что у нас что у дяди килроя все что нужно есть для декодирования.

Да делаю само собой для себя. А выложить не сложно. Если хоть кому-то пригодится - уже хорошо.

ChipWarl 12.04.2013 20:14

Re: Некоторые ddf для Lindvior (l2.ru PTS)
 
пишу от лица Krasavella

Цитата:

Сообщение от KillRoy
Душевно! Но где же ты был раньше
---
Добавлю парочку точней 1н, но он под 2ве одинаковых датки:
HairExName, FaceExName:

Подскажите как в C5-IT отредактировать прическу? то есть вместо 1-ой например сделать 2-ую поменяв местами?

smeli 12.04.2013 20:45

Re: Некоторые ddf для Lindvior (l2.ru PTS)
 
Цитата:

Сообщение от ChipWarl (Сообщение 292702)
пишу от лица Krasavella


Подскажите как в C5-IT отредактировать прическу? то есть вместо 1-ой например сделать 2-ую поменяв местами?

непонял вопроса, птом смотрю что от красавелла, и сразу понимаю почемы непонял :)

iquelite 13.04.2013 12:47

Re: Некоторые ddf для Lindvior (l2.ru PTS)
 
ths for shares~:D

Bacek 13.04.2013 13:16

Re: Некоторые ddf для Lindvior (l2.ru PTS)
 
Цитата:

Сообщение от KilRoy (Сообщение 292688)
Душевно! Но где же ты был раньше :(
---
Добавлю парочку :) точней 1н, но он под 2ве одинаковых датки:
HairExName, FaceExName:
Код:

FS = "\t";
RECCNT = -1;
HEADER = NO;
MTXCNT_OUT = YES;
MATCNT_OUT = YES;
ORD_IGNORE = NO;

{
        UINT id;
        UINT itemID;
        UNICODE name;
        ASCF desc;
}


С верными заголовками

PHP код:

hairExName
    UINT class_name
;
    
UINT id;
    
UNICODE hair_name;
    
ASCF Description;
faceExName
    UINT class_name
;
    
UINT id;
    
UNICODE face_name;
    
ASCF Description;
colorExName
    UINT class_name
;
    
UINT id;
    
UNICODE color_name;
    
ASCF Description

recipe-c
PHP код:

FS "\t";
HEADER 1;
RECCNT OFF;
MTXCNT_OUT 1;
MATCNT_OUT 1;
ORD_IGNORE 0;

{
    
ASCF name;
    
UINT id;
    
UINT recipe_id;
    
UINT level;
    
UINT product_id;
    
UINT product_num;
    
UINT is_showtree;
    
UINT is_multiple_product;
    
UINT mp_consume;
    
UINT success_rate;
    
    
UINT count;
    
UINT materials[count];
    
UINT materials[count];
    
UINT materials[count];



ChipWarl 14.04.2013 11:38

Re: Некоторые ddf для Lindvior (l2.ru PTS)
 
кто может подкинуть открытый npcgrp ? =)

Be3geBJIa3 30.05.2013 17:09

Re: Некоторые ddf для Lindvior (l2.ru PTS)
 
Было бы проще уже новый стандарт для файлов придумать, если бы мне это не раз в год было нужно уже доделал бы свой L2FileEditor++ cо встроенным визуальным разбором и редактированием скрипта на лету.
Еще идея была сделать программу которая вытягивала бы данные из любых хроник и помещала бы данные в базу данных и в последствии сохранять файл для любых хроник, что так востребовано при переносе новых вещей в другие хроники.


Текущее время: 13:05. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot