• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • 2026 staff recruitment is open! Check it out and consider applying!

Some lib function problems

Mjmackan

Mapper ~ Writer
Joined
Jul 18, 2009
Messages
1,477
Solutions
18
Reaction score
195
Location
Sweden
Would be glad if someone helped me with this;

LUA:
[28/06/2011 02:23:27] [Error - Npc interface] 
[28/06/2011 02:23:27] (Unknown script file)
[28/06/2011 02:23:27] Description: 
[28/06/2011 02:23:27] data/npc/lib/npcsystem/modules.lua:1151: bad argument #2 to 'error' (number expected, got string)
[28/06/2011 02:23:27] stack traceback:
[28/06/2011 02:23:27] 	[C]: in function 'error'
[28/06/2011 02:23:27] 	data/npc/lib/npcsystem/modules.lua:1151: in function 'callbackOnBuy'
[28/06/2011 02:23:28] 	data/npc/lib/npcsystem/npchandler.lua:263: in function 'processModuleCallback'
[28/06/2011 02:23:28] 	data/npc/lib/npcsystem/npchandler.lua:440: in function 'onBuy'
[28/06/2011 02:23:28] 	data/npc/lib/npcsystem/modules.lua:1292: in function <data/npc/lib/npcsystem/modules.lua:1291>

LUA:
[28/06/2011 02:46:44] [Error - CreatureScript Interface] 
[28/06/2011 02:46:44] buffer:onStatsChange
[28/06/2011 02:46:44] Description: 
[28/06/2011 02:46:45] data/lib/032-position.lua:2: attempt to index global 'position' (a nil value)
[28/06/2011 02:46:45] stack traceback:
[28/06/2011 02:46:45] 	data/lib/032-position.lua:2: in function 'isInRange'
[28/06/2011 02:46:45] 	[string "loadBuffer"]:14: in function <[string "loadBuffer"]:7>

ReP++ for help!
 
Last edited:
modules
Wklej.to - po prostu wklej to! - paste: aE14I
post your 032-position
or replace it with
Code:
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
 
Back
Top