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

На главную


matchMaking.GetEventProgressInfo()

Получить информацию о достижениях участников текущего или только что закончившегося инстанс-ивента. Информация доступна автоматически сразу после завершения инстанс-ивента либо может быть получена запросом matchMaking.ListenEventProgress(). В обоих случаях приходит сообщение EVENT_MATCH_MAKING_EVENT_PROGRESS_ADDED.

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

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

-- параметры:
нет

-- возвращаемое значение:
table or nil - таблица с описанием, если информация получена, содержит поля:
  completed: boolean - завершился ли ивент
  durationMs: number (integer) - фактическая длительность завершившегося инстанс-ивента (в миллисекундах), если ивент ещё не завершён, то 0
  elapsedMs: number (integer) - время с начала инстанс-ивента в миллисекундах
  round: number (integer) -  номер текущего раунда (начинается с нуля)
  durationsByRound: table - ключи - номера раундов, значения - длительность раундов
  startTimesByRound: table - ключи - номера раундов, значения - время старта раундов
  winnerBattlegroundMarkId: BattlegroundMarkId or nil - BattlegrounMarkId победившей команды в случае группового инстанс-ивента, nil в случае одиночного или ещё не завершённого
  winnerFactionId: FactionId - FactionId победившей фракции в случае группового инстанс-ивента, nil в случае одиночного или ещё не завершённого
  achievements: table of tables или nil - nil если нет информации; иначе  список (индексированная начиная с нуля таблица) с достижениями команд-участников; при изменении должно приходить событие EVENT_MATCH_MAKING_PROGRESS_ACHIEVEMENTS_CHANGED; каждый элемент списка - таблица с полями:
    teamMarkId: BattlegroundMarkId или nil - nil если нет информации, иначе id команды, достижения которой содержаться в этой таблице (см. также описание winnerBattlegroundMarkId)
    teamAchievements: table of tables - список (индексированная с нуля таблица) достижений данной команды, формат полей элементов списка:
      sysName: string или nil - если есть, то нелокализуемое системное имя достижения
      isScore: boolean - true, если достижение нужно отображать в качестве счёта матча
      name: WString - имя
      description: WString - описание
      amount: number (integer) - количество
      opponentMaxValue: number (integer) или nil - если не nil, то количество очков достижения надо отображать в интерфейсе как opponentMaxValue минус количество очков этого же достижения у команды-противника
  members: table of tables - индексированная с нуля таблица с описаниями достижений отдельных участников инстанс-ивента; в каждом поле содержится таблица с описанием достижений участника инстанс-ивента, формат поля:
    name: WString - ник аватра
    factionId: FactionId - фракция игрока
    present: boolean - флаг наличия игрока на инстанс-ивенте (игрок может покинуть ивент до его окончания, в этом случае значение флага будет false)
    achievements: table of tables - индексированная с нуля таблица с достижениями данного участника; в каждом поле содержится таблица с описанием достижения, формат поля:
      sysName: string или nil - если есть, то нелокализуемое системное имя достижения
      name: WString - имя
      description: WString - описание
      value: number (integer) - количество
    raceClass: table LuaRaceClassInfoPart - таблица с описанием расы/класса персонажа, см. описание по ссылке ниже
    battlegroundMarkId:  BattlegroundMarkId или nil - идентификатор команды, к которой принадлежит участник (используется для баттлграунда)

См. LuaRaceClassInfoPart

Пример:

local info = matchMaking.GetEventProgressInfo()
if info.winnerBattlegroundMarkId then
  LogInfo( "Winner team: ", info.winnerBattlegroundMarkId:GetInfo() )
end

for i, memberInfo in info.members do
  LogInfo( "-- member: ", memberInfo.name )
  for j, achievInfo in info.memberInfo.achievements do
    LogInfo( "-- achievement: ", achievInfo.name, achievInfo.value )
  end
end

См. также

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

CategoryMatchMaking
EnumMatchMakingMechanicsType
EventMatchMakingCurrentBattleChanged
EventMatchMakingEventAdded
EventMatchMakingEventAvailabilityChanged
EventMatchMakingEventDoubleBonusChanged
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 CategoryFaction

На главную