public int TurnFixedTime;//操作固定时间 public void ResetData() { msgQueue.Clear(); if (mStartGameData.roomInfo.currGameCount < mStartGameData.roomInfo.maxGameCount) { mStartGameData.roomInfo.currGameCount++; } if (allPlayersCardsInfoStruct != null) { for (int i = 0; i < allPlayersCardsInfoStruct.Length; i++) { if (allPlayersCardsInfoStruct[i] == null) { continue; } allPlayersCardsInfoStruct[i].ClearAllData(); } } //mLitSem = null; mSettlData = null; mCurSlectCardList.Clear(); mySelfCards.Clear(); isHu = false; eFixe = new int[2] { 0, 0 }; isHasFixeCard = true; isMyHit = false; hitCardCanHuList = null; hasCanHuListCards = null; mSycOptListResponse = null; OptCachInChange = null; AllPlayerEfixe = null; mZhuangSeatId = 0; }
/// <summary> /// 小结算 /// </summary> /// <param name="msg"></param> private void OnSettlement(MessageData msg) { litSemResponse data = msg.Read <litSemResponse>(); CardsInfoStruct[] playerCardsDatas = MJGameModel.Inst.allPlayersCardsInfoStruct; bool isNoWinner = true;//是否是流局 for (int i = 0; i < playerCardsDatas.Length; i++) { if (playerCardsDatas[i] != null && playerCardsDatas[i].huList != null && playerCardsDatas[i].huList.Count > 0) { isNoWinner = false; break; } } if (isNoWinner) //流局 { mGameUI.ServerNoWinner(); } #region 小结算数据处理 MJGameSettlementInfo mSettlData = new MJGameSettlementInfo(); MJGameModel.Inst.mLitSem = data; mSettlData.isEnd = true; mSettlData.isHu = !isNoWinner; mSettlData.settleContainer = new List <MJGameSettlementPlayerInfo>(); for (int i = 0; i < data.litSemList.Count; i++) { MJGameSettlementPlayerInfo oneSettlementPlayerInfo = new MJGameSettlementPlayerInfo(); int seatID = data.litSemList[i].seatId; PlayerInfoStruct onePData = MJGameModel.Inst.mRoomPlayers[seatID]; //玩家信息 CardsInfoStruct cdata = MJGameModel.Inst.allPlayersCardsInfoStruct[seatID]; //牌信息 oneSettlementPlayerInfo.seatId = seatID; oneSettlementPlayerInfo.userId = onePData.uId; oneSettlementPlayerInfo.nickName = onePData.nickName; oneSettlementPlayerInfo.score = data.litSemList[i].currScore; oneSettlementPlayerInfo.headUrl = onePData.headUrl; oneSettlementPlayerInfo.shoupai = data.litSemList[i].handList; oneSettlementPlayerInfo.peng = cdata.pengList; oneSettlementPlayerInfo.gang = cdata.gangList; oneSettlementPlayerInfo.huPai = cdata.huList; oneSettlementPlayerInfo.huOrder = data.litSemList[i].huOrder; oneSettlementPlayerInfo.huDes = data.litSemList[i].huIntro; mSettlData.settleContainer.Add(oneSettlementPlayerInfo); } #endregion MJGameModel.Inst.mSettlData = mSettlData; MJGameModel.Inst.mState = eMJRoomStatus.GAMEOVER; MJGameModel.Inst.mStartGameData.roomInfo.roomState = eRoomState.GAMEOVER;//改变房间状态 SetTimeout.add(1, ChangHandsCardsShow); SetTimeout.add(5, ShowSmallSettle); //清理离开游戏的玩家 if (mGameUI != null) { mGameUI.SetAllPlayerOutLine(); } }
/// <summary> /// 小结算 /// </summary> /// <param name="msg"></param> public void OnSettlement() { if (mModel.CurRecordDetailData == null) { return; } litSemResponse data = mModel.CurRecordDetailData.semData; if (data == null) { return; } CardsInfoStruct[] playerCardsDatas = MJGameModel.Inst.allPlayersCardsInfoStruct; bool isNoWinner = true;//是否是流局 for (int i = 0; i < playerCardsDatas.Length; i++) { if (playerCardsDatas[i] != null && playerCardsDatas[i].huList != null && playerCardsDatas[i].huList.Count > 0) { isNoWinner = false; break; } } if (isNoWinner) //流局 { mGameUI.ServerNoWinner(); } #region 小结算数据处理 MJGameSettlementInfo mSettlData = new MJGameSettlementInfo(); mSettlData.isEnd = true; mSettlData.isHu = !isNoWinner; mSettlData.settleContainer = new List <MJGameSettlementPlayerInfo>(); for (int i = 0; i < data.litSemList.Count; i++) { MJGameSettlementPlayerInfo oneSettlementPlayerInfo = new MJGameSettlementPlayerInfo(); int seatID = data.litSemList[i].seatId; PlayerInfoStruct onePData = MJGameModel.Inst.mRoomPlayers[seatID]; //玩家信息 CardsInfoStruct cdata = MJGameModel.Inst.allPlayersCardsInfoStruct[seatID]; //牌信息 oneSettlementPlayerInfo.seatId = seatID; oneSettlementPlayerInfo.userId = onePData.uId; oneSettlementPlayerInfo.nickName = onePData.nickName; oneSettlementPlayerInfo.score = data.litSemList[i].currScore; oneSettlementPlayerInfo.headUrl = onePData.headUrl; oneSettlementPlayerInfo.shoupai = data.litSemList[i].handList; oneSettlementPlayerInfo.peng = cdata.pengList; oneSettlementPlayerInfo.gang = cdata.gangList; oneSettlementPlayerInfo.huPai = cdata.huList; oneSettlementPlayerInfo.huDes = data.litSemList[i].huIntro; mSettlData.settleContainer.Add(oneSettlementPlayerInfo); } #endregion MJGameModel.Inst.mSettlData = mSettlData; mGameUI.GetChaJiaoData(data.flowSemList); }
/// <summary> /// 小结算 /// </summary> /// <param name="info"></param> private void ServerSettlement(MJGameSettlementInfo info) { if (mGameSettlementView == null) { mGameSettlementView = GetWidget <MJGameSettlementView>("Windows/Majiang/GameUI/GameSettlementView", transform); } mGameSettlementView.gameObject.SetActive(true); mGameSettlementView.SetData(info, MJGameModel.Inst.mMaxMaxMul); mGameSettlementView.SetBackBtnShow(OnBackClick); }
private CallBack mBackClickCall;//返回点击回调 public void SetData(MJGameSettlementInfo info, int maxFanshu, bool isshowBtn = true) { mInfo = info; mContinueBtn.gameObject.SetActive(isshowBtn); //mBackBtn.gameObject.SetActive(false); mShareBtn.gameObject.SetActive(isshowBtn); if (info.settleContainer != null && info.settleContainer != null) { int len = info.settleContainer.Count; int count = mGrid.transform.childCount; GameObject obj; float maxPoint = -10000000f; for (int i = 0; i < len; i++) { if (info.settleContainer[i].score > maxPoint) { maxPoint = info.settleContainer[i].score; } } bool isBigWinner = false;//是否是大赢家 for (int i = 0; i < len; i++) { if (i < count) { obj = mGrid.transform.GetChild(i).gameObject; } else { obj = NGUITools.AddChild(mGrid.gameObject, mItem); } obj.SetActive(true); isBigWinner = maxPoint == info.settleContainer[i].score && maxPoint > 0 ? true : false; obj.GetComponent <MJGameSettlementItem>().SetData(info.settleContainer[i], 0, isBigWinner); } mGrid.Reposition(); } }
public void WaitSecond(MJGameSettlementInfo data) { if (mGameUI == null || data == null) { return; } mModel.mStartGameData.roomInfo.roomState = eRoomState.READY; mGameUI.ServerSettlement(data); mGameUI.ReSetUI(); mModel.ResetData(); if (data.settleContainer != null) { MJGameSettlementPlayerInfo p; for (int i = 0; i < data.settleContainer.Count; i++) { p = data.settleContainer[i]; //mModel.mPlayerdata[p.seatId - 1].mPlayerInfo.score += p.score; mGameUI.SetScore(p.seatId, MJGameModel.Inst.mRoomPlayers[p.seatId].gold, p.score); } } mModel.mCurPlayCount++; mGameUI.SetPlayNum(mModel.mCurPlayCount, true); //设置局数显示 mGameUI.SetLeftCardNum(0, false); //隐藏剩余牌数量 }