Ir para conteúdo

Flying System!


Forcera

Posts Recomendados

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

 

  1. O sistema ira te "transportar" para o ultimo andar do mapa, que no caso seria "Floor 0".
  2. Quando transportado, voce tara andando em um tile invisivel, no qual daria a sensacao de estar "voando".
  3. E durante isso, o outfit do player seria mudado, como se fosse um Swim System.
  4. O Host pode escolher os lugares desejados para o sistema funcionar, basta colocar o tile "460" aonde ele queira que o player possa "voar"
  5. O player podera voltar qualquer hora a superfice, mais ele ira voltar para seu templo, nao aonde desejado.
  6. O player nao ira poder usar !fly, a nao ser que ele esteja na superfice.
  7. 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:

 

mapaeditorfly.jpg

 

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!

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

AEEEEEEEEEEEEEEEWWWWW !!!!!!!!

FINALMENTE UM FLY SYSTEM !!!!! XDDD

 

Vlw aew cara, te amo :*

Tava com uma idéia aqui pra deichar o Fly System mais complexo e de melhor uso...

 

Que tal adicionar um comando do tipo !up !down

 

em que o player possa usar SOMENTE quando estiver VOANDO ?? :D

 

Aí ele nao voaria apenas para os lados, também, para cima e para baixo ^^

 

 

Cya, vlw pelo script, tava precisando muito, vou testar aqui aí te falo...

( eu ja tinha adicionado o tile que vc usou aí ao meu mapa :p )

 

 

----------

Edit-

 

Eu testei aqui mano, realmente ficou muito bom o script, porém com um erro

Quando vc diz: !back la, pra voltar

Sua outfit nao volta á ser a mesma !! Oo

Até mesmo as cores ficam diferentes...

 

E Outra coisa que eu acho que seria legal, teleportar o player para a cidade que ele está gravado, e não para somente UM templo/local... ^^

 

Se puder fazer ia ser legal :D

cya

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

aeeeeeeew, consegui fazer aqui akilo do outfit que eu falei, ficou assim ó:

 

Fly.lua

 

-- !fly by Forcera --

-- Ideia by TheGODMaX --

function onSay(cid, words, param, channel)

 

flyoutfit = {lookType = 134, lookHead = 78, lookBody = 88, lookLegs = 0, lookFeet = 88, lookTypeEx = 0, lookAddons = 3}

flypos = getCreaturePosition(cid)

 

npos = {x=flypos.x, y=flypos.y, z=flypos.z - 7}

doTeleportThing(cid, npos)

doSendMagicEffect(npos, 14)

doSetCreatureOutfit(cid, flyoutfit, -1)

end

 

 

 

 

----------

 

 

 

Back.lua

 

 

-- !fly by Forcera --

-- Ideia by TheGODMaX --

function onSay(cid, words, param, channel)

 

nposss = {x=160, y=51, z=7}

doTeleportThing(cid, nposss)

doSendMagicEffect(npos, 14)

doRemoveCondition(cid, CONDITION_OUTFIT)

end

 

 

 

Assim quando vc diz !fly seu outfit muda, e quando vc diz !back ele volta á ser exatamente como era antes !!

=D

 

Cya !! ^^

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

@TheGODMaX, obrigado pelo script de retornar ao outfit normal, ja editei o Topico. =]

 

@amoeba13, eu pensei em ser mais "realista" e quando o player falar !back, ele iria descer 7 leveis, no qual seria o level superfice. Porem, conssidere isso: assim seria muito facil pra qualquer player irem em lugares que eles nao sao supostos para ir. Ele usaria o !fly, e quando chegar num lugar desejado, ele usaria !back. Desse jeito ficaria muito facil. Por isso prefiri usar para ele ser teleportado pro local desejado.

 

---------------------------------------------------------

Sobre o topico, como eu ja disse, editei o topico e adicionei o codigo do @TheGODMaX para ele voltar para o outfit normal. Muitas coisas porem ser feitas para aperfeicoar o codigo como:

 

  • Player so podera voar com um certo item sendo usado em seu inventory.
  • Colocar um OutFit the algum monstro que voa, como por exemplo o Bat. LOL?
  • Usar o codigo para varias quests.

 

Eu soh tentei criar o sistema, agora deixei a parte de criatividade com voces!

Link para o comentário
Compartilhar em outros sites

Sò uma pergunta... Caso o jogador esteja em um local fora da cidade, onde não existem akeles tiles invisíveis e usar o script, não dará nenhum erro no console??

 

Testado, e nenhum erro no console.

Pense como se fosse o comando "/a". Se voce falar /a 1000 a nao tiver nenhum tile a distancia de 1000 sqft a sua frente, obviamente voce ficara no mesmo local. e Sem acontecer algo com o servidor.

 

Exatamente como o Fly System.

Link para o comentário
Compartilhar em outros sites

Testado, e nenhum erro no console.

Pense como se fosse o comando "/a". Se voce falar /a 1000 a nao tiver nenhum tile a distancia de 1000 sqft a sua frente, obviamente voce ficara no mesmo local. e Sem acontecer algo com o servidor.

 

Exatamente como o Fly System.

 

Hum, infelizmente não é bem assim, acabei de achar um erro '-'

Quando você está em uma area que ácima nao tem o sqm invisivel, se vc usar o comando !fly, sua out é mudada...

se alguem quisesse colocar o fly system em seu ot, e quisesse adicionar um novo out, de um char voando emcima de algum monstro por exemplo... isto iria ficar muito estranho e feio no ot, um player falar !fly, sua out ser mudada e ele sair andando pela cidade como se estivesse voando...

 

e outra,o !back virou um meio de transporte rapido para o player, suponhamos que ele esteja na poi, as munições e suprimentos estão acabando... ele sabe que vai morrer... oq ele faz ? simples, !back

e lá está ele, sã e salvo no templo. '-'

 

Acho que esses 2 comandos só poderiam ser usados da seguinte maneira:

!fly, apenas se realmente tivesse os sqms invisiveis no ultimo andar...

!back, apenas se o player estivesse voando no andar '0'.

 

._.

 

Acho que não consigo fazer isto, vou tentar, mais não é certeza...

Do mesmo geito, tenta arrumar isso plx, ou alguma outra pessoa q esteja lendo, ajuda também :p

 

Vamos criar um Fly System Mágico para todos poderem usar !! :D

 

Cya.

 

 

 

~ Comentzinho á fora: um bom out pra usar é o do Wyvern, fica muito parecido com vôo mesmo !! xD se quiserem, apenas substitua a linha do flyoutfit, q está no arquivo fly.lua por:

 

flyoutfit = {lookType = 239, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0}

 

^^

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

@TheGODMaX, Muito obrigado por postar os bugs, e os problemas do script.

 

Bom, pelo menos ate agora nao achamos nenhum erro que atinja ao servidor.

 

--------------------------------------------------

Cogido: vou tentar corrigir os erros citados quando chegar em casa, estou postando pelo computador do meu colegio.

 

obs: amo quando scripts saem com problemas, os bugs testam minhas abilidades!

 

rsrs.

Link para o comentário
Compartilhar em outros sites

@Topico

 

Modifiquei varios erros/problemas que existia no script. Se acharem mais, eh soh avisarem aqui no topico.

 

Update:

 

  • Player soh podera usar !back quando estiver "voando"
  • Retirei o 'ChangeCreatureOutfit' para concerto.
  • Apos usar o comando "!back" o player ira automaticamente para o seu templo, e nao mais para o lugar desejado.

 

Bom, ate agora soh isso galera.

Aproveitem!

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...