Ir para conteúdo

Scarab Coin - Teleport Por Level


Roksas

Posts Recomendados

Scarab Coin - Teleport por devidos leveis

Eai galera, hoje venho trazer a você um Script, isso mesmo é um scarab coin que ao dar use o player será teletransportado para algum lugar, cada level tem a posição a que vai ser teletransportado, mas no caso você poderá editar as posições! Bom para se locomover para Hunts! Dependendo do seu mapa, mude a posição e se quiser os leveis.

 

Bom, primeiro de tudo vá em data/actions/scripts, crie um arquivo.lua, renomeio e cole isto dentro:

local tabela = {
[10] = {x = 125, y = 50, z = 3},
[30] = {x = 183, y = 51, z = 6},
[50] = {x = 122, y = 55, z = 5},
[70] = {x = 160, y = 54, z = 7},
[90] = {x = 101, y = 23, z = 4}
}
function onUse (cid,item,frompos,item2,topos)
doPlayerRemoveItem (cid,3049,1)
doTeleportThing(cid,tabela[getPlayerLevel(cid)])
end

 

Agora vá em data/actions/actions.xml e adicione esta tag em qualquer lugar:

<action itemid="3049" event="script" value="NOMEDOSEUSCRIPT.lua"/> 

 

Bom galera, é isso, espero que gostem! :rolleyes:

 

Créditos:



60% Eu por criar o script

40% Vodkart por me ensinar scripting -> vodkart, amigao (:

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

se ele não tiver o level ou o item dali vai dar cacá, tem ki por verificação ...

local tabela = {
[10] = {x = 125, y = 50, z = 3},
[30] = {x = 183, y = 51, z = 6},
[50] = {x = 122, y = 55, z = 5},
[70] = {x = 160, y = 54, z = 7},
[90] = {x = 101, y = 23, z = 4}
}
function onUse (cid,item,frompos,item2,topos)
  if tabela[getPlayerLevel(cid)] then
      doTeleportThing(cid,tabela[getPlayerLevel(cid)])
      doRemoveItem(item.uid, 1)
  else
      doPlayerSendCancel(cid, "Neste Level, não pode Teleportar.")
  end
return true
end

Link para o comentário
Compartilhar em outros sites

Bom "xotservx", como Vodkart simplesmente disse não irá dar "cáca" alguma, irá executar o action normalmente, no caso eu forcei a tabela como pode perceber, não precisa checar nada! Abraços.

 

Atenciosamente,

Roksas.

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

[07/02/2011 11:12:06] [Error - Action Interface]

[07/02/2011 11:12:06] data/actions/scripts/teste.lua:onUse

[07/02/2011 11:12:06] Description:

[07/02/2011 11:12:06] attempt to index a nil value

[07/02/2011 11:12:06] stack traceback:

[07/02/2011 11:12:06] [C]: in function 'doTeleportThing'

[07/02/2011 11:12:06] data/actions/scripts/teste.lua:10: in function <data/actions/scripts/teste.lua:8>

 

se ele não tiver, o lvl , ele irá perder o item, e não sera teleportado além disso, trará erros no console, que poderão trazer lags no sv.

Link para o comentário
Compartilhar em outros sites

Bom eu acho que meu script deve dar bugs em alguns servers, eu testei no Yourots 8.60 e deu certinho, mas apenas com os leveis, você deve ter um server diferente, não sei. Eu e Vodkart, testamos e deu certíssimo, sua correção também está certa...Abraços!

 

Atenciosamente,

Roksas.

Link para o comentário
Compartilhar em outros sites

Bom, eu descrevi que por a caso são apenas os leveis citados, no caso eu coloquei também para quem editar que edite, fiz para ajudar ok? Também não sou nenhum "Bill Gates" da vida. Abraços!

 

Atenciosamente,

Roksas.

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

Sim, claro não estou reclamando e sim assumindo meu erro, como eu disse aqui no meu computador deu certo, mas enquanto ao seu, tudo bem, vamos esquecer este assunto né? Então obrigado por informar o bug, também vou considerar sua correção válida. Obrigado e abraços!

 

Atenciosamente,

Roksas.

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

  • 2 years later...

Consegui fazer uma variação do script que não necessita de requerimento de level. O detalhe é que sempre vai teleportar pro mesmo lugar (no meu caso, para o templo) e eu resolvi não utilizar a Scarab Coin (id=3049), mas sim a Orb (id=2176)... aproveitei para renomeá-la de Teleport Stone no items.xml

 

 

function onUse (cid,item,frompos,item2,topos)

pos={x=655,y=1014,z=7}

doPlayerRemoveItem (cid,2176,1)

doSendMagicEffect (getPlayerPosition (cid), 14)

doTeleportThing(cid,pos)

end

 

só pra explicar:

vermelho = coordenadas do seu destino

azul = item e quantidade que serão consumidos (no meu caso item 2176, consome 1)

 

queria saber se alguém sab como fazer para o personagem não conseguir teleportar caso ele esteja em battle.

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

×
×
  • Criar Novo...