/// <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);
        }
Esempio n. 2
0
 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);
     }
 }
Esempio n. 3
0
        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);
            }
        }