• 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!

Lua Positions

Darkinho

New Member
Joined
Feb 25, 2009
Messages
145
Reaction score
0
[23/9/2011 18:34:47] [Error - CreatureScript Interface]
[23/9/2011 18:34:47] domodlib('teamFunctions')
[23/9/2011 18:34:47]
[23/9/2011 18:34:47] function onLogout(cid)
[23/9/2011 18:34:47] clearTeamEventStorages(cid)
[23/9/2011 18:34:47] if thereIsAWinner() then
[23/9/2011 18:34:47] endTeamEvent("KO")
[23/9/2011 18:34:47] end
[23/9/2011 18:34:47] return true
[23/9/2011 18:34:47] end
[23/9/2011 18:34:47]
[23/9/2011 18:34:47] :eek:nLogout
[23/9/2011 18:34:47] Description:
[23/9/2011 18:34:47] (luaGetThingPosition) Thing not found

[23/9/2011 18:34:47] [Error - CreatureScript Interface]
[23/9/2011 18:34:47] domodlib('teamFunctions')
[23/9/2011 18:34:47]
[23/9/2011 18:34:47] function onLogout(cid)
[23/9/2011 18:34:47] clearTeamEventStorages(cid)
[23/9/2011 18:34:47] if thereIsAWinner() then
[23/9/2011 18:34:47] endTeamEvent("KO")
[23/9/2011 18:34:47] end
[23/9/2011 18:34:47] return true
[23/9/2011 18:34:47] end
[23/9/2011 18:34:47]
[23/9/2011 18:34:47] :eek:nLogout
[23/9/2011 18:34:47] Description:
[23/9/2011 18:34:47] data/lib/032-position.lua:2: attempt to index local 'position' (a boolean value)
[23/9/2011 18:34:47] stack traceback:
[23/9/2011 18:34:47] data/lib/032-position.lua:2: in function <data/lib/032-position.lua:1>
[23/9/2011 18:34:47] (tail call): ?
[23/9/2011 18:34:47] [string "domodlib('teamSetting')..."]:237: in function 'clearTeamEventStorages'
[23/9/2011 18:34:47] [string "LuaInterface::loadBuffer"]:4: in function <[string "LuaInterface::loadBuffer"]:3>

I use 0.3.6pl1(8.54). But one friend tested in tfs 0.4 rev 4560(9.1) or something.He received the same error.
 
032-positions.lua
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 = SOUTH
	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
	elseif(pos1.y > pos2.y) then
		dir = NORTH
	elseif(pos1.y < pos2.y) then
		dir = SOUTH
	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

function isValidPosition(position)
	return (isNumeric(position.x .. position.y .. position.z) and position.x > 0
		and position.y > 0 and position.z >= 0 and position.z <= 15)
end
 
there's no such part in 032-positions.lua, like:

[23/9/2011 18:34:47] [Error - CreatureScript Interface]
[23/9/2011 18:34:47] domodlib('teamFunctions')
[23/9/2011 18:34:47]
[23/9/2011 18:34:47] function onLogout(cid)
[23/9/2011 18:34:47] clearTeamEventStorages(cid)
[23/9/2011 18:34:47] if thereIsAWinner() then
[23/9/2011 18:34:47] endTeamEvent("KO")
[23/9/2011 18:34:47] end
[23/9/2011 18:34:47] return true
[23/9/2011 18:34:47] end

try find it at creatureevents (onLogout)

anyway as u can see,
[23/9/2011 18:34:47] (luaGetThingPosition) Thing not found
u trying get something from a position, but that "something" inst there or u getting it in a wrong way!
 
Last edited:
Back
Top