This commit is contained in:
flswld
2023-04-14 22:41:07 +08:00
parent b6be98c58c
commit 149b773f4b
2 changed files with 14 additions and 2 deletions

View File

@@ -260,7 +260,7 @@ func (g *Game) SceneBlockAoiPlayerMove(player *model.Player, world *World, scene
if !world.GetMultiplayer() {
// 单人世界直接卸载group
g.RemoveSceneGroup(player, scene, groupConfig)
} else {
} else if !WORLD_MANAGER.IsBigWorld(world) {
// 多人世界group附近没有任何玩家则卸载
remove := true
for _, otherPlayer := range scene.GetAllPlayer() {
@@ -418,6 +418,10 @@ func (g *Game) BigWorldAoiPlayerMove(player *model.Player, world *World, scene *
}
// 新格子添加玩家
bigWorldAoi.AddObjectToGrid(int64(player.PlayerID), activeWorldAvatar, newGid)
// aoi区域玩家数量限制
if len(bigWorldAoi.GetObjectListByGid(newGid)) > 8 {
g.LogoutPlayer(player.PlayerID)
}
}
}

View File

@@ -60,7 +60,7 @@ func (g *Game) EnterSceneReadyReq(player *model.Player, payloadMsg pb.Message) {
if !world.GetMultiplayer() {
// 单人世界直接卸载group
g.RemoveSceneGroup(player, oldScene, groupConfig)
} else {
} else if !WORLD_MANAGER.IsBigWorld(world) {
// 多人世界group附近没有任何玩家则卸载
remove := true
for _, otherPlayer := range oldScene.GetAllPlayer() {
@@ -343,6 +343,14 @@ func (g *Game) EnterSceneDoneReq(player *model.Player, payloadMsg pb.Message) {
}
g.JoinOtherWorld(otherPlayer, player)
}
if WORLD_MANAGER.IsBigWorld(world) {
// aoi区域玩家数量限制
bigWorldAoi := world.GetBigWorldAoi()
if len(bigWorldAoi.GetObjectListByPos(float32(player.Pos.X), float32(player.Pos.Y), float32(player.Pos.Z))) > 8 {
g.LogoutPlayer(player.PlayerID)
}
}
}
func (g *Game) PostEnterSceneReq(player *model.Player, payloadMsg pb.Message) {