Содержание   <<< Назад   Далее >>>

Формат файлов команд



Каждая команда в маде (команды, которые набирают игроки в мад-клиенте) - это файл. Одна команда - один файл. Каталог файлов команд мира указывается в переменных в главном конфигурационном файле мира. Ядро при своем запуске читает все файлы заданной каталоге.

Общий вид формата файла-команды следующий:

<?xml version="1.0" encoding="UTF-8"?>
<command type="тип команды">
  <case len="минимальная длина команды в буквах(число)" string="полная строка команды"/>
  ... данные скрипта, в зависимости от типа ...
</command>

описание:
  • тип команды - определяет что это за команда и ее механизм работы.
  • варианты написания команды - теги case. У каждой команды может быть несколько вариантов написания. Для каждого варианта - отдельный тег case. У тега case есть 2 обязательных атрибута - len и string. Параметр len определяет минимальную длину команды в символах, которую нужно ввести игроку, чтобы ядро однозначно распознало эту команду. При запуске, ядро контролирует варианты написания команд, чтобы они не пересекались. Параметр len может принимать значения от 1 и до длины строки команды. Параметр string определяет само написание команды.


  • Все существует несколько типов команд: text, script, sub.

    Команда типа text имеет следующий формат:
    
    <command type="text">
      <case .../>
      <text>
      текст
      </text>
    </command>
    
    Она представляет собой команду, предназначенную для вывода простой текстовой информации игроку, например, такую как счет или информация. Текст может содержать скрипты динамического описания. Сам текст, подлежащий выводу пишется между тегами text.

    Команда типа script имеет следующий формат:
    
    <command type="script">
      <case .../>
      <script id="command"><![CDATA[
      ...тело скрипта команды...  
      ]]></script>  
    </command>
    
    Этот тип команды является основным в ядре и предназначен для команд, которые представляют собой Lua-скрипт. Этому скрипту будет переданы все дополнительные параметры, если такие были. Пример использования команды такого типа - команды перемещения (с,ю,з,в и т.д).

    Команда типа sub имеет следующий формат:
    
    <command type="sub" dir="каталог подкоманд">
      <case .../>
      <error>
      текст ошибки
      </error>
      <empty>
      текст, при отсутствии подкоманды
      </empty>
    </command>
    
    Это тип команды является подкомандой. Т.е. она будет рассматривать первый параметр команды как свою подкоманду. Сами подкоманды (их файлы) должны находится в каталоге, указанном в атрибуте dir. Формат подкоманд идентичен формату основных команд. Пример применения такой команды - контекстная справка. Если не было найдено ни одной подкоманды, то игроку будет отправлено содержимое тега error - строки с информацией об ошибке. Строка empty отправляется, если команда введена без параметров, т.е. без подкоманды.

    Содержание   <<< Назад   Далее >>>