Полный справочник по предметам

Расположение: data/items
Формат: XML

Для примера возьмём самый емкий Infinity Bow у которого id 6619 и тип предмета weapon

XML:
<weapon id="6619" name="Infinity Bow">
    <!-- [the_infinity_bow] -->
    <set name="price" value="48800000"/>
    <set name="crystal_count" value="2850"/>
    <set name="enchantable" value="false"/>
    <set name="atk_reuse" value="1398"/>
    <set name="crystal_type" value="S"/>
    <set name="destroyable" value="false"/>
    <set name="dropable" value="false"/>
    <set name="icon" value="icon.weapon_the_bow_of_hero_i00"/>
    <set name="mp_consume" value="21"/>
    <set name="rnd_dam" value="5"/>
    <set name="sellable" value="false"/>
    <set name="soulshots" value="1"/>
    <set name="spiritshots" value="1"/>
    <set name="tradeable" value="false"/>
    <set name="storeable" value="false"/>
    <set name="type" value="BOW"/>
    <set name="weight" value="1300"/>
    <equip>
      <slot id="LEFT_RIGHT_HAND"/>
    </equip>
    <triggers>
      <trigger id="3594" level="1" type="CRIT" chance="7"/>
    </triggers>
    <skills>
      <skill id="3593" level="1"/>
    </skills>
    <cond msgId="1518">
      <player is_hero="true"/>
    </cond>
    <cond msgId="1507">
      <not>
        <player olympiad="true"/>
      </not>
    </cond>
    <for>
      <add stat="pAtk" order="0x10" value="614"/>
      <add stat="mAtk" order="0x10" value="137"/>
      <set stat="baseCrit" order="0x08" value="120"/>
      <set stat="atkBaseSpeed" order="0x08" value="293"/>
      <add stat="accCombat" order="0x10" value="-4.0000"/>
      <enchant stat="pAtk" order="0x0C" value="0"/>
      <enchant stat="mAtk" order="0x0C" value="0"/>
    </for>
  </weapon>

1. Рассмотрим все поля по очереди:
Всего 3 категории предметов - weapon (оружие), armor (все что надевается на тело игрока), etcitem (куски, рецы, квест итемы и т.д) - в нашем примере <weapon id="6619" name="Infinity Bow"></weapon>
"id" - идентификатор предмета
"name" - его название. В основном используется для кастомных сервисов и выводе дропа. Может быть пустым, но в клиенте не забудьте присвоить ему имя.
"price" - цена предмета. При сдаче в магазин делится на 2 по умолчанию, так же цена учувствует для валидаци в личных лавках что бы не была ниже чем продажа в магазин.
"crystal_count" - количество кристаллов которые вы получите при сломе предмета, чем выше уровень заточки, тем больше кристаллов от базового значения.
"enchantable" - True/Fale можно точить предмет или нет. (По умолчанию true, даже если вы не добавили этот параметр)
"atk_reuse" - используется только для Лука. Это задержка на повторный выстрел, такая полоска надо головой.
"destroyable" - True/False можно ли удалить в корзину. (По умолчанию true, даже если вы не добавили этот параметр)
"dropable" - True/Fale можно ли выбросить на пол. (По умолчанию true, даже если вы не добавили этот параметр)
"sellable" - True/Fale можно ли продать предмет в магазин. (По умолчанию true, даже если вы не добавили этот параметр)
"freightable" - можно отправить как посылка или нет
"tradeable" - True/Fale можно ли продать предмет игроку. (По умолчанию true, даже если вы не добавили этот параметр)
"storeable" - True/Fale можно ли положить предмет в ВХ/КВХ. (По умолчанию true, даже если вы не добавили этот параметр)
"icon" - текстура иконки. Находится в игровом клиенте по умолчанию. Используется для отображении для сервисов типа Аукцион
"mp_consume" - используется для луков, сколько будет отнято MP при стрельбе.
"rnd_dam" - разброс урона. Базовый урон от +0 до +value
"weight" - Вес предмета

2. Рассмотрим типы предметов для каждой категории из (armor, weapon, etcitem)
В нашем примере: <set name="type" value="BOW"/>

armor:
NONE - без типа
LIGHT - легкие доспехи
HEAVY - тяжелые доспехи
MAGIC - магические доспехи
PET - доспехи пета
SIGIL - наручный стафф (Classic only)

weapon:
NONE - без типа. Для примера кулаки
SWORD - меч
BLUNT - блант
DAGGER - кинжал
BOW - лук
POLE - пика
ETC - в основном для монстров
FIST - кастеты (для проклятого оружия)
DUAL - 2 меча
DUALFIST - двуручные кастеты
BIGSWORD - двуручный меч
PET - оружие петов (намордник для волка как пример)
ROD - удочка
BIGBLUNT - двуручная дубина
DUALDAGGER - двуручный даггер (Classic only)

