//收到玩家局内数据时触发 private void GameSokReceive(Player ply, NetInfoBase info) { switch ((GameOrderType)info.OrderType) { case GameOrderType.玩家叫分: { int score = int.Parse(info.Tag); this.SomeoneJiaofen(ply, score); break; } case GameOrderType.出牌: { var p = JsonConvert.DeserializeAnonymousType(info.JsonData, new { pks = new NetPoker[0], type = OutPokerType.Error_Card }); OutPokerType ty = p.type; if (ty == OutPokerType.炸弹 || ty == OutPokerType.王炸) { this.Multiple *= 2; } this.SomeoneOutPoker(ply, p.pks); break; } case GameOrderType.玩家已准备: { this.readyCount++; if (readyCount >= 3) { AllPlayerReady(); } break; } } }
public static OutPokerType checkOutPokerType(List <TLJCommon.PokerInfo> outPokerList, int mLevelPokerNum, int masterPokerType) { // 优先使用热更新的代码 if (ILRuntimeUtil.getInstance().checkDllClassHasFunc("CheckOutPoker_hotfix", "checkOutPokerType")) { OutPokerType outPokerType = (OutPokerType)ILRuntimeUtil.getInstance().getAppDomain().Invoke("HotFix_Project.CheckOutPoker_hotfix", "checkOutPokerType", null, outPokerList, mLevelPokerNum, masterPokerType); return(outPokerType); } PlayRuleUtil.SetPokerWeight(outPokerList, mLevelPokerNum, (Consts.PokerType)masterPokerType); int count = outPokerList.Count; if (count == 0) { return(OutPokerType.OutPokerType_Error); } // 单牌 else if (count == 1) { return(OutPokerType.OutPokerType_Single); } // 检查是否是对子 else if (count == 2) { if ((outPokerList[0].m_pokerType == outPokerList[1].m_pokerType) && (outPokerList[0].m_num == outPokerList[1].m_num)) { return(OutPokerType.OutPokerType_Double); } } else if (count % 2 == 0 && count >= 4) { if (PlayRuleUtil.IsTuolaji(outPokerList, mLevelPokerNum, masterPokerType)) { // TLJ_PlayService.PlayService.log.Info("出的是拖拉机"); return(OutPokerType.OutPokerType_TuoLaJi); } } // TLJ_PlayService.PlayService.log.Info("有人尝试甩牌"); return(OutPokerType.OutPokerType_ShuaiPai); }