method PlotBox() { variable int Degrees = 0 variable float Distance = MAX_BOX_SIZE variable string RegionName variable point3f Location variable point3f CollisionPoint variable int Connections = 0 variable float X1 = ${Me.X} variable float X2 = ${Me.X} variable float Y1 = ${Me.Y} variable float Y2 = ${Me.Y} variable float Z1 = ${Me.Z} variable float Z2 = ${Me.Z} do { Location.X:Set[Me.X + (MAX_BOX_SIZE / 2) * ${Math.Cos[Degrees]}] Location.Y:Set[Me.Y - (MAX_BOX_SIZE / 2) * ${Math.Sin[Degrees]}] CollisionPoint:Set[${ISXWoW.IsPathObstructed[${Location.X},${Location.Y},${Me.Z} - 3,${Location.X},${Location.Y},${Me.Z} + 3]}] Location.Z:Set[${CollisionPoint.Z} + 0.1] if ${Location.Z} < ${Z1} { Z1:Set[${Location.Z}] } CollisionPoint:Set[${ISXWoW.IsPathObstructed[${Location.X},${Location.Y},${Location.Z},${Me.X},${Me.Y},${Me.Z}]}] if ${Math.Distance[${Me.Location},${CollisionPoint}]} < ${Distance} { Distance:Set[${Math.Distance[${Me.Location},${CollisionPoint}]}] } } while ${Degrees:Inc[30]} <= 360 if ${Distance} > MAX_BOX_SIZE { Distance:Set[MAX_BOX_SIZE] } X1:Dec[${Distance}] X2:Inc[${Distance}] Y1:Dec[${Distance}] Y2:Inc[${Distance}] Z2:Set[${Me.Z} + 1] RegionName:Set["R${This.CurrentSubZone.ChildCount}"] This.CurrentSubZone:AddBox[${RegionName},${X1},${X2},${Y1},${Y2},${Z1},${Z2}] This:Debug["Added ${RegionName}.${CurrentSubZone.FQN} Connections: ${Connections}"] }