etcitem:
ARROW - стрелы для лука
MATERIAL - материалы для крафта
PET_COLLAR - вызов пета
POTION - банки и баффы
RECIPE - рецепты для крафта
SCROLL - свитки (заточка, телепорт и т.д.)
QUEST - квестовые предметы
MONEY - адена и любая другая расчетная валюта в мире
OTHER - если вы не уверены в типе предмета ставите его
SPELLBOOK - книги изучения умений
SEED - семена манора
BAIT - крючек для удочки
SHOT - тип для Spiritshot
BOLT - болт (Classic only)
RUNE - для рун которые храниться в инвентаре и дают скилы, даже если не надеты предмет
HERB - хербы
MERCENARY_TICKET - билеты лотереи
ARROW_QUIVER - колчан для стрел (Classic only)


3. Рассмотрим блок <equip></equip> :
<equip>
<slot id="LEFT_RIGHT_HAND"/>
</equip>
Всего типов слотов:
NONE - без типа (в основном для мобов)
CHEST - нагрудная часть
BELT - пояс (Classic only)
RIGHT_BRACELET - обычный браслет (Classic only)
LEFT_BRACELET - слот для Агатонов (Classic only)
BROOCH - Слот для броши (Classic only)
FULL_ARMOR - слот занимает нагрудную и штаны
HEAD - шлем
HAIR - слот для масок
FACE - слот для масок
HAIR_ALL - слот для масок
UNDERWEAR - слот для тату
BACK - плащи (Classic only)
NECKLACE - Ожерелье
LEGS - штаны
FEET - ботинки
GLOVES - перчатки
RIGHT_HAND - правая рука
LEFT_HAND - левая рука
LEFT_RIGHT_HAND - слот занимает обе руки
RIGHT_EAR - левая серьга
LEFT_EAR - правая серьга
RIGHT_FINGER - правый палец
LEFT_FINGER - левый палец
FORMAL_WEAR - слот занимает все свободные нательные ячейки
TALISMAN - слот для талисманов (Classic only)
BROOCH_JEWEL - слот для ювелирных украшений в броши (Classic only)
AGATHION_CHARMRM - слот для агатионов (Classic only)


4. Рассмотрим блоки скилов:

Пассивные\Активные скилы: В данном примере мы видим что при экиперовке предмета нам добавится пассивный скил с id 3593 и уровнем 1
<skills>
<skill id="3593" level="1"/>
</skills>
Шансовые скилы:
Скил 3594 c уровнем 1 будет срабатывать при критической атаке с шансом 7%
<triggers>
<trigger id="3594" level="1" type="CRIT" chance="7"/>
</triggers>
ADD - скилл срабатывает при добавлении в лист
ATTACK - скилл срабатывает при обычной атаке
RECEIVE_DAMAGE - скилл срабатывает при получении урона
CRIT - скилл срабатывает при крите
OFFENSIVE_PHYSICAL_SKILL_USE - скилл срабатывает при получении урона от физ скилов
OFFENSIVE_MAGICAL_SKILL_USE - скилл срабатывает при получении урона от маг скилов
SUPPORT_MAGICAL_SKILL_USE - скилл срабатывает при использовании магических скилов
UNDER_MISSED_ATTACK - скилл срабатывает при увороте
DIE - скилл срабатывает при смерти

5. Блок условий при которых можно экипировать оружие или армор:
Только герой:
<cond msgId="1518">
<player is_hero="true"/>
</cond>
Запрещено использовать на олимпиаде
<cond msgId="1507">
<not>
<player olympiad="true"/>
</not>
</cond>
Запрещено использовать на ПвП ивентах
<cond>
<not>
<player on_pvp_event="true"/>
</not>
</cond>
и далее список всех доступных (пример использования вы можете посмотреть в папке data/items)
classId - класс id
forbiddenClassId - запрещенный класс
olympiad - олимпиада
min_pledge_rank - ранк в клане
is_hero - герой или нет
on_pvp_event - проверка для ПвП ивентов
class_is_mage - магический класс (True/False)
instance_zone - инстанц зона
minLevel - минимальный уровень
maxLevel - максимальный уровень
race - расса (Elf,Dwarf etc)
gender - пол игрока
maxPK - макимаум ПК
damage - урон

