05-15-2011, 12:48 AM
Итак, здравствуйте уважаемые форумчане, админы серверов Aion и те, кто просто фанится над эмулятором.
Сегодня мы с вами будем разбирать скиллы и все что с ними связано, гайд будет сделан на основе сборки X-Emu 287 ревизии.
P.s. скорее всего гайд будет писать не один день, потому как не думаю, что за сегодня осилю весь гайд..
Ну что ж, все пристегнулись? Тогда с богом, перекрестились, и поехали грызть гранит науки.
Весь обзор будет состоять из нескольких частей, так как вся система скиллов состоит из нескольких частей, а именно:
Приступим, и начнем пожалуй с клиента.
Инструментарий:
Сперва нам надо добраться до цели наших исследований, то есть файлика в котором описаны все скиллы в клиенте. Он запечатан в .pak архив что лежит в папке data, полностью путь до файла выглядит так:
путь до клиента\data\skills\skills.pak. После того как мы его нашли, надо его распаковать. Запускаем AionExtract и указываем нужные нам пути(надеюсь сами разберетесь что к чему, там интерфейс понятный даже детям..).
После распаковки перед нами будет папка с тучей файлов .dds и 5-ю файлами .xml (советую отсортировать по типу, иначе вы месяц будете искать нужный файл). Нам нужен файлик client_skills.xml. Открываем его текстовым редактором и видим перед собой самую обычную XML структуру, её то мы и будем разбирать.
Берем самый первый скилл:
Итак, что же означают все эти теги:
И это только то, что находится в первом скилле, на самом деле этих параметров многократ больше(за раз их не подготовить, посему по мере готовности описания буду редактировать этот пост и добавлять ниже).
Сегодня мы с вами будем разбирать скиллы и все что с ними связано, гайд будет сделан на основе сборки X-Emu 287 ревизии.
P.s. скорее всего гайд будет писать не один день, потому как не думаю, что за сегодня осилю весь гайд..
Ну что ж, все пристегнулись? Тогда с богом, перекрестились, и поехали грызть гранит науки.
0. Введение
Весь обзор будет состоять из нескольких частей, так как вся система скиллов состоит из нескольких частей, а именно:
- Клиент
- Сервер (Датапак)
- Сервер (Ядро)
Приступим, и начнем пожалуй с клиента.
1. Клиент
Инструментарий:
- Распаковщик .pak файлов, лично я использую AionExtract, т.к. помимо распаковки он еще и декриптует имеющиеся там .xml файлы(найти его можно тут)
- Любой текстовый редактор(лично я использую Notepad ++, найти его можно тут)
- Приветствуется наличие пытливого ума и прямых рук, желательно растущих из плеч (но это дело наживное, так что немного тепрения и желания и руки скорее всего сами выпрямятся )
Сперва нам надо добраться до цели наших исследований, то есть файлика в котором описаны все скиллы в клиенте. Он запечатан в .pak архив что лежит в папке data, полностью путь до файла выглядит так:
путь до клиента\data\skills\skills.pak. После того как мы его нашли, надо его распаковать. Запускаем AionExtract и указываем нужные нам пути(надеюсь сами разберетесь что к чему, там интерфейс понятный даже детям..).
После распаковки перед нами будет папка с тучей файлов .dds и 5-ю файлами .xml (советую отсортировать по типу, иначе вы месяц будете искать нужный файл). Нам нужен файлик client_skills.xml. Открываем его текстовым редактором и видим перед собой самую обычную XML структуру, её то мы и будем разбирать.
Берем самый первый скилл:
Код:
<skill_base_client>
<id>1</id>
<name>P_EQUIP_EnhancedSword_G1</name>
<desc>STR_SKILL_P_EQUIP_EnhancedSword_G1</desc>
<desc_long>STR_SKILL_P_EQUIP_EnhancedSword_G1_DESC</desc_long>
<type>Physical</type>
<sub_type>None</sub_type>
<skill_category>SKILLCTG_NONE</skill_category>
<ultra_skill>0</ultra_skill>
<ultra_transfer>0</ultra_transfer>
<skillicon_name>CBT_P_EQUIP_EnhancedSword_G1.dds</skillicon_name>
<delay_id>1</delay_id>
<activation_attribute>Passive</activation_attribute>
<target_slot>NoShow</target_slot>
<first_target>Me</first_target>
<target_marker_radius>0</target_marker_radius>
<effect1_type>Wpn_Mastery</effect1_type>
<effect1_effectid>101</effect1_effectid>
<effect1_basiclv>1</effect1_basiclv>
<effect1_reserved1>0</effect1_reserved1>
<effect1_reserved2>16</effect1_reserved2>
<effect1_reserved3>0</effect1_reserved3>
<effect1_reserved4>0</effect1_reserved4>
<effect1_reserved5>1h_sword</effect1_reserved5>
<effect3_hop_a>0</effect3_hop_a>
<effect3_hop_b>0</effect3_hop_b>
<effect4_hop_a>0</effect4_hop_a>
<effect4_hop_b>0</effect4_hop_b>
</skill_base_client>
- <id> - Id скилла который используется на сервере.
- <name> - Имя скилла, используется толко в клиенте.
- <desc> - Краткое описание скилла, хранится в client_strings.xml
- <desc_long> - Полное описание скилла, кранится так же в client_strings.xml
- <type> - Тип скилла, может быть, определяет какого типа атака будет, магического или физического.
- <sub_type>
- <skill_category> - Категория в которой находится скилл, большинство скиллов имеют SKILLCTG_NONE, в серверной части не применятеся, скорее всего корейцы сделали этот атрибут для удобства сортировки при редактировании скиллов.
- <ultra_skill>
- <ultra_transfer>
- <skillicon_name> - Путь до иконки скилла, должна лежать в той же папке что и client_skills.xml
- <delay_id> - скорее всего определяет анимацию отката скилла или что-то в этом роде, в любом случае, на сервере этот параметр не применяется.
- <activation_attribute> - Опеределяет каким будет скилл, пассивным или активным.
- <target_slot> - Ячейка в которой будет отображаться эффект скилла, если это бафф или дебафф.
- <first_target> - Цель на которую должен применяться скилл, т.е. на себя, на противника, на союзника и т.д.
- <target_marker_radius> - Так же непонятно за что отвечает параметр, у болшинства скиллов это значение равно нулю...
- <effect1_type> - Отвечает за тип эффекта который будет накладываться
- <effect1_effectid> - Айди эффекта накладываемого на цель, отвечает за то, какая иконка пойвится в списке баффов\дебаффов и за отображаемое описание эффекта.
- <effect1_basiclv> - Уровень накладываемого эффекта
- <effect1_reserved5> - Отвечает за то, на что именно будет накладываться эффект, в данном случае указано что будет накладываться на меч находящийся в руке номер 1(правая)
И это только то, что находится в первом скилле, на самом деле этих параметров многократ больше(за раз их не подготовить, посему по мере готовности описания буду редактировать этот пост и добавлять ниже).
- <target_range> - количество целей на которые действует скилл, ест например массовые скиллы с ограничением кол-ва целей которым наносится урон.
- <target_species_restriction> - распределение по расовой принадлежности, то есть может быть что скилл можно применить только по мобу с расой "нага" или только элийцам или только по асмам и т.д.
- <target_relation_restriction> - на кого по отношению можно применять скилл, то есть если цель - союзник можно применить, а на всех остальных нельзя, или если цель - противник можно применить, а на всех остальных нельзя и т.д.
- <cancel_rate> - шанс отмены каста скилла
- <casting_delay> - задержка каста после "нажатия" на скилл
- <show_weapon> - отображение оружия во время каста 1-да 0-нет
- <required_sword>, <required_mace>, <required_dagger>, <required_orb>, <required_book>, <required_2hsword>, <required_polearm>, <required_staff>, <required_bow> - требуемое для каста оружие если 0, то с этим оружием каст не будет проводиться, если 1, то будет
- <cost_parameter> - Стата, которая будет израсходована после каста
- <cost_end> - в количестве указанном в этом параметре
- <move_casting> - возможность движения во время каста 1 -да, 0 -нет
- <auto_attack> - будет ли автоатака после использования скилла
С первой частью пока все, завтра будет часть 2. Сервер (датапак)
To be continued
To be continued
Bloomers --> ??? --> Profit