/// <summary> /// 战斗重连 /// </summary> /// <param name="recontent"></param> private static void FightReconect(DdzReconnectResp recontent) { //3个玩家牌 非主角只发送牌数量 List <LandkirdsHandCardModel> hands = LandlordsModel.Instance.RoomPlayerHands; for (int i = 0; i < hands.Count; i++) { hands[i].Clear(); DdzPlayerInfo playerInfo = recontent.ddzPlayerInfo[i]; if (playerInfo.playerBaseInfo.userId == UserInfoModel.userInfo.userId) { for (int j = 0; j < playerInfo.poker.Count; j++) { Card card = new Card(playerInfo.poker[j], UserInfoModel.userInfo.userId.ToString()); hands[i].AddCard(card); } } else { for (int j = 0; j < playerInfo.zs; j++)//这里数量根据服务器来 { hands[i].AddCard(null); } } } LandlordsModel.Instance.RoomPlayerSort(); if (PageManager.Instance.GetPage <LandlordsPage>() == null) { PageManager.Instance.OpenPage <LandlordsPage>(); } LandlordsPage.Instance.InitRoom(); LandlordsModel.Instance.RoomPlayerSort(); LandlordsPage.Instance.GameStart();//这里会清除3张底牌 LandlordsPage.Instance.Multiples = recontent.qbs; LandlordsPage.Instance.Dizhu = LandlordsModel.Instance.RoomModel.CurRoomInfo.LeastStore; LandlordsPage.Instance.playView.InitPayerLibrary(); //发底牌 DzCard.Instance.Clear(); for (int i = 0; i < recontent.dzPoker.Count; i++) { DzCard.Instance.AddCard(new Card(recontent.dzPoker[i], "-9999")); } //玩家变地主 if (recontent.dzPoker.Count == 3) { LandlordsPage.Instance.PlayerToLandlord(recontent.ddzPlayerInfo[0].playerBaseInfo.userId.ToString(), false); } ////1发牌2叫分(抢地主)3出牌5结算 //if (recontent.stage != 1 && recontent.stage != 5) // OrderController.Instance.CurInterationType = (InterationType)recontent.stage; OrderController.Instance.Turn(recontent.currUserId.ToString(), (int)OrderController.Instance.CurInterationType); //谁是托管 for (int i = 0; i < recontent.ddzPlayerInfo.Count; i++) { LandlordsPage.Instance.PlayerTuoGuan(recontent.ddzPlayerInfo[i].playerBaseInfo.userId.ToString(), recontent.ddzPlayerInfo[i].tg == 1); } }
/// <summary> /// 断线重连 /// </summary> public static IEnumerator G2C_Reconnect(DdzReconnectResp recontent) { //临时 true->正在打牌 false->正在准备阶段 bool isFighting = recontent.stage != 0 && recontent.stage != 4; LandlordsModel.Instance.IsInFight = isFighting; OrderController.Instance.Clear(); //房间信息 if (recontent.yuePaiInfo != null)//房卡房 { LandlordsModel.Instance.RoomModel.CurRoomInfo = new LandlordsRoomModel.LandlordsRoomInfo() { RoomID = recontent.yuePaiInfo.rno.ToString(), RoomType = RoomType.RoomCard, Beishu = recontent.yuePaiInfo.fs, LeastStore = recontent.yuePaiInfo.ante, CostCard = recontent.yuePaiInfo.ks, CurPlayCount = recontent.yuePaiInfo.currJs, MaxPlayCount = recontent.yuePaiInfo.js }; LandlordsModel.Instance.RoomModel.CurRoomInfo.IsMatch = false; } else if (recontent.matchInfo != null)//比赛房 { LandlordsModel.Instance.RoomModel.CurRoomInfo = new LandlordsRoomModel.LandlordsRoomInfo() { RoomID = recontent.matchInfo.matcherid.ToString(),//比赛ID IsQdz = recontent.matchInfo.isQdz }; switch (recontent.matchInfo.type) { case 1: // 比赛银币 LandlordsModel.Instance.RoomModel.CurRoomInfo.RoomType = RoomType.SilverCoin; break; case 2: //比赛金币 LandlordsModel.Instance.RoomModel.CurRoomInfo.RoomType = RoomType.GoldBar; break; case 3: //比赛积分 break; default: break; } LandlordsModel.Instance.RoomModel.CurRoomInfo.IsMatch = true; } else//游戏币房 { LandlordsModel.Instance.RoomModel.CurRoomInfo = new LandlordsRoomModel.LandlordsRoomInfo() { RoomID = recontent.roomId.ToString(), RoomType = LandlordsRoomModel.GetYxbRoomTypeByID(recontent.roomId), LeastStore = int.Parse(LandlordsRoomModel.GetYxbRoomConfigById(recontent.roomId)["ante"].ToString()) }; LandlordsModel.Instance.RoomModel.CurRoomInfo.IsMatch = false; } //3个玩家信息 if (LandlordsModel.Instance.RoomPlayerHands != null) { LandlordsModel.Instance.RoomPlayerHands.Clear(); } bool isRoomCard = LandlordsModel.Instance.RoomModel.CurRoomInfo.RoomType == RoomType.RoomCard; for (int i = 0; i < recontent.ddzPlayerInfo.Count; i++) { DdzPlayerInfo playerInfo = recontent.ddzPlayerInfo[i]; string uid = playerInfo.playerBaseInfo.userId.ToString(); LandkirdsHandCardModel hand = LandlordsModel.Instance.CreateHandCardMode(uid, playerInfo.playerBaseInfo.gender == 0 ? Six.boy : Six.girl); hand.playerInfo.userNickname = playerInfo.playerBaseInfo.nickname; hand.playerInfo.icon = playerInfo.playerBaseInfo.photo; if (LandlordsModel.Instance.RoomModel.CurRoomInfo.RoomType == RoomType.SilverCoin) { hand.playerInfo.money = playerInfo.playerBaseInfo.silver; } else if (LandlordsModel.Instance.RoomModel.CurRoomInfo.RoomType == RoomType.GoldBar) { hand.playerInfo.money = playerInfo.playerBaseInfo.gold; } hand.playerInfo.lv = playerInfo.playerBaseInfo.level; hand.playerInfo.vip = playerInfo.playerBaseInfo.vip; hand.playerInfo.win = playerInfo.playerBaseInfo.won; hand.playerInfo.lose = playerInfo.playerBaseInfo.lost; hand.playerInfo.ratio = (float)playerInfo.playerBaseInfo.rate; hand.playerInfo.pos = playerInfo.playerBaseInfo.location; hand.playerInfo.exp = playerInfo.playerBaseInfo.exp; //hand.playerInfo.isFriend = playerInfo.playerBaseInfo; hand.MatchScore = playerInfo.playerBaseInfo.currJiFen; if (i == 0 && isRoomCard) { hand.IsRoomer = true; } if (!hand.IsRoomer) { hand.IsZhunbei = playerInfo.playerBaseInfo.isPrepared; } hand.isTuoguan = playerInfo.tg == 1; } if (isFighting) { FightReconect(recontent); } else { NormalReconect(); } yield return(new WaitForSecondsRealtime(2)); UserInfoModel.userInfo.inDzz = false; }