-
Total de itens
55 -
Registro em
-
Última visita
-
olá amigo! teria como fazer esse script seu pra não entrar no pz desviar de obstaculos? exemplo se houver uma arvore o script desvia dela?
aqui está o script
Quotelocal distance = 25 -- distancia que anda (em sqm)
local speed = 100 -- milisegundos entre cada passo (qnt menor = mais rapido)
local invisible = createConditionObject(CONDITION_GAMEMASTER, (speed * distance) + 50, false, GAMEMASTER_INVISIBLE)
local outfit = createConditionObject(CONDITION_INVISIBLE, (speed * distance) + 50, false)
local function isWalkable(pos, creature, proj, pz)-- by 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
function onWalk(cid)
local poslook = getCreatureLookPosition(cid)
poslook.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE
if isWalkable(poslook, false, false, false) then
if not isCreature(getThingfromPos(poslook).uid) then
doMoveCreature(cid, getPlayerLookDirection(cid))
doSendMagicEffect(getPlayerPosition(cid), 10)
return true
else
doSendMagicEffect(getPlayerPosition(cid), 10)
return true
end
else
doSendMagicEffect(getPlayerPosition(cid), 2)
end
end
function onCastSpell(cid, var)
if exhaustion.get(cid, 13118) then
doPlayerSendCancel(cid, "Poderá usar novamente dentro de " .. exhaustion.get(cid, 13118) .. " segundos.")
doSendMagicEffect(getCreaturePosition(cid), 2)
return false
end
exhaustion.set(cid, 13118, 15)
doAddCondition(cid, invisible)
doAddCondition(cid, outfit)
for i = 0, distance do
addEvent(onWalk, speed * i,cid)
end
return true
end