--------------------------------------------------------------------------------
--- Описание структуры файлов, описывающих инстансы
---
--- Местонахождение: data/instances/*.xml
--------------------------------------------------------------------------------
Нода instance:
id - идентификатор инстанса.
name - название инстанса.
Так же может содержать в себе следующие субноды: params, return, teleport, spawns, doors, zones.
Субнода params:
Содержит в себе субноды param, с атрибутами name и value - название параметра и его значение.
Допустимые параметры и их значения:
entryType - тип инстанса. Допустимые значения: SOLO - для одного игрока, PARTY - для группы, COMMAND_CHANNEL -
для командного канала. Можно перечислить несколько типов через точку с запятой. Если параметр не задан, то
он определяется автоматически по параметру "players". Если перечисляется несколько типов входа, то для корректной
работы желательно перечислять типы в следующем порядке: COMMAND_CHANNEL, PARTY, SOLO.
levels - лимит уровней игроков. Строка вида "minLevel;maxLevel". Если не задан максимальный уровень, то он равен
максимально достижимому уровню.
Значение по умолчанию - 1;110.
players - лимит количества игроков. Строка вида "minCount;maxCount". Если не задано максимальное количество, то
оно равно минимальному количеству. Если не задан явно параметр "entryType", то именно от значения этого
параметра зависит то, какой тип выставится инстансу (соло, для пати, для КК): минимальное количество
равно 1 - соло; минимальное количество от 2 до 7 включительно и максимальное количество не больше 7 - для пати;
максимальное количество больше 7 - для КК.
Значение по умолчанию - 1;1.
timeLimit - лимит времени инстанса, в минутах. Если значение больше 0, то при создании инстанса активируется задача,
закрывающая этот инстанс через заданное время.
Значение по умолчанию - 0.
maxChannels - лимит одновременно существующих инстансов данного вида. Указывает, сколько инстансов этого вида может
существовать одновременно на сервере.
Значение по умолчанию - 20.
collapseIfEmpty - через сколько минут закрыть инстанс, если его покинули все игроки. При значении равном -1 функция
отключается.
Значение по умолчанию - 0.
collapseIfPartyDismiss - через сколько минут закрыть инстанс, если группа игроков, находящаяся в нем, была распущена.
При значении равном 0 функция отключается.
Значение по умолчанию - 1.
collapseIfCommandChannelDismiss - через сколько минут закрыть инстанс, если командный канал игроков, находящихся в нем,
был распущен. При значении равном 0 функция отключается.
Значение по умолчанию - 0.
kickIfDead - через сколько минут выбросить мертвого игрока из инстанса, если его никто за это время не воскресил.
При значении равном 0 функция отключается.
Значение по умолчанию - 1.
dispelBuffs - снимать или нет все баффы с игроков при заходе в инстанс.
Значение по умолчанию - false.
timerMode - режим показа таймера, находящимся в инстансе игрокам. Допустимые значения: NONE - не показывать время,
ELAPSED - прошло времени, REMAINING - осталось времени.
Значение по умолчанию - NONE.
timerTime - с какого значения, в секундах, начать отсчет времени на таймере.
Значение по умолчанию - timeLimit * 60.
removeItem - предметы, проверяемые у игроков при попытке входа в инстанс и удаляемые при успешном входе в него.
Строка вида "itemId,itemId ... itemId;count;removeType". Если задано несколько разных предметов, то необходимо
наличие хотя бы одного из них. Если количество предметов не задано, то оно равно 1. Значение removeType отвечает
за то, у кого будут удалены требуемые предметы: 0 - у всех входящих в инстанс; 1 - только у лидера группы/КК.
Если значение removeType не задано, то оно равно 0.
Значение по умолчанию - 0;0;0.
requiredItem - предметы, проверяемые у игроков при попытке входа в инстанс и не удаляемые при входе в него.
Строка вида "itemId,itemId ... itemId;count". Если задано несколько разных предметов, то необходимо наличие
хотя бы одного из них. Если количество предметов не задано, то оно равно 1.
Значение по умолчанию - 0;0.
giveItem - предметы, выдаваемые игрокам при входе в инстанс. Строка вида "itemId,itemId ... itemId;count".
Если количество предметов не задано, то оно равно 1.
Значение по умолчанию - 0;0.
geodata - сектор геодаты, в котором находится инстанс. Необходим в инстансах с дверями, т.к. без указания сектора
в таком инстансе будут проблемы с проходом через открытые двери.
Значение по умолчанию - сектор не задан.
requiredQuestId - идентификатор начатого или выполненного квеста, который должен быть у игрока для входа в инстанс.
При значении равном 0 наличие квеста не проверяется.
Значение по умолчанию - 0.
onlyStartedQuest - дополнительное условие для предыдущего параметра. Если равно true, то проверяются только начатые
квесты.
Значение по умолчанию - true.
resetReuse - ближайшее время, в которое сбрасывается ограничение на вход в инстанс. Задается строкой в формате Cron.
Значение по умолчанию - "* * * * *" (можно сразу же повторно зайти в инстанс).
setReuseUponEntry - устанавливать или нет реюз при входе в инстанс. Если значение равно false, то реюз по необходимости
необходимо выставлять игрокам вручную.
Значение по умолчанию - true.
sharedReuseGroup - общая группа реюза. У всех инстансов с одинаковой группой, со значением больше 0, будет выставляться
одинаковый реюз.
Значение по умолчанию - 0.
removeVisitor - Удалять или нет вышедшего из инстанса игрока из списка посетивших этот инстанс. Может пригодиться для
статичных инстансов, которые существуют после создания до выключения сервера.
Значение по умолчанию - false.
Кроме того, можно задавать и свои параметры, читая их потом через метод getParams() инстанса.
Для параметров removeItem и requiredItem, кроме обычных предметов можно так же указывать очки PC Cafe (-100), славу (-300) и
рейдовые очки (-500) - в скобках указаны их идентификаторы.
Субнода return:
loc - координаты, в которые перемещаются игроки при закрытии инстанса или выходе через SOE/смерть.
Субнода teleport (можно задавать несколько таких субнод):
loc - координаты, в которые перемещаются игроки при телепорте в инстанс.
Субнода spawns:
Может содержать в себе субноды group и spawn.
Субнода group может иметь следующие атрибуты:
name - название группы спавна.
spawned - должна ли группа спавнится сразу же после создания инстанса. Значение по умолчанию - false.
Субнода spawn может иметь следующие атрибуты:
id - идентификаторы нпс. Строка вида "npcId;npcId ... npcId".
count - количество нпс для спавна.
Значение по умолчанию - 1.
respawn - время респавна в секундах. При значении равном 0 респавн отключается.
Значение по умолчанию - 0.
respawnRnd - разброс времени респавна в секундах.
Значение по умолчанию - 0.
type - тип спавна. Может принимать следующие значения: 0 - точечный, в каждой указанной точке; 1 - один точечный
спаун в рандомной точке; 2 - локационный.
Значение по умолчанию - 0.
Так же данная субнода имеет субноды coords, в которых описываются точки спавна или территория, внутри которой будут
заспавлены нпс.
Субнода doors:
Может содержать в себе субноды door, описывающие двери в инстансе.
Субнода door может иметь следующие атрибуты:
id - идентификатор двери.
opened - начальное состояние двери. При значении равном true - открыта.
Значение по умолчанию - false.
invul - неуязвима или нет дверь.
Значение по умолчанию - true.
Субнода zones:
Может содержать в себе субноды zone, описывающие зоны в инстансе.
Субнода zone может иметь следующие атрибуты:
name - название зоны.
active - начальное состояние зоны.
Значение по умолчанию - false.