Пользовательские дополнения

На главную


matchMaking.GetEventInfo( eventId )

Получить информацию об инстанс-ивенте с заданным id.

-- библиотека:
matchMaking

-- объявление:
function GetEventInfo( eventId )

-- параметры:
eventId: ObjectId - id инстанс-ивента, о котором запрашивается информация

-- возвращаемое значение:
table or nil - таблица с описанием, если информация получена:
  id: ObjectId - id инстанс-ивента
  resourceId: ResourceId (InstancedEventResourceId) - идентификатор ресурса инстанс-ивента
  isAvailable: boolean - доступен ли инстанс-ивент аватару
  mechanicsType: number (enum ENUM_MatchMakingMechanicsType...) - тип игровой механики
  name: WString - имя инстанс-ивента
  description: WString - описание инстанс-ивента
  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) таблиц с описанием типа и времени старта (описание полей см. ниже)

Таблица eventType представляет собой описание типа инстанс-ивента. Так как тип может быть только один (либо solo, либо group, но не оба сразу), то в таблице eventType заполнено только одно поле из представленых ниже. В заполненом поле содержится таблица с описанием данных для этого типа инстанс-ивента.

Формат таблицы eventType:

-- Поля (заполнено только одно в зависимости от типа интервала):
solo: table or nil - если тип "одиночный" (каждый сам за себя), то таблица с полями:
  minAvatarsCount: number (integer) - минимум игроков, после которого запускается таймер самоуничтожения острова
  capacity: number (integer) - максимальное кол-во игроков
  immediatelyStartFactor: number (float) - если в очереди есть capacity*immediatelyStartFactor игроков, то ивент стартует сразу (иначе через 10мин)
  minAvatarLevel: number (integer) - минимальный уровень, необходимый для участия в ивенте
group: table or nil - тип "групповой" (фракция на фракцию), таблица с теми же полями, что и у solo
mwar: table or nil - тип "глобальная война за территорию", таблица с теми же полями, что и у solo
pillage: table or nil - тип "грабительский налет", таблица с теми же полями, что и у solo
lastStand: table or nil - тип "lastStand", таблица с теми же полями, что и у solo
premade: table or nil - таблица с теми же полями, что и у solo
mwarRaid: table or nil - рейдовое сражение Доминиона, таблица с теми же полями, что и у solo
mwarLadder: table or nil - групповое сражение Доминиона, таблица с теми же полями, что и у solo

Таблица 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

См. также:

Связанные страницы: "CategoryLuaApi" "CategoryMatchMaking"

CategoryMatchMaking
EnumMatchMakingMechanicsType
EventMatchMakingCurrentBattleChanged
EventMatchMakingEventAdded
EventMatchMakingEventAvailabilityChanged
EventMatchMakingEventProgressAdded
EventMatchMakingEventProgressCompletedChanged
EventMatchMakingEventProgressDurationChanged
EventMatchMakingEventProgressMemberChanged
EventMatchMakingEventProgressMembersChanged
EventMatchMakingEventProgressRemoved
EventMatchMakingEventProgressRoundsChanged
EventMatchMakingEventQueueAdded
EventMatchMakingEventQueueRemoved
EventMatchMakingEventQueuesRemoved
EventMatchMakingEventRemoved
EventMatchMakingEventsAvailabilityChanged
EventMatchMakingEventsChanged
EventMatchMakingEventTeleportReject
EventMatchMakingEventTeleportRequest
EventMatchMakingEventVisitsChanged
EventMatchMakingJoinTimeChanged
EventMatchMakingProgressAchievementsChanged
EventMatchMakingProgressMembersAchievementsChanged
FunctionMatchMakingCanJoinInstancedEvents
FunctionMatchMakingCanUseMatchMaking
FunctionMatchMakingExitBattleEvent
FunctionMatchMakingGetCurrentBattleInfo
FunctionMatchMakingGetEventInfo
FunctionMatchMakingGetEventJoinTimeEstimate
FunctionMatchMakingGetEventProgressInfo
FunctionMatchMakingGetEvents
FunctionMatchMakingGetEventScore
FunctionMatchMakingInstancedEventTeleportReply
FunctionMatchMakingIsAvatarJoinedAnyEvent
FunctionMatchMakingIsEventIdExist
FunctionMatchMakingIsEventListValid
FunctionMatchMakingIsEventProgressExist
FunctionMatchMakingLeaveInstancedEventQueue
FunctionMatchMakingLeaveInstancedEventQueueById
FunctionMatchMakingListenEventProgress
FunctionMatchMakingListenEvents
InstancedEventResourceId
LootGroupId


CategoryLuaApi CategoryFunction CategoryMatchMaking

На главную