O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Dia, Tarde e Noite

Iniciado por Hero of Time, 22/03/2014 às 16:15

22/03/2014 às 16:15 Última edição: 22/03/2014 às 17:05 por mercia
Alguém conhece algum script que faça alterar entre dia tarde e noite assim como ocorre no Pokémon? não precisa necessáriamente ser no mesmo horário do computador (acho que nem é possível isso), porém eu queria que isso só ocorre-se aonde eu manda-se, pois há cidades no meu jogo que eu queria que só fica-se de noite ou de tarde.
Eu sei que dá para fazer isso sem script nenhum, só que se eu sair de um mapa que está de noite e ir para outro ao lado, esse outro vai estar de dia. Obrigado desde já  :blink:

Script acho que não tem, Agora sistema por eventos ...

http://centrorpg.com/rpg-maker-vxace-34/sistema-de-dia-e-noite/

só procurar um pouco no fórum, esse ai é só um exemplo.

é um bom evento, mas não é bem o que eu queria...  :=|:

Tudo bem se for no horário do computador? (Sim, é possível) Se tudo bem: MS - Dia e Noite

Além de dia e noite, tem tarde, nascer do sol, por do sol e mais uns horários marotos, é bem configurável e tem uma versão compatível com Khas Aweasome Light effects, leia o tópico todo...
~ Masked

0-o Meu irmão você manja dos scripts hein! Só que tem umas coisas que eu fiquei em dúvida por não manjar tanto. A primeira é aquele negócio de só acontecer isso em determinadas regiões, por exemplo, meu jogo começa de manhã, porém se o jogador começar a jogar ele de noite na vida real, muitas coisas que tinha programado para acontecer de manhã não farão sentido, e a segunda é que como você programou, os eventos só acontecem em determinado momento, então se o cara for jogar de noite, os eventos do dia não acontecerão. Não sei se fui bem claro mas o que eu quero que aconteça é que o jogo comece de manhã (com todos os eventos que tinha programado funcionando) e que todos os eventos fiquem 24 horas ligados exceto alguns, por exemplo Npc's fora de suas casas.

22/03/2014 às 20:58 #5 Última edição: 22/03/2014 às 21:00 por Masked
Então, eu fiz uma versão especial (ah, ela só funciona com o Khas Aweasome light effects... se quiser faço uma que não precise dele, mas recomendo usar o script de iluminação do Khas, é muito bom...):

#==============================================================================
# MS - Real Time Day and Night System
#
# O script cria um sistema de dia e noite baseando-se no horário do computador,
# conforme o horário for atingindo os números definidos nas configurações, o 
# tom da tela muda para o tom definido para o horário.
#
#==============================================================================

module MS_Time_Config
  
#==============================================================================
# Configurações:
#==============================================================================
  
  Hours = {

  # Configuração das horas, lembre-se de configurar conforme o sistema 24h
  
  'sunrise' => 6,     # Hora do nascer do sol
  'morning' => 7,     # Hora do começo da manhã
  'day' => 12,        # Hora do meio dia
  'afternoon' => 16,  # Hora do começo da tarde
  'sunset' => 18,     # Hora do pôr do sol
  'night' => 19       # Hora do começo da noite
  
  }
  
  Tones = {
  
  # Configuração dos Tons, para criar um tom, use o modelo:
  # Tone.new(Tom de vermelho, Tom de Verde, Tom de azul, Tom de cinza)
  # O tom de cinza é opcional.
  
  'sunrise' => Color.new(110, 110, 110, 200),      # Tom do nascer do sol
  'morning' => Color.new(255, 250, 205, 200),   # Tom da manhã
  'day' => Color.new(0, 0, 0, 0),               # Tom do meio dia
  'afternoon' => Color.new(255, 228, 196, 200), # Tom da tarde
  'sunset' => Color.new(255, 69, 0, 200),       # Tom do pôr do sol
  'night' => Color.new(0, 0, 0, 200)            # Tom da noite
  
  }  
  
  Switches = {
  
  # Configuração das switches, o número se refere ao ID da switch.
  
  'sunrise' => 1,   # Switch do nascer do sol
  'morning' => 2,   # Switch da manhã
  'day' => 3,       # Switch do meio dia
  'afternoon' => 4, # Switch da tarde
  'sunset' => 5,    # Switch do pôr do sol
  'night' => 6      # Switch da noite
  
  }
  
  Variables = {
  
  # Configuração das variáveis, o primeiro número é o ID da variável e o 
  # segundo é o valor que ela adquirirá
  
  'sunrise' => [1, 1],   # Variável do nascer do sol
  'morning' => [1, 2],   # Variável da manhã
  'day' => [1, 3],       # Variável do meio dia
  'afternoon' => [1, 4], # Variável da tarde
  'sunset' => [1, 5],    # Variável do pôr do sol
  'night' => [1, 6]      # Variável da noite
  
  }
  
  Change_Duration = 60  # Duração da alteração de tom da tela
  
