Beispiel #1
0
        /// <summary>
        /// 转换出牌
        /// </summary>
        /// <param name="room"></param>
        private void Turn(FightRoom room)
        {
            int nextUId = room.Turn();

            //如果下一个玩家掉线
            if (room.IsOffline(nextUId))
            {
                //room.roundModel.BiggestUId = nextUId;
                //下一个也掉线了 递归
                Console.WriteLine("下一个玩家掉线 " + nextUId);
                Turn(room);
                //TODO 掉线人物AI
            }
            else
            {
                //给客户端广播开始计时
                td.Change(nextUId, 20 * 10000000, DateTime.Now.Ticks);
                //玩家不掉线就给他发消息让他出牌
                Brocast(room, OpCode.FIGHT, FightCode.TURN_DEAL_BRO, nextUId);
                //添加定时任务
                TimeOutManager.Instance.AddTimeEvent(20 * 10000000, nextUId, TimeOut);

                Brocast(room, OpCode.FIGHT, FightCode.START_TIMING_BRO, td);
            }
        }
Beispiel #2
0
        /// <summary>
        /// 转换出牌
        /// </summary>
        private void turn(FightRoom fightRoom)
        {
            int nextuid = fightRoom.Turn();

            if (fightRoom.IsOffline(nextuid))
            {
                //如果下一个玩家离线
                //递归找到一个在线的玩家
                turn(fightRoom);
            }
            else
            {
                //通知房间内的房间下一个该出牌的玩家
                //fightRoom.Broadcast(OpCode.FIGHT, FightCode.TURN_DEAL_SBOD, nextuid);
            }
        }
Beispiel #3
0
        /// <summary>
        /// 转换出牌
        /// </summary>
        /// <param name="room"></param>
        private void turn(FightRoom room)
        {
            int nextUId = room.Turn();

            if (room.IsOffline(nextUId) == true)
            {
                //如果下一个玩家掉线了 递归直到不掉线的玩家出牌为止
                turn(room);
            }
            else
            {
                //玩家不掉线就给他发信息
                // ClientPeer nextClient = userCache.GetClientPeer(nextUId);
                // nextClient.Send(OpCode.FIGHT, FightCode.TURN_DEAL_BRO, nextUId);
                brocast(room, OpCode.FIGHT, FightCode.TURN_DEAL_BRO, nextUId);
            }
        }