Cyber-techers
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.


um forum destinado a quem quer aprender sobre Programação e desenvolvimento na area da computação
 
InícioProcurarÚltimas imagensRegistarEntrar

 

 ~ Criando Quest - O Básico

Ir para baixo 
2 participantes
AutorMensagem
rhsw




Mensagens : 5
Pontos : 18
Reputação : 3
Data de inscrição : 18/07/2017

~ Criando  Quest - O Básico  Empty
MensagemAssunto: ~ Criando Quest - O Básico    ~ Criando  Quest - O Básico  Icon_minitimeQua Jul 19, 2017 5:43 pm

- Vamos aprender o básico de fazer quests.

* A primeira coisa que temos que saber é que TODAS as quests começam por:

quest nome begin

Onde em nome colocamos o nome da quest. Assim damos ordem de iniciar a quest.
* Depois disto, prosseguimos para o state.

state start begin

* Agora, vejamos, quest serve para dar início à quest, e o state, serve para... ?
O state é tipo uma divisão da quest, em todas as quests o state inicial será sempre start e a partir daí podemos mudar o state para que seja possível praticar várias ações.
* E continuamos para o início da ação:

when ação begin

No when há vários tipos de ações:

- button;
- enter;
- info;
- kill;
- leave;
- letter;
- levelup;
- login;
- logout;
- target;
- unmount;
- chat;
- click;
- use.


Onde as mais usuais são:

- button;
- info;
- kill;
- letter;
- levelup;
- login;
- target;
- chat;
- click;
- use.


* Ora bem, onde é que se costumam usar estes tipos de when?
Se repararem, nas quests do biólogo usam-se estes whens todos.
Mas nós nos iremos concentrar mais no login, até porque será usado no exemplo.
Vamos lá traduzir então estas 3 primeiras linhas de uma quest:
Quando a quest nome iniciar, o state start iniciará, fazendo com que a ação inicie.

* Parece complicado falando portuquês?
Falemos então em quest, na linguagem .lua:

quest teste begin
      state start begin
          when login begin  
                say("Vais mudar de state")  
                set_state(aprender)  
          end
       end
       state aprender begin  
            when login begin  
                 say("Estás no state aprender")  
             end
       end
end


Ora bem, vejamos pouco a pouco.
quest teste begin -> Início da quest.
state start begin -> Início do state start.
when login begin -> Início do when, isto fará com que o jogador quando logue na personagem (incluindo quando nos teleportamos a um mapa) sofra uma ação.
say("Vais mudar de state")
É a ação que o jogador irá sofrer quando fizer login.
set_state(aprender) -> Mudança do state para que o jogador sofra outra ação.
end -> Fecho do when.
end -> Fecho do state.
state aprender begin -> Início do novo state que fizémos.
when login begin -> Início do when, isto fará com que o jogador quando logue na personagem (incluindo quando nos teleportamos a um mapa) sofra uma ação diferente da ação do state start.
say("Estás no state aprender")
É a ação que o jogador irá sofrer no state aprender.
end -> Fecho do when.
end -> Fecho do state.
end -> Fecho da quest.
Fácil?

Então, vamos prosseguir.

* Há alguma maneira de mudar de state entre quests?
Sim, com a função set_quest_state("nome_da_quest", "nome_do_state").
Vejamos:

quest teste4 begin
      state start begin  
            when 9010.chat."Ae" begin  
                    say("Ae cara")  
                    set_quest_state("teste5", "hi")  
             end
       end
end


quest teste5 begin
     state start begin  
             when 9003.chat."Olá" begin  
                     say("Olá")   set_state(hi)  
              end
      end
      state hi begin  
              when 9001.chat."Hi" begin  
                      say("Hello, nice to meet you!")  
              end
       end
end


* O que irá acontecer aqui?

Quando for ao npc 9010 e clicar na opção Ae, irá aparecer uma mensagem a dizer Ae cara e irá mudar para o state hi, da quest teste5 que fará com que ao ir ao npc 9001 e clicar na opção Hi, aparecerá a mensagem Hello, nice to meet you!
É simples!
Ou seja, o state hi só será ativado, quando a quest teste4 acabar!

* O que são os ends?

Tal como os begin dão inicio a algo, os end fecham-no.

* Como sabemos quantos ends colocar numa quest?

Isso é simples e fácil, para que uma quest funcione, além de uma boa sintaxe, necessita de estar devidamente fechada.
Dito isto, e observando a quest, conseguimos deduzir que:

- O quest, state e when são obrigatórios levarem sempre um end.

Ou seja, em todas as quests sempre são necessários, 3 end, estes 3 são obrigatórios!
Um para a quest, outro para o state e outro para o when.
Além destas, os if também levam end, sempre!

Exemplificando:

quest aprender begin
      state start begin  
             when login begin  
                     say("Já sei usar os ends")  
              end -> end do when
       end -> end do state
end  -> end da quest


Simples, não?

*E se quiser usar 2 when numa quest, tenho sempre que mudar de state?
Não, nem sempre, apenas quando o jogador sofre uma ação digamos, bastante diferente da primeira, ou seja, se for para colocar vários when num npc, por exemplo, para abrir várias lojas, então antes de começar um segundo when, teriamos que fechar o primeiro.
Isto é:

quest teste2 begin
      state start begin  
             when 9003.chat."The End" begin  
                      say("Oi")  
              end -> end do primeiro when  
              when 9003.chat."The End2" begin  
                       say("Adeus")  
              end -> end do segundo when
       end -> end do state
end -> end da quest

E o mesmo se passa com os state, mas não com a quest porque a quest inclui isto tudo, se fechas uma quest, não podes adicionar outra no mesmo documento.

* Estrutura de uma quest
Esta pode ser como vocês quiserem, mas se tiverem dúvidas nos ends que colocar aconselho a usarem a que eu uso:

[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]

Desta maneira sabemos o que é que estamos a fechar.
E é tudo!

-  Creditos - Cyber-Gamers
Ir para o topo Ir para baixo
gameforge
Admin
gameforge


Mensagens : 6
Pontos : 11
Reputação : 0
Data de inscrição : 17/07/2017

~ Criando  Quest - O Básico  Empty
MensagemAssunto: Re: ~ Criando Quest - O Básico    ~ Criando  Quest - O Básico  Icon_minitimeQua Jul 19, 2017 6:56 pm

obrigado por partilhar +1
Ir para o topo Ir para baixo
https://cyber-techers.directorioforuns.com
 
~ Criando Quest - O Básico
Ir para o topo 
Página 1 de 1
 Tópicos semelhantes
-
» ~ Quest - Medalha de quitação

Permissões neste sub-fórumNão podes responder a tópicos
Cyber-techers :: Metin2 - gerenciamento de Servidores :: Tutoriais e dicas-
Ir para: