Ir para conteúdo

Script De Teleport Atrevessando Parede.


ABCDEFGHIJK

Posts Recomendados

Ola, eu preciso da ajuda de voces. Eu fiz um script de uma magia que o player teleporta, so que ele esta atravessando parede, montanhas, arvores, agua em fim atravessa tudo que esta na frente. A questão é que eu quero saber como faço pra colocar pra ele nao poder atravessar essas coisas.

 

O Script esta aqui:

function onSay(cid, words, param, channel)

local dire = getCreatureLookDirection(cid)
storevalue = 2468
alerttime = 15

kapos = getCreaturePosition(cid)
npos = {x=kapos.x, y=kapos.y + 3, z=kapos.z}
lpos = {x=kapos.x - 3, y=kapos.y, z=kapos.z}
spos = {x=kapos.x, y=kapos.y - 3, z=kapos.z}
opos = {x=kapos.x + 3, y=kapos.y, z=kapos.z}

if dire == 0 then
if (alert(cid, storevalue, alerttime) == 1) then
addEvent(doRemovePedra, 3*1000, {x=kapos.x,y=kapos.y,z=kapos.z,stackpos=2})
doPlayerAddMana(cid,-45)  
doTeleportThing(cid, npos)
doSendMagicEffect(kapos, 2)
doSendMagicEffect(npos, 2)
doCreateItem(1285,1,kapos)
doSendAnimatedText(npos, "Kawarimi", TEXTCOLOR_ORANGE)
end
end


if dire == 1 then
if (alert(cid, storevalue, alerttime) == 1) then
addEvent(doRemovePedra, 3*1000, {x=kapos.x,y=kapos.y,z=kapos.z,stackpos=2})
doPlayerAddMana(cid,-45) 
doTeleportThing(cid, lpos)
doSendMagicEffect(kapos, 2)
doSendMagicEffect(lpos, 2)
doCreateItem(1285,1,kapos)
doSendAnimatedText(lpos, "Kawarimi", TEXTCOLOR_ORANGE)
end
end


if dire == 2 then
if (alert(cid, storevalue, alerttime) == 1) then
addEvent(doRemovePedra, 3*1000, {x=kapos.x,y=kapos.y,z=kapos.z,stackpos=2})
doPlayerAddMana(cid,-45)
doTeleportThing(cid, spos)
doSendMagicEffect(kapos, 2)
doSendMagicEffect(spos, 2)
doCreateItem(1285,1,kapos)
doSendAnimatedText(spos, "Kawarimi", TEXTCOLOR_ORANGE)
end
end


if dire == 3 then
if (alert(cid, storevalue, alerttime) == 1) then
addEvent(doRemovePedra, 3*1000, {x=kapos.x,y=kapos.y,z=kapos.z,stackpos=2})
doPlayerAddMana(cid,-45)  
doTeleportThing(cid, opos)
doSendMagicEffect(kapos, 2)
doSendMagicEffect(opos, 2)
doCreateItem(1285,1,kapos)
doSendAnimatedText(opos, "Kawarimi", TEXTCOLOR_ORANGE)
end
end

return TRUE
end  

 

Obrigado

Link para o comentário
Compartilhar em outros sites

Olá yahooABC,


 

- Teste o script abaixo,

function onSay(cid, words, param, channel)

local dire = getCreatureLookDirection(cid)
local storevalue = 2468
local alerttime = 15
local p = {}, --Coloque aqui IDs de chãos

kapos = getCreaturePosition(cid)
npos = {x=kapos.x, y=kapos.y + 3, z=kapos.z}
lpos = {x=kapos.x - 3, y=kapos.y, z=kapos.z}
spos = {x=kapos.x, y=kapos.y - 3, z=kapos.z}
opos = {x=kapos.x + 3, y=kapos.y, z=kapos.z}

if dire == 0 then
if (alert(cid, storevalue, alerttime) == 1) then
if (isInArray(p, getThingFromPos(npos))) then
addEvent(doRemovePedra, 3*1000, {x=kapos.x,y=kapos.y,z=kapos.z,stackpos=2})
doPlayerAddMana(cid,-45)  
doTeleportThing(cid, npos)
doSendMagicEffect(kapos, 2)
doSendMagicEffect(npos, 2)
doCreateItem(1285,1,kapos)
doSendAnimatedText(npos, "Kawarimi", TEXTCOLOR_ORANGE)
else
doPlayerSendCancel('Parece haver algum obstáculo')
end
end
end


if dire == 1 then
if (alert(cid, storevalue, alerttime) == 1) then
if (isInArray(p, getThingFromPos(lpos))) then
addEvent(doRemovePedra, 3*1000, {x=kapos.x,y=kapos.y,z=kapos.z,stackpos=2})
doPlayerAddMana(cid,-45) 
doTeleportThing(cid, lpos)
doSendMagicEffect(kapos, 2)
doSendMagicEffect(lpos, 2)
doCreateItem(1285,1,kapos)
doSendAnimatedText(lpos, "Kawarimi", TEXTCOLOR_ORANGE)
else
doPlayerSendCancel('Parece haver algum obstáculo')
end
end
end


if dire == 2 then
if (alert(cid, storevalue, alerttime) == 1) then
if (isInArray(p, getThingFromPos(spos))) then
addEvent(doRemovePedra, 3*1000, {x=kapos.x,y=kapos.y,z=kapos.z,stackpos=2})
doPlayerAddMana(cid,-45)
doTeleportThing(cid, spos)
doSendMagicEffect(kapos, 2)
doSendMagicEffect(spos, 2)
doCreateItem(1285,1,kapos)
doSendAnimatedText(spos, "Kawarimi", TEXTCOLOR_ORANGE)
else
doPlayerSendCancel('Parece haver algum obstáculo')
end
end
end


if dire == 3 then
if (alert(cid, storevalue, alerttime) == 1) then
if (isInArray(p, getThingFromPos(opos))) then
addEvent(doRemovePedra, 3*1000, {x=kapos.x,y=kapos.y,z=kapos.z,stackpos=2})
doPlayerAddMana(cid,-45)  
doTeleportThing(cid, opos)
doSendMagicEffect(kapos, 2)
doSendMagicEffect(opos, 2)
doCreateItem(1285,1,kapos)
doSendAnimatedText(opos, "Kawarimi", TEXTCOLOR_ORANGE)
else
doPlayerSendCancel('Parece haver algum obstáculo')
end
end
end
return TRUE
end

 

- Preste atenção nesta linha que adicionei:

 

local p = {}, --Coloque aqui IDs de chãos

 

Você deverá colocar IDs de todos os chãos possíveis, por mais trabalhoso que seja, creio que funcionará.


Editado por Oneshot
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...