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

Главный конфигурационный файл мира


Главный файл мира, это тот файл, в котором хранятся основные настройки. Сам мир фактически является таким же обработчиком как и все остальные, т.е. он работает с аккаунтами. Это означает, что для загрузки файлов с настройками мира используется команда LoadTreats в главном конфигурационном файле сервера.

Примечание: Местоположение файла мира определяет корневой каталог мира. Все пути к файлам, которые содержатся в этом каталоге, будут расчитыватся от этого каталога.

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

<?xml version="1.0" encoding="UTF-8"?>
<config>    
    ...
</config>

Внутри тега config содержится множество подтегов-частей из следующего списка:
  • include
  • world/vars
  • world/directions
  • world/strings
  • world/scripts


  • Теги include, используются для загрузки в сервер дополнительных (обычных) обработчиков, используемых в мире. Например: работа со списком персонажей мира, различные меню и т.д.
    Пример использования тега include:
    
    <?xml version="1.0" encoding="UTF-8"?>
    <config>    
        ...
        <include>treats/main.xml</include>
        ...
    </config>
    

    Тег world содержит непосредственно параметры мира. Он может быть только один. Тег world делится в свою очередь на под-теги: vars, directions и т.д.
    Формат:
    
    <?xml version="1.0" encoding="UTF-8"?>
    <config>
        <world id="идентификатор">      
          <vars>	  
    	  ...
          </vars>
    	  
          <directions>
    	  ...
          </directions>
    	  
          <strings>
    	  ...
          </strings>
    	  
          <scripts>
    	  ...
          </scripts>
        </world>    
    </config>
    

    Идентификатор мира id - обязателен, при этом он должен быть уникальным. Этот идентификатор указывает на конкретный мир и он будет использоваться в скриптах.

    Тег vars содержит список обязательных переменных. Его формат следующий:
    
    <vars>
      <var name="имя переменной" value="значение переменной"/>  
    </vars>
    

    Список переменных (все переменные обязательны для определения):
    Имя переменнойНазначение, описание
    RootDirИмя главного каталога мира. Каталог, в котором находится этот файл.
    AccountsDirИмя каталога, где будут гранится файлы аккаунтов мира. В этих файлах - списки персонажей, палитра цветов и др.
    ActorsStatesFileПуть к файлу, содержащем общую часть стейтов персонажей и мобов.
    CharsStatesFileПуть к файлу, содержащего часть стейтов для персонажей.
    MobsStatesFileПуть к файлу со стейтами мобов.
    ObjectsStatesFileПуть к файлу со стейтами объектов мира.
    RoomsStatesFileПуть к файлу со стейтами комнат мира.
    WorldStatesFileПуть к файлу со стейтами самого мира.
    CharsDirИмя каталога, в котором будут хранится файлы персонажей мира.
    MobsDirИмя каталога с файлами прототипов мобов.
    ObjectsDirИмя каталога с файлами прототипов объектов.
    ZonesDirКаталог с файлами зон мира.
    CommandsDirИмя каталога с файлами команд.
    GroupsDirИмя каталога с файлами групп мира.
    HooksDirИмя каталога с файлами хуков мира.
    MobsCacheDirИмя каталога, в который сохраняются данные мобов мира, в случае остановки сервера.
    ObjectsCacheDirИмя каталога, в который сохраняются данные объектов мира, в случае остановки сервера.
    RoomsCacheDirИмя каталога, в который сохраняются данные комнат мира, в случае остановки сервера.
    WorldCacheFileИмя файла, в который сохраняются данные самого мира, в случае остановки сервера.
    MobsMethodsFileПуть к файлу с методами воздействия на мобов.
    ObjectsMethodsFileПуть к файлу с методами воздействия на объекты.
    ActorsMethodsFileФайл методов для персонажей.
    RoomsMethodsFileФайл методов комнат.
    WorldMethodsFileФайл методов мира.
    CharsTegsFileФайл с тегами персонажей.
    MobsTegsFileФайл с тегами мобов.
    ObjectsTegsFileФайл с тегами объектов.
    CharStateToFileИмя (идентификатор) стейта, который будет использоваться для формирования имени файла персонажа, при его создании.
    DefaultRoomИмя комнаты по умолчанию. Именно в эту комнату попадет персонаж, если не будет указана какая-либо другая комната.
    ActorsIdentifyStringСтрока идентификации персонажей. Имя стейта по которому будет производится поиск персонажей по строке поиска.

    Формат тега directions:
    
    <directions>
      <dir name="имя направления" id="идентификаторы направления" bar="строка выхода для бара"/>
    </directions>
    

    Данный раздел определяет, какие направления перемещений есть в маде. Т.е. можно создать не только основные 6 направлений (как в примере - север,юг,запад,восток,вверх,вниз), но и диагональные или совсем спецефические.

    Имя направления - это строка, которая участвует в выводе строки доступных направлений выхода. Идентификаторы - это подстроки (через запятую, если их несколько), которые используются для идентфикации определенного направления в в выходах из комнат. Строка выхода для бара - это строка направления, доступного в комнате, которая отображается в баре.
    Пример:
    
    <directions>
      <dir name="север" id="n,north" bar="С"/>
      <dir name="юг" id="s,south" bar="Ю"/>
    </directions>
    

    Формат тега strings:
    
    <strings>
      <string id="идентификатор строки">текст строки</string>
    </strings>
    

    Список cтрок (обязательное наличие строки actor):
    Идентификатор строкиНазначение, описание
    barСтрока бара (приглашение) по вводу команд. Отображается после всей другой информации.
    errorСтрока ошибки, которая выводится если ядро не смогло понять введенную игроком команду.
    actorСтрока динамического описания, которая используется для каждого отдельного персонажа в комнате.
    objectbeginНачало строки описания объекта в комнате (для каждого прототипа объекта своя строка, которая располагается между этим началом и окончанием).
    objectendОкончание строки описания объекта в комнате.
    mobbeginНачало строки описания моба в комнате.
    mobendОкончание строки описания моба в комнате.
    exitsbeginНачало строки со списком доступных выходов.
    exitsendОкончание строки со списком доступных выходов.
    roomnamebeginНачало строки заголовка комнаты.
    roomnameendОкончание строки заголовка комнаты.
    roombeginНачало описание комнаты.
    roomendОкончание описания комнаты.

    Формат тега scripts:
    
    <scripts>
      <script id="идентификатор скрипта"><![CDATA[
        ... тело скрипта ...
      ]]></script>
    </scripts>
    

    Список скриптов, которые могут быть здесь, представлены в таблице:
    Идентификатор cкриптаНазначение, описание
    oncreateСкрипт выполняется при создании мира.
    onmobСкрипт выполняется при создании нового моба (не прототипа). Скрипт выполняется перед скриптом 'oncreate' прототипа моба.
    onobjectСкрипт выполняется при создании нового объекта (не прототипа). Скрипт выполняется перед скриптом 'oncreate' прототипа объекта.
    enterСкрипт выполняется при входе персонажа в мир.
    disconnectСкрипт выполняется при обрыве связи с клиентом игрока персонажа.
    reconnectСкрипт выполняется при восстановлении связи с клиентом игрока персонажа.
    exitСкрипт выполняется при выходе персонажа из игры (мира).


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