Exemplo n.º 1
0
 /// <summary>
 /// 抢地主
 /// </summary>
 /// <param name="clientPeer">客户端连接对象</param>
 /// <param name="value">请求参数</param>
 private void Grab(ClientPeer clientPeer, bool value)
 {
     SingleExcute.Instance.Excute(() =>
     {
         if (accountCache.IsOnline(clientPeer) == false)
         {
             return;
         }
         int aid = accountCache.GetId(clientPeer);
         int uid = userModelCache.GetUserIdByAid(aid);
         FightRoomModel fightRoom = fightRoomCache.GetFightRoomByUid(uid);
         if (value == true)
         {
             fightRoom.SetLandlord(uid);
             fightRoom.Sort(uid);
             //发送抢地主消息(包括抢地主的角色Id和底牌数据)给每个客户端发消息
             Brocast(fightRoom, OpCode.FIGHT, FightCode.GRAB_LANDLORD_BRO, new GrabDto(uid, fightRoom.TableCardList, fightRoom.GetPlayerModel(uid).CardDtos));
             //通知该玩家出牌
             Brocast(fightRoom, OpCode.FIGHT, FightCode.TURN_DEAL_BRO, uid);
         }
         else
         {
             //发送不抢地主的消息
             int nextUid = fightRoom.GetNext(uid);
             Brocast(fightRoom, OpCode.FIGHT, FightCode.TURN_GRAB_BRO, nextUid);
         }
     });
 }