Открывающиеся сундуки и их опции

Путь: gameserver/data/capsule_items.xml

1. Структура файла capsule_items.xml
XML:
<?xml version="1.0" encoding="UTF-8"?>
<list>
    <!-- Пример 1: Обычная коробка с равными шансами -->
    <capsule itemId="22000" consume="true">
        <item id="22006" min="3" max="3" chance="20.55555" />
        <item id="22007" min="2" max="2" chance="14.01515" />
        <item id="22008" min="1" max="1" chance="6.16666" />
        <!-- ... остальные предметы ... -->
        <item id="22025" min="5" max="5" chance="12.77777" />
    </capsule>

    <!-- Пример 2: Премиум-версия той же коробки -->
    <capsule itemId="22001">
        <item id="22007" min="3" max="3" chance="27.27272" />
        <item id="22008" min="2" max="2" chance="9" />
        <!-- ... -->
        <!-- Премиум-награды (работают только у игроков с Premium/PA) -->
        <premium_item id="8749" min="1" max="1" chance="15" />
        <premium_item id="8750" min="1" max="1" chance="15" />
    </capsule>

    <!-- Пример 3: Требуется предмет для открытия -->
    <capsule itemId="9599" requiredItemId="9600" requiredItemAmount="1">
        <item id="9600" min="1" max="2" chance="4" />
        <item id="9601" min="1" max="2" chance="10" />
        <item id="9602" min="1" max="1" chance="1" />
    </capsule>

    <!-- Пример 4: Зачарованные предметы -->
    <capsule itemId="21799">
        <item id="21793" min="1" max="1" enchant_min="0" enchant_max="0" chance="100" />
        <item id="21794" min="1" max="1" enchant_min="0" enchant_max="0" chance="100" />
        <!-- все предметы из сета -->
    </capsule>
</list>

2) Полный список атрибутов
Для тега <capsule>:
  • itemId - ID капсулы (обязательно)
  • requiredItemId- ID предмета, который требуется для открытия (0 = не требуется)
  • requiredItemAmount - количество требуемого предмета
  • consume="true|false"- удалять ли саму капсулу после использования (по умолчанию true)

Для тегов <item> и <premium_item>:
  • id - ID награды
  • min / max - количество (если min=max - фиксированное)
  • chance - шанс в процентах с точностью до 5 знаков после запятой (сумма ≤ 100.00)
  • enchant_min / enchant_max - зачарование (если min=max - фиксированное, иначе рандом в диапазоне)
Важно:
  • Из списка <item> и <premium_item> одновременно выпадает только ОДИН предмет (или ничего, если сумма шансов < 100%).
  • Все предметы с chance="100" выпадают всегда (фиксированные награды).
  • Премиум-награды работают только у игроков с активным Premium Account.

3) Как добавить новую коробку
  1. Открой gameserver/data/capsule_items.xml
  2. Добавь новый блок <capsule itemId="ТВОЙ_ID">
  3. Заполни <item> и при желании <premium_item>
  4. Сохрани файл
  5. Перезагрузить сервер
 
Last edited:
Реализуйте возможность открытия сундуков с определенного лвла @Deazer
Разобрался.
<cond msgId="1902">
<player minLevel="52"/>
</cond>
 
Last edited:
<etcitem id="70803" name="Transform Box" >
<set name="icon" value="icon.etc_treasure_box_i02" />
<set name="class" value="MISC"/>
<set name="reuse_type" value="EVERY_DAY_AT_6_30"/>
<set name="crystal_type" value="NONE"/>
<set name="stackable" value="true"/>
<set name="tradeable" value="false"/>
<set name="storeable" value="false"/>
<set name="dropable" value="false"/>
<set name="sellable" value="false"/>
<set name="type" value="MATERIAL"/>
<set name="weight" value="60"/>
<set name="temporal" value="true"/>
<set name="durability" value="10080"/>
Как реализовать в данном случае открывающий сундук раз в сутки таким образом, чтобы он при первом и последующем использовании не исчезал?
 
