22/06/2015

Aula 24 - Sistema de Dia e Noite

   Olá, fãs de RPGs e coisas legais. Continuando com as aulas que visam ajudar aos fãs de RPG Maker estou aqui para sanar mais algumas dúvidas referentes a alguns eventos interessantes que podem ser feitos usando o RPG Maker 2003. Espero que gostem da aula :)

--Sistema de Dia e Noite--

   Bom, para criarmos uma transição que simule a passagem do tempo dentro do jogo, antes devemos criar alguns eventos paralelos no mapa principal, que irão simular o dia, o entardecer, a noite, e o amanhecer (você pode criar mais do que esses 4, mas para esta aula vamos usar apenas esses).

   No topo do mapa (de preferência, pois geralmente é onde os heróis não conseguem alcançar e fica fácil para manejar depois), crie um evento e dê o nome de "Dia". Nas condições ele deve estar como "Processo Paralelo" e "Abaixo do Herói" (creio que possa ser usado também "Acima do Herói" - só evite colocar ele no "Mesmo Nível do Herói" pra não ter problemas depois).

   Primeiro, clique em 'Esperar' (aba 1 dos Eventos de Comandos), e digite 1 (um décimo de segundo). Depois, clique em 'Mudar Variável' (aba 1), e aproveite para criar 4 variáveis ("Dia", "Anoitecer", "Noite" e "Manhã"). Selecione a variável "Dia", em Operação escolha soma ( + ), e em Operando deixe 'Setar' com um valor de 1.

   Depois, clique em 'Condição IF - Fork' (aba 3), clique em Variável e selecione a variável "Dia". Clique em Setar e atribua um valor (quanto maior o valor, mais tempo demorará para acontecer a transição de tempo). Na opção abaixo escolha 'Igual ou Acima'. Desmarque a opção Exceção e clique em OK.

   Em seguida, clique em 'Tonalidade de Tela' (aba 2), e deixe os valores como vermelho 70, verde 90, azul 70 e cromo 90. Deixe o intervalo por cor em 10 (1 segundo) e marque a opção 'Esperar a troca de cor'. Clique em OK.

   Depois clique em 'Mudar Variável', escolha a variável "Dia", deixe a Operação em 'Setar', e em Operando marque 'Setar' e coloque o valor 0 (zero). Pra encerrar, clique em 'Mudar Switch' (aba 1), crie 4 switches com os mesmos nomes das variáveis, selecione o switch "Dia" e deixe em OFF. Depois coloque mais um switch, e desta vez escolha o switch "Anoitecer" e deixe em ON. A tela deverá estar assim:


   Depois crie outro evento do lado do evento "Dia", e chame ele de "Anoitecer". Nas condições deixe ele como o evento "Dia", coloque a espera de 1 décimo de segundo, e faça todo o procedimento do evento "Dia" (mas substitua as variáveis e switch "Dia" pela variável e switch "Anoitecer", e no último switch escolha o "Noite"). Além disso, na tonalidade de tela, coloque os valores: vermelho 0, verde 50, azul 70 e cromo 80. A tela deverá estar assim:


   Depois crie outro evento do lado do evento "Anoitecer", e chame ele de "Noite". Nas condições deixe ele como o evento "Anoitecer", coloque a espera de 1 décimo  de segundo, e faça todo o procedimento do evento "Anoitecer" (mas substitua as variáveis e switch "Anoitecer" pela variável e switch "Noite", e no último switch escolha o "Manhã"). Além disso, na tonalidade de tela, coloque os valores: vermelho 70, verde 80, azul 80 e cromo 90. A tela deverá estar assim:


   Por fim, crie outro evento do lado do evento "Noite", e chame ele de "Manhã". Nas condições deixe ele como o evento "Noite", coloque a espera de 1 décimo de segundo, e faça todo o procedimento do evento "Noite" (mas substitua as variáveis e switch "Noite" pela variável e switch "Manhã", e no último switch escolha o "Dia"). Além disso, na tonalidade de tela, coloque os valores: vermelho 100, verde 100, azul 100 e cromo 100. A tela deverá estar assim:


   Agora que temos os 4 eventos, vamos fazê-los funcionar. Para isso, quando o grupo entrar no mapa mundo pela primeira vez, crie um evento qualquer e no final ative o switch "Dia" (assim o ciclo começará).

   Mas e quando eu entrar em um mapa, a tela ficará com o mesmo tom que estiver no mapa mundo, Lonely Heart?

   Sim. Embora a mudança não ocorra quando você entrar em outro mapa (a menos que esse novo mapa TAMBÉM tenha os 4 eventos paralelos colados nele).

   E como faço para, ao entrar em uma casa, a iluminação ficar normal, e o tempo de transição do lado de fora "congelar" enquanto eu estiver dentro da casa, voltando a "correr" quando eu sair?

   Bom, vamos por partes...

   Primeiro, para evitar que a tela fique no mesmo tom quando você entrar em uma casa, por exemplo, basta clicar em 'Tonalidade de Tela (aba 2), e colocar todos os valores como 100, desativando a opção de 'Esperar a troca de cor', e dando um intervalo de 1 (um décimo de segundo). Coloque essa parte após o tekeporte para o novo mapa (a tela mudará rápidp - se quiser evitar isso, basta colocar um efeito de Fade Out antes do teleporte e do tom de tela, e uma espera de 5 (meio segundo), e um Fade In depois). Por fim, clique em 'Parar Eventos Paralelos' (aba 3) para fazer o contador pausar enquanto estiver dentro da casa. A tela deverá ficar assim (ignorem a primeira linha):


   Para voltar ao mapa mundo e o contador voltar ao normal e fazer a transição de tempo, coloque (após o Fade Out e o teleporte para o mapa mundo) quatro condições IF sem exceção. Em cada uma marque como requisito de ativação o switch correspondente ("Dia", "Anoitecer", "Noite" ou "Manhã"). E dentro de cada uma coloque a tonalidade de tela correspondente: tudo 100 para "Dia"; vermelho 70, verde 90, azul 70 e cromo 90 para "Anoitecer"; vermelho 0, verde 50, azul 70 e cromo 80 para "Noite"; e vermelho 70, verde 80, azul 80 e cromo 90 para "Manhã". Depois coloque a espera de meio segundo e o Fade In. E pra encerrar, escolha a opção 'Reiniciar Timer' (aba 3) para fazer o evento paralelo voltar a funcionar de onde parou. A tela deverá ficar assim:


   Certo, Lonely Heart. Mas agora como eu faço para controlar a taxa de encontros e limitar batalhas só para o período da noite, por exemplo?

   Para isso, primeiro clique em Database (na tela principal do projeto), ou aperte F8, e vá até a última aba (Eventos Comuns). Lá, crie um novo evento (vou chamar de "Taxa Encontro"), e deixe como condição de Início 'Evento Paralelo'.

   Dentro desse evento, coloque quatro condições IF, e marque como requisito de ativação o switch correspondente em cada uma ("Dia", "Anoitecer", "Noite" ou "Manhã"). Dentro de cada condição, selecione 'Taxa de Encontros' (aba 3), e selecione um valor para cada condição (zero é nenhuma batalha). No final você terá algo parecido com a tela abaixo (dei várias taxas de encontro):


   Nota importante: quanto maior for o número colocado na taxa de encontros, mais passos o herói poderá dar sem encontrar inimigos.

   Por fim, para ativar esse evento comum, basta colocar abaixo do evento de ativação da transição de tela (comentei no começo da aula - após explicar como criar os 4 eventos de transição de tempo). Para isso, basta clicar em 'Chamar Evento' (aba 3), e escolher o evento no campo Eventos Comuns.

   Com isso você poderá incrementar ainda mais o jogo e limitar batalhas somente para a parte do dia ou da noite, bem como mudar as taxas de encontro no decorrer do tempo dentro do jogo. Espero que tenham gostado e até a próxima o/

