修复除零异常

This commit is contained in:
flswld
2023-03-27 17:43:38 +08:00
parent 3fbaf9bf63
commit fae84e0b07

View File

@@ -119,6 +119,7 @@ func (w *WorldManager) LoadSceneBlockAoiMap() {
maxZ := int16(math.MinInt16) maxZ := int16(math.MinInt16)
blockXLen := int16(0) blockXLen := int16(0)
blockZLen := int16(0) blockZLen := int16(0)
ok := true
for _, blockConfig := range sceneLuaConfig.BlockMap { for _, blockConfig := range sceneLuaConfig.BlockMap {
if int16(blockConfig.BlockRange.Min.X) < minX { if int16(blockConfig.BlockRange.Min.X) < minX {
minX = int16(blockConfig.BlockRange.Min.X) minX = int16(blockConfig.BlockRange.Min.X)
@@ -138,32 +139,41 @@ func (w *WorldManager) LoadSceneBlockAoiMap() {
blockXLen = xLen blockXLen = xLen
} else { } else {
if blockXLen != xLen { if blockXLen != xLen {
logger.Error("config scene block size not same, scene id: %v", sceneLuaConfig.Id) logger.Error("scene block x len not same, scene id: %v", sceneLuaConfig.Id)
return ok = false
break
} }
} }
if blockZLen == 0 { if blockZLen == 0 {
blockZLen = zLen blockZLen = zLen
} else { } else {
if blockZLen != zLen { if blockZLen != zLen {
logger.Error("config scene block size not same, scene id: %v", sceneLuaConfig.Id) logger.Error("scene block z len not same, scene id: %v", sceneLuaConfig.Id)
return ok = false
break
} }
} }
} }
numX := int16(0) if !ok {
if (maxX-minX) != 0 && blockXLen != 0 { continue
numX = (maxX - minX) / blockXLen
} else {
logger.Error("config scene block size is zero, scene id: %v", sceneLuaConfig.Id)
return
} }
numZ := int16(0) if blockXLen == 0 {
if (maxZ-minZ) != 0 && blockZLen != 0 { logger.Error("scene block x len is zero, scene id: %v", sceneLuaConfig.Id)
numZ = (maxZ - minZ) / blockZLen continue
} else { }
logger.Error("config scene block size is zero, scene id: %v", sceneLuaConfig.Id) numX := (maxX - minX) / blockXLen
return if numX == 0 {
logger.Error("calc scene block x num is zero, scene id: %v, %v / %v", sceneLuaConfig.Id, maxX-minX, blockXLen)
continue
}
if blockZLen == 0 {
logger.Error("scene block z len is zero, scene id: %v", sceneLuaConfig.Id)
continue
}
numZ := (maxZ - minZ) / blockZLen
if numZ == 0 {
logger.Error("calc scene block z num is zero, scene id: %v, %v / %v", sceneLuaConfig.Id, maxZ-minZ, blockZLen)
continue
} }
// 将每个block作为aoi格子 并在格子中放入block拥有的所有group // 将每个block作为aoi格子 并在格子中放入block拥有的所有group
aoiManager := alg.NewAoiManager() aoiManager := alg.NewAoiManager()