method PlotBox(float cX, float cY, float cZ) { variable float X1 = ${cX} variable float X2 = ${cX} variable float Y1 = ${cY} variable float Y2 = ${cY} variable float Z1 = ${cZ} variable float Z2 = ${cZ} variable string PointName Z1:Set[${Math.Calc[${cZ} + 0.2]}] Z2:Set[${Math.Calc[${cZ} + 0.4]}] do { X1:Dec X2:Inc Y1:Dec Y2:Inc } while !${This.CollisionCheck[${X1},${Y1},${Z1},${X2},${Y2},${Z2}]} && ${Math.Distance[${cX},${X1}]} < GROW_LIMIT echo "${cX}, ${cY}, ${cZ} :: ${Math.Distance[${X1},${X2}]} : ${Math.Distance[${Y1},${Y2}]} : ${Z1}, ${Z2}" PointName:Set["P${Time.Timestamp}${This.ZoneRegion.ChildCount}"] This.ZoneRegion:AddChild[box, ${PointName}, -unique, ${X1}, ${X2}, ${Y1}, ${Y2}, ${Math.Calc[${cZ} - 3]}, ${Math.Calc[${cZ} + 3]}] if ${This.PreviousRegion.FQN(exists)} { This.PreviousRegion:Connect[${PointName}] LNavRegion[${PointName}]:Connect[${This.PreviousRegion.FQN}] } } member CollisionCheck(float X1, float Y1, float Z1, float X2, float Y2, float Z2) { variable float X = ${X1} variable float Y = ${Y1} variable float Z = ${Z1} for (X:Set[${X1}]; ${X} < ${X2}; X:Inc) { if (${This.CollisionTest[${X},${Y1},${Z1},${X},${Y2},${Z2}]}) { return TRUE } } for (Y:Set[${Y1}]; ${Y} < ${Y2}; Y:Inc) { if (${This.CollisionTest[${X},${Y1},${Z1},${X},${Y2},${Z2}]}) { return TRUE } } return FALSE } member CollisionTest(float X1, float Y1, float Z1, float X2, float Y2, float Z2) { if (!${ISXWoW.CollisionTest[${X1},${Y1},${Z1},${X2},${Y2},${Z2}](exists)}) { return FALSE } return TRUE }