/// <summary> /// 收到从服务器或客户端发来的玩家退出战斗的请求 /// </summary> /// <param name="exitBattleLocal"></param> private void OnExitBattle(ExitBattleLocalMessage msg) { m_battleDic.TryGetValue(msg.BattleId, out Battle battle); S2C_ExitBattleMessage response = new S2C_ExitBattleMessage { PlayerId = msg.PlayerId, BattleId = msg.BattleId }; if (battle == null) { PostLocalMessageToCtx(new SystemSendNetMessage { Message = response, PlayerId = msg.PlayerId }, msg.PlayerId); return; } battle.OnExitBattle(msg.PlayerId, response); }
public void OnReleasePlayer(string playerId) { lock (m_players) { //1 检查 if (!m_players.Contains(playerId)) { return; } S2C_ExitBattleMessage response = new S2C_ExitBattleMessage { PlayerId = playerId, BattleId = Id, State = S2C_ExitBattleMessage.Types.State.Ok }; BroadcastMessage(response); //4 从集合删除 m_players.Remove(playerId); } }
public void OnExitBattle(string playerId, S2C_ExitBattleMessage response) { lock (m_players) { //1 检查 if (!m_players.Contains(playerId)) { return; } //2 todo:通知关卡实体移除对应的飞船实体 //3 广播 response.State = S2C_ExitBattleMessage.Types.State.Ok; response.BattleId = Id; BroadcastMessage(response); //4 从集合删除 m_players.Remove(playerId); } }