¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Afiliados
Estadísticas
Tenemos 3603 miembros registrados.
El último usuario registrado es Kraisher.

Nuestros miembros han publicado un total de 81429 mensajes en 11508 argumentos.
Navega con Google Chrome
[DESCARGA]

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

 :: RPG Maker :: Scripts

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

Khaizen
Principiante
Principiante

0/3

Créditos 1460

Gracias : 4

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.

Arestame
Aventurero
Aventurero

0/3

Créditos 1518

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.

Khaizen
Principiante
Principiante

0/3

Créditos 1460

Gracias : 4

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!

Arestame
Aventurero
Aventurero

0/3

Créditos 1518

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)

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.

Pancho Sanchez
Soñador
Soñador

0/3

Créditos 126

Gracias : 6

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


 :: RPG Maker :: Scripts

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