diff --git a/gamesrv/tienlen/scenepolicy_tienlen.go b/gamesrv/tienlen/scenepolicy_tienlen.go index b76f130..329f4af 100644 --- a/gamesrv/tienlen/scenepolicy_tienlen.go +++ b/gamesrv/tienlen/scenepolicy_tienlen.go @@ -2659,7 +2659,7 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) { // 刷新存钱罐 playerEx := s.GetPlayer(o_player.UserId) - if playerEx != nil && (!(s.IsFreePublic() || s.IsMatchScene())) { + if playerEx != nil && (!(s.IsFreePublic() || s.IsMatchScene() || s.IsCustom())) { playerEx.UpdatePigBankCoin(o_player.GainCoin) } diff --git a/worldsrv/action_game.go b/worldsrv/action_game.go index 829aede..c1f902a 100644 --- a/worldsrv/action_game.go +++ b/worldsrv/action_game.go @@ -103,6 +103,15 @@ func (this *CSEnterRoomHandler) Process(s *netlib.Session, packetid int, data in logger.Logger.Trace("CSEnterRoomHandler password error") goto failed } + // 房费是否充足 + if scene.IsCustom() { + cfg := PlatformMgrSingleton.GetConfig(p.Platform).RoomConfig[scene.RoomConfigId] + if !scene.sp.CostEnough(int(scene.CostType), scene.playerNum, cfg, p) { + code = gamehall.OpResultCode_Game_OPRC_CostNotEnough + logger.Logger.Trace("CSEnterRoomHandler cost error") + goto failed + } + } dbGameFree = scene.dbGameFree if dbGameFree != nil { diff --git a/worldsrv/scenepolicydata.go b/worldsrv/scenepolicydata.go index 4d5545c..db5642d 100644 --- a/worldsrv/scenepolicydata.go +++ b/worldsrv/scenepolicydata.go @@ -32,7 +32,7 @@ func (spd *ScenePolicyData) OnStart(s *Scene) { func (spd *ScenePolicyData) OnStop(s *Scene) { s.NotifyPrivateRoom(common.ListDel) // 房主付费,房间没有玩就解散了,返还房主建房费用 - if s.IsCustom() && s.GetCostType() == 1 && s.currRound == 0 { + if s.IsCustom() && s.GetCostType() == 2 && s.currRound == 0 { spd.GiveCostPayment(s, s.creator) } }