This commit is contained in:
sk 2024-09-03 18:09:09 +08:00
parent c226024401
commit 92bf5fe16e
2 changed files with 48 additions and 47 deletions

View File

@ -73,7 +73,7 @@ func HandleWGBuyRecTimeItem(session *netlib.Session, packetId int, data interfac
// return nil // return nil
//} //}
func CreateSceneHandler(session *netlib.Session, packetId int, data interface{}) error { func CreateScene(session *netlib.Session, packetId int, data interface{}) error {
logger.Logger.Tracef("receive CreateScene %v", data) logger.Logger.Tracef("receive CreateScene %v", data)
msg, ok := data.(*server.WGCreateScene) msg, ok := data.(*server.WGCreateScene)
if !ok { if !ok {
@ -86,52 +86,53 @@ func CreateSceneHandler(session *netlib.Session, packetId int, data interface{})
return nil return nil
} }
func init() { func DestroyScene(session *netlib.Session, packetId int, data interface{}) error {
// 创建房间 logger.Logger.Trace("receive WGDestroyScene:", data)
netlib.Register(int(server.SSPacketID_PACKET_WG_CREATESCENE), &server.WGCreateScene{}, CreateSceneHandler) msg, ok := data.(*server.WGDestroyScene)
//删除场景
// 立刻删除,不管游戏是否结束
netlib.RegisterFactory(int(server.SSPacketID_PACKET_WG_DESTROYSCENE), netlib.PacketFactoryWrapper(func() interface{} {
return &server.WGDestroyScene{}
}))
netlib.RegisterHandler(int(server.SSPacketID_PACKET_WG_DESTROYSCENE), netlib.HandlerWrapper(func(s *netlib.Session, packetid int, pack interface{}) error {
logger.Logger.Trace("receive WGDestroyScene:", pack)
msg, ok := pack.(*server.WGDestroyScene)
if !ok { if !ok {
return nil return nil
} }
if !msg.IsGrace { if !msg.IsGrace {
// 立刻删除,不管游戏是否结束 // 立刻删除,不管游戏是否结束
for _, v := range msg.Ids { for _, v := range msg.Ids {
s := base.SceneMgrSington.GetScene(int(v)) s := base.SceneMgrSington.GetScene(int(v))
if s != nil { if s == nil {
continue
}
if gameScene, ok := s.ExtraData.(base.GameScene); ok { if gameScene, ok := s.ExtraData.(base.GameScene); ok {
gameScene.SceneDestroy(true) gameScene.SceneDestroy(true)
} }
} }
return nil
} }
} else {
// 游戏结束后删除房间 // 游戏结束后删除房间
for _, v := range msg.Ids { for _, v := range msg.Ids {
s := base.SceneMgrSington.GetScene(int(v)) s := base.SceneMgrSington.GetScene(int(v))
if s != nil { if s == nil {
continue
}
if s.IsHundredScene() || s.Gaming { if s.IsHundredScene() || s.Gaming {
s.SetGraceDestroy(true) s.SetGraceDestroy()
} else { } else {
if s.IsMatchScene() { if s.IsMatchScene() {
s.SetGraceDestroy(true) s.SetGraceDestroy()
} }
if gameScene, ok := s.ExtraData.(base.GameScene); ok { if gameScene, ok := s.ExtraData.(base.GameScene); ok {
gameScene.SceneDestroy(true) gameScene.SceneDestroy(true)
} }
} }
} }
}
}
return nil return nil
})) }
func init() {
// 创建房间
netlib.Register(int(server.SSPacketID_PACKET_WG_CREATESCENE), &server.WGCreateScene{}, CreateScene)
// 删除房间
netlib.Register(int(server.SSPacketID_PACKET_WG_DESTROYSCENE), &server.WGDestroyScene{}, DestroyScene)
//玩家进入 //玩家进入
netlib.RegisterFactory(int(server.SSPacketID_PACKET_WG_PLAYERENTER), netlib.PacketFactoryWrapper(func() interface{} { netlib.RegisterFactory(int(server.SSPacketID_PACKET_WG_PLAYERENTER), netlib.PacketFactoryWrapper(func() interface{} {

View File

@ -297,8 +297,8 @@ func (this *Scene) SetScenePolicy(sp ScenePolicy) {
func (this *Scene) GetGraceDestroy() bool { func (this *Scene) GetGraceDestroy() bool {
return this.graceDestroy return this.graceDestroy
} }
func (this *Scene) SetGraceDestroy(graceDestroy bool) { func (this *Scene) SetGraceDestroy() {
this.graceDestroy = graceDestroy this.graceDestroy = true
} }
func (this *Scene) GetCpControlled() bool { func (this *Scene) GetCpControlled() bool {