Sistema de mergulho (Com fotos)

Estava eu boiando em casa e resolvi fuçar um pouco em script e como meu primeiro script resolvi fazer um sistema de mergulho.

Irei passar os scripts baseados em movements, há 2 scripts, um para mergulhar e outro para emergir (subir).

Testei uma versão modificada desse script no meu ot (Alissow 0.3.9. [Versão do tibia: 8.54]) 

1º) Script para mergulhar.
Crie na pasta: data/movements/scripts um arquivo .lua com o nome que você quiser e cole esse código lá.


Código:
function onStepIn(cid, item, pos)
lot1 = getPlayerSlotItem(cid, 1)
if (lot1.itemid == 5461) then
pos1 = {x=x, y=y, z=z}
new = {x=x, y=y, z=z}
doTeleportThing(cid, new, FALSE)
doSendMagicEffect(pos1, 53)
doSendMagicEffect(new, 25)
else
  doPlayerSendCancel(cid,"Sorry, not possible. You don't have the requested item.")
end
return 1
end
Explicação

Verde - Local onde irá ser checado o item, no caso, slot 1 é o local do helmet.
Vermelho - Id do item que precisa-se ter (5461 no caso é o helmet of the deep).
Laranja - Coordenadas do local onde irá aparecer o efeito de mergulho.
Roxo - Coordenadas do local para onde o player irá ser teleportado.
Azul - Número do efeito de mergulho (pode mudar do jeito que você desejar, mas na minha opinião ficou bom o efeito assim).
Rosa - Número do efeito que vai aparecer onde você fui transportado.


Efeito 53 (Será mostrado nas coordenadas que você colocou na pos1)



Efeito 25 (Será mostrado nas coordenadas da onde você vai parar, no caso new)


2º) Script para emergir.
Mesma coisa que no 1º, crie na pasta: data/movements/scripts um arquivo .lua com o nome que você quiser e cole esse código lá.



Código:
function onStepIn(cid, item, pos)
 lot1 = getPlayerSlotItem(cid, 1)
 if (lot1.itemid == 5461) then
 pos = getPlayerPosition(cid)
 new = {x=x, y=y, z=z}
 doTeleportThing(cid, new, FALSE)
 doSendMagicEffect(pos, 25)
 else
   doPlayerSendCancel(cid,"Sorry, not possible. You don't have the requested item.")
 end
 return 1
 end
Explicação
É quase a mesma coisa que o 1º script, só que umas mudanças básicas.
 

Verde - Local onde irá ser checado o item, no caso, slot 1 é o local do helmet.
Vermelho - Id do item que precisa-se ter (5461 no caso é o helmet of the deep).
Laranja - Comando que pega sua posição, no caso antes de ser teleportado, utilizado para mostrar o efeito de bolhas.
Roxo - Coordenadas do local para onde o player irá ser teleportado.
Azul - Número do efeito que aparecerá no title a onde você irá pisar para sair, no caso eu coloquei o efeito 25 porque é algo ligado a fundo do mar, só para ter uma coisa mais bonita (O efeito nº 25 já foi apresentado numa foto mais pra cima no post).

3º) Adicionar no arquivos data/movements/movements.xml


Código:
<movevent type="StepIn" actionid="10001" event="script" value="nomemergulhar.lua"/>
<movevent type="StepIn" actionid="10002" event="script" value="nomeemergir.lua"/>
Explicando

Verde - Nome que você colocou no 1º script, no caso o de mergulhar.
Vermelho - Nome que você colocou no 2º script, no caso o de emergir.


4º) Configurando os titles no MapEditor

1 - Abra seu mapa editor e escolha o title que você quer que ao pisar e ter o helmet of the deep o player seja teleportado pra área underwater.

2 - Clique com o botão direito em cima do title e vá em propriedades ou properties.


3 - Em propriedades, você vai mudar o nº da ActionId, como coloquei ali em cima, no title para mergulhar o ActionId é 10001.


4 - Já no andar de baixo você faz a mesma coisa que no de cima, só que em vez de por o ActionId 10001 que é o pra mergulhar, você vai por o 10002 que é para emergir.


Créditos: 90% para mim (sir navega)
10% pros criadores dos tutoriais que li aqui no fórum

-//-

Essa é o meu primeiro script, então não sei arrumar muito bem os erros (), mas posso tentar. No meu ot eu uso uma versão modificada dela (e funciona), fiz as mudanças especialmente pra postar aqui, então não testei essa versão.

Tem um jeito mais geral para colocar em todas as caves underwater o mesmo actionid, mas para isso você teria que fazer as caves em baixo do lugar onde você vai entrar nela. Além de ser mais simples o jeito que ensinei ali (eu acho).

 

Pesquisar no site

© 2012 Todos os direitos reservados.