Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function isInRange(position, fromPosition, toPosition)
- return (position.x >= fromPosition.x and position.y >= fromPosition.y and position.z >= fromPosition.z and position.x <= toPosition.x and position.y <= toPosition.y and position.z <= toPosition.z)
- end
- function getDistanceBetween(fromPosition, toPosition)
- local x, y = math.abs(fromPosition.x - toPosition.x), math.abs(fromPosition.y - toPosition.y)
- local diff = math.max(x, y)
- if(fromPosition.z ~= toPosition.z) then
- diff = diff + 9 + 6
- end
- return diff
- end
- function getDirectionTo(pos1, pos2)
- local dir = NORTH
- if(pos1.x > pos2.x) then
- dir = WEST
- if(pos1.y > pos2.y) then
- dir = NORTHWEST
- elseif(pos1.y < pos2.y) then
- dir = SOUTHWEST
- end
- elseif(pos1.x < pos2.x) then
- dir = EAST
- if(pos1.y > pos2.y) then
- dir = NORTHEAST
- elseif(pos1.y < pos2.y) then
- dir = SOUTHEAST
- end
- else
- if(pos1.y > pos2.y) then
- dir = NORTH
- elseif(pos1.y < pos2.y) then
- dir = SOUTH
- end
- end
- return dir
- end
- function getCreatureLookPosition(cid)
- return getPosByDir(getThingPos(cid), getCreatureLookDirection(cid))
- end
- function getPositionByDirection(position, direction, size)
- local n = size or 1
- if(direction == NORTH) then
- position.y = position.y - n
- elseif(direction == SOUTH) then
- position.y = position.y + n
- elseif(direction == WEST) then
- position.x = position.x - n
- elseif(direction == EAST) then
- position.x = position.x + n
- elseif(direction == NORTHWEST) then
- position.y = position.y - n
- position.x = position.x - n
- elseif(direction == NORTHEAST) then
- position.y = position.y - n
- position.x = position.x + n
- elseif(direction == SOUTHWEST) then
- position.y = position.y + n
- position.x = position.x - n
- elseif(direction == SOUTHEAST) then
- position.y = position.y + n
- position.x = position.x + n
- end
- return position
- end
- function doComparePositions(position, positionEx)
- return position.x == positionEx.x and position.y == positionEx.y and position.z == positionEx.z
- end
- function getArea(position, x, y)
- local t = {}
- for i = (position.x - x), (position.x + x) do
- for j = (position.y - y), (position.y + y) do
- table.insert(t, {x = i, y = j, z = position.z})
- end
- end
- return t
- end
Add Comment
Please, Sign In to add comment