6. Рассмотрим блок с статами:
<for>
<add stat="pAtk" order="0x10" value="614"/> - Физическая атака
<add stat="mAtk" order="0x10" value="137"/> - Магическая атака
<set stat="baseCrit" order="0x08" value="120"/> - базовая критическая атака
<set stat="atkBaseSpeed" order="0x08" value="293"/> - базовая скорость атаки
<add stat="accCombat" order="0x10" value="-4.0000"/> - точность
<enchant stat="pAtk" order="0x0C" value="0"/> - блок модификации статов при заточке Физ атаки
<enchant stat="mAtk" order="0x0C" value="0"/> - блок модификации статов при заточке Маг атаки
</for>
 
Last edited:
Чё ты за ересь несёшь, причем тут клиент вообще, можно дать статы через скил или же прям в хмл нужной шмотке или оружию, это в том случае если данные хранятся в датапаке, а не в базе, а на сколько знаю у вас так и есть.
Ну если ты олень, не умеющий читать - ничем тебе не могу помочь
П.с. лес там >>>>
 
Ну если ты олень, не умеющий читать - ничем тебе не могу помочь
П.с. лес там >>>>
Ну вообще он верно сказал, в клиенте это чисто описание добавить шмотке хоть статов, хоть чего ещё.
А сами характеристики шмоту только в xml давать
 
Ну вообще он верно сказал, в клиенте это чисто описание добавить шмотке хоть статов, хоть чего ещё.
А сами характеристики шмоту только в xml давать
Через скилл, я это написал постом выше
 
В клиенте ты не можешь указать шмотке "бег" или "каст", по этому ты добавляем все через скилл (привязываешь скилл к предмету). Если классик то есть отдельный файл - ItemStat-classic.dat (может что-то упустил в названии файла). Если обычный ИЛ клиент - то в armorgrp.dat или weapongrp.dat, в зависимости от предмета
Ещё раз для тебя тугодума тегну твой текст, сам прочитай и пойми что за ересь ты написал. Ах и да, я тебя так то не оскорблял.
 
Ещё раз для тебя тугодума тегну твой текст, сам прочитай и пойми что за ересь ты написал. Ах и да, я тебя так то не оскорблял.
Ересь пишешь ты!
Покажи мне шмотку с бегом сделанную не через скилл. Рабочую шмотку.
 
Ересь пишешь ты!
Покажи мне шмотку с бегом сделанную не через скилл. Рабочую шмотку.
Почти любой сет, он дает бег через сетовый скил, допустим Doom Robe Set
 
Продолжаю нуботесты на этот раз вопрос по поводу брони и оружия
На примере следующих вещей которые выдаются новичкам за купон (нг до 20уровня и д до 40уровня)

Code:
7816    Staff    для новичков    Ученический Adventurer's Staff
7817    Bone Club    для новичков    Ученический Adventurer's Bone Club
7818    Knife    для новичков    Ученический Adventurer's Knife
7819    Cestus    для новичков    Ученический Adventurer's Cestus
7820    Bow    для новичков    Ученический Adventurer's Bow
7821    Long Sword    для новичков    Ученический Adventurer's Long Sword
7822    Mace    для путешественников    Mace
7823    Dark Elven Bow    для путешественников    Dark Elven Bow
7824    Long Bow    для путешественников    Long Bow
7825    Staff    для путешественников    Staff
7826    Bastard Sword    для путешественников    Bastard Sword
7827    Wand    для путешественников    Wand
7828    Jamadhr    для путешественников    Jamadhr
7829    Tomahawk    для путешественников    Tomahawk
7830    Poniard Dagger    для путешественников    Poniard Dagger
7831    Pike    для путешественников    Pike

Не понимаю, как верно добавить возможность использовать оружие в пределах уровня "для новичков" - 1-19 лвл, для путешественников оружия 20-39.
перепробовал кучу вариантов
<cond>
<player minLevel="11"/> и <player maxLevel="11"/> и через теги <not>. <or> также не работает если вместе с параметром maxPK как там у них стоит.
</cond>
Данный параметр игнорируется и можно использовать при любом уровне. Вроде в этот раз не юзаю расу "жуков и прочие команды для мобов".
Решил сделать поиск по всем xml нашел вариант с тегами minlevel и maxlevel только у расходника bless raid charms. (тестировалось на аккаунте с уровнем 0 (не админ))

В общем, есть у кого рабочий код, чтобы тот или иной weapon\armor нельзя было одеть вне указанного уровня героя?)


Вопрос 2.
@Deazer
Какой максимальный msgId <cond msgId="1518"> (делал тесты со строками свыше 2000 в systemmsg.dat, все хорошо работает с зонами (zone peace pvp mother_tree etc.) запрашивает строку и зачитывает в чат), однако если делаешь ссылку фидах skills\items (например строку 2755, она существует в клиенте) - пишет что число не найдено и слишком большое. Подозреваю есть какой-то лимит в ядре?
 
