Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.

[RPGXP] Noche, dia, atardecer y rayos de sol segun la hora virtual

Ver el tema anterior Ver el tema siguiente Ir abajo

[RPGXP] Noche, dia, atardecer y rayos de sol segun la hora virtual

Mensaje por Khaizen el 2010-08-11, 00:29

Un clásico del rpg maker, simular el ciclo del dia. Bueno, os traigo un script de Falcao y mondo_trasho bastante conocido.

Autores: Falcao y mondo_trasho
Plataforma: RPG Maker XP

SCREEN

Spoiler:



SCRIPT

Código:

#=======================================================================#
#=======================================================================#
#  #*****************#          ADVANCED_TIME_FALMT                    #
#  *  By Falcao y    *          Noche, dia, atardecer y sol real script #
#  *  mondo_trasho  *          Permite diferentes efectos segun        #   
#  #*****************#          transcurra un reloj virtual.            #
#        RMXP                          V 1.1                          #
# makerpalace.onlinegoo.com                                            #
#=======================================================================#

#------------------------------------------------------------------------
# * Instrucciones
# Solo copiar y pegar el script a sus proyectos en un nuevo bloque encima
# de main, tambien exportar la imagen de sol a la carpeta Pictures
# Con pulsar tecla "Q" en contador se esconde, al pulsar otra vez regresa
# Por defecto el script empezara a las 0 horas siendo de dia.
#-----------------------------------------------------------------------

module FALMT_time

#------------------------------------------------------------------------
# Configuracion general
#--------------------

# Año que comienza
ANOS = 2000

# Hora que oscurese
HoraOscurece = 19   

# Hora que amanece
HoraAmanece = 7

# Hora que atardece
HoraOcaso = 14

# ID de interruptor que desabilita el contador(ON = Desaparece, OFF = Aparece)
WindowDisable = 50

# ID de mapas en los que no habran efectos, ideal dentro de las casas
# poner cada ID de mapa dentro de los corchetes separados por una coma.
# Ejemplo: LuzDisable = [2,4,7,9]
LuzDisable = [ ]

#----------------------
# * Sonidos e imagenes 
#----------------------

# Sonido al amanecer
SonidoAmanecer = "075-Small02"

# Sonido al anochecer
SonidoAnochecer = "076-Small03"

# Imagen con rayos solares, deve estar en la carpeta Pictures
Picture = "Luz"

WindowBoton = Input::L

#-----------------------------------------------------------------------------
# Configuracion de los dias los meses y el reloj (Opcional)
#---

DIAS = 7 # Cantidad de días de la semana (por defecto 7)
DIA_1 = "Domingo"
DIA_2 = "Lunes"
DIA_3 = "Martes"
DIA_4 = "Miércoles"
DIA_5 = "Jueves"
DIA_6 = "Viernes"
DIA_7 = "Sábado"

# Si quieres agregar más o quitar, simplemente cambia el número de DIAS = Nº
# que quieras, y agrega o quita los días que sean necesarios (Ejemplo:
# si quieres agregar días deberías seguir por DIA_8 = "Nombre"; si quieres
# quitar días, simplemente borras los días necesarios).
#----
# MES
#----
MESES = 12 # Cantidad de meses del año (por defecto 12)
MES_1 = "Enero"
MES_2 = "Febrero"
MES_3 = "Marzo"
MES_4 = "Abril"
MES_5 = "Mayo"
MES_6 = "Junio"
MES_7 = "Julio"
MES_8 = "Agosto"
MES_9 = "Septiembre"
MES_10 = "Octubre"
MES_11 = "Noviembre"
MES_12 = "Diciembre"
# Es el mismo funcionamiento que el de los días.
#----
#MEDIDAS (El tiempo esta acelerado por defecto)
#----.
DIAS_POR_MES = 30 # Cantidad de días que tiene un mes (por defecto 30)
HORAS = 24 # Cantidad de horas que tiene el día (por defecto 24)
MINUTOS = 2 # Cantidad de minutos que tiene un segundo (por defecto 60)
SEGUNDOS = 5 # Cantidad de segundos que tiene un minuto (por defecto 60)

