RO

Scarab Coin - Teleport Por Level

Por Roksas, 06 de fev. de 2011 em Actions e Talkactions

otserv
tibia
script
11
3.1k
RoksasR
06 de fevereiro de 2011 às 15:23

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 Fevereiro 7 por Roksas

meubkM
06 de fevereiro de 2011 às 17:41

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

VodkartV
06 de fevereiro de 2011 às 17:46

não vai dar cacá nenhuma,só não vai executar a action :X

RoksasR
06 de fevereiro de 2011 às 19:38

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 Fevereiro 6 por Roksas

meubkM
07 de fevereiro de 2011 às 11:13

[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.

RoksasR
07 de fevereiro de 2011 às 12:10

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.

meubkM
07 de fevereiro de 2011 às 13:12

testa fora do lvl, pra vc ver que legal ^^

RoksasR
07 de fevereiro de 2011 às 14:50

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 Fevereiro 7 por Roksas

meubkM
07 de fevereiro de 2011 às 15:01

só tava informando um bug..

RoksasR
07 de fevereiro de 2011 às 15:17

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 Fevereiro 7 por Roksas

2 anos depois...
IoriOtservI
13 de março de 2013 às 10:59

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 Março 13 por IoriOtserv