end

#==============================================================================
# Fim das Configurações
#==============================================================================

class Game_Map
  
   include MS_Time_Config
   
  alias ms_start setup
  alias ms_update update
    
  def setup(map_id)
    ms_start(map_id)
    
    @a = $game_map.effect_surface 
    
    @time = Time.now.hour
    
    unless @map.note.include?("time = ")
    
      refresh_time(0)
  
      else
    
     period = nil   
        
    @map.note.each_line {|line|
    if line.include?("time = ")
    
      period = line.sub("time = ", "")
      period.sub!("\r\n", "") if period.include?("\r\n")
      
    end
    }
    
    d = MS_Time_Config::Change_Duration
    
    case period
    
    when "sunrise"
      
      @a.change_color(d,Tones['sunrise'].red,Tones['sunrise'].green,Tones['sunrise'].blue, Tones['sunrise'].alpha)
      
    when "morning"
      
      @a.change_color(d,Tones['morning'].red,Tones['morning'].green,Tones['morning'].blue, Tones['morning'].alpha)
      
    when "day"
      
      @a.change_color(d,Tones['day'].red,Tones['day'].green,Tones['day'].blue, Tones['day'].alpha)
      
    when "afternoon"
      
      @a.change_color(d,Tones['afternoon'].red,Tones['afternoon'].green,Tones['afternoon'].blue, Tones['afternoon'].alpha)
      
    when "sunset"
      
      @a.change_color(d,Tones['sunset'].red,Tones['sunset'].green,Tones['sunset'].blue, Tones['sunset'].alpha)
      
    when "night"
    
      @a.change_color(d,Tones['night'].red,Tones['night'].green,Tones['night'].blue, Tones['night'].alpha)
      
    end
    
    end

    
  end
    
  def update(x=false)
    ms_update(x)
       
    unless @map.note.include?("time = ")
      refresh_time(Change_Duration)
end
  end
  
  def refresh_time(d)
    
  if Time.now.hour >= Hours['sunrise']
     
  if Time.now.hour >= Hours['morning']
    
  if Time.now.hour >= Hours['day']
    
  if Time.now.hour >= Hours['afternoon']
    
  if Time.now.hour >= Hours['sunset']  
    
  if Time.now.hour >= Hours['night']
  
    @a.change_color(d,Tones['night'].red,Tones['night'].green,Tones['night'].blue, Tones['night'].alpha)
  set_values("night")
    
    else
    
    @a.change_color(d,Tones['sunset'].red,Tones['sunset'].green,Tones['sunset'].blue, Tones['sunset'].alpha)
  set_values("sunset")
    
  end
    
else
  
  @a.change_color(d,Tones['afternoon'].red,Tones['afternoon'].green,Tones['afternoon'].blue, Tones['afternoon'].alpha)
  set_values("afternoon")
  
  end
  
else
  
  @a.change_color(d,Tones['day'].red,Tones['day'].green,Tones['day'].blue, Tones['day'].alpha)
  set_values("day")
    
  end
  
else
  
  @a.change_color(d,Tones['morning'].red,Tones['morning'].green,Tones['morning'].blue, Tones['morning'].alpha)
  set_values("morning")
  
  end
  
else
  
  @a.change_color(d,Tones['sunrise'].red,Tones['sunrise'].green,Tones['sunrise'].blue, Tones['sunrise'].alpha)
  set_values("sunrise")
  
  end
    
else
  
  @a.change_color(d,Tones['night'].red,Tones['night'].green,Tones['night'].blue, Tones['night'].alpha)
  set_values("night")
  
  end

