local EventAction_GameEnd = { DelayOffDS = 3.; } -- 触发器激活时,将执行Action的Execute function EventAction_GameEnd:Execute(...) if UGCGameSystem.IsServer() then -- 停止请求玩家加入 UGCGameSystem.StopPlayerJoin() self:SendUGCModeBattleResult() else end return true end -- 结算、关闭DS function EventAction_GameEnd:SendUGCModeBattleResult() -- 保存成就数据 UGCEventSystem.SendEvent(EventEnum.AchievementSettlement) -- 向所有玩家发送结束协议 local AllPlayerStates = UGCGameSystem.GetAllPlayerState() for _, PlayeState in pairs(AllPlayerStates) do if PlayeState then UGCGameSystem.SendPlayerSettlement(PlayeState.PlayerKey); UGCLogSystem.Log("[EventAction_GameEnd_SendUGCModeBattleResult] SendPlayerSettlement %d", PlayeState.PlayerKey) else UGCLogSystem.LogError("[EventAction_GameEnd_SendUGCModeBattleResult] PlayeState is nil !") end end -- 延迟关闭DS UGCEventSystem.SetTimer( UGCGameSystem.GameState, function() UGCGameSystem.SendModeCustomEvent("GameEndAgreement") UGCLogSystem.Log("[EventAction_GameEnd_SendUGCModeBattleResult] Close DS Finsh") end, self.DelayOffDS ) local AllPawn = UGCGameSystem.GetAllPlayerPawn() for i, PlayerPawn in pairs(AllPawn) do PlayerPawn:K2_DestroyActor() end end return EventAction_GameEnd