05/06/2015

Aula 23 - Criando um Banco

   Olá, fãs de RPGs e coisas legais. Após a aula anterior sobre uso do timer e do game over, recebi mais umas sugestões de aula do seguidor do blog, Wismael Rodrigues, e por esse motivo estou aqui para sanar mais algumas dúvidas referentes a alguns eventos interessantes que podem ser feitos usando o RPG Maker 2003. Espero que gostem da aula :)

--Criando um Banco--

   Nesta aula vou ensinar vocês como construir um sistema de banco no jogo. Primeiramente, coloque um personagem no mapa que deseja criar o banco - ele será o atendente (deixe nas condições 'Apertar Tecla' e 'Mesmo Nível do Herói'). Na tela de comandos comece indicando uma variável e atribuindo a ela o valor de dinheiro carregado pelos heróis. Pra isso, clique em 'Mudar Variável', na aba 1 dos Eventos de Comando, crie uma variável (dê o nome de "Moeda Atual"), deixe como 'Setar', e selecionando a opção 'Outros' no campo Operando, escolha a opção Dinheiro.

   Após essa parte, escolha um rosto e digite uma mensagem do tipo "Bem vindo ao banco. O quê deseja fazer?" (use as opções 'Gráficos de Rosto' e 'Exibir Mensagem', ambas na aba 1 dos Eventos de Comandos).

   Após isso, clique em 'Mostrar Escolhas' (aba 1), selecione a opção 'Cancelar' no lado direito, e escreva duas respostas ("Retirada" e "Depósito"). Bom, primeiro vamos cuidar da parte da retirada de dinheiro.

