Merge branch 'develop' into release

This commit is contained in:
sk 2024-09-19 17:20:41 +08:00
commit 0e84e74049
2 changed files with 147 additions and 135 deletions

View File

@ -38,12 +38,24 @@ func init() {
return &serverproto.GWPlayerLeave{}
}))
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:", msg.GetPlayerId())
scene := SceneMgrSingleton.GetScene(int(msg.GetRoomId()))
if scene != nil {
logger.Logger.Trace("receive GWPlayerLeave:", pack)
msg, ok := pack.(*serverproto.GWPlayerLeave)
if !ok {
return nil
}
scene := SceneMgrSingleton.GetScene(int(msg.GetRoomId()), true)
if scene == nil {
logger.Logger.Warnf("玩家离开房间,房间没找到 %v", pack)
return nil
}
p := PlayerMgrSington.GetPlayerBySnId(msg.GetPlayerId())
if p != nil {
if p == nil {
logger.Logger.Warnf("玩家离开房间,玩家信息没找到 %v", pack)
return nil
}
data := msg.GetPlayerData()
if len(data) != 0 {
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
}))

View File

@ -102,8 +102,14 @@ func (m *SceneMgr) GetPlatformBySceneId(sceneId int) string {
}
// 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 nil