Resolvi criar um sisteminha de "voar". Primeiramente queria dizer que a ideia foi do @TheGODMax, mais o script foi desenvolvido por mim.
------------------------------------------
Conteudo
Bom, o que o script eh capaz de fazer:
- Dar uma sensacao que voce esta realmente voando
- Trocar Outfit durante e depois do voo
- Voar apenas em locais selecionados
Explicando
- O sistema ira te "transportar" para o ultimo andar do mapa, que no caso seria "Floor 0".
- Quando transportado, voce tara andando em um tile invisivel, no qual daria a sensacao de estar "voando".
- E durante isso, o outfit do player seria mudado, como se fosse um Swim System.
- O Host pode escolher os lugares desejados para o sistema funcionar, basta colocar o tile "460" aonde ele queira que o player possa "voar"
- O player podera voltar qualquer hora a superfice, mais ele ira voltar para seu templo, nao aonde desejado.
- O player nao ira poder usar !fly, a nao ser que ele esteja na superfice.
- O player nao ira poder usar !back, a nao ser que ele esteja no ultimo floor (0)
Tutorial
Primeiro o mais chato, e dificil:
Abra o mapa com o seu mapa editor, e coloque o TILE 460 NO ULTIMO ANDAR (Floor 0), apenas aonde voce quer que o player VOE!
Exemplo:
Segundo: va em "PastaDoOt\Data\Talkactions\Scripts"
Crie um arquivo chamado "fly.LUA" la dentro e insira esse codigo:
-- !fly by Forcera -- -- Ideia by TheGODMaX -- function onSay(cid, words, param, channel) flypos = getCreaturePosition(cid) npos = {x=flypos.x, y=flypos.y, z=flypos.z - 7} pos = getCreaturePosition(cid) flyoutfit = {lookType = 239, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0} if pos.z == 7 then if doTeleportThing(cid, npos) then doSendMagicEffect(npos, 14) doSetCreatureOutfit(cid, flyoutfit, -1) else return 0 end end return TRUE end
------------------------------------------------------------------------------------
Na mesma pasta crie um arquivo chamado "back.LUA" la dentro e insira esse codigo:
-- !back by Forcera -- -- Ideia by TheGODMaX -- function onSay(cid, words, param, channel) npos2 = getPlayerMasterPos(cid) poszao = {x=npos2.x, y=npos2.y, z=npos2.z} pos = getCreaturePosition(cid) if pos.z == 0 then doTeleportThing(cid, poszao) doRemoveCondition(cid, CONDITION_OUTFIT) doSendMagicEffect(poszao, 14) end end
- .
-
[!fly] pos.z == : Numero do andar que o player precisa estar para poder usar !fly
-
[!back] pos.z == : Numero do andar que o player precisa estar para poder usar !back
-
flyoutfit : Outfit que o player ira ter quando usar o !fly
.
Terceiro, e ultimo passo:
adicione essas Tags em "PastaDoOt\Data\Talkactions\Talkactions.xml"
<!-- Flying System --> <talkaction log="yes" words="!fly" access="0" event="script" value="fly.lua"/> <talkaction log="yes" words="!back" access="0" event="script" value="back.lua"/>
Finalizando
Para voar: Apenas fique embaixo do tile 406 e fale "!fly"
Para voltar: Apenas fale "!back"
------------------------------------------------------------------
Espero que tenham gostado, e aproveitem!