Ir para conteúdo

[Talkaction] Duvida Com Script De Teleport


ABCDEFGHIJK

Posts Recomendados

Tipo eu queria fazer um script que quando o player estivesse olhando pro Leste ele se teleportasse 3 sqm pra Oeste, quando tivesse olhando para

Oeste ele se teleportasse 3 sqm pra Leste, quando tivesse olhando para o

Norte ele se teleportasse 3 sqm pro Sul, e quando tivesse olhando para o

Sul ele se teleportasse 3 sqm pro Norte.

 

E esse com esse script o player nao vai poder atravessar parede.

 

Ai eu fiz o script so que ele so teleporta pro oeste, toda vez que usa o script ele vai indo pra la <~~. Vou postar o meu script aqui:

 

function onSay(cid, words, param, channel)

dire = getCreatureLookDirection(cid)

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} 
pos = getCreaturePosition(cid)

local dire = 0
if doTeleportThing(cid, npos) then 
doSendMagicEffect(kapos, 2)
else
return 0
end

local dire = 1
if doTeleportThing(cid, lpos) then 
doSendMagicEffect(kapos, 2)
else
return 0
end

local dire = 2
if doTeleportThing(cid, spos) then 
doSendMagicEffect(kapos, 2)
else
return 0
end

local dire = 3
if doTeleportThing(cid, opos) then 
doSendMagicEffect(kapos, 2)
else
return 0
end
end
return TRUE  

 

Me ajudem ai por favor, eu to presisando deste script.

 

Obrigado

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

Tenta assim:

function onSay(cid, words, param, channel)

 

local dire = getCreatureLookDirection(cid)

 

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}

pos = getCreaturePosition(cid)

 

if dire == 0 then

doTeleportThing(cid, npos)

doSendMagicEffect(kapos, 2)

return false

end

 

 

if dire == 1 then

doTeleportThing(cid, lpos)

doSendMagicEffect(kapos, 2)

return false

end

 

 

if dire == 2 then

doTeleportThing(cid, spos)

doSendMagicEffect(kapos, 2)

return false

end

 

 

if dire == 3 then

doTeleportThing(cid, opos)

doSendMagicEffect(kapos, 2)

return false

end

 

return TRUE

end

Link para o comentário
Compartilhar em outros sites

Vlw cara deu certo, muito obrigado.

 

Mas agora tipo se eu quizer que aparece no lugar aonde o cara tava inicialmente, uma pedra, e depois de 3 segundos ela sumisse, o que eu teria que fazer??

Link para o comentário
Compartilhar em outros sites

Nao sei se vai dar, tenta assim

function onSay(cid, words, param, channel)

 

local dire = getCreatureLookDirection(cid)

local time = 3

local pedra = 8539

 

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}

pos = getCreaturePosition(cid)

 

if dire == 0 then

doTeleportThing(cid, npos)

doSendMagicEffect(kapos, 2)

doCreateItem(pedra, time*1000, kapos)

return false

end

 

 

if dire == 1 then

doTeleportThing(cid, lpos)

doSendMagicEffect(kapos, 2)

doCreateItem(pedra, time*1000, kapos)

return false

end

 

 

if dire == 2 then

doTeleportThing(cid, spos)

doSendMagicEffect(kapos, 2)

doCreateItem(pedra, time*1000, kapos)

return false

end

 

 

if dire == 3 then

doTeleportThing(cid, opos)

doSendMagicEffect(kapos, 2)

doCreateItem(pedra, time*1000, kapos)

return false

end

 

return TRUE

end

 

Azul ID da Pedra.

Vermelho Tempo

Link para o comentário
Compartilhar em outros sites

Desse jeito ai nao deu certo nao. Eu editei o script e agora ele fico assim

 

function onSay(cid, words, param, channel)

local dire = getCreatureLookDirection(cid)

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}
pos = getCreaturePosition(cid)

if dire == 0 then
doTeleportThing(cid, npos)
doSendMagicEffect(kapos, 2)
doCreateItem(1285,type,kapos)
return false
end


if dire == 1 then
doTeleportThing(cid, lpos)
doSendMagicEffect(kapos, 2)
doCreateItem(1285,type,kapos)
return false
end


if dire == 2 then
doTeleportThing(cid, spos)
doSendMagicEffect(kapos, 2)
doCreateItem(1285,type,kapos)
return false
end


if dire == 3 then
doTeleportThing(cid, opos)
doSendMagicEffect(kapos, 2)
doCreateItem(1285,type,kapos)
return false
end

return TRUE
end

 

Quando coloca tempo ali no type, buga o char quando ele vai usar a talkaction.

Link para o comentário
Compartilhar em outros sites

Não, como eu disse, daquele jeito que voce postou, buga o char quando executa o script, desse jeito que coloquei nao buga, mais tambem nao retira a pedra depois de 3 segundos, a pedra fica la.

Link para o comentário
Compartilhar em outros sites

Não sei se funciona. Testa ae:

 

function doRemovePedra(pos)
        if getThingfromPos(pos).itemid == 1285 then
           doRemoveItem(getThingfromPos(pos).uid, 1)
        else
           return 0
        end
        return TRUE
        end   



function onSay(cid, words, param, channel)

local dire = getCreatureLookDirection(cid)


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
addEvent(doRemovePedra, 3*1000, {x=kapos.x,y=kapos.y,z=kapos.z,stackpos=2}) 
doTeleportThing(cid, npos)
doSendMagicEffect(kapos, 2)
doCreateItem(1285,1,kapos)
end


if dire == 1 then
addEvent(doRemovePedra, 3*1000, {x=kapos.x,y=kapos.y,z=kapos.z,stackpos=2}) 
doTeleportThing(cid, lpos)
doSendMagicEffect(kapos, 2)
doCreateItem(1285,1,kapos)
end


if dire == 2 then
addEvent(doRemovePedra, 3*1000, {x=kapos.x,y=kapos.y,z=kapos.z,stackpos=2}) 
doTeleportThing(cid, spos)
doSendMagicEffect(kapos, 2)
doCreateItem(1285,1,kapos)
end


if dire == 3 then
addEvent(doRemovePedra, 3*1000, {x=kapos.x,y=kapos.y,z=kapos.z,stackpos=2}) 
doTeleportThing(cid, opos)
doSendMagicEffect(kapos, 2)
doCreateItem(1285,1,kapos)
end

return TRUE
end

 

 

flw

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...