func(p *Player)UpdatePos(x, y, z, v float32){
p.X = x
p.Y = y
p.Z = z
p.V = v
protoMsg :=&Pb.BroadCase{
Pid: p.Pid,
Tp:4,
Data:&Pb.BroadCase_P{
P:&Pb.Position{
X: x,
Y: y,
Z: z,
V: v,},},}
playerIDs := WorldMgrObj.AoiMgr.GetSurroundPlayersByPos(x, z)for i :=0; i <len(playerIDs); i++{
player := WorldMgrObj.GetPlayerByPid(int32(playerIDs[i]))
player.SendMsg(200, protoMsg)}}
同步玩家下线功能
添加连接断开回调函数
Offline方法具体实现
func(p *Player)Offline(){
playerIDs := WorldMgrObj.AoiMgr.GetSurroundPlayersByPos(p.X, p.Z)
protoMsg :=&Pb.SyncPid{Pid: p.Pid}for i :=0; i <len(playerIDs); i++{
player := WorldMgrObj.GetPlayerByPid(int32(playerIDs[i]))
player.SendMsg(201, protoMsg)}
WorldMgrObj.RemovePlayerByPid(p.Pid)}