Guide Базовые обработчики для предметов

Настройка предметов​

  1. Создание предмета
    • Определите предмет в XML-файле (data/items/).
    • Укажите default_action из списка ниже.

Поддерживаемые действия​

  1. ACTION_SHOW_HTML
    • Отображает HTML-страницу из папки help/ с именем itemId.htm.
    • Пример: <etcitem id="6317" name="Mixing Manual"> с default_action="ACTION_SHOW_HTML".
    • Требуется: файл help/6317.htm в папке данных сервера.
  2. ACTION_SHOW_SSQ_STATUS
    • Показывает статус Seven Signs (SSQ) для игрока.
    • Пример: <etcitem id="XXXX" name="SSQ Status Item"> с default_action="ACTION_SHOW_SSQ_STATUS".
  3. ACTION_XMAS_OPEN
    • Открывает интерфейс рождественского события с указанным itemId.
    • Пример: <etcitem id="XXXX" name="XMas Seal"> с default_action="ACTION_XMAS_OPEN".
  4. ACTION_CALC
    • Открывает калькулятор для указанного itemId.
    • Пример: <etcitem id="XXXX" name="Calculator"> с default_action="ACTION_CALC".
  5. ACTION_DICE
    • Бросает кубик (1-6) и отображает результат в радиусе игрока.
    • Ограничения: нельзя использовать на Олимпиаде или в сидячем положении.
    • Пример: <etcitem id="XXXX" name="Dice"> с default_action="ACTION_DICE".
  6. ACTION_HARVEST
    • Выполняет действие "сбор урожая" с мертвого монстра с использованием скилла (ID 2098, уровень 1).
    • Требуется: цель - мертвый монстр.
    • Пример: <etcitem id="5125" name="Harvester"> с default_action="ACTION_HARVEST".
  7. ACTION_NICK_COLOR
    • Открывает интерфейс смены цвета ника с указанным itemId.
    • Пример: <etcitem id="XXXX" name="Nick Color Changer"> с default_action="ACTION_NICK_COLOR".
  8. ACTION_SHOW_MAP
    • Отображает миникарту для указанного itemId.
    • Пример: <etcitem id="XXXX" name="Map"> с default_action="ACTION_SHOW_MAP".
  9. ACTION_SHOW_MULTISELL
    • Открывает мультиселл-магазин с указанным itemId.
    • Требуется: соответствующий мультиселл-файл в data/multisell/.
    • Пример: <etcitem id="XXXX" name="Multisell Item"> с default_action="ACTION_SHOW_MULTISELL".
Пример XML:
Code:
<etcitem id="6317" name="Mixing Manual">
    <set name="default_action" value="ACTION_SHOW_HTML"/>
    <set name="tradeable" value="true"/>
    <set name="dropable" value="false"/>
    <set name="class" value="OTHER"/>
    <set name="crystal_type" value="NONE"/>
    <set name="icon" value="icon.etc_spellbook_red_i00"/>
    <set name="price" value="1"/>
    <set name="type" value="OTHER"/>
    <set name="weight" value="20"/>
</etcitem>

  • Дополнительные файлы
    • Для ACTION_SHOW_HTML: создайте HTML-файл в data/help/ с именем {itemId}.htm.
    • Для ACTION_SHOW_MULTISELL: настройте мультиселл в data/multisell/{itemId}.xml. Так же вы должнгы указать в конфигах самого мультиселла <config showall="true" notax="true" no_merchant="true" keepenchanted="false" />
Пример для предмета id 100500 где no_merchant="true"
gameserver/data/multisell/100500.xml
Code:
<?xml version='1.0' encoding='utf-8'?>
<!-- Adventure guildsman - Use Life Crystals (Aden) -->
<list>
<config showall="true" notax="true" no_merchant="true" keepenchanted="false" />
<!-- Crystal Staff -->
  <item id="1">
   <ingredient id="8158" count="102"/>
   <ingredient id="8161" count="28"/>
   <ingredient id="8164" count="112"/>
   <ingredient id="8167" count="56"/>
   <production id="192" count="1"/>
  </item>
</list>
 
Last edited:
А теперь для тупеньких, что за новая финча )?
можно вешать на предмет готовые действия без нужды писать код под каждый из них.
Можете переместить допустим сбор семян с одного предмета на другой или добавить открытие HTML или Multisell по двойному нажатию не утруждая себя экстеншеном
 
Ещё бы вызов НПЦ привязать, было бы хорошо
есть вызов диалогов, НПЦ никак не вызвать - там проверка на дистанцию.
 
можно вешать на предмет готовые действия без нужды писать код под каждый из них.
Можете переместить допустим сбор семян с одного предмета на другой или добавить открытие HTML или Multisell по двойному нажатию не утруждая себя экстеншеном
круто, спасибо
 
Как вписать в этот мультиселл этот же предмет как продукт, который открывает его ?
Что бы в предметах мильселла был именно этот ID , что бы после покупке 1го предмета он исчезал.
Что бы получалось примерно вот так
Code:
   <ingredient id="8167" count="56"/>
   <production id="281" count="1"/>
 
Back
Top