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!