后台结算查询不到房间的问题

This commit is contained in:
sk 2024-09-19 17:13:14 +08:00
parent 999eea0766
commit d82822c990
2 changed files with 147 additions and 135 deletions

View File

@ -38,12 +38,24 @@ func init() {
return &serverproto.GWPlayerLeave{} return &serverproto.GWPlayerLeave{}
})) }))
netlib.RegisterHandler(int(serverproto.SSPacketID_PACKET_GW_PLAYERLEAVE), netlib.HandlerWrapper(func(s *netlib.Session, packetid int, pack interface{}) error { netlib.RegisterHandler(int(serverproto.SSPacketID_PACKET_GW_PLAYERLEAVE), netlib.HandlerWrapper(func(s *netlib.Session, packetid int, pack interface{}) error {
if msg, ok := pack.(*serverproto.GWPlayerLeave); ok { logger.Logger.Trace("receive GWPlayerLeave:", pack)
logger.Logger.Trace("receive GWPlayerLeave:", msg.GetPlayerId()) msg, ok := pack.(*serverproto.GWPlayerLeave)
scene := SceneMgrSingleton.GetScene(int(msg.GetRoomId())) if !ok {
if scene != nil { return nil
}
scene := SceneMgrSingleton.GetScene(int(msg.GetRoomId()), true)
if scene == nil {
logger.Logger.Warnf("玩家离开房间,房间没找到 %v", pack)
return nil
}
p := PlayerMgrSington.GetPlayerBySnId(msg.GetPlayerId()) p := PlayerMgrSington.GetPlayerBySnId(msg.GetPlayerId())
if p != nil { if p == nil {
logger.Logger.Warnf("玩家离开房间,玩家信息没找到 %v", pack)
return nil
}
data := msg.GetPlayerData() data := msg.GetPlayerData()
if len(data) != 0 { if len(data) != 0 {
logger.Logger.Trace("GWPlayerLeave p.UnmarshalData(data)") logger.Logger.Trace("GWPlayerLeave p.UnmarshalData(data)")
@ -170,12 +182,6 @@ func init() {
//} //}
} }
} }
} else {
logger.Logger.Tracef("GWPlayerLeave LocalRobotIdMgrSington %v", msg.GetPlayerId())
//LocalRobotIdMgrSington.FreeId(msg.GetPlayerId())
}
}
}
return nil return nil
})) }))

View File

@ -102,8 +102,14 @@ func (m *SceneMgr) GetPlatformBySceneId(sceneId int) string {
} }
// GetScene 获取房间对象 // GetScene 获取房间对象
func (m *SceneMgr) GetScene(sceneId int) *Scene { // 默认是不包含删除中的房间
if s, exist := m.scenes[sceneId]; exist && !s.deleting { // hasDeleting true 包含删除中的房间
func (m *SceneMgr) GetScene(sceneId int, hasDeleting ...bool) *Scene {
has := false
if len(hasDeleting) > 0 {
has = hasDeleting[0]
}
if s, exist := m.scenes[sceneId]; exist && (has || !s.deleting) {
return s return s
} }
return nil return nil