1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Переполох Йорм Поэзия Календарь Гильдия Дайджест Календарь событий в Aion

Анатомия клиента Аion

Discussion in 'Гайды' started by ASPirine, Feb 17, 2011.

  1. ASPirine

    ASPirine User

    Joined:
    21.02.10
    Messages:
    9,176
    Likes Received:
    3,742
    анатомия клиента aion.

    содержание
    вступление
    требования
    1. распаковываем данные
    1.1. архивы
    1.2. изображений
    1.3. xml-файлы
    1.4. html-файлы
    2. разбираем xml-файлы
    2.1. файлы локализации
    2.2. предметы
    2.3. навыки
    2.4. рецепты


    вступление
    кто интересовался делами на евро серверах вероятнее всего видел сайты с информацией по серверам и персонажам, да и у корейцев тоже есть... и с досадой узнавал что для руоффа нету ничего похожего, базы на снифферах не всчёт ибо это совсем не то. однако, иннова понемногу начинается двигаться в сторону комьюнити и есть первые примеры по загрузке серверов и рейтингу бездны (кому не лень могут поискать). в будущем планируется открытый api, будем надеяться что не просто планируется, а в ближайшее время и появится :)
    именно к этому знаковому событию мы и начнём готовиться создав достав необходимый контент из клиента игры, благо его достаточно для создания различных баз и калькуляторов. надеюсь данная статья подтолкнёт администрацию к более быстрому осуществлению этих планов.
    эта статья скорее справочная информация нежели руководство к действию, со временем буду дополнять её новой информацией и вносить конкретику в непонятные моменты если таковые будут.
    приступим.

    !! в данной статье не рассматриваются способы модификации ресурсов игры, а только описываются способы их получения для построения на их основе базы данных.
    !! все приведённые таблицы и приложения верны для версии игры 2.1.2.

    требования
    итак вы подумали и решили начать создавать базу данных aion своими руками. если вы не знаете что такое xml, никогда в глаза не видели html, не умеете программировать и работать с базами данных, то на этом знакомство со статьёй можете завершить, она вряд ли сможет чем-то помочь. спасибо за внимание.

    если вы читаете эти строки то будем считать что необходимыми знаниями вы обладаете, либо не читали предыдущий абзац)

    для работы нам понадобятся:
    1. клиент игры aion (русский конечно же, либо отдельно файлы русской локализации)
    2. любой zip-архиватор
    3. пакетный конвертер (batch) изображений из формата dds в человекопонятный формат с возможностью обрезания (crop) изображений (например imageconverter plus, который будет использоваться в данной статье), либо набор разных утилит выполняющих эти функции.
    4. утилита для распаковки игровых архивов и xml-файлов. клац
    5. утилита для расшифровки html. клац(требуется 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.
    [​IMG]
    нажимаем кнопку “add folder” и выбираем папку c:\aiondb\items. в табличку загружается список наших файлов, окончания процесса можно не ждать и вернутсяь на 1ю закладку.
    обратите внимание в превью что изображение имеет размер 64х64 хотя реально занято только 40х40 пикселей - это особенность формата dds что изображение квадратное и размеры совпадают со степенью двойки. но не стоит волноваться, мы её сейчас победим)
    [​IMG]
    конвертер позволяет производить операции над файлами перед сохранением, в нашем случае нужно обрезание чтобы отсечь лишние пиксели изображения. добавляем его с помощью “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.
    [​IMG]
    жмём старт и немного ждём. через минуту-другую открывается окно проводника с папкой назначения, сразу бросается в глаза совпадающие имена файлов с приписками (1) и тд. это mip-уровни из dds файла (кому интересно читаем википедию). удалять их придётся в полу-ручном режиме отсортировав файлы по размеру. упросить это можно в total commander воспользовавшись меню выделение->выделить группу. нажимаем кнопку шаблон, в окошке вводим шаблон “\(\d\)” без кавычек, отмечаем галочку “регулярное выражение” и сохраняем. наш шаблон выделяет все ненужные нам файлы, удаляем их.
    [​IMG]
    всё, мы получили изображения всех предметов (ну может и не всех конечно).
    этого материала достаточно чтобы извлечь другие иконки и элементы интерфейса.

    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 файлы хранятся в зашифрованном виде
     
    Last edited by a moderator: May 18, 2011
  2. ASPirine

    ASPirine User

    Joined:
    21.02.10
    Messages:
    9,176
    Likes Received:
    3,742
    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. атрибуты строк локализации.
    [table1]атрибут тип описание
    id целое идентификатор
    name текст текстовой идентификатор
    body текст локализованный текст
    display_type целое ???
    message_type текст ???
    ment текст ???[/table1]

    все дальнейшие атрибуты на подобии “название предмета” или “описание навыка” являются текстовыми идентификаторами, ссылающимися на name в файл локализации.

    2.2. предметы
    самый сложный и большой файл как ни странно - client_items.xml, с его набором атрибутов придётся весьма основательно и долго повозиться, правда половина из них нам не понадобится. каждая запись не обязательно содержит весь список атрибутов, пустые как правило опускаются для экономии места.

    таблица 2. перечень возможных атрибутов предмета
    [table1]атрибут тип описание
    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 целое макс. уровень волшебника для использования предмета[/table1]
    как видно свалено в кучу всё что только можно и представляет из себя большую помойку. если для хранения подходит неплохо то для работы такая помойка весьма не эффективна. при загрузке придётся перелопатить структуру и создать дополнительные таблицы.
    как извлечь иконки предметов рассмотрено в 1й части статьи.
    помимо непосредственно характеристик предметов интерес представляют комплекты предметов и их бонусы. эта информация хранится в client_setitem.xml

    таблица 3. наборы предметов
    [table1]атрибут тип описание
    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 текст бонус за весь сет[/table1]
    список предметов входящих в набор указывается в атрибутах itemхх, где каждый номер соответствует определённому типу экипировки. набор значений в piece_bonus2 - piece_bonus5 и fullset_bonus имеют такой же формат как и bonus_attrxx в предметах (см. приложение а). если бонусов несколько, то они указываются через точку с запятой.

    2.3. навыки
    количество информации по навыкам намного больше чем по предметам, но помойку из себя она не представляет и почти вся информация требуется клиенту для корректной обработки и отображения навыка. также очень многие атрибуты не совсем понятны для чего они и вообще зачем такая конкретика нужна в клиенте (а главное, под вопросом их соответствие серверным значениям), те у кого есть желания могут поковыряться с ними отдельно - в базе данных они не пригодятся.

    таблица 4. атрибуты навыков.
    [table1]атрибут тип описание
    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 целое кол-во расходуемых стрел[/table1]
    все атрибуты начинающиеся с effectxx имеют диапазон с effect1 до effect4, некоторые конкретные атрибуты могут отсутствовать для разных эффектов, да и вообще, как было сказано выше, не стоит заострять на них внимание.

    ну и последнее что может пригодиться по навыкам - список навыков доступных персонажам. они хранятся в client_skill_learns.xml - тут всё просто и интуитивно понятно.

    таблица 5. навыки доступные классам
    [table1]атрибут тип описание
    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 отображается в интерфейсе?[/table1]

    2.4. рецепты
    рецепты для крафта и рецепты заказов находятся в файле: client_combine_recipe.xml. также описание заказов отдельно указано в combine_task.xml. никаких премудростей.

    таблица 6. рецепты
    [table1]атрибут тип опсиание
    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 заказ?[/table1]

    таблица 7. заказы
    [table1]атрибут тип описание
    id целое идентификатор заказа
    task_npc текст нпц дающий заказ
    combineskill текст название ремесла
    combine_skillpoint целое требуемый уровень ремесла
    recipe_name текст рецепт
    product текст требуемы по заказу предмет и его количество (разделены пробелом)
    give_component1, give_component2 текст выдающиеся по заказу предметы для крафта и их количество (разделены пробелом)[/table1]
     
    Last edited by a moderator: May 18, 2011
  3. ASPirine

    ASPirine User

    Joined:
    21.02.10
    Messages:
    9,176
    Likes Received:
    3,742
    приложения

    приложение а. список возможных бонусов bonus_attrxx
    [table1]название параметр описание
    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 целое скорость бега[/table1]


    приложение б. названия классов персонажей
    [table1]внутреннее название русское название
    fighter воин
    warrior гладиатор
    knight страж
    mage маг
    wizard волшебник
    elementalist/elementallist заклинатель
    rogue разбойник
    ranger стрелок
    assassin убийца
    priest жрец
    chanter чародей
    cleric целитель[/table1]
     
  4. Амино

    Амино User

    Joined:
    21.12.10
    Messages:
    6
    Likes Received:
    0
    очень интересная статья:good3:
     
  5. LoliHentai

    LoliHentai User

    Joined:
    14.07.10
    Messages:
    134
    Likes Received:
    0
    мне интересно как они 3d модельки извлекают и запихивают в бд по конкретному персонажу.
     
  6. FastKills

    FastKills User

    Joined:
    07.09.10
    Messages:
    652
    Likes Received:
    16
    спасибо за проделанную работу, очень интересная статья)
     
  7. willmore

    willmore User

    Joined:
    21.04.10
    Messages:
    672
    Likes Received:
    24
    отличная статья.
     
  8. FastKills

    FastKills User

    Joined:
    07.09.10
    Messages:
    652
    Likes Received:
    16
    http://ru.aiondatabase.com/item/114300950
    <option_slot_bonus>0</option_slot_bonus>

    в ап с 6 дырками не может быть доп камень)
     
  9. ASPirine

    ASPirine User

    Joined:
    21.02.10
    Messages:
    9,176
    Likes Received:
    3,742
    что не так? в голд ап 6 дырок и ещё 1 бонусного там быть не может.
    количество "родных" дырок считается от ранга предмета, вроде как общие закономерности прослеживаются, но ковырять глубже нету возможности
    к чему я там написал "1 есть всегда" не помню) видимо вообще не к этому относилось
     
    Last edited by a moderator: May 4, 2011
  10. FastKills

    FastKills User

    Joined:
    07.09.10
    Messages:
    652
    Likes Received:
    16
    ну я просто нашел случай, когда не всегда 1 там стоит. еще у некоторых предметов 2 стоит) так что лучше без приписки
     
  11. ASPirine

    ASPirine User

    Joined:
    21.02.10
    Messages:
    9,176
    Likes Received:
    3,742
    там даже 5 есть, комент тот щас уберу
     
  12. FastKills

    FastKills User

    Joined:
    07.09.10
    Messages:
    652
    Likes Received:
    16
    у скилов.
    <cost_end_lv>3</cost_end_lv>
    <cost_end>215</cost_end>
    215-кол-во маны требуемое для скила на 0 уровне(в теории)
    215+3*лвл-кол-во маны на лвл уровне.
    для примера я взял огненный гарпун 4(ур8). требует 239 маны. 215+8*3
    огонь бездны 3(ур 2)
    <cost_end_lv>16</cost_end_lv>
    <cost_end>720</cost_end>
    720+16*2=752. в игре так же 752.

    aspirine, если есть время попробуй пожалуйста разобраться что дают :
    очень интересно:)
     
  13. ASPirine

    ASPirine User

    Joined:
    21.02.10
    Messages:
    9,176
    Likes Received:
    3,742
    добавил комментарии по поводу файлов локализации в 2.5

    спасибо, дописал

    могут значит всё что угодно, начиная от громкости звукового эффекта до количества волос в бороде программиста писавшего этот кусок. они потому и reserved что там хранится разнотипная дрянь которую незачем было выделять в отдельное поле.
     
  14. 111kot111

    111kot111 User

    Joined:
    25.09.11
    Messages:
    1
    Likes Received:
    0
    поменял значение манны для скила в файле "client_skills", почему то название моего скила встречалось три раза, поменял во всёх трёх....
    после этого запустил игру, в параметрах скила пишется то значение которое я поставил, а маны затрачивается как и раньше.
    может я что то не то менял? и почему мой скил три раза встречался, так и нужно?

    <cost_parameter>mp</cost_parameter>
    <cost_end>3000</cost_end>
    3000 - поставил я... может я не там менял? названия скилов я находил по картинкам в этом же паке
    за ранее спасибо)
     
  15. Ari0nhh

    Ari0nhh User

    Joined:
    22.12.09
    Messages:
    4,684
    Likes Received:
    356
    кэп полагает, что это связано с тем, что расход маны считается на сервере. все эти таблицы на клиенте только для нужд визуализации.
    также, я искренне надеюсь, что вы производили свои эксперименты не на боевом сервере, ибо за подобное полагается автоматический бан.
     
    effectZX likes this.
  16. ErgallM

    ErgallM User

    Joined:
    15.10.10
    Messages:
    12
    Likes Received:
    0
    либо плохо глядел, либо не нашел "отмена магии" в 3.0 появилась, может это как раз "magical_resist"?
     
  17. Welcome

    Welcome User

    Joined:
    28.02.10
    Messages:
    2
    Likes Received:
    0
    очень интересно. а не подскажите. где находятся модели и текстуры городов?
     
  18. DimkaTsv

    DimkaTsv User

    Joined:
    15.05.12
    Messages:
    191
    Likes Received:
    12
    ага я тут вычитал недавно что точность магии у блистательной вспышки iv и v различается в доп статах как +100 / +200 ((( пришлось доплатить 11к апа на апгрейд т.к iv мазала ) но правда искть скилы долго но я теперь по иконкам ищу я уже расшифровал все обозначения effect2_acc_mod1 - +физ точность
    effect2_acc_mod2 - +маг точность
    иии пост скрипт !!! из клиента можно для себя выпотрошить все скрытые доп!!!статы скилов
    например у вспышек клейма убийц модификатор точности магии - +500 !!!
     
  19. effectZX

    effectZX User

    Joined:
    30.06.11
    Messages:
    829
    Likes Received:
    184
    В каких файлах клиента хранятся параметры рейд боссов?