Получить информацию об инстанс-ивенте с заданным id.
-- библиотека: matchMaking -- объявление: function GetEventInfo( eventId ) -- параметры: eventId: ObjectId - id инстанс-ивента, о котором запрашивается информация -- возвращаемое значение: table or nil - таблица с описанием, если информация получена: id: ObjectId - id инстанс-ивента name: ValuedText or WString - преобразованное имя инстанс-ивента rawName: WString or nil - необработанное название инстанс-ивента взятое из ресурса; nil если совпадает с name description: ValuedText or WString - описание с подставленными текущими значениями параметров resourceId: ResourceId (InstancedEventResourceId) - идентификатор ресурса инстанс-ивента category: ResourceId (InstancedEventCategoryId) - идентификатор ресурса категории инстанс-ивента isAvailable: boolean - доступен ли инстанс-ивент аватару allowQuickExit: boolean - позволять быстро покидать активность(кнопка в углу экрана) sysCause: string (enum "ENUM_ActionFailCause_...") - строковый код ошибки. hasDoubleBonus: boolean - наличие бонуса за прохождение ignoreFactions: boolean - ивент со смешанными фракциями(при формировании группы принадлежность к фракции игнорируется) leaderDepartOnly: boolean - если true, то инициировать отправку в активность может только лидер группы soloMode: boolean - если true, ивент доступен только для одного игрока requiredItem: ItemId or nil - ресурс необходимый для отправки requiredCurrency: CurrencyId or nil - альтвалюта необходимая для отправки isHighPriority: boolean - если true, то это приоритетный эвент. Он должен быть выше остальных в списке. mechanicsType: number (enum ENUM_MatchMakingMechanicsType...) - тип игровой механики maxVisitsPerDay: number (integer) - максимальное кол-во посещений ивента в день; 0 - без ограничений maxVisitsPerWeek: number (integer) - максимальное кол-во посещений ивента в неделю; 0 - без ограничений exclusive: boolean - если true, то запрещено становиться одновременно в очередь к этому и любому другому эвенту leaderOnly: boolean - если true, то за выход\постановку в очередь отвечает только лидер группы (соло аватар считается сам себе лидером) ticket: ItemId или nil - nil если нет информации, иначе ResourceId предмета, являющегося билетом на эвент; при постановке в очередь проверяется наличие такого предмета у игрока, предмет забирается перед телепортацией на эвент activeEventJoinPeriod: number (integer) - возможность присоединения к арене новых игроков в течении определённого периода времени после старта ивента. Если значение меньше 0 - можно присоединяться всегда, равно 0 - присоединяться нельзя вообще, иначе - период в течение которого возможно присоединение todayVisits: number (integer) or nil - если есть, то сколько посещений совершил главный игрок сегодня; если нет, то информация отсутствует weeklyVisits: number (integer) or nil - если есть, то сколько посещений совершил главный игрок за текущую неделю; если нет, то информация отсутствует duration: number (integer) - длительность ивента в миллисекундах minAvatarLevel: number (integer) - минимальный уровень, необходимый для участия в ивенте canJoinActiveEvent: boolean - можно ли присоединяться к ивенту после его начала isAvatarJoined: boolean - стоит ли аватар в очереди на этот инстанс-ивент eventType: table of tables - таблица с описанием типа инстанс-ивента. startTime: table of tables - таблица с описанием типа и времени старта startTimes: table или nil - если ошибка, то nil; иначе список (индексируется от 0) таблиц с описанием типа и времени старта (описание полей см. ниже) inviteTimeout: number (integer) - задержка при телепорте на арену (мс) difficulty: wstring or nil - сложность эвента текстом difficultyMode: Number(ENUM_LFGEventDifficulty) - сложность эвента индексом sysDifficultyMode: String(ENUM_LFGEventDifficulty) - сложность эвента строкой
Таблица eventType представляет собой описание типа инстанс-ивента. Так как тип может быть только один (либо solo, либо group, но не оба сразу), то в таблице eventType заполнено только одно поле из представленых ниже. В заполненом поле содержится таблица с описанием данных для этого типа инстанс-ивента.
Формат таблицы eventType:
-- Поля (заполнено только одно в зависимости от типа интервала): solo: table or nil - если тип "одиночный" (каждый сам за себя), то таблица с полями: minAvatarsCount: number (integer) - минимум игроков, после которого запускается таймер самоуничтожения острова capacity: number (integer) - максимальное кол-во игроков minAvatarLevel: number (integer) - минимальный уровень, необходимый для участия в ивенте group: table or nil - тип "групповой" (фракция на фракцию), таблица с теми же полями, что и у solo premade: table or nil - таблица с теми же полями, что и у solo mwar: table or nil - тип "глобальная война за территорию", таблица с теми же полями, что и у solo pillage: table or nil - тип "грабительский налет", таблица с теми же полями, что и у solo lastStand: table or nil - тип "lastStand", таблица с теми же полями, что и у solo mwarRaid: table or nil - рейдовое сражение Доминиона, таблица с теми же полями, что и у solo mwarLadder: table or nil - групповое сражение Доминиона, таблица с теми же полями, что и у solo ratingPvP: table or nil - рейтинговая арена randomBG: table or nil - случайное бг(хутор/яр) lfgRaid: table or nil - рейдовый PvE эвент lfg: table or nil - PvE эвент
Таблица startTime представляет собой описание времени старта инстанс-ивента. Так как время старта может быть только разного типа (почасовое, ежедневное, еженедельное и т.п.), то в этой таблице заполнено только одно поле из представленых ниже. В заполненом поле содержится таблица с описанием данных для этого типа времени старта.
Формат таблицы startTime или элемента списка startTimes:
-- Поля (заполнено только одно в зависимости от типа интервала): hourly: table or nil - ежечасно, таблица с полями: minute: number (integer) - минута начала события, начиная с 0 daily: table or nil - ежедневно, таблица с полями: hour: number (integer) - час начала события, начиная с 0 minute: number (integer) - минута начала события, начиная с 0 weekly: table or nil - еженедельно, таблица с полями: day: number (integer) - день недели начала события, начиная с 0 hour: number (integer) - час начала события, начиная с 0 minute: number (integer) - минута начала события, начиная с 0 monthly: table or nil - ежемесячный, таблица с полями: day: number (integer) - день месяца начала события, начиная с 1 hour: number (integer) - час начала события, начиная с 0 minute: number (integer) - минута начала события, начиная с 0 yearly: table or nil - ежегодный, таблица с полями: sysMonth: string (enum "ENUM_Month...") - месяц начала события month: number (enum ENUM_Month...) - месяц начала события day: number (integer) - день месяца начала события, начиная с 1 hour: number (integer) - час начала события, начиная с 0 minute: number (integer) - минута начала события, начиная с 0 now: table or nil - "сейчас", пустая таблица never: table or nil - "никогда", пустая таблица once: table or nil - однократный, таблица с полями: year: number (integer) - год начала события sysMonth: string (enum "ENUM_Month...") - месяц начала события month: number (enum ENUM_Month...) - месяц начала события day: number (integer) - день месяца начала события, начиная с 1 hour: number (integer) - час начала события, начиная с 0 minute: number (integer) - минута начала события, начиная с 0
Пример:
local info = matchMaking.GetEventInfo( eventId ) if info then if info.group then LogInfo( "Group instanced event, capacity: ", info.group.capacity ) end end
См. также: