/// <summary> /// 保存配置 /// </summary> /// <param name="roomData"></param> public void SaveConfig(DDZRoomData roomData) { this.QdzLifeTime = roomData.QdzLifeTime; this.CpLifeTime = roomData.CpLifeTime; this.JsLifeTime = roomData.JsLifeTime; this.Times = roomData.Times; this.DiFen = roomData.DiFen; this.GameState = roomData.GameState; }
/// <summary> /// 房间详情返回 /// </summary> /// <param name="resp"></param> private void On_G2C_GetRoomInfo_Res(G2C_GetRoomInfo_Res resp) { DDZGameHelper.IsGetRoomDetails = true; DDZRoomData roomData = resp.RoomData.DdzRoomData; //将游戏配置参数保存 DDZGameConfigComponent.Instance.SaveConfig(roomData); //保存倒计时 DDZGameConfigComponent.Instance.LeftTime = resp.RoomData.LeftTime; //保存自己的信息,并刷新一次 DataCenterComponent.Instance.userInfo.deleteAllUserExcptMe(); var myVo = DataCenterComponent.Instance.userInfo.getMyUserVo(); for (int i = 0; i < roomData.PlayerData.count; i++) { var playerData = roomData.PlayerData[i]; // 保存谁是地主 if (playerData.IsLord) { DDZGameConfigComponent.Instance.LordID = playerData.ChairId; } if (!DataCenterComponent.Instance.userInfo.isExist(playerData.UserId)) { UserVO vo = new UserVO { userID = playerData.UserId, headId = playerData.HeadId, sex = playerData.Gender, seatID = playerData.ChairId, gold = playerData.Gold, nickName = playerData.NickeName, IsLord = playerData.IsLord ? 1 : 0, IsReady = playerData.IsPrepare ? 1:0, point = playerData.QdzJiaoFen //-1 没抢 1,2,3 0:不叫 }; DataCenterComponent.Instance.userInfo.addUser(vo); } else { var vo = DataCenterComponent.Instance.userInfo.getUserByUserID(playerData.UserId); vo.seatID = playerData.ChairId; vo.IsLord = playerData.IsLord ? 1 : 0; vo.gold = playerData.Gold; vo.IsReady = playerData.IsPrepare?1:0; vo.point = playerData.QdzJiaoFen; } } //显示座位玩家 DDZPlayerHeadPlugin.SetOnSeatPlayer(); //刷新倍数,底注 this.DDZTopPlugin.SetBeiSu(); this.DDZTopPlugin.SetBaseScore(); //刷新底牌 this.DDZTopPlugin.ShowDP(roomData.DpCards); //显示各个玩家的手牌数量 if (roomData.SurCardsNum != null) { for (int i = 0; i < roomData.SurCardsNum.count; i++) { int cardNum = roomData.SurCardsNum[i]; this.DDZPlayerHeadPlugin.SetCardNum(i, cardNum); } } //绘制玩家手牌 if (roomData.Card != null) { this.DDZHandCardPlugin.ShowHandCard(roomData.Card); //刷新最新的手牌 DDZGameConfigComponent.Instance.myHandCard = roomData.Card; } //绘制各玩家上一手的出牌 if (roomData.PlayLastCircleCards != null) { var playLastCircleCards = roomData.PlayLastCircleCards.ToList(); this.DDZOutCardPlugin.ShowHand(playLastCircleCards); } #region 处理各阶段状态 DDZGameHelper.IsStartGame = (roomData.GameState == 0) ? false : true; //判断当前的游戏状态 if (roomData.GameState == (int)DDZ_GameState.NoStart) { Log.Debug("当前游戏状态:未开局"); this.CheckReadyState(); } else if (roomData.GameState == (int)DDZ_GameState.Ready) { Log.Debug("当前游戏状态:准备"); this.CheckReadyState(); } else if (roomData.GameState == (int)DDZ_GameState.FaPai) { Log.Debug("当前游戏状态:发牌"); } else if (roomData.GameState == (int)DDZ_GameState.CallScore) { Log.Debug("当前游戏状态:叫地主"); //检测之前的叫分状态 this.CheckCallScoreState(); //采用服务器的倒计时 DDZGameConfigComponent.Instance.ActiveOpTime = resp.RoomData.LeftTime; DDZGameConfigComponent.Instance.ActiveChairId = roomData.ActiveChairId; int realID = DDZGameHelper.ChangeSeat(roomData.ActiveChairId); if (realID == 0) { this.DDZCallScorePlugin.Show(resp.RoomData.LeftTime); } } else if (roomData.GameState == (int)DDZ_GameState.DaPai) { Log.Debug("当前游戏状态:打牌"); //采用服务器的倒计时 DDZGameConfigComponent.Instance.ActiveOpTime = resp.RoomData.LeftTime; //判断当前活动玩家是否是自己,如果是:弹出抢分. DDZGameConfigComponent.Instance.ActiveChairId = roomData.ActiveChairId; int realID = DDZGameHelper.ChangeSeat(roomData.ActiveChairId); if (realID == 0) { this.DDZInteractivePlugin.Show(resp.RoomData.LeftTime); } } else if (roomData.GameState == (int)DDZ_GameState.JieSuan) { Log.Debug("当前游戏状态:结算"); } #endregion }