Получить информацию о достижениях участников текущего или только что закончившегося инстанс-ивента. Информация доступна автоматически сразу после завершения инстанс-ивента либо может быть получена запросом 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 в случае одиночного или ещё не завершённого members: table of tables or nil - индексированная с нуля таблица с описаниями достижений отдельных участников инстанс-ивента, nil если механика данного инстанс-ивента подразумевает сокрытие участников; в каждом поле содержится таблица с описанием достижений участника инстанс-ивента, формат поля: name: WString - ник игрока shardName: WString - название шарда игрока id: ObjectId or nil - идентификатор аватара(если доступен) 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 - идентификатор команды, к которой принадлежит участник (используется для баттлграунда)
Пример:
local info = matchMaking.GetEventProgressInfo() if info.winnerBattlegroundMarkId then LogInfo( "Winner team: ", info.winnerBattlegroundMarkId:GetInfo() ) end for i, memberInfo in pairs( info.members ) do LogInfo( "-- member: ", memberInfo.name ) for j, achievInfo in pairs( info.memberInfo.achievements ) do LogInfo( "-- achievement: ", achievInfo.name, achievInfo.value ) end end
См. также