end

class Window_AdvancedMapTime < Window_Base

  def initialize
    super(505, 0, 135, 105)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.opacity = 100
    refresh
  end
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    $hora = @total_sec / FALMT_time::SEGUNDOS / FALMT_time::MINUTOS % FALMT_time::HORAS
    $minuto = @total_sec / FALMT_time::SEGUNDOS % FALMT_time::MINUTOS
    $segundo = @total_sec % FALMT_time::SEGUNDOS

# CAMBIOS DE DÍA SEGÚN LAS HORAS PASADAS (contador automático):
#-----------------
if $hora == 0 and $hora_cambio == nil
$dia_cantidad = FALMT_time::DIAS
if $dia_numero == nil or $dia_numero == $dia_cantidad
$dia_numero = 1
if $dias_por_mes == nil
  $dias_por_mes = 1
else
$dias_por_mes +=1
end
else
$dia_numero+=1
$dias_por_mes +=1
end
#MODIFICACIÓN DE LOS DÍAS (cantidad 7 por defecto):
case $dia_numero
when 1 # Cuando es el día número 1
$dia = FALMT_time::DIA_1 # Es Domingo
when 2 # Día número 2
$dia = FALMT_time::DIA_2 # Es lunes
when 3 # Etcétera...
$dia = FALMT_time::DIA_3
when 4
$dia = FALMT_time::DIA_4
when 5
$dia = FALMT_time::DIA_5
when 6
$dia = FALMT_time::DIA_6
when 7
$dia = FALMT_time::DIA_7
end
end

if $hora == 0
$hora_cambio = false
else $hora != 0
$hora_cambio = nil
end

#-----------------
# CAMBIOS DE MES SEGÚN LOS DÍAS PASADOS (contador automático):
#-----------------
if $mes_cambio == nil
$meses_cantidad = FALMT_time::MESES
if $mes_numero == nil or $mes_numero == $meses_cantidad
$mes_numero = 1
if $ano == nil
$ano = FALMT_time::ANOS
else
$ano += 1
end
else
$mes_numero+=1
end
#MODIFICACIÓN DE LOS MESES (cantidad 12 por defecto):
case $mes_numero
when 1 # Cuando es el día número 1
$mes = FALMT_time::MES_1 # Es Domingo
when 2 # Día número 2
$mes = FALMT_time::MES_2 # Es lunes
when 3 # Etcétera...
$mes = FALMT_time::MES_3
when 4
$mes = FALMT_time::MES_4
when 5
$mes = FALMT_time::MES_5
when 6
$mes = FALMT_time::MES_6
when 7
$mes = FALMT_time::MES_7
when 8
$mes = FALMT_time::MES_8
when 9
$mes = FALMT_time::MES_9
when 10
$mes = FALMT_time::MES_10
when 11
$mes = FALMT_time::MES_11
when 12
$mes = FALMT_time::MES_12
end
end

$dias_pormes = FALMT_time::DIAS_POR_MES

if $mes_cambiando == true
$mes_cambio = false
$dias_por_mes = 1
end

if $dias_pormes != $dias_por_mes
$mes_cambio = false
$mes_cambiando = nil
else $dias_pormes == $dias_por_mes
if $mes_cambiando == nil
$mes_cambio = nil
$mes_cambiando = true
end
end

#-----------------

dia = ["Día: ",$dia]
mes = ["Mes: ",$mes]
ano = ["Año: ",$ano]
   
    hora_minuto_segundo = sprintf("%02d:%02d:%02d", $hora, $minuto, $segundo)
    self.contents.font.color = normal_color
    self.contents.font.size = 19
    self.contents.font.name = "Times New Roman"
    self.contents.draw_text(0, -9, 120, 32, dia.to_s,0)
    self.contents.draw_text(0, 10, 150, 32, mes.to_s,0)
    self.contents.draw_text(0, 29, 150, 32, ano.to_s,0)
    self.contents.draw_text(50, 50, 120, 32, hora_minuto_segundo)
  end

  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
    refresh
  end
    end
  end
 
