Вступление Кто интересовался делами на евро серверах вероятнее всего видел сайты с информацией по серверам и персонажам, да и у корейцев тоже есть... и с досадой узнавал что для руоффа нету ничего похожего, базы на снифферах не в счёт ибо это совсем не то. Однако, иннова понемногу начинается двигаться в сторону комьюнити и есть первые примеры по загрузке серверов и рейтингу бездны (кому не лень могут поискать). В будущем планируется открытый api, будем надеяться что не просто планируется, а в ближайшее время и появится Именно к этому знаковому событию мы и начнём готовиться создав достав необходимый контент из клиента игры, благо его достаточно для создания различных баз и калькуляторов. надеюсь данная статья подтолкнёт администрацию к более быстрому осуществлению этих планов. Эта статья скорее справочная информация нежели руководство к действию, со временем буду дополнять её новой информацией и вносить конкретику в непонятные моменты если таковые будут. Приступим. !! В данной статье не рассматриваются способы модификации ресурсов игры, а только описываются способы их получения для построения на их основе базы данных. !! Все приведённые таблицы и приложения верны для версии игры 2.1.2. Требования Итак вы подумали и решили начать создавать базу данных aion своими руками. если вы не знаете что такое xml, никогда в глаза не видели html, не умеете программировать и работать с базами данных, то на этом знакомство со статьёй можете завершить, она вряд ли сможет чем-то помочь. спасибо за внимание. Если вы читаете эти строки то будем считать что необходимыми знаниями вы обладаете, либо не читали предыдущий абзац) Для работы нам понадобятся: 1. клиент игры aion (русский конечно же, либо отдельно файлы русской локализации). 2. любой zip-архиватор. 3. пакетный конвертер (batch) изображений из формата dds в человекопонятный формат с возможностью обрезания (crop) изображений (например imageconverter plus, который будет использоваться в данной статье), либо набор разных утилит выполняющих эти функции. 4. утилита для распаковки игровых архивов и xml-файлов. Please login or register to view links 5. утилита для расшифровки html. Please login or register to view links (требуется java). Подготовка рабочего места. Для устранения разногласий в расположении клиента игры и нашего рабочего каталога создадим на диске с папку aiondb и все манипуляции с файлами будем проводить именно там, а путь к клиенту игры будем обозначать как \aion. Распаковываем в c:\aiondb скачанные утилиты для распаковки ресурсов клиента. они не имеют графического интерфейса и работают из командной строки. создадим текстовой файл "run.bat" содержащий 1 строку: Код: @cmd Запустив этот файл вы откроете командную строку с текущим рабочим каталогом, это заметно экономит время и избавляет от знания работы с командной строкой (первые 2 пункта из списка ниже). Далее под "введите в командной строке" и "выполните команду" будет пониматься: - у вас запущена командная строка - рабочим каталогом установлен c:\aiondb - вы вводите/вставляете необходимый текст - завершите ввод нажатием клавиши enter Часть 1. Распаковываем данные. 1.1 архивы Все игровые ресурсы находятся в архивах, они имеют расширение .pak. хоть они и являются обычными zip-архивами у них изменены заголовки и просто так их не открыть. на помощь нам приходит небольшая утилитка pak2zip.exe которая всё ставит на свои места. пользоваться ей очень просто, достаточно скопировать нужный pak-архив в наш рабочий каталог и из командной строки вызвать конвертер её с двумя параметрами: имя исходного pak-архива и имя конечного zip-архива. Например: Код: pak2zip.exe items.pak items.zip Создаёт zip архив с именем items.zip и содержимым игрового архива items.pak. больше файл items.pak нам не нужен и из рабочего каталога его можно удалить (не из клиента, а из рабочего каталога c:\aiondb). Таким образом можно распаковать любой pak-архив находящийся в клиенте. вот список некоторых интересных архивов в которых мы поковыряемся: 1. l10n\rus.pak - файлы русской локализации - rus\data\strings\client_strings.xml - название предметов, нпц, различные названия !! в версии 2.5 файл разбит на несколько файлов по категориям с именами client_strings_xx.xml - куча html с диалогами неписей - шрифты и прочая лабуда 2. data\items\items.pak - изображения предметов в формате dds - client_items.xml - характеристики предметов - client_setitem.xml - описания комплектов предметов - client_combine_recipe.xml - рецепты крафта и преобразования 3. data\skills\skills.pak - изображения умений и статусов в формате dds - client_skills.xml - список умений - client_skill_learns.xml - список уровней и классов для изучения умений 4. data\ui\ui.pak - элементы интерфейса пользователя в формате dds 5. data\quest\quest.pak - combine_task.xml - заказы для крафтов - quest.xml - описание квестов В дальнейшем имя архива в котором находится файл упоминаться не будет если этого явно не потребуется. 1.2. изображения Рассмотрим распаковку изображений на примере иконок предметов. разархивируем содержимое архива \aion\data\items\items.pak в папку c:\aiondb\items. Получается куча файлов в формате dds и пара xml (они нам пока не нужны и их можно удалить из папки). dds это формат для работы в directx и браузерами он не воспринимается. Их необходимо конвертировать в наиболее понятный формат. Вооружаемся конвертером изображений. Я воспользуюсь imageconverter plus, возможностей триальной версии нам будет достаточно. Запускаем конвертер, сразу переходим на вкладку add photos. Нажимаем кнопку “add folder” и выбираем папку c:\aiondb\items. в табличку загружается список наших файлов, окончания процесса можно не ждать и вернутся на 1-ю закладку. Обратите внимание в превью что изображение имеет размер 64х64 хотя реально занято только 40х40 пикселей - это особенность формата dds, что изображение квадратное и размеры совпадают со степенью двойки. Но не стоит волноваться, мы её сейчас победим). Конвертер позволяет производить операции над файлами перед сохранением, в нашем случае нужно обрезание чтобы отсечь лишние пиксели изображения. Добавляем его с помощью “add opertion” и в списке операций отмечаем “crop image”. Метод обрезания самый понятный это “rectangle (point, width and height)” (“прямоугольник - точка, высота и ширина”) ставим начальную точку (0;0) а ширину и высоту по 40 пикселей. Таким образом мы оставим только квадрат 40х40 начиная от левого верхнего угла, что нам и нужно. Формат изображения любой подходящий, но выберем png как оптимальный для веба. 32 или 24 бита не важно, прозрачных пикселей на нужном нам квадрате 40х40 картинки нет. Папку назначения выбираем c:\aiondb\conv_items, шаблон имени файла не трогаем, для совпадающих файлов ставим auto-rename. Жмём старт и немного ждём. Через минуту-другую открывается окно проводника с папкой назначения, сразу бросается в глаза совпадающие имена файлов с приписками (1) и тд. это mip-уровни из dds файла (кому интересно читаем википедию). Удалять их придётся в полу-ручном режиме отсортировав файлы по размеру. Упросить это можно в total commander воспользовавшись меню выделение->выделить группу. Нажимаем кнопку шаблон, в окошке вводим шаблон “\(\d\)” без кавычек, отмечаем галочку “регулярное выражение” и сохраняем. наш шаблон выделяет все ненужные нам файлы, удаляем их. Всё, мы получили изображения всех предметов (ну может и не всех конечно). Этого материала достаточно чтобы извлечь другие иконки и элементы интерфейса. 1.3. xml-файлы Почти все xml файлы хранящиеся в архивах запакованы и просмотреть их не получится. также как и pak-архивы это слегка изменённые zip. Распаковать их можно утилитой gibbed.aion.convertxml.exe аналогичным образом как и pak2zip.exe. Просто вызываем утилиту с 2 параметрами: имя исходного файла и имя конечного файла, имена могут совпадать и тогда файл просто распакуется не поменяв имени. Например: Код: gibbed.aion.convertxml.exe client_items.xml client_items.xml Распаковывает client_items.xml и с ним можно начинать работать. 1.4. html-файлы В html-файлах в основном хранится тексты диалогов и записи журнала. в теории по содержимому файлов можно получить список используемых в квесте предметов и необходимых нпц. Работа с распаковщиком html несколько отличается от архивов и xml. Требуемые html-файлы нужно поместить в папку c:\aiondb\import и выполнить converthtml.bat. Этот конвертер также перекодирует и xml-файлы. Результатом его работы будут декодированные файлы в папке c:\aiondb\output Стоит отметить что не все html являются непосредственно html - большинство это xml-контейнеры с разметкой и содержащимися в них страницами. Возможно позднее я доберусь и до html файлов, а пока ограничимся только xml. !! не все html файлы хранятся в зашифрованном виде 2. разбираем xml-файлы В этом разделе подразумевается что распаковка ресурсов освоена и далее будут просто фигурировать имена нужных файлов без указаний к их получению. Основы работы с xml также рассматриваться не будут. Условные обозначения типов параметров: - целое - целое десятичное число, например 0 или 100500 - дробное - десятичное дробное число, например 1.001 - текст - любая строка в том числе и пустая - r,g,b - строка состоящая из 3х чисел разделённых запятыми, числа соотвествуют компонентом цветовой схемы rgb, например “255,0,0” - булевое - строка true или false - процент - целое десятичное число со знаком процента на конце также в названиях атрибутов может встречаться сокращение xx означающие какое-либо число в конце названия, обычно диапазон чисел либо уточняется где-то в пределах раздела статьи либо не важен. !! Все xml файлы хранятся в кодировке utf-16, не стоит забывать сконвертировать данные при загрузке в нужную кодировку (если парсер не делает это автоматически). 2.1. файлы локализации Один из центральных файлов, так как почти все остальные xml-файлы имеют ссылки на него. например, названия и описания предметов хранятся именно здесь. Связываются строки по текстовому идентификатору name, он наиболее удобен для редактирования человеком, т.к. частично содержит в себе информацию о содержимом. Однако при реальной работе базы данных гораздо разумнее использовать числовой идентификатор id из-за более высокой скорости работы, либо хранить названия непосредственно в предметах, навыках и т.д. !! Начиная с версии клиента 2.5 строки локализации хранятся не в одном файле, а в нескольких, разбитых по своему содержимому. например, для названий и описаний предметов используются файлы client_strings_item.xml и client_strings_item2.xml. структура xml не менялась. таблица 1. атрибуты строк локализации. Спойлер атрибуттипописаниеidцелоеидентификаторnameтекстидентификаторbodyтекстлокализованный текстdisplay_typeцелое???message_typeтекст???mentтекст??? Все дальнейшие атрибуты на подобии “название предмета” или “описание навыка” являются текстовыми идентификаторами, ссылающимися на name в файл локализации. 2.2. предметы Самый сложный и большой файл как ни странно - client_items.xml, с его набором атрибутов придётся весьма основательно и долго повозиться, правда половина из них нам не понадобится. Каждая запись не обязательно содержит весь список атрибутов, пустые как правило опускаются для экономии места. таблица 2. перечень возможных атрибутов предмета Спойлер атрибут тип описание abyss_item текст name предмета (медали) для покупки ап-шмота. abyss_item_count целое количество медалей для покупки предмета abyss_point целое количество ап необходимых для покупки activate_target текст цель использования предмета: пустое значение - предмет не используется, standalone - используется без цели, target - используется на цель игрока activate_target_race текст раса цели. activation_count целое кол-во использований activation_level целое уровень активируемого умения activation_mode текст активруется: пустое значение или both - в любое время, combat - боевой режим activation_skill текст name навыка который активирует предмет agi целое ??? ammo_bone текст место откуда вылетает снаряд (стрела/магия) ammo_fx текст название эффекта выстрела/магии ammo_speed целое скорость полёта снаряда area_to_use текст название места где можно использовать предмет armor_type текст тип брони: cloth, leather, chain или plate assassin целое мин. уровень убийцы для использования предмета assassin_max целое макс. уровень убийцы для использования предмета attack_delay дробное время анимации атаки attack_gap дробное задержка между атаками. везде 0 attack_range дробное дальность атаки attack_type текст тип атаки: magical_fire, magical_water, physical basic_length дробное видимо что-то связанное с моделью оружия blade_fx 0 или 1 какой-то особый спец-эффект оружия block целое базовый параметр “блок щитом” bonus_apply текст когда применяется бонусы предмета: equipped - когда экипирован, inventory - находятся в инвентаре bonus_attr1 - bonus_attr12 текст дополнительный бонус предмета (см. приложение а) breakable булевое ломается ли предмет на заточки? breakdown 0 или 1 ??? can_composite_weapon булевое возможно ли совмещение оружия? can_deposit_to_account_warehouse булевое может ли предмет быть помещён на склад аккаунта? can_deposit_to_character_warehouse булевое может ли предмет быть помещён на склад персонажа? can_deposit_to_guild_warehouse булевое может ли предмет быть помещён на склад легиона? can_dye 0 или 1 может ли предмет быть покрашен? can_exchange булевое возможен ли обмен предметом с другими игроками? can_proc_enchant булевое возможно ли вставка божественного камня? can_sell_to_npc булевое можно ли продать предмет нпц? can_split булевое можно ли разделять пачку предметов? cannot_changeskin 0 или 1 запрещено ли изменение внешнего вида? cash_available_minute целое срок действия временного предмета cash_item целое числами больше нуля помечены ивентовые и магазинные вещи. cash_social целое числами больше нуля помечены эмоции, по всей видимости ивентовые и магазинные. cash_title целое числами больше нуля помечены ивентовые и магазинные титулы. casting_delay дробное время использования предмета category текст вид умения для сбора или крафта chanter целое мин. уровень чародея для использования предмета chanter_max целое макс. уровень чародея для использования предмета cleric целое мин. уровень целителя для использования предмета cleric_max целое макс. уровень целителя для использования предмета combat_equip_bone текст место расположения оружия: левая или правая рука combat_item_fx текст эффект (видимо звуковой) оружия combineskill текст какой тип крафта позволяет использовать предмет confirm_to_delete_cash_item булевое требуется ли подтверждение для удаления предмета из инвентаря? cosmetic_name текст название цвета волос/причёски/украшений которые активирутся предметами смены внешности coupon_item текст название требуемого купона для смены внешности coupon_item_count целое требуемое количество купонов craft_recipe_info текст name рецепта critical целое физ. крит damage_reduce целое блок урона (для щитов) default_color_f r,g,b цвет по умолчанию для персонажей женского пола default_color_m r,g,b цвет по умолчанию для персонажей мужского пола desc текст name строки с названием предмета desc_craftman текст name с опсианием предмета крафта (не очень понятно к чему именно сылается, возможно на первый предмет матрёшки) desc_long текст name строки с описанием предмета desc_proc текст namе строки с описанием срабатывания божественного камня difficulty текст ?? стоит normal у ивентовых крыльев, у остальных предметов пустое disassembly_item 0 или 1 разбивается ли ресурс на более мелкие? dmg_decal целое ??? doc_bg текст какая-то ссылка на изображение для квестовых бумажек. dodge целое базовый параметр уклонение dyeing_color r,g,b цвет в который окрашивает краска elementalist целое мин. уровень заклинателя для использования предмета elementalist_max целое макс. уровень заклинателя для использования предмета equip_bone текст место крепления модели предмета equip_type ??? equipment_slots текст место экипировки: торс, ботинки и тп expire_time целое время действия временного предмета, в минутах extra_currency_item текст name предмета необходимого для покупки вещи extra_currency_item_count целое кол-во дополнительных предметов extract_skin_type целое какой-то параметр для ивентовых и магазинных шкурок fighter целое мин. уровень воина для использования предмета fighter_max целое макс. уровень воина для использования предмета func_pet_name текст пет который вылупляется из яйца fx_mesh целое какая-то хрень для отрисовки предмета gain_level1 целое уровень навыка 1 стигмы gain_level2 целое уровень навыка 2 стигмы gain_skill1 текст 1й навык который даёт стигма gain_skill2 текст 2й навык который даёт стигма gathering_point целый уровень ресурса который отображается на карте: 99 - энергокинез до 99, 10099 - эфирокинез до 99 gender_permitted текст пол которому разрешено использовать предмет: all, male, female hit_accuracy целое базовый параметр точность hit_count целое кол-во ударов оружия icon_name текст название иконки предмета inven_warehouse_max_extendlevel целое максимальный уровень до которого предмет расширяет склад/куб item_drop_permitted булевое ??? item_fx текст очередное название эффекта для клиента item_type текст тип предмета: abyss, draconic, devanoin, normal knight целое мин. уровень гладиатора для использования предмета knight_max целое макс. уровень гладиатора для использования предмета kno целое ??? level целое уровень предмета lore булевое квестовый предмет? mage целое мин. уровень мага для использования предмета mage_max целое макс. уровень мага для использования предмета magical_hit_accuracy целое базовое значение маг. точности magical_resist целое базовое значение сопротивления магии magical_skill_boost целое базовое значение силы магии material текст материал. опять видимо что-то для клиента max_damage целое максимальный урон оружия max_stack_count целое максимальное кол-во предметов в одной ячейке инвентаря mesh текст название модели предмета mesh_change 0 или 1 внешний вид предмета изменяется в беовом режиме? min_damage целое минимальный урон оружия motion_name текст название анимации при использовании предмета name текст текстовой идентификатор предмета no_enchant булевое невозможно улучшать предмет? option_slot_bonus целое количество дополнительных слотов для камней package_permitted целое ??? parry целое базовый параметр парирование physical_defend целое базовый параметр физ. защита price целое цена покупки предмета у нпц priest целое мин. уровень жреца для использования предмета priest_max целое макс. уровень жреца для использования предмета proc_enchant_effect_occur_left_prob целое ??? proc_enchant_effect_occur_prob целое шанс срабатывания божественного камня proc_enchant_skill текст название навыка при срабатывании божественного камня proc_enchant_skill_level целое уровень срабатывающего навыка proc_fx текст текстовой идентификатор срабатывающего эффекта от божественного камня quality текст качество предмета: common - белые, rare - зелёные, legend - синие, unique - золотые, epic - рыжие, mythic - не существуют. quest целое категория квестового предмета race_permitted текст ограничение по расе: pc_light, pc_dark или оба сразу ranger целое мин. уровень стрелка для использования предмета ranger_max целое макс. уровень стрелка для использования предмета reduce_max целое максимальное снижение урона(?) у щита remove_when_logout булевое предмет исчезает при выходе из игры? require_shard целое необходимое количество осколков стигмы для её вставки require_skill1 текст список 1 навыков который необходимы для вставки стигмы (1 из списка) require_skill1_lv целое уровень навыка 1 - всегда 1 require_skill2 текст список 2 навыков который необходимы для вставки стигмы 1 из списка) require_skill2_lv целое уровень навыка 2 - всегда 1 return_alias текст название места куда телепортирует предмет return_worldid целое id места куда телепортирует предмет scale дробное масштаб предмета, везде 1.00 scout целое мин. уровень разбойника для использования предмета scout_max целое мин. уровень разбойника для использования предмета skill_to_learn текст навык которому обучает предмет soul_bind булевое нужна ли печать душ? stat_enchant_type текст бонус который даёт манастоун stat_enchant_value целое значение бонуса которой даёт манастоун stigma_type текст тип стигмы: пусто - обычная, enhanced1 - улучшенная str целое ??? sub_enchant_material_effect целое эффект от усилителя магических камней, видимо, в корейских процентах sub_enchant_material_effect_type текст ??? sub_enchant_material_many число параметр для расчёта требуемых усилителей при вставки манастоунов summon_housing_object текст мусор или заготовки на будущее для предметов интерьера tag текст примечание по получению придемета temporary_exchange_time целое время возможности передачи непередаваемого предмета tool_type текст тип инструпента для крафта: inventory или field toy_pet_name текст ??? trail_tex текст текстура трасера оружия fxtrail_normal или fxtrail_boost ui_sound_type текст звук unit_sell_count целое количество по умолчанию при покупке/продаже use_delay целое задержка на повторное использование use_delay_type_id целое идентификатор для повторного использования предметов, предметы с одинаковым идентификатором откатываются вместе. use_fx текст графический эффект использования предмета use_fx_bone текст место графического эффекта visual_slot текст ??? warrior целое мин. уровень стража для использования предмета warrior_max целое макс. уровень стража для использования предмета weapon_boost_value целое бонус урона камня печати weapon_type текст тип оружия wizard целое мин. уровень волшебника для использования предмета wizard_max целое макс. уровень волшебника для использования предмета Как видно свалено в кучу всё что только можно и представляет из себя большую помойку. Если для хранения подходит неплохо то для работы такая помойка весьма не эффективна. При загрузке придётся перелопатить структуру и создать дополнительные таблицы. Как извлечь иконки предметов рассмотрено в 1й части статьи. Помимо непосредственно характеристик предметов интерес представляют комплекты предметов и их бонусы. эта информация хранится в client_setitem.xml таблица 3. наборы предметов Спойлер атрибут тип описание id целое идентификатор сета name текст текстовой идентификатор desc текст название item1 текст основное оружие item2 текст щит/вторичное оружие item3 текст нагрудная броня item4 текст штаны item5 текст наплечники item6 текст перчатки item7 текст ботинки item8 текст головной убор??? (в файле не встречается) item9 текст пояс item10 текст ожерелье item11 текст серьга item12 текст серьга item13 текст кольцо item14 текст кольцо??? (в файле не встречается) piece_bonus2 текст бонус за 2 предмета piece_bonus3 текст бонус за 3 предмета piece_bonus4 текст бонус за 4 предмета piece_bonus5 текст бонус за 5 предмета fullset_bonus текст бонус за весь сет Список предметов входящих в набор указывается в атрибутах itemхх, где каждый номер соответствует определённому типу экипировки. Набор значений в piece_bonus2 - piece_bonus5 и fullset_bonus имеют такой же формат как и bonus_attrxx в предметах (см. приложение а). Если бонусов несколько, то они указываются через точку с запятой. 2.3. навыки Количество информации по навыкам намного больше чем по предметам, но помойку из себя она не представляет и почти вся информация требуется клиенту для корректной обработки и отображения навыка. также очень многие атрибуты не совсем понятны для чего они и вообще зачем такая конкретика нужна в клиенте (а главное, под вопросом их соответствие серверным значениям), те у кого есть желания могут поковыряться с ними отдельно - в базе данных они не пригодятся. таблица 4. атрибуты навыков. Спойлер атрибут тип описание activation_attribute текст активация навыка: passive, active, toggle, maintain, provoked add_wpn_range 0 или 1 применяется ли к умению дальность атаки оружия? allow_use_form_category текст состояние в котором можно использовать умение: avatar - трансформ ammo_bone текст название части модели откуда вылетает снаряд ammo_fx текст снаряд ammo_fx_type 0 или 1 ??? ammo_fxc текст ??? ammo_speed целое скорость полёта снаряда aura_fx текст эффект от ауры и массовых умений aura_fx_bone текст название части модели где отображается ээфект ауры aura_fx_slot целое слот ауры auto_attack текст акаим образом навык влияет на начало/конец автоатаки: attack - включается, maintain - не влияет, stop - прекращает broadcast_use_message 0 или 1 отображается или нет использование навыка в глобальный чат (трансформы) cancel_rate целое сложность снятия дебафа cast_camera_work текст ??? cast_fx текст эффект использования умения cast_fx_bone текст место модели где отображается эффект cast_fxc текст ??? cast_voice текст имя звукового файла с произнесением умения персонажем castcancel_fx текст эффект отменя умения castcancel_fx_bone текст место модели где отображается эффект отмены умения casting_delay целое время каста умения chain_category_level целое ??? chain_category_name текст место навыка в комбо сериях chain_category_priority текст ??? chain_skill_prob1 целое ??? везде 0 chain_skill_prob2 целое шанс срабатывания следующего умения в комбо chain_time целое время в течении которого возможно применение следующегоу мения в комбо change_stance текст stance1 - у навыков наподобии “блока щитом”, ээфект которых отменяется использованием других навыков clone целое ??? component текст предмет необходимый для использования умения component_count целое количество необходимых предметов component_expendable 0 или 1 предмет расходуется при активации? cost_checktime целое ??? cost_checktime_lv целое ??? cost_checktime_parameter текст hp или mp cost_dp целое базовая стоимость dp cost_dp_lv целое прибавка к стоимости dp за каждый уровень навыка cost_end целое базовые затраты в конце каста cost_end_lv целое прибавка к затратам за каждый уровень навыка cost_parameter текст что требуется на умение: hp, mp, hpratio, mpratio cost_start целое базовые затраты в начале каста cost_start_lv целое прибавка к затратам за каждый уровень навыка cost_time целое ??? cost_toggle целое базовые затраты на переключение навыка cost_toggle_lv целое прибавка к затратам за каждый уровень навыка counter_skill текст после какого блока используется боевое умение: block, parry или dodge delay_id целое идентификатор отката умений. умения с одинаковым delay_id имеют общий октат delay_time целое время отката умения delay_type 0 или 1 ??? desc текст название умения desc_abnormal текст описание отображемого бафа/дебафа desc_knight 0 или 1 1 для контратака щитом и ослабляющий удар desc_long текст описание умения desc_long_2nd текст второе описание desc_prechain_category_name текст название умения без уровней и т.п. видимо для отображения в окне серий умений dispel_category текст категория бафа/дебафа effect1_acc_mod1 целое ??? effect1_acc_mod2 целое ??? effect1_basiclv целое базовый уровень effect1_checkforchain 0 или 1 везде 0 effect1_checktime целое интервал срабатывания эффекта навыка (для дотов) effect1_cond_attack_dir 0 или 1 проверка направления атаки? effect1_cond_attack_dir_prob1 целое ??? effect1_cond_attack_dir_prob2 целое ??? effect1_cond_preeffect текст ??? effect1_cond_preeffect_prob1 целое ??? effect1_cond_preeffect_prob2 целое ??? effect1_cond_race текст условие на расу: gchief_dark, gchief_light effect1_cond_race_prob1 целое ??? effect1_cond_race_prob2 целое ??? effect1_cond_status текст проверка на статус effect1_cond_status_prob1 целое ??? effect1_cond_status_prob2 целое ??? effect1_critical_add_dmg_mod1 целое ??? effect1_critical_add_dmg_mod2 целое ??? effect1_critical_prob_mod1 целое ??? effect1_critical_prob_mod2 целое ??? effect1_effectid целое id эффекта от умения. схожие умения имеют одинаковый id effect1_hidemsg 0 или 1 ??? effect1_hop_a целое ??? effect1_hop_b целое ??? effect1_hop_type ??? effect1_noresist 0 или 1 не блокируемый эффект? effect1_randomtime целое максимальный разброс времени дейсвтия умения от минимального effect1_remain1 целое ??? effect1_remain2 целое похоже на время действие эффекта effect1_reserved_cond1 текст ??? effect1_reserved_cond1_prob1 целое ??? effect1_reserved_cond1_prob2 целое ??? effect1_reserved_cond2 текст ??? effect1_reserved_cond2_prob1 целое ??? effect1_reserved1 - effect1_reserved18 целое ??? effect1_target_type текст ??? effect1_type текст тип эффекта fire_fx текст звук навыка fire_fx_bone текст точка модели откуда появляется графический эффект fire_fxc текст ??? first_target текст первая цель умения: me, target, targetorme, point, mypet, target_myparty_nonvisible first_target_valid_distance целое максимальная дальность до цели hit_camera_shake дробное параметр для тряски камеры hit_camera_work текст ??? hit_fx текст графический эффект срабатывания/удара hit_fx_attacker_oriented 0 или 1 ??? hit_fx_bone текст точка модели где появляется графический эффект срабатывания/адара hit_fx_ex1 - hit_fx_ex5 текст дополнительные графические эффекты hit_fxc текст ??? hit_target_camera_shake дробное тряска камены при ударе hostile_type текст тип агра: none, direct, indirect id целое идентификатор умения instant_skill 0 или 1 мгновенное умение? interval_hit_fx текст графический эффект тика умения interval_hit_fx_bone текст место модели где появляется графический эффект от тика max_maintain_count целое максимальное число одновременного использования умения max_skill_point целое максимальные очки умения (какие-то бредовые цифры для крафтов) motion_mode текст ??? motion_name текст вид анимации при использовании умения motion_play_speed текст скорость анимации move_casting 0 или 1 используется на бегу? name текст текстовой идентификатор умения no_jump_cancel 0 или 1 не используется в прыжке? no_remove_at_die 0 или 1 не снимается при смерти? no_save_on_logout 0 или 1 не сохраняется при выходе? nonchained_delay_time целое ??? nouse_combat_state 0 или 1 1 для маскировочных умений obstacle целое ??? peace_skill 0 или 1 мирный навык? (не генерирует агро?) penalty_skill_succ текст ??? penalty_type_succ 0 или 1 ??? pre_fx текст ??? pre_fx_bone текст ??? pre_fx_delay текст ??? prechain_category_name текст ??? prechain_skillname текст ??? pvp_damage_ratio целое множитель урона в пвп pvp_remain_time_ratio целое коэффициент времени дейсвтия в пвп pvp_skill_cancel_bonus целое ??? reflect_fx текст графический эффект отражения умения remove_at_fly_end 0 или 1 не работает на земле? required_2hsword 0 или 1 нужен двуручный меч для использования умения? required_book 0 или 1 нужен гримуар для использования умения? required_bow 0 или 1 нужен лук для использования умения? required_dagger 0 или 1 нужен кинжал для использования умения? required_dispel_level целое ??? required_dp_lv ??? required_leftweapon текст требуемое оружие в левой руке: пусто или shield required_mace 0 или 1 нужен молот для использования умения? required_orb 0 или 1 нужен орб для использования умения? required_polearm 0 или 1 нужено копьё для использования умения? required_staff 0 или 1 нужен посох для использования умения? required_sword 0 или 1 нужен меч для использования умения? revision_distance целое ??? self_flying_restriction текст ограничение на использование: ground - только на земле, fly - только в полёте show_weapon 0 или 1 показывать оружие при использовании умения? skill_category текст категория навыка skillicon_name текст имя иконки навыка splash 0 или 1 массовое умение? status_fx текст название графического эффекта статуса status_fx_bone текст место модали для отображения графического эффекта статуса status_fx_slot текст слот графического эффекта статуса status_sfx1 текст звуковой эффект статуса status_shader текст шейдер эффекта статуса stc_desc текст текст описания статуса sub_type текст подтип умения target_flying_restriction текст при каком состояние цели можно использовать навык: any - любое, ground - на земле, fly - в полёте target_marker_radius целое ??? target_maxcount целое максимально количество целей для умения target_range текст цель aoe умения: onlyone, area, party, point, party_withpet target_range_area_type текст тип aoe: fireball , firestorm, lightningbolt (предположительно, название алгоритма для расчёта попадания аое) target_range_opt1 - target_range_opt3 целое параметры для дальности аое-умения target_relation_restriction текст доступная цель: enemy, friend, myparty, all target_slot текст название слота которое занимает статус умения: boost, buff, chant, debuff, none, noshow, special, special2 target_slot_level целое уровень слота: 0 - навыки, 2 - навыки в трансформе, 100 - эффекты артефактов target_species_restriction текст вид цели для уменя: all - любая цель, pc - только игроки, npc - только нпц/мобы target_stop 0 или 1 ??? target_valid_status1 - target_valid_status5 текст требуемый статус цели: bind, blind, openaerial, spin, stagger, stumble, stun trail_tex текст текстура следа от умения type текст тип умения: magical, physical ultra_skill 0 или 1 1 у некоторых дп навыков ultra_transfer 0 или 1 1 у навыка “передача дп” use_arrow 0 или 1 навык расходует стрелы? use_arrow_count целое кол-во расходуемых стрел Все атрибуты начинающиеся с effectxx имеют диапазон с effect1 до effect4, некоторые конкретные атрибуты могут отсутствовать для разных эффектов, да и вообще, как было сказано выше, не стоит заострять на них внимание. Ну и последнее что может пригодиться по навыкам - список навыков доступных персонажам. они хранятся в client_skill_learns.xml - тут всё просто и интуитивно понятно. таблица 5. навыки доступные классам Спойлер атрибут тип описание autolearn 0 или 1 автоматически получаемый навык? class текст название класса которому доступен навык (см. приложение а) id целое идентифкатор доступного навыка name текст тектсовой идентификатор (совпадает с id) pc_level целое уровень персонажа необходимый для получения навыка race текст раса котрой доступен навык: all,pc_light, pc_dark skill текст name навыка skill_level целое уровень навыка (который повышаются автоматически с ростом уровня персонажа) stigma_display 0 или 1 стигма-навык? ui_display 0 или 1 отображается в интерфейсе? 2.4. рецепты Рецепты для крафта и рецепты заказов находятся в файле: client_combine_recipe.xml. также описание заказов отдельно указано в combine_task.xml. Никаких премудростей. таблица 6. рецепты Спойлер атрибут тип опсиание auto_learn 0 или 1 автоизучаемый рецепт? combineskill текст название ремесла combo1_product - combo4_product текст результаты критического крафта compo1_quantity - compo7_quantity целое количество каждого из ингредиентов component1 - component7 текст ингредиенты для крафта component_quantity целое количество различный ингредиентов в рецепте craft_delay_id целое id для отката рецепта craft_delay_time целое время до повторного использования рецепта desc текст название рецепта desc_craftman текст ??? id целое идентификатор рецепта max_production_count целое максимальное возможное количество использования рецепта. после чего он пропадает из изученных. 0 - бесконечное число. name текст текстовой идентификатор рецепта product текст предмет - результат крафта product_quantity целое количество получаемых предметов qualification_race текст раса которая может использовать рецепт: pc_light, pc_dark require_dp целое затраты дп required_skillpoint целое требуемый уровень ремесла task_type 0 или 1 заказ? таблица 7. заказы Спойлер атрибут тип описание id целое идентификатор заказа task_npc текст нпц дающий заказ combineskill текст название ремесла combine_skillpoint целое требуемый уровень ремесла recipe_name текст рецепт product текст требуемы по заказу предмет и его количество (разделены пробелом) give_component1, give_component2 текст выдающиеся по заказу предметы для крафта и их количество (разделены пробелом) приложения приложение а. список возможных бонусов bonus_attrxx Спойлер название параметр описание arbleed целое сопротивление кровотечению arblind целое сопротивление ослеплению archarm целое сопротивление очарованию arconfuse целое сопротивление замешательству arcurse целое сопротивление проклятию ardisease целое сопротивление болезням arfear целое сопротивление страху aropenareial целое сопротивление воздушным оковам arparalyze целое сопротивление параличу arperification целое ??? arpoison целое сопротивление отравлению arroot целое сопротивление обездвиживанию arsilence целое сопротивление немоте arsleep целое сопротивление усыплению arslow целое сопротивление замедлению атаки arsnare целое замораживание нервов arspin целое сопротивление развороту arstagger целое сопротивление отталкиванию arstumble целое сопротивление опрокидыванию arstun целое сопротивление оглушению attackdelay процент скор. атаки block целое блок щитом boostcastingtime процент скор. магии boosthate процент скорость набора агрессии concentration целое концентрация critical целое крит. удар dodge целое уклонение elementaldefendair целое защита от воздуха elementaldefendearth целое защита от земли elementaldefendfire целое защита от огня elementaldefendwater целое защита от воды flyspeed процент скорость полёта healskillboost целое сила исцеления hitaccuracy целое точность magicalattack целое магическая атака magicalcritical целое магический критический удар magicalcriticaldamagereduce целое защита от критического удара магией magicalcriticalreducerate целое блок критического удара магией magicalhitaccuracy целое точность магии magicalresist целое магическая защита magicalskillboost целое сила магии magical_resist целое ??? maxfp целое время полёта maxhp целое макс. hp maxmp целое макс. mp parry целое парирование phyattack целое атака physicalcriticaldamagereduce целое защита от физического критического удара physicalcriticalreducerate целое блок физического критического удара physicaldefend целое физическая защита pvpattackratio целое урон в пвп pvpdefendratio целое защита в пвп speed целое скорость бега приложение б. названия классов персонажей Спойлер внутреннее название русское название fighter воин warrior гладиатор knight страж mage маг wizard волшебник elementalist/elementallist заклинатель rogue разбойник ranger стрелок assassin убийца priest жрец chanter чародей cleric целитель Please login or register to view links