add 竞技馆房间入场限制

This commit is contained in:
sk 2025-02-18 11:43:19 +08:00
parent f5475e8a7c
commit fcfe862f99
2 changed files with 5 additions and 4 deletions

View File

@ -763,7 +763,7 @@ func (this *SceneBaseStateTienLen) OnPlayerOp(s *base.Scene, p *base.Player, opc
}
}
// 检查余额
if less || afterCoin < int64(sceneEx.GetBaseScore()) {
if less || afterCoin < int64(sceneEx.GetBaseScore()) || afterCoin < sceneEx.GetCustom().GetLimitCoin() {
sceneEx.PlayerLeave(p, common.PlayerLeaveReason_Bekickout, true)
return true
}

View File

@ -108,8 +108,9 @@ func (this *CSEnterRoomHandler) Process(s *netlib.Session, packetid int, data in
if scene.IsCustom() {
cfg := PlatformMgrSingleton.GetConfig(p.Platform).RoomConfig[scene.CustomParam.RoomConfigId]
limitCoin := int64(0)
if len(cfg.GetLimitCoin()) > 0 {
limitCoin := cfg.GetLimitCoin()[slices.Index(cfg.GetBaseScore(), scene.BaseScore)]
limitCoin = cfg.GetLimitCoin()[slices.Index(cfg.GetBaseScore(), scene.BaseScore)]
if limitCoin > 0 && p.GetCoin() < limitCoin {
code = gamehall.OpResultCode_Game_OPRC_CoinNotEnough_Game
goto failed
@ -129,7 +130,7 @@ func (this *CSEnterRoomHandler) Process(s *netlib.Session, packetid int, data in
afterCoin -= v.GetNum()
}
}
if afterCoin <= 0 || (scene.dbGameFree.GetLimitCoin() > 0 && afterCoin < scene.dbGameFree.GetLimitCoin()) {
if afterCoin <= 0 || (scene.dbGameFree.GetLimitCoin() > 0 && afterCoin < scene.dbGameFree.GetLimitCoin()) || (limitCoin > 0 && afterCoin < limitCoin) {
code = gamehall.OpResultCode_Game_OPRC_CoinNotEnough_Game
logger.Logger.Trace("CSEnterRoomHandler cost after coin too little error")
goto failed
@ -1376,7 +1377,7 @@ func CSCreatePrivateRoomHandler(s *netlib.Session, packetId int, data interface{
// 创建房间
csp := CoinSceneMgrSingleton.GetCoinScenePool(p.GetPlatform().IdStr, msg.GetGameFreeId())
if afterCoin <= 0 || (csp.dbGameFree.GetLimitCoin() > 0 && afterCoin < csp.dbGameFree.GetLimitCoin()) {
if afterCoin <= 0 || (csp.dbGameFree.GetLimitCoin() > 0 && afterCoin < csp.dbGameFree.GetLimitCoin()) || (limitCoin > 0 && afterCoin < limitCoin) {
code = gamehall.OpResultCode_Game_OPRC_CoinNotEnough_Game
send()
return nil