From 990e211d0decf94c9f7fbf8f0432a95c10c29643 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Sat, 4 Jan 2025 10:50:33 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E6=88=BF=E8=B4=B9=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamesrv/tienlen/scenepolicy_tienlen.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gamesrv/tienlen/scenepolicy_tienlen.go b/gamesrv/tienlen/scenepolicy_tienlen.go index 762dfd2..2efff72 100644 --- a/gamesrv/tienlen/scenepolicy_tienlen.go +++ b/gamesrv/tienlen/scenepolicy_tienlen.go @@ -720,6 +720,12 @@ func (this *SceneBaseStateTienLen) OnPlayerOp(s *base.Scene, p *base.Player, opc } if sceneEx.IsCustom() && sceneEx.GetSceneState().GetState() == rule.TienLenSceneStateBilled { + // 余额检查 + if !s.CoinInLimit(p.GetCoin()) { + sceneEx.PlayerLeave(p, s.NotCoinInLimitType(p.GetCoin()), true) + return true + } + // 玩家继续 if !playerEx.IsMarkFlag(base.PlayerState_Ready) { playerEx.MarkFlag(base.PlayerState_Ready) @@ -730,9 +736,28 @@ func (this *SceneBaseStateTienLen) OnPlayerOp(s *base.Scene, p *base.Player, opc if (sceneEx.GetCustom().GetCostType() == 2 && playerEx.SnId == sceneEx.GetCreator()) || sceneEx.GetCustom().GetCostType() == 1 { var item []*model.Item + var less bool for _, v := range sceneEx.GetCustom().GetItems() { item = append(item, &model.Item{ItemId: v.GetId(), ItemNum: -v.GetNum()}) + + if v.GetId() == 100001 && playerEx.GetCoin() < v.GetNum() { + // 金币不足 + less = true + break + } else { + if playerEx.Items[v.GetId()] < v.GetNum() { + // 道具不足 + less = true + break + } + } } + // 检查余额 + if less { + sceneEx.PlayerLeave(p, common.PlayerLeaveReason_Bekickout, true) + return true + } + playerEx.AddItems(&model.AddItemParam{ Platform: sceneEx.Platform, SnId: playerEx.SnId,