class Game_System
  attr_accessor :opa
  attr_accessor :ocaso
  attr_accessor :fshow
  alias falcaoluz_initialize initialize
  def initialize
    falcaoluz_initialize
    @opa = 0
    @ocaso = 0
    @fshow = 0
  end
end

class Scene_Map
  include FALMT_time
  alias falcaotrasho_main main
  def main
    @AMT = Window_AdvancedMapTime.new
    if $game_system.fshow == 0
      @AMT.x = 505
      @AMT.y = -104
      $game_system.fshow = 1
    end
    if $game_switches[WindowDisable] == false
      @AMT.visible = true
    else
      @AMT.visible = false
    end
    #$game_screen.start_tone_change(Tone.new(-110, -110, -110, 0), 20)
    falcaotrasho_main
    @AMT.dispose
  end
  alias falcaotrasho_update update
  def update
    @AMT.refresh
    # Nuevo update
    if Input.trigger?(WindowBoton)
      if @AMT.y == -104
        $game_system.fshow = 1
      elsif @AMT.y == 0
        $game_system.fshow = 2
      end
    end
    if $game_system.fshow == 1
      @AMT.y += 2 if @AMT.y < 0
    elsif $game_system.fshow == 2
        @AMT.y -= 2 if @AMT.y > -104
    end
    if $game_switches[WindowDisable] == false
      @AMT.visible = true
    else
      @AMT.visible = false
    end
    if $hora >= HoraAmanece  and $hora <= HoraOscurece - 1
      command_amanece
    elsif $hora <= HoraAmanece or $hora >= HoraOscurece - 1
      command_oscurece
    end
    command_ocaso if $hora >= HoraOcaso and $hora <= HoraOscurece - 1
    falcaotrasho_update
  end
  # comando amanece
  def command_amanece
    if $game_system.opa < 75
      $game_system.opa += 1
      unless FALMT_time::LuzDisable.include?($game_map.map_id)
        $game_screen.start_tone_change(Tone.new(0, 0, 0, 0),200)
        $game_screen.pictures[50].show(Picture,0,0, 0,100,100,$game_system.opa,0)
      end
      Audio.se_play("Audio/Se/" + SonidoAmanecer) if $game_system.opa == 75
    end
  end
  #comando oscurece
  def command_oscurece
    if $game_system.opa > 0
      $game_system.opa -= 1
      unless FALMT_time::LuzDisable.include?($game_map.map_id)
        $game_screen.start_tone_change(Tone.new(-110, -110, -110, 0), 200)
        $game_screen.pictures[50].show(Picture,0,0,0,100,100, $game_system.opa, 0)
      else
        $game_screen.pictures[50].show(Picture,0 , 0, 0, 100, 100,0, 0)
      end
      Audio.se_play("Audio/Se/" + SonidoAnochecer) if $game_system.opa == 0
    end
  end
  #-comando ocaso
  def command_ocaso
    if $game_system.ocaso < 10
      $game_system.ocaso += 1
      $game_screen.start_tone_change(Tone.new(10, -17, -17, 0), 100)
      $game_system.ocaso = 0 if $game_system.ocaso == 10
    end
  end
  #------------
  # Housing system
  alias falcaotrasho_transfer_player transfer_player
  def transfer_player
    falcaotrasho_transfer_player
    if FALMT_time::LuzDisable.include?($game_map.map_id)
      $game_screen.pictures[50].erase
      $game_screen.start_tone_change(Tone.new(0, 0, 0, 0),10)
      ## si esta de dia
    elsif $hora >= HoraAmanece  and $hora <= HoraOscurece
      $game_screen.pictures[50].show(Picture,0,0,0,100,100, $game_system.opa, 0)
      if $hora >= HoraOcaso
        $game_screen.start_tone_change(Tone.new(0, -17, -17, 0), 10)
      end
    elsif $hora <= HoraAmanece  or $hora >= HoraOscurece
      $game_screen.start_tone_change(Tone.new(-110, -110, -110, 0), 10)
    end
  end