--Retirada de Dinheiro--

   Antes de mais nada, crie mais 3 variáveis, e chame-as de "Moeda em Conta", "Moeda Retirada" e "Moeda Depositada" (faça isso quando criar a variável "Moeda Atual" - para esta aula, vou assumir que a moeda atual é a variável 1, a moeda em conta é a variável 2, a retirada é a 3, e a depositada é a 4).

   Na resposta de retirada, primeiro coloque o gráfico de rosto do atendente, e em seguida escreva o seguinte: "Você tem \v[2] gold na conta. Quanto quer retirar?" (lembrando que \v[x] chama um valor guardado em uma variável, e o x entre colchetes é o número da variável chamada - aqui a mensagem mostrará quanto dinheiro o banco guardou para os heróis).

   Em seguida, clique na opção 'Armazenar Número' (aba 1), selecione a variável 3 ("Moeda Retirada") e escolha 6 dígitos.

   Depois clique em 'Condição IF - Fork' (aba 3), selecione em Variável a número 3 ("Moeda Retirada"), depois clique em Variáv e escolha a variável 4 ("Moeda em Conta"). Abaixo, selecione 'Igual ou Abaixo'. Deixe a opção de exceção marcada e clique em OK.

   Agora crie uma mensagem e escreva: "Você retirou \v[3] gold" (vai mostrar quanto dinheiro você retirou). Em seguida clique em 'Mudar Quantia em Dinheiro' (aba 1), marque a opção 'Adicionar Valor', clique em Variáv e escolha a variável 3 ("Moeda Retirada").

   Após isso, clique em 'Mudar Variável' (aba 1), selecione em Uma a variável 2 ("Moeda em Conta"), em Operação escolha subtração ( - ), e em Operando clique na primeira opção Variável e escolha a variável 3 ("Moeda Retirada").

   Na parte ELSE, basta colocar o gráfico do rosto do atendente, e uma mensagem dizendo: "Você excedeu a quantia para retirada". A tela deverá ficar assim:


--Depósito de Dinheiro--

   O esquema de depósito é bem parecido com o de retirada, mas com algumas diferenças pequenas. Primeiro, coloque o gráfico de rosto do atendente, e em seguida escreva o seguinte: "Sua conta tem \v[2] gold. Digite um valor para depósito".

   Em seguida, clique na opção 'Armazenar Número' (aba 1), selecione a variável 4 ("Moeda Depositada") e escolha 6 dígitos.

   Depois clique em 'Condição IF - Fork' (aba 3), selecione em Variável a número 4 ("Moeda Depositada"), depois clique em Variáv e escolha a variável 1 ("Moeda Atual"). Abaixo, selecione 'Igual ou Abaixo'. Deixe a opção de exceção marcada e clique em OK.

   Agora crie uma mensagem e escreva: "Você depositou \v[3] gold" (vai mostrar quanto dinheiro você depositou). Em seguida clique em 'Mudar Quantia em  Dinheiro' (aba 1), marque a opção 'Reduzir Valor', clique em Variáv e escolha a variável 4 ("Moeda Depositada").

   Após isso, clique em 'Mudar Variável' (aba 1), selecione em Uma a variável 2 ("Moeda em Conta"), em Operação escolha somar ( + ), e em Operando clique na primeira opção Variável e escolha a variável 4 ("Moeda Depositada").

   Na parte ELSE, basta colocar o gráfico do rosto do atendente, e uma mensagem dizendo: "Você não tem o valor suficiente que quer depositar". A tela deverá ficar assim:


   Bom, com isso você terá criado um sistema simples de banco que pode ser colocado dentro do jogo. Espero que tenham gostado da aula e até a próxima o/