- Vamos aprender o básico de fazer quests.* A primeira coisa que temos que saber é que TODAS as quests começam por:
quest nome beginOnde 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 beginNo 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
endOra 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
endquest 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 questSimples, 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