end

class Scene_Save 
  alias falcaotrasho_write_data write_save_data
  def write_save_data(file)
    falcaotrasho_write_data(file)
    Marshal.dump($hora, file)
    Marshal.dump($minuto, file)
    Marshal.dump($segundo, file)
    Marshal.dump($mes, file)
    Marshal.dump($dia, file)
  end
end

class Scene_Load
  alias falcaotrasho_read_data read_save_data
  def read_save_data(file)
    falcaotrasho_read_data(file)
    $hora    = Marshal.load(file)
    $minuto    = Marshal.load(file)
    $segundo    = Marshal.load(file)
    $mes    = Marshal.load(file)
    $dia    = Marshal.load(file)
  end
end

DEMO

Descargar aquí

INSTRUCCIONES

Colocar el script sobre MAIN y configurar las respectivas horas.


EDITO: Dejo el script también, ya que me han comentado que la demo puede dar problemas de compatibilidad.


Saludos, Khaizen.



Última edición por Khaizen el 2010-08-13, 13:13, editado 1 vez
avatar
Khaizen
Principiante
Principiante

0/3

Créditos 1457

Gracias : 5

Volver arriba Ir abajo

Re: [RPGXP] Noche, dia, atardecer y rayos de sol segun la hora virtual

Mensaje por Invitado el 2010-08-13, 12:42

hola tengo un problema para abrir tu demo, para coger el script vamos por compativilidad, me podias enviar el script a esta direccion? willow-hf@hotmail.com, gracias de antemano

Invitado
Invitado


Volver arriba Ir abajo

Re: [RPGXP] Noche, dia, atardecer y rayos de sol segun la hora virtual

Mensaje por Arestame el 2010-08-13, 12:44

Me parece fasntástico este script pero tengo unas dudas, si puedes resolvermelas.
Este script según la hora virtual, Necesita internet? o solo la hora del escritorio, según como vaya configurado.
avatar
Arestame
Aventurero
Aventurero

0/3

Créditos 1515

Gracias : 37

Volver arriba Ir abajo

Re: [RPGXP] Noche, dia, atardecer y rayos de sol segun la hora virtual

Mensaje por Khaizen el 2010-08-13, 13:20

@willowhf: He editado el post anterior para que todos podáis coger el script. No te lo he mandado por correo porque imáginate que a otros users le da el mismo error (tendría que estar mandando uno a uno el script por e-mail).

@Arestame escribió:
Me parece fasntástico este script pero tengo unas dudas, si puedes resolvermelas.
Este script según la hora virtual, Necesita internet? o solo la hora del escritorio, según como vaya configurado.
Ni una cosa ni otra XD... no usa ni Internet ni la hora del equipo. Usa un "reloj" interno que se puede configurar también. Si te fijas y pruebas la demo o el script, veras (al visualizar la pantalla que aparece al pulsar "Q") que los minutos aumentan cada 5 segundos, y que 1 hora son 2 minutos. Todo esto se puede configurar en el script.

Saludos, Khaizen.
avatar
Khaizen
Principiante
Principiante

0/3

Créditos 1457

Gracias : 5

Volver arriba Ir abajo

Re: [RPGXP] Noche, dia, atardecer y rayos de sol segun la hora virtual

Mensaje por Arestame el 2010-08-13, 13:32

Ah entonces la cosa está configurada en el script, cuando se empaquetó vino así ok.
Gracias por la info!
avatar
Arestame
Aventurero
Aventurero

0/3

Créditos 1515

Gracias : 37

Volver arriba Ir abajo

Re: [RPGXP] Noche, dia, atardecer y rayos de sol segun la hora virtual

Mensaje por Drixide el 2012-01-14, 10:52