end

 def set_values(period)
   
   case period
   
   when "night"
     
    $game_switches[Switches['night']] = true
    $game_variables[Variables['night'][0]] = Variables['night'][1]
    
    $game_switches[Switches['sunrise']] = false
    $game_variables[Variables['sunrise'][0]] = 0
    
    $game_switches[Switches['morning']] = false
    $game_variables[Variables['morning'][0]] = 0   
    
    $game_switches[Switches['day']] = false
    $game_variables[Variables['day'][0]] = 0
    
    $game_switches[Switches['afternoon']] = false
    $game_variables[Variables['afternoon'][0]] = 0
    
    $game_switches[Switches['sunset']] = false
    $game_variables[Variables['sunset'][0]] = 0
    
   when "sunrise"
     
         $game_switches[Switches['night']] = false
    $game_variables[Variables['night'][0]] = 0
    
    $game_switches[Switches['sunrise']] = true
    $game_variables[Variables['sunrise'][0]] = Variables['sunrise'][1]
    
    $game_switches[Switches['morning']] = false
    $game_variables[Variables['morning'][0]] = 0   
    
    $game_switches[Switches['day']] = false
    $game_variables[Variables['day'][0]] = 0
    
    $game_switches[Switches['afternoon']] = false
    $game_variables[Variables['afternoon'][0]] = 0
    
    $game_switches[Switches['sunset']] = false
    $game_variables[Variables['sunset'][0]] = 0
     
   when "morning"
     
         $game_switches[Switches['night']] = false
    $game_variables[Variables['night'][0]] = 0
    
    $game_switches[Switches['sunrise']] = false
    $game_variables[Variables['sunrise'][0]] = 0
    
    $game_switches[Switches['morning']] = true
    $game_variables[Variables['morning'][0]] = Variables['morning'][1]  
    
    $game_switches[Switches['day']] = false
    $game_variables[Variables['day'][0]] = 0
    
    $game_switches[Switches['afternoon']] = false
    $game_variables[Variables['afternoon'][0]] = 0
    
    $game_switches[Switches['sunset']] = false
    $game_variables[Variables['sunset'][0]] = 0
     
   when "day"
     
         $game_switches[Switches['night']] = false
    $game_variables[Variables['night'][0]] = 0
    
    $game_switches[Switches['sunrise']] = false
    $game_variables[Variables['sunrise'][0]] = 0
    
    $game_switches[Switches['morning']] = false
    $game_variables[Variables['morning'][0]] = 0   
    
    $game_switches[Switches['day']] = true
    $game_variables[Variables['day'][0]] = Variables['day'][1]
    
    $game_switches[Switches['afternoon']] = false
    $game_variables[Variables['afternoon'][0]] = 0
    
    $game_switches[Switches['sunset']] = false
    $game_variables[Variables['sunset'][0]] = 0
     
   when "afternoon"
     
         $game_switches[Switches['night']] = false
    $game_variables[Variables['night'][0]] = 0
    
    $game_switches[Switches['sunrise']] = false
    $game_variables[Variables['sunrise'][0]] = 0
    
    $game_switches[Switches['morning']] = false
    $game_variables[Variables['morning'][0]] = 0   
    
    $game_switches[Switches['day']] = false
    $game_variables[Variables['day'][0]] = 0
    
    $game_switches[Switches['afternoon']] = true
    $game_variables[Variables['afternoon'][0]] = Variables['afternoon'][1]
    
    $game_switches[Switches['sunset']] = false
    $game_variables[Variables['sunset'][0]] = 0
     
   when "sunset"
     
         $game_switches[Switches['night']] = false
    $game_variables[Variables['night'][0]] = 0
    
    $game_switches[Switches['sunrise']] = false
    $game_variables[Variables['sunrise'][0]] = 0
    
    $game_switches[Switches['morning']] = false
    $game_variables[Variables['morning'][0]] = 0   
    
    $game_switches[Switches['day']] = false
    $game_variables[Variables['day'][0]] = 0
    
    $game_switches[Switches['afternoon']] = false
    $game_variables[Variables['afternoon'][0]] = 0
    
    $game_switches[Switches['sunset']] = true
    $game_variables[Variables['sunset'][0]] = Variables['sunset'][1]
     
   end
   
 end

end


Nessa versão, você pode deixa um mapa fixo em um horário, tipo, sempre dia ou sempre noite, é só colocar isso nas notas do mapa:

time = período


Aí no lugar de período você põe day, night, morning...
Quanto aos eventos, é só não por a condição de os eventos aparecerem somente caso a switch de algum período estiver ligada, ele não apaga nenhum evento, só liga a switch que corresponde ao período atual
~ Masked

Bom, eu programei  minha cidade onde começa o jogo para ficar apenas dia. Nas outras cidades eu deixei sem nada, para poder ficar de noite nelas também, para fazer os eventos pegarem em qualquer horário eu deixei as opções de switch todas com a opção "true" ao invés de "false", porém ainda não testei para ver se é isso que tenho que fazer mesmo, porque está ocorrendo um erro na linha 89 que me impossibilita de entrar no jogo, nele diz: Script ' ' line 89: NoMethodError ocurred
       undefined method `effect_surface' for #>Game_Map:0x82643d4>

[Anexo excluído pelo administrador]

Você está usando o Khas aweasome light effects? Porque esse script só funciona com ele  :=p:
Se quiser faço uma versão independente, mas recomendo que use o script do khas
~ Masked

eu instalei o khas, só que aconteceram várias coisas que eu não queria, acho que vou deixar o jogo sem o efeito de passagem de tempo mesmo. Mas muito obrigado por me ajudar  :ok: