não é um script por isso não postei na area de Scripts.
Vamos ao TUTO, e desculpem a falta d screens e da Demo...pq eu postei isso em outro forum a muito tempo... e n tenho mais o arquivo original para upar...
LEMBREM-SE, existem 2 TUTORIAIS AQUI, LEIAM OS 2.
DIA E NOITE
*NOTA: essa é uma modificação do tutorial original, não está muito igual
É muito simples de fazer este sistema de dia e noite com horário!
Para construir este sistema é necessário ter conhecimentos sobre:
- variáveis
- eventos comuns
- condições
- ciclos
- …
Vamos precisar de criar 2 “eventos comuns”, um com o nome “Relógio” e outro com o nome “Dias” ( os nomes não são importantes, podem dar os nomes que quiserem aos eventos, eu no meu caso dei estes! ), todos estes eventos comuns devem ter como condição de inicio a opção processo paralelo, e com um switch condicional de inicio chamado começar relógio ( mais uma vez o nome não importa, mas assim já ficamos com uma base.
Eu vou guiar-me pelos nomes dos meus eventos comuns, vocês guiem-se pelos seus.
O 1º evento, o Relógio
Muito bem, no evento Relógio, vamos criar um “ciclo”.
Dentro desse ciclo criaremos a função “esperar”, e aí colocamos o tempo que queremos, em frames ( se pusermos 1 frame uma hora irá durar cerca de 3 minutos em tempo real aproximadamente, se quiserem por em tempo real, utilizem 20 frames, que é aproximadamente um segundo em tempo real).
Continuando, por baixo do comando “esperar” vamos inserir uma “variável”, chamada “segundos”, e acrescentamos a constante “ + 1 “.
De seguida, adicionamos uma “condição”, com a seguinte condição:
“ Variável : segundos = 59 ”
Dentro dessa “condição”, vamos inserir uma “variável” chamada “minutos”, e acrescentamos a constante “ + 1 “.
Acrescentamos também uma “variável” ( por baixo desta), a mesma dos segundos, com a constante “ substituir por 0 “ ou “ = o “.
Por baixo nesta mesma “condição”, vamos inserir outra condição, com a seguinte condição:
“ Variável: minutos = 59 ”
Dentro dessa “condição”, vamos inserir uma “variável” chamada “Horas”, e acrescentamos a constante “ + 1 “.
Acrescentamos também uma “variável” ( por baixo desta), a mesma dos minutos, com a constante “ substituir por 0 “ ou “ = o “.
Agora vamos acrescentar outra condição dentro desta ultima condição, com a seguinte condição:
“ Variável: Horas = 23 ”
Acrescentamos uma “variável”, a mesma dos segundos, com a constante “ + 1 “.
Acrescentamos também uma “variável” ( por baixo desta), a mesma das horas, com a constante “ substituir por 0 “ ou “ = o “.
Nosso primeiro evento comum está pronto
O 2º evento, os “dias”.
Neste evento vamos continuar a trabalhar com condições, mais ou menos parecido com o primeiro, mas um pouco mais simples.
Comecemos então por criar uma condição, com a seguinte constante:
“ Variável : horas = 5 “
e dentro desta condição inseri-mos a função “cor da tela” com os seguintes dados para as cores:
cor da tela ( -50, -50, -50, 0 ), @ 200
dentro desta condição, na secção “excessaõ” vamos criar outra condição, com a constante:
“ Variável : horas = 6 “
e dentro desta condição inseri-mos a função “cor da tela” com os seguintes dados para as cores:
cor da tela ( 0, 0, 0, 0 ), @ 200
dentro desta condição, na secção “excessaõ” vamos criar outra condição, com a constante:
“ Variável : horas = 14 “
e dentro desta condição inseri-mos a função “cor da tela” com os seguintes dados para as cores:
cor da tela ( 50, 50, 50, 0 ), @ 200
dentro desta condição, na secção “excessaõ” vamos criar outra condição, com a constante:
“ Variável : horas = 17 “
e dentro desta condição inseri-mos a função “cor da tela” com os seguintes dados para as cores:
cor da tela ( 0, -51, -51, 0), @ 200
dentro desta condição, na secção “excessaõ” vamos criar outra condição, com a constante:
“ Variável : horas = 19 “
e dentro desta condição inseri-mos a função “cor da tela” com os seguintes dados para as cores:
cor da tela ( -150, -150, -50, 0 ), @ 200
e está criado o 3º evento!
Agora faça “aplicar” e “ok”
Para acionar a contagem de horas, minutos e segundos, é necessário criar um evento no mapa
Nesse evento crie um switch chamado começar relógio, que vai ser o mesmo que vai activar os 3 eventos comuns, por isso é que colocamos a condição de inicio e o switch condicional de inicio!
Ponha esse evento normal (do mapa) a iniciar como processo paralelo.
E pronto… seu sistema de dia e noite está criado.
EXPLICAÇÃO DOS EVENTOS COMUNS
Aqui está uma explicação daquilo que fizemos nos eventos comuns:
No primeiro evento criámos um ciclo certo?, que são as horas por isso é que pusemos todas aquelas condições e tudo, que são para ao fim de cada 59 segundos, estes voltarem a 0, ao fim de 59 minutos, estes voltarem a 0, e ao fim de 24 horas estas voltarem a zero.
No segundo evento comum criámos uma mensagem de texto que nos irá dizer as horas, quando pressionamos a tecla X que equivale á tecla A do nosso teclado.
No terceiro evento comum, criámos o sistema de dia e noite, ou seja ás 5 horas da manha começa a amanhecer, ás 6 horas fica de dia, ás 14 fica de tarde, com o sol mais brilhante, ás 17 começa a pôr-se o sol, e ás 19 começa a ficar de noite.
Se por acaso você não gostar do modo como eu coloquei a noite e o dia você pode trocar as cores da tela muito facilmente editando simplesmente a função “cor da tela” dentro de cada condição.
Você pode criar muitos subsistemas, como por exemplo inimigos e itens que só aparecem a noite, sons dependendo do horário, fala dos personagens diferentes ao passar do dia etc.
Relógio no menu
Pronto , criamos esse ótimo sistema de dia e noite, mas como saber as horas? Simples, criando um relógio (Duhh pra mim). Pode não ser nenhuma maravilha, mas pow! eu descobri isso no meu primeiro dia de RGSS, ta sem lags e é util (pelo menos eu acho).
ENFIM O TUTO:
NOTA*: Essa é uma modificação do menu padrão, com outros menus o procedimento pode ser diferente
É simples, entre no seu editor de Scripts e vá em Windows_PlayTime.
Lá dentro, procure a linha com o seguinte código:
Código: hour = @total_sec / 60 / 60
min = @total_sec / 60 % 60
sec = @total_sec % 60
text = sprintf("%02d:%02d:%02d", hour, min, sec)
e troque por esse:
Código: hour = $game_variables[3].to_s #Vem dentro desses colchetes, aqui deve ser posto a variavel.
min = $game_variables[2].to_s #Vem dentro desses colchetes, aqui deve ser posto a variavel.
sec = $game_variables[1].to_s #Vem dentro desses colchetes, aqui deve ser posto a variavel.
text = sprintf("%02d:%02d:%02d", hour, min, sec) #Nessa parte nada sera mudado
LEMBREM-SE, EU COLOQUEI COM AS MINHAS VARIAVEIS QUE SÃO 3 para hora, 2 para minuto e 1 para segundos. Vocês tem que colocar as suas.
O que Fizemos
Nós trocamos o contador de tempo de jogo do menu que mostra o tempo de jogo, por um relógio, que mostra as variaveis.
Para mudar o texto que aparece na janela do relógio no menu
É simples, nesta linha do Windows_PlayTime
Código:self.contents.draw_text(4, 0, 120, 24, "Tempo de Jogo")
mude o texto entre aspas ("Tempo de Jogo") para o que quiser, sem apagar as aspas.
AGRADECIMENTOS E CRÉDITOS
Agradecimentos a Mouta pelo sistema de dia e noite, ao Hatake por me insentivar a aprender RGSS, a rpgmenace, ao resource manager por seus tutoriais e membros, aos membros em questão, etc.
Vlw! e comentem o que acharam, qualquer duvida me falem.
_________________
ganhe dinheiro fácil... aproveite...