Hola, tengo una pregunta sobre el script. Puedes hacer que un evento solo pueda ser completado unos días de la semana o solo ocurra en ciertos meses? O por ejemplo: como hago para que si me voy a dormir a una posada por la noche, me levante a la mañana siguiente? (Adelantar el tiempo)
avatar
Drixide
Iniciado
Iniciado

0/3

Créditos 18

Gracias : 2

Volver arriba Ir abajo

Re: [RPGXP] Noche, dia, atardecer y rayos de sol segun la hora virtual

Mensaje por Pancho Sanchez el 2013-11-17, 14:52

Perdon por la fecha, el script me encanto, pero a la hora de las 07:00 me da un error de luz.
avatar
Pancho Sanchez
Soñador
Soñador

0/3

Créditos 125

Gracias : 6

Volver arriba Ir abajo

tengo un problema

Mensaje por ErickO el 2018-04-04, 01:39

Cuando llego a la hora de 7:00:00 me da un error que por lo q entendi se refiere a q no tengo la imagen del amanecer... Por favor ayudenme uso rpg maker xp
avatar
ErickO
Iniciado
Iniciado

0/3

Créditos 1

Gracias : 2

Volver arriba Ir abajo

Re: [RPGXP] Noche, dia, atardecer y rayos de sol segun la hora virtual

Mensaje por Gacoro el 2018-04-04, 05:26

Te comento que lo que estas haciendo es necropost, y según las normas del foro, va en contra de las reglas, no soy un administrador ni estoy seca de serlo pero cono consejo te digo que mires la fecha del tema para no cometer una infracción.

Pero ya que estoy te comento tu error, no publicaste una imagen ni escribiste cual era tu error, solo escribiste lo que vos crees que pasa, facilitar la búsqueda de una solución te recomiendo que intentes mostrar el error, pero como vos dijiste el error se debe cometer porque falta una imagen (la que produciría el efecto de los tallos de lis del amanecer), al pasar esto el script no encuentra la imagen (lógicamente) y suelta un error. Como no se muy bien el lenguage de ruby necesitaría un tiempo para leer el script y deserte el nombre de la imagen que deberías poner o solucionaré el problema por completo, mi consejo es que descargues la demo y revices las imágenes que no están por defecto en el programa y las implemente en tu juego y de esa manera no debería darte problemas.

Suerte y no hagas necro post por favor.
avatar
Gacoro
Soñador
Soñador

0/3

Créditos 251

Gracias : 17

Volver arriba Ir abajo

Re: [RPGXP] Noche, dia, atardecer y rayos de sol segun la hora virtual

Mensaje por DWYagah el 2018-06-07, 15:33

pregunta, existe un script igual o similar que funcione para VX Ace?
avatar
DWYagah
Iniciado
Iniciado

0/3

Créditos 11

Gracias : 2

Volver arriba Ir abajo

Re: [RPGXP] Noche, dia, atardecer y rayos de sol segun la hora virtual

Mensaje por Wecoc el 2018-06-07, 18:51

Por favor no hagas necropost. Lee las normas del foro.

Sí, existen scripts de ese tipo en Ace, pero exactamente el mismo no.
Busca por la red, con palabras clave como "Dynamic Weather and Time System" o cosas así.
Puedes consultar también nuestra recopilación de scripts.
avatar
Wecoc
Administrador
Administrador



Créditos 12383

Gracias : 595

Volver arriba Ir abajo

Re: [RPGXP] Noche, dia, atardecer y rayos de sol segun la hora virtual

Mensaje por DWYagah el 2018-06-07, 21:11

ok, no era mi intención hacer necropost, solo preguntaba, gracias por las sugerencias
avatar
DWYagah
Iniciado
Iniciado

0/3

Créditos 11

Gracias : 2

Volver arriba Ir abajo

Re: [RPGXP] Noche, dia, atardecer y rayos de sol segun la hora virtual

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


Permisos de este foro:
No puedes responder a temas en este foro.