Pular - Queria que ao utilizar a spell, o seu char iria pular 3 SQM para frente da posicao de onde voce está. (Sendo que não seria possivel pular para PZ, nem para dentro de casas)
Créditos : Jhon992
local quantSqm = 3 -- quantidade de sqms
function teleportPlayer(cid, position)
if (isPlayer(cid)) then
local o = 1
local positions = {}
for i=1, quantSqm do
if getPlayerLookDir(cid) == 0 then
position = {x=position.x, y=position.y-1, z=position.z}
elseif getPlayerLookDir(cid) == 1 then
position = {x=position.x+1, y=position.y, z=position.z}
elseif getPlayerLookDir(cid) == 2 then
position = {x=position.x, y=position.y+1, z=position.z}
elseif getPlayerLookDir(cid) == 3 then
position = {x=position.x-1, y=position.y, z=position.z}
end
if isWalkable(position) then
o = o+1
end
positions[#positions+1] = position
end
if o > quantSqm then
doTeleportThing(cid, position)
for i=1, #positions do
doSendMagicEffect(positions[i], CONST_ME_TELEPORT)
end
return true
else
doPlayerSendCancel(cid, "Você não pode atravesar isso!")
return false
end
end
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
function onCastSpell(cid, var)
if teleportPlayer(cid, getPlayerPosition(cid)) then
return true
end
end
OBS: Ele salta para dentro da PZ. Não sei consertar. Espero que outra pessoa possa te ajudar.
Puxar - Utilizando efeito em uma area de 4x4, queria uma magia para poder puxar o player inimigo ou o monstro inimigo, para proximo de voce.
Créditos : yazoo (######)
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
arr = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 0, 1, 1, 1, 3, 1, 1, 1, 0, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}
local area = createCombatArea(arr)
setCombatArea(combat, area)
function abs(i)
if(i>0) then
return i
else return (i*(-1))
end
end
function onCastSpell(cid, var)
pos=getPlayerPosition(cid)
player = getThingfromPos({x=pos.x,y=pos.y,z=pos.z,stackpos= 253})
raio=5 -- alcance do buraco negro
i=((pos.x)-raio)
while(i<=((pos.x)+raio)) do
j=((pos.y)-raio)
while(j<=((pos.y)+raio)) do
player=getThingfromPos({x=i,y=j,z=pos.z,stackpos=2 53})
if(((getPlayerLevel(player.uid)>0) or (isCreature(player.uid)==1))and ((abs(i-(pos.x)) > 1) or (abs(j-(pos.y)) > 1))) then
-- calcula novo X
if(i<pos.x) then
newx=i+1
elseif(i==pos.x) then
newx=i
else newx=i-1
end
-- calcula novo Y
if(j<pos.y) then
newy=j+1
elseif(j==pos.y) then
newy=j
else newy=j-1
end
npos={x=newx,y=newy,z=pos.z}
doSendMagicEffect(npos,12)
doTeleportThing(player.uid,npos)
end
j=j+1
end
i=i+1
end
doCombat(cid, combat, var)
end
OBS: Coloque a área desejada dentro do "arr".
Abraços !! ![]()







info
Grupo: Visconde
Registrado: 21/12/06
Posts: 355
Reputação: +118
Gênero: Masculino
Bem, não sou muito bom com spells por isso estou pedindo ajuda.
Pular - Queria que ao utilizar a spell, o seu char iria pular 3 SQM para frente da posicao de onde voce está. (Sendo que não seria possivel pular para PZ, nem para dentro de casas)
Esquivar - Queria que ao utilizar a spell, o seu char iria pular 3 SQM para traz da posicao de onde voce está. (Sendo que não seria possivel pular para PZ, nem para dentro de casas)
Puxar - Utilizando efeito em uma area de 4x4, queria uma magia para poder puxar o player inimigo ou o monstro inimigo, para proximo de voce.
Empurrar - Utilizando efeito em uma area de 4x4, queria uma magia para poder empurrar o player inimigo ou o monstro inimigo, para mais distance de voce, 6 SQM.
Agradeço desde já. Estou no Aguardo.
Irá me ajudar muito. REP+ para o scripter!