Teleport Dinâmico

willscarlate
em Scripts

willscarlate

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 08/01/06Posts: 11

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!!

zipter98

avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 20/09/12Posts: 2553Gênero: Masculino

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?

Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.

willscarlate

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 08/01/06Posts: 11

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.

WillOliveira

One Being
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 16/09/12Posts: 88

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.

willscarlate

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 08/01/06Posts: 11

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?

WillOliveira

One Being
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 16/09/12Posts: 88

Vou tentar fazer aqui e já edito, se ajudei dê um rep+ pelo menos mdr.gif

zipter98

avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 20/09/12Posts: 2553Gênero: Masculino

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

Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.

willscarlate

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 08/01/06Posts: 11

Como eu dou REP pra vcs? :B Consegui mesclar os scripts que voces passarem e atingi meu resultado ideal!

zipter98

avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 20/09/12Posts: 2553Gênero: Masculino

Só clicar no Curtir, próximo ao comentário.

 

Sanado, movido.

Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.