Espero que ajude.
function onUse(cid, item, frompos, item2, topos)
local manaNeed = 1500 -- mana necessario para usar.
local LvlNeed = 150 -- level necessario para usar.
local vocationsUse = {1,2,3,4,5,6,7,8} -- vocações que podem usar.
if item2.itemid == 0 then
doPlayerSendCancel(cid,"Você não pode fazer isso.")
else
if isInArray(vocationsUse, getPlayerVocation(cid)) then
if getPlayerLevel(cid) >= LvlNeed then
if getCreatureMana(cid) >= manaNeed then
if not getTilePzInfo(getCreaturePosition(cid)) or not getTilePzInfo(topos) then
local playerpos = getPlayerPosition(cid)
local check = true
local menorX = 0
local maiorX = 0
if playerpos.x > topos.x then
maiorX = playerpos.x
menorX = topos.x
else
maiorX = topos.x
menorX = playerpos.x
end
local menorY = 0
local maiorY = 0
if playerpos.y > topos.y then
maiorY = playerpos.y
menorY = topos.y
else
maiorY = topos.y
menorY = playerpos.y
end
for i=menorX, maiorX do
for j=menorY, maiorY do
local pos = {x=i,y=j,z=playerpos.z}
if not isWalkable(pos) then
pos.stackpos = 253
if getThingfromPos(pos).uid ~= cid then
check = false
end
end
end
end
if check then
doTeleportThing(cid,topos)
doSendMagicEffect(playerpos,2)
doSendMagicEffect(topos,10)
doSendAnimatedText(playerpos,"Teleport",35)
doPlayerAddMana(cid, manaNeed)
else
doPlayerSendCancel(cid,"Você não pode atravessar isso.")
end
else
doPlayerSendCancel(cid,"Você não pode utilizar em protection zone.")
end
else
doPlayerSendCancel(cid,"Você não tem mana necessaria para usar.")
end
else
doPlayerSendCancel(cid,"Você não tem level suficiente para usar.")
end
else
doPlayerSendCancel(cid,"Você não possui a vocação necessaria para usar.")
end
end
return true
end
function isWalkable(pos, creature, pz, proj) -- nord
if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end
local creature = getTopCreature(pos)
if creature.type > 0 then return false end
if getTilePzInfo(pos) and not pz then return false end
local n = not proj and 3 or 2
for i = 0, 255 do
pos.stackpos = i
local tile = getTileThingByPos(pos)
if tile.itemid ~= 0 and not isCreature(tile.uid) then
if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then
return false
end
end
end
return true
end