Не понимаю, как верно добавить возможность использовать оружие в пределах уровня "для новичков" - 1-19 лвл
<cond msgId="1902">
<player maxLevel="20" />
</cond>
для путешественников оружия 20-39
<cond msgId="1902">
<player maxLevel="40" />
</cond>
 
Продолжаю нуботесты на этот раз вопрос по поводу брони и оружия
На примере следующих вещей которые выдаются новичкам за купон (нг до 20уровня и д до 40уровня)

Code:
7816    Staff    для новичков    Ученический Adventurer's Staff
7817    Bone Club    для новичков    Ученический Adventurer's Bone Club
7818    Knife    для новичков    Ученический Adventurer's Knife
7819    Cestus    для новичков    Ученический Adventurer's Cestus
7820    Bow    для новичков    Ученический Adventurer's Bow
7821    Long Sword    для новичков    Ученический Adventurer's Long Sword
7822    Mace    для путешественников    Mace
7823    Dark Elven Bow    для путешественников    Dark Elven Bow
7824    Long Bow    для путешественников    Long Bow
7825    Staff    для путешественников    Staff
7826    Bastard Sword    для путешественников    Bastard Sword
7827    Wand    для путешественников    Wand
7828    Jamadhr    для путешественников    Jamadhr
7829    Tomahawk    для путешественников    Tomahawk
7830    Poniard Dagger    для путешественников    Poniard Dagger
7831    Pike    для путешественников    Pike

Не понимаю, как верно добавить возможность использовать оружие в пределах уровня "для новичков" - 1-19 лвл, для путешественников оружия 20-39.
перепробовал кучу вариантов
<cond>
<player minLevel="11"/> и <player maxLevel="11"/> и через теги <not>. <or> также не работает если вместе с параметром maxPK как там у них стоит.
</cond>
Данный параметр игнорируется и можно использовать при любом уровне. Вроде в этот раз не юзаю расу "жуков и прочие команды для мобов".
Решил сделать поиск по всем xml нашел вариант с тегами minlevel и maxlevel только у расходника bless raid charms. (тестировалось на аккаунте с уровнем 0 (не админ))

В общем, есть у кого рабочий код, чтобы тот или иной weapon\armor нельзя было одеть вне указанного уровня героя?)


Вопрос 2.
@Deazer
Какой максимальный msgId <cond msgId="1518"> (делал тесты со строками свыше 2000 в systemmsg.dat, все хорошо работает с зонами (zone peace pvp mother_tree etc.) запрашивает строку и зачитывает в чат), однако если делаешь ссылку фидах skills\items (например строку 2755, она существует в клиенте) - пишет что число не найдено и слишком большое. Подозреваю есть какой-то лимит в ядре?
По поводу минимального лвл - возьми для примеа любой лс с лвлом, у них такое же ограничение стоит
 
По поводу минимального лвл - возьми для примеа любой лс с лвлом, у них такое же ограничение стоит
спасибо, синтаксическая ошибка была. Увидел, только при сравнении описания life stone :>
 
<enchant_options>
<level val="0">
<option id="60000"/>
</level>
Где редактируется данный параметр

Разобрался.
 
Добрый вечер, помогите найти проблемку в комплекте сета Major Arcana
Отображается эффект с неккоректно выставленным текстом:
Снимок экрана 2024-05-10 184037.png
Нужно исправить как на примере талума, от полного комплекта:

Снимок экрана 2024-05-10 184103.png

Где искать подскажите пожалуйста.
 
Добрый вечер, помогите найти проблемку в комплекте сета Major Arcana
Отображается эффект с неккоректно выставленным текстом:
View attachment 3896
Нужно исправить как на примере талума, от полного комплекта:

View attachment 3897

Где искать подскажите пожалуйста.
SetItemGrp_Classic-eu >
essential_setitem_desc={[[No Set Effect];[No Set Effect];[WIT+1, INT+1, MEN-2, Magic attack 17%, Speed +7, magic cancel rate -50%, stun vulnerability -50%, and weight limit +5759.]}
Вся строка (может у тебя другой эдитор)
Code:
setitem_group_begin    num=55    essential_setitem_id={{6383;105941};{6386;105942};{6384;105943};{6385;105944}}    essential_setitem_desc={[[No Set Effect];[No Set Effect];[WIT+1, INT+1, MEN-2, Magic attack 17%, Speed +7, magic cancel rate -50%, stun vulnerability -50%, and weight limit +5759.]}    additional_setitem_id={}    additional_setitem_desc={}    unk1=0    unk2=0    enchant_setitem_condition={{6;[When the set item is enchanted to +6 and above, P. Def. and weight gauge increase.]}}    setitem_group_end
 
Back
Top