[Tutorial] Submodos |
Bolodefchoco « Sénateur » 1527648900000
| 4 | ||
Muitos amigos EN têm me perguntado como fazer um sistema similar ao #grounds (de por vários submodos dentro do jogo), então resolvi fazer o tópico. Vou fazer da melhor que eu acho melhor, mas há diversas formas (talvez até mais fáceis, porém que tem performance / flexibilidades piores) (imo) Eu acho interessante adicionar uma tabela inicial com os dados do módulo, como nome, autor, versão, etc. Code Lua 1 2 3 local modulo = { Agora iremos criar a tabela modo que será primordial. Ela irá conter todos os modos de jogo do seu module! No momento, só iremos criar ela. Code Lua 1 local modo = {} Agora criaremos um evento novo que será executado toda vez que o modo de jogo for alterado. Code Lua 1 2 3 4 5 eventEmMudancaDeModo = function()
Agora que temos nosso evento criado, faremos uma outra função para obter o modo e executar o evento caso o modo realmente exista. Um getter. Code Lua 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 -- Você também poderá criar um timer para que não trocas de modo Agora uma das partes mais importantes: a definição do caractere que será usado para definir o nome do módulo. Code Lua 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 -- Criaremos uma tabela para informar o caractere e a função que ele exercerá.
Agora você poderá criar seus modulos. Code Lua 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 -- Utilize as funções no formato NOME = function(parametros) Paciência, leitor. Estamos perto! Agora sim, a parte mais importante e primordial do sistema: a função inicializadora. Code Lua 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 -- Criaremos uma tabela com o nome de todos os eventos
Tcharam! Tá pronto o sorvetinho Dernière modification le 1527711660000 |
Error_404 « Consul » 1527649020000
| 2 | ||
Melhor tópico!! |
Transforato « Citoyen » 1527650160000
| 2 | ||
Boa explicação pena que não manjo nada desse mundo de lua. |
Infectsoul 1527651480000
| | ||
[Modéré par Kiwrimai, raison : Removido a pedido do autor.] |
Bolodefchoco « Sénateur » 1527651720000
| 1 | ||
Ratufufu a dit : menina vc n sabe quantas vezes tive que apagar os nomes em ingles e escrever em pt. TOC |
Infectsoul 1527651900000
| | ||
[Modéré par Kiwrimai, raison : Removido a pedido do autor.] |
Ninguem « Consul » 1527708060000
| 1 | ||
Eu faço um esquema mais simples, mas que tem umas limitações: exemplo: Code Lua 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 function jogoUm() Eu uso isso no Circuit, daí posso rodar scripts diferentes dependendo da sala que for. É bom para este caso, pois eu não preciso adaptar o script para um formato, basta eu copiar um script completo e colocar dentro de uma função com o nome dela. O ruim é que você entrega o controle quase que total do script para o submodo, não tem como ter dois submodos ao mesmo tempo (o que seria útil, para ter um acima para interpretar comandos globais), isso pode ser resolvido com um controle dos próprios mini scripts, removendo o controle deles para eventChatCommand, por exemplo. Aí você pode fazer um eventChatCommand por fora para gerenciar. Dernière modification le 1527708300000 |
Bolodefchoco « Sénateur » 1527709740000
| 1 | ||
o problema é que usar funções pra isso é um pouco mais pesado do que usar as tabelas. Se você fizer o teste, verá. Também, é como você disse, dar o controle total pode ser bem ruim. Prefiro o método das tabelas. Possibilita vários handlers, é mais leve e flexível também. |
Viniciusdara « Consul » 1527724800000
| 1 | ||
Quero um submodo do Ben10 |
Bolodefchoco « Sénateur » 1527724920000
| 1 | ||
Viniciusdara a dit : çcpkdlsvçodfsbopdkfoçzsv tá na seção |