Как реализовать в данном случае открывающий сундук раз в сутки таким образом, чтобы он при первом и последующем использовании не исчезал?
  • Добавлена возможность не изымать предмет в CapsuleItems. Пример: <capsule itemId="13027" consume="false">
 
а есть возможно группировать итемы?
Типо: при открытие сундука дается 1 из 5 сетов, т.к сеты состоят из 4-5 предметов, то хотелось бы, что бы при открытии гарантом выпадал 1 целый сет из 5 возможных.
 
а есть возможно группировать итемы?
Типо: при открытие сундука дается 1 из 5 сетов, т.к сеты состоят из 4-5 предметов, то хотелось бы, что бы при открытии гарантом выпадал 1 целый сет из 5 возможных.
коробки в коробке или делай просто шансовый мультиселл
 
@Deazer, возможно расширить функционал, чтобы при открытии бокса выдавало премиум аккаунт по id
Code:
<!ELEMENT list (capsule)*>
<!ELEMENT capsule (item)*>
<!ATTLIST capsule
          itemId CDATA #REQUIRED
          requiredItemId CDATA #IMPLIED
          requiredItemAmount CDATA #IMPLIED>
<!ELEMENT item (#PCDATA)>
<!ATTLIST item
          id CDATA #REQUIRED
          max CDATA #REQUIRED
          min CDATA #REQUIRED
          chance CDATA #REQUIRED
          enchant_min CDATA #IMPLIED
          enchant_max CDATA #IMPLIED>

что-то вроде <premium id="1" />
как это реализовано тут
Code:
<!ELEMENT list (code)*>
<!ELEMENT code (date|item|exp|sp|addLevel|setLevel|premium)*>
<!ATTLIST code
        limitByUser CDATA #IMPLIED
        limitByHWID CDATA #IMPLIED
        limitByIP CDATA #IMPLIED
        minLevel CDATA #IMPLIED
        maxLevel CDATA #IMPLIED
        limit CDATA #IMPLIED
        name CDATA #REQUIRED>
<!ELEMENT date (#PCDATA)>
<!ATTLIST date
        from CDATA #REQUIRED
        to CDATA #REQUIRED>
<!ELEMENT item (#PCDATA)>
<!ATTLIST item
        id CDATA #REQUIRED
        enchant CDATA #IMPLIED
        durability CDATA #IMPLIED
        count CDATA #IMPLIED>
<!ELEMENT exp (#PCDATA)>
<!ATTLIST exp
        val CDATA #REQUIRED>
<!ELEMENT sp (#PCDATA)>
<!ATTLIST sp
        val CDATA #REQUIRED>
<!ELEMENT setLevel (#PCDATA)>
<!ATTLIST setLevel
        val CDATA #REQUIRED>
<!ELEMENT premium (#PCDATA)>
<!ATTLIST premium
        id CDATA #REQUIRED>
<!ELEMENT addLevel (#PCDATA)>
<!ATTLIST addLevel
    val CDATA #REQUIRED>
 
@Deazer, возможно расширить функционал, чтобы при открытии бокса выдавало премиум аккаунт по id
Code:
<!ELEMENT list (capsule)*>
<!ELEMENT capsule (item)*>
<!ATTLIST capsule
          itemId CDATA #REQUIRED
          requiredItemId CDATA #IMPLIED
          requiredItemAmount CDATA #IMPLIED>
<!ELEMENT item (#PCDATA)>
<!ATTLIST item
          id CDATA #REQUIRED
          max CDATA #REQUIRED
          min CDATA #REQUIRED
          chance CDATA #REQUIRED
          enchant_min CDATA #IMPLIED
          enchant_max CDATA #IMPLIED>

что-то вроде <premium id="1" />
как это реализовано тут
Code:
<!ELEMENT list (code)*>
<!ELEMENT code (date|item|exp|sp|addLevel|setLevel|premium)*>
<!ATTLIST code
        limitByUser CDATA #IMPLIED
        limitByHWID CDATA #IMPLIED
        limitByIP CDATA #IMPLIED
        minLevel CDATA #IMPLIED
        maxLevel CDATA #IMPLIED
        limit CDATA #IMPLIED
        name CDATA #REQUIRED>
<!ELEMENT date (#PCDATA)>
<!ATTLIST date
        from CDATA #REQUIRED
        to CDATA #REQUIRED>
<!ELEMENT item (#PCDATA)>
<!ATTLIST item
        id CDATA #REQUIRED
        enchant CDATA #IMPLIED
        durability CDATA #IMPLIED
        count CDATA #IMPLIED>
<!ELEMENT exp (#PCDATA)>
<!ATTLIST exp
        val CDATA #REQUIRED>
<!ELEMENT sp (#PCDATA)>
<!ATTLIST sp
        val CDATA #REQUIRED>
<!ELEMENT setLevel (#PCDATA)>
<!ATTLIST setLevel
        val CDATA #REQUIRED>
<!ELEMENT premium (#PCDATA)>
<!ATTLIST premium
        id CDATA #REQUIRED>
<!ELEMENT addLevel (#PCDATA)>
<!ATTLIST addLevel
    val CDATA #REQUIRED>
Добавь итем который будет давать ПА, а его уже в капсулу
Если хочешь что бы не копили сделай его временным и не передаваемым
 
Добавь итем который будет давать ПА, а его уже в капсулу
Если хочешь что бы не копили сделай его временным и не передаваемым
Этот способ я держу на заметку, но интересна реализация именно с капсулы, как получение с промо, подожду дизера.
 
@Deazer возможно ли добавить вывод необходимого предмета в системный чат для данного параметра? requiredItemId="9991" requiredItemAmount="15", чтобы писало в системный чат какого предмета не хватает для открытия бокса?
 
@Deazer возможно ли добавить вывод необходимого предмета в системный чат для данного параметра? requiredItemId="9991" requiredItemAmount="15", чтобы писало в системный чат какого предмета не хватает для открытия бокса?
Да, идея вполне резонная. Кидай тикет - сделаю.
 
@Deazer Возможно добавить функцию группового шанса?
Имел ввиду создавать шанс для группы предметов,
т.е по типу:
<group_chance="34.">
item id="853" min="1" max="1"
item id="854" min="1" max="1"
item id="856" min="1" max="1"
<group_chance="24.">
item id="853" min="1" max="1"
item id="854" min="1" max="1"
item id="856" min="1" max="1"
ну и так далее....
 
<capsule itemId="9919" consume="false">
consume="false" при использовании команды сундук все равно исчез, как сделать чтобы сундук не исчезал после открытия и выставить ему лимит кол-ва открытий?
@Deazer подскажи, пожалуйста
 
<capsule itemId="9919" consume="false">
consume="false" при использовании команды сундук все равно исчез, как сделать чтобы сундук не исчезал после открытия и выставить ему лимит кол-ва открытий?
@Deazer подскажи, пожалуйста
Так эта команда отвечает брать или не брать предмет для открытия сундука.
 
<capsule itemId="9919" consume="false">
consume="false" при использовании команды сундук все равно исчез, как сделать чтобы сундук не исчезал после открытия и выставить ему лимит кол-ва открытий?
@Deazer подскажи, пожалуйста
<set name="reuse_type" value="EVERY_DAY_AT_6_30"/> - это лимит на 1 раз в сутки, добавляешь в код самого сундука
 
Добавь в капсулу еще одну капсулу с 100% шасом, в итоге получишь бесконечную капсулу.))
 
<set name="reuse_type" value="EVERY_DAY_AT_6_30"/> - это лимит на 1 раз в сутки, добавляешь в код самого сундука
а выставить как например на 7 ней и потом исчез?
 
Back
Top