Introdução
Graças ao Cronus pela sua crítica construtiva e banho de água fria e a minha vontade de criar um novo sistema eu fiquei com a minha cabeça martelando para tentar resolver esse problema. Espero ter conseguido atingir a forma mais completa possível. Se esse modo não for bom o suficiente, espero que me ajudem a desenvolver a minha ideia na qual eu acredito estar chegando bem perto de conseguir reproduzi-la.
Como Funciona?
Vamos precisar de uma switch que você não irá utilizar no jogo. Ué, Avenger, mas não tem graça usar essa switch global. Não esquenta, jovem aprendiz, na verdade, nós só iremos precisar da condição. Essa switch nunca será acionada. Não pelo modo tradicional. Oi? Como assim? Se ela nunca será acionada para que tê-la e como será acionada por outro método? Chega! Quantas perguntas... Eu descobri um meio de ativar condições sem que os seus requisitos sejam completados. Ou seja, eu posso forçar uma condição. E eu utilizo as LABEL'S. Se você usa o comando "Ir para a label" e se ela (label) estiver dentro de uma condição, o comando inteiro da mesma será executado. hehe' Problem?
Beleza! Mas isso não esclarece a dúvida de como faremos a switch local. Er... Ok! Você já deve ter ouvido falar das string's. Elas armazenam qualquer valor. Certo? Usaremos, então, as strings para verificarem se aquele comando já aconteceu. Porra, eu sou um gênio. hehehe' Estou tão feliz por ter tido essa ideia, cara, é fantástica!
No Destiny Script, as string's são criadas com o seguinte comando:
$ a[1] = "Oi.";
Se você usar o comando de mensagem > \a[1] e for falar com um NPC ele responderá "Oi." (sem aspas).
Acontece que você vai precisar usar uma string para cada evento mas a condição da switch pode ser a mesma para todos. (:
Download
Baixem a demo para poderem estudar o que eu fiz e me informar se há uma maneira mais conveniente ou se esta por hora está boa.
Clique aqui!