Ir para conteúdo
  • 0

Teleport Dinâmico


willscarlate

Pergunta

Olá galera.

 

Gostaria de saber se alguém tem um script ou idéia de como montar um teleport dinamicamente...

 

exemplo, imagem um comando:

 

/create tp x,y,z

 

passando as cordenadas, para onde o teleport apontasse...

 

Fiz algumas tentativas mas não consegui ir muito à fundo, por enquanto, isso faz parte de um sistema que estou criando para meu OT e postarei para vocês em breve, garanto que vai ajudar muita gente!!

 

Agradeço, um abraço!!

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Não entendi muito bem. O x, y e z dos parâmetros seriam as coordenadas para onde o teleport levaria, certo? Porém, onde o teleport seria criado? Na posição de quem executou o comando?

Link para o comentário
Compartilhar em outros sites

  • 0

Isso! Exatamente.

 

Vamos supor, estou parado no DP de Thais, e sei as cordenadas de um lugar onde quero levar os players, preciso abrir um teleport para lá...

 

Aí entraria o comando para criar, passando por parametro as cordenadas de DESTINO (x,y,z) do teleport...

 

Lembrando que seria uma "vía de mão única", teleport somente de ida.

Link para o comentário
Compartilhar em outros sites

  • 0

Em talkactions/scripts crie o arquivo createtp.lua e cole isso dentro:

function onSay(cid, words, param)

local t = string.explode(param, ",")

if not tonumber(t[1]) or not tonumber(t[4]) then
doPlayerSendTextMessage(cid, 21, "O comando requer a segunda posiçao.")
end

if doCreateTeleport (1387, {x = t[4], y = t[5], z = t[6]}, {x = t[1], y = t[2], z = t[3]}) then
doPlayerSendTextMessage(cid, 25, "O teleport foi criado com sucesso!")
end
return true
end

Em talkactions.xml adicione essa tag:

<talkaction words="/createtp;!createtp" acess="5" event="script" value="createtp.lua"/> 

Para criar o tp digite /createtp ou !createtp e depois as cordenadas, lembrando que as cordenadas onde o tp vai ser criado vem primeiro, por exemplo:

/createtp 123, 456, 7, 321, 654, 8

 

Em azul são as cordenadas onde o tp vai ser criado e em vermelho são as cordenadas pra onde o tp levará o jogador.

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

  • 0

Em talkactions/scripts crie o arquivo createtp.lua e cole isso dentro:

function onSay(cid, words, param)

local t = string.explode(param, ",")

if not tonumber(t[1]) or not tonumber(t[4]) then
doPlayerSendTextMessage(cid, 21, "O comando requer a segunda posiçao.")
end

if doCreateTeleport (1387, {x = t[4], y = t[5], z = t[6]}, {x = t[1], y = t[2], z = t[3]}) then
doPlayerSendTextMessage(cid, 25, "O teleport foi criado com sucesso!")
end
return true
end

Em talkactions.xml adicione essa tag:

<talkaction words="/createtp;!createtp" acess="5" event="script" value="createtp.lua"/> 

Para criar o tp digite /createtp ou !createtp e depois as cordenadas, lembrando que as cordenadas onde o tp vai ser criado vem primeiro, por exemplo:

/createtp 123, 456, 7, 321, 654, 8

 

Em azul são as cordenadas onde o tp vai ser criado e em vermelho são as cordenadas pra onde o tp levará o jogador.

 

Cara, excelente, era isso mesmo que eu procurava.

 

Não querendo abusar de vocês pessoal, mas teria como, por exemplo, a partir do momento que eu abri esse portal, contar um tempo e ele fechar, excluir, sumir automaticamente?

Link para o comentário
Compartilhar em outros sites

  • 0

Tenta assim:

 

function onSay(cid, words, param)
 
local t = string.explode(param, ",")
local tempo = xxx     --Tempo, em segundos, para o teleport desaparecer.
 
    if not tonumber(t[1]) or not tonumber(t[4]) then
        doPlayerSendTextMessage(cid, 21, "O comando requer a segunda posiçao.")
    end
 
    if doCreateTeleport(1387, {x = t[4], y = t[5], z = t[6]}, {x = t[1], y = t[2], z = t[3]}) then
        doPlayerSendTextMessage(cid, 25, "O teleport foi criado com sucesso!")
    end
    addEvent(function()
        local pos = {x = tonumber(t[1]), y = tonumber(t[2]), z = tonumber(t[3])}
        local tp = getTileItemById(pos, 1387).uid
        if tp > 0 then
            doRemoveItem(tp, 1)
        end
    end, tempo * 1000)
    return true
end
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...