Files
bl/logic/service/maps/mapout.go
昔念 910e866456 fix(socket): 优化 TCP 连接处理和玩家昵称处理
- 在 ServerEvent.go 中增加 TCP 连接的特殊处理逻辑,防止缓冲区溢出
- 修改 CreatePlayer.go 中的昵称处理,去除多余的空格
- 优化 mapout.go 中的玩家离开地图通知逻辑
- 在 wscodec.go 中增加对 TCP 连接的识别和处理
2025-09-13 00:42:39 +08:00

38 lines
843 B
Go

package maps
import (
"blazing/logic/service"
"blazing/logic/service/space"
)
type LeaveMapOutboundInfo struct {
// 米米号
UserID uint32 `struc:"uint32" fieldDesc:"米米号" json:"user_id"`
}
type LeaveMapInboundInfo struct {
Head service.TomeeHeader `cmd:"2002" struc:"[0]pad"` //切换地图
}
func (t *LeaveMapInboundInfo) Broadcast(mapid uint32, o LeaveMapOutboundInfo) {
space.GetSpace(mapid).Range(func(playerID uint32, player service.PlayerI) bool {
t.Head.Result = 0
player.SendPack(t.Head.Pack(&o))
return true
})
}
func LeaveMap(c service.PlayerI) {
t := service.NewTomeeHeader(2002, c.ID())
space.GetSpace(c.MapID()).Range(func(playerID uint32, player service.PlayerI) bool {
player.SendPack(t.Pack(&LeaveMapOutboundInfo{UserID: c.ID()}))
return true
})
space.GetSpace(c.MapID()).Delete(c.ID())
}