ugurdrahs
New Member
error:
creaturescript/amiroslo.lua
lib/032-position.lua
Thanks in advance!
PHP:
[2:47:18.499] [Error - CreatureScript Interface]
[2:47:18.499] data/creaturescripts/scripts/amiroslo.lua:onDeath
[2:47:18.499] Description:
[2:47:18.499] (luaGetThingPosition) Thing not found
[2:47:18.500] [Error - CreatureScript Interface]
[2:47:18.500] data/creaturescripts/scripts/amiroslo.lua:onDeath
[2:47:18.500] Description:
[2:47:18.500] data/lib/032-position.lua:2: attempt to index local 'position' (a boolean value)
[2:47:18.500] stack traceback:
[2:47:18.500] data/lib/032-position.lua:2: in function 'isInRange'
[2:47:18.500] data/creaturescripts/scripts/amiroslo.lua:8: in function <data/creaturescripts/scripts/amiroslo.lua:7>
creaturescript/amiroslo.lua
PHP:
local warArea = {
fromPosition = {x = 31449, y = 31071, z = 7},
toPosition = {x = 31463, y = 31080, z = 7}
}
function onDeath(cid, target)
if isInRange(getCreaturePosition(cid), warArea.fromPosition, warArea.toPosition) and isInRange(getCreaturePosition(target), warArea.fromPosition, warArea.toPosition) then
if getPlayerLevel(cid) > getPlayerLevel(target) then
doPlayerAddExperience(cid, 1000) --change exp
else
doPlayerAddExperience(cid, 0)
end
end
return true
end
lib/032-position.lua
PHP:
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 getPositionByDirection(getThingPosition(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
function Position(x, y, z, stackpos)
local position = {x = 0, y = 0, z = 0}
if(isNumeric(x .. y .. z)) then
position = {x = x, y = y, z = z}
if(isNumeric(stackpos)) then
position.stackpos = stackpos
end
end
return position
end
Thanks in advance!