Últimos temas
» Stats que no calzan (MV)
por The Ferydra Hoy a las 3:30 am

» Problema con pantalla en negro (MV)
por The Ferydra Hoy a las 2:12 am

» Juego Base en Inglés (RPG MAKER MV)
por The Ferydra Hoy a las 1:00 am

» [VXACE] Las Esferas de Capricornia. Actualizado 06.12.17
por Pocari Ayer a las 8:31 pm

» Hago BSO para tu proyecto
por RoryGRojas Ayer a las 4:53 pm

» 3ºC vs Kursaal (RPG2000) (Terminado)
por rpgero Mar Dic 12, 2017 4:52 pm

» No se ven/ejecutan eventos
por Pokefanmati Dom Dic 10, 2017 8:22 pm

» [ACE] El secreto de la estrella perdida
por TheHeroZX Mar Dic 05, 2017 7:28 pm

» Demo "Oblitian: La Búsqueda" (2017) [VxAce]
por Invark Lun Dic 04, 2017 4:07 am

» Procesos automáticos bloquean el movimiento de mi personaje
por KRiZaLiD Lun Dic 04, 2017 3:15 am

» las armas inferno(demo)
por conor Dom Dic 03, 2017 9:23 pm

» Pongámosle un Mote a nuestro Limo
por Stainler Dom Dic 03, 2017 5:01 am


[Ace]Script día/noche + reloj

Página 1 de 2. 1, 2  Siguiente

Ver el tema anterior Ver el tema siguiente Ir abajo

[Ace]Script día/noche + reloj

Mensaje por Muzgar el Lun Feb 10, 2014 10:31 pm

Nombre: Basic Game Time + Night/Day (Sistema de tiempo dia y noche) 

Autor: V.M of D.T (Tiene permiso de usarse libremente en cualquier proyecto, pero tenéis que darle créditos)

Descripción: Añade un reloj marcando la hora y cambia los tonos de pantalla según la hora del día.

Instrucciones: Instalarlo como siempre colocandolo encima de Main, Usar los comandos específicos que encontrareis en el script desde la linea 8 a la 14, y configurais el reloj a partirpara más detalles mirar la demo.

Linea 37-configurais los frames que tienen que pasar para que pase un minuto, recordar(60 frames= 1 segundo)
Linea 39-Poner False si no quereis usar Tintes
El tiempo se pausa en los mensajes, pero no en los combates, si quereis modificar esto está en la linea 48-50

Podeis configurar a que hora quereis que cambien los tonos de pantalla a partir de la linea 54 60 y el color de los tonos justo debajo.

SCRIPT


En pastebin: http://pastebin.com/jVBv155L

Código:
#Basic Game Time + Night/Day
#----------#
#Features: Provides a series of functions to set and recall current game time
#          as well customizable tints based on current game time to give the
#          appearance of night and day.
#
#Usage:   Script calls:
#           GameTime::minute?   - returns the current minute
#           GameTime::hour?     - returns the current hour
#           GameTime::set(time) - sets the game time to time, in frames (max:1440)
#           GameTime::change(time) - increments the game time! (can be negative)
#           GameTime::pause_time(set) - stops time for events and stuff, true or false
#           GameTime::pause_tint(set) - time runs, but tints do not update
#           GameTime::clock(set) - sets whether clock is visible or not
#        
#Customization: Set below, in comments.
#
#Examples: GameTime::set(360)
#
#----------#
#-- Script by: V.M of D.T
#--- Free to use in any project with credit given

#---Game Clock---#
#USE_CLOCK to true to display game time clock
#CLOCK_POSITION for position of clock
#  1 = topleft, 2 = topright, 3 = bottomleft, 4 = bottomright
#CLOCK_TOGGLE is any input button available, see the INPUT help file for options
#------#
USE_CLOCK       = true
CLOCK_POSITION  = 4
CLOCK_TOGGLE    = :SHIFT

module GameTime
  #---Game Time Details---#
  #Number of frames in a game minute, 60 frames = 1 second
  TIME_COUNT      = 60
  #Sets whether to tint screen based on game time
  USE_TINT        = true

  #Switch to denote day or night time
  USE_SWITCH = false
  NIGHT_DAY_SWITCH = 1
  DAY_TIME_START = 6
  NIGHT_TIME_START = 18

  #True to pause time while not in map or while during a message
  PAUSE_IN_COMBAT  = false
  PAUSE_NOT_IN_MAP = true
  PAUSE_IN_MESSAGE = true

  #Sets time frames of tints by minute count, one day is 1440 minutes
  # 0 = 12am, 360 = 6am, 720 = 12pm, 1080 = 6pm  etc...
  PRESUNRISE_TIME = 240
  SUNRISE_TIME    = 360
  NOONSTART_TIME  = 660
  NOONEND_TIME    = 900
  PRESUNSET_TIME  = 1080
  SUNSET_TIME     = 1260
  MIDNIGHT_TIME   = 60  #Must be greater than 0

  #Sets custome tints
  PRESUNRISE_TONE = Tone.new(-75,-75,0,50)
  SUNRISE_TONE    = Tone.new(0,0,0,0)
  NOONSTART_TONE  = Tone.new(45,45,0,-25)
  NOONEND_TONE    = Tone.new(0,0,0,0)
  PRESUNSET_TONE  = Tone.new(-50,-50,0,25)
  SUNSET_TONE     = Tone.new(-75,-100,0,75)
  MIDNIGHT_TONE   = Tone.new(-125,-125,0,125)

  #Include the ids of any maps not to be tinted based on time
  # Usually reserved for indoor maps
  NOTINTMAPS = [2]
  
  #Store current time in a variable?
  USE_VARIABLE = false
  TIME_VARIABLE = 1

  #---END---#

  def self.init
    $game_time = 0
    $game_time_pause_time = false
    $game_time_pause_tint = false
  end
  def self.update
    if $game_time_pause_time then return else end
    case SceneManager::scene_is?(Scene_Map)
    when true
      if $game_message.visible == true && PAUSE_IN_MESSAGE then else
      $game_time += 1 if Graphics.frame_count % TIME_COUNT == 0 end
    when false

      if !PAUSE_NOT_IN_MAP and !SceneManager::scene_is?(Scene_Battle)
        $game_time += 1 if Graphics.frame_count % TIME_COUNT == 0 end
      if SceneManager::scene_is?(Scene_Battle) && PAUSE_IN_COMBAT != true
      $game_time += 1 if Graphics.frame_count % TIME_COUNT == 0 end
    end
    if $game_time == 1440 then $game_time = 0 end
    $game_variables[TIME_VARIABLE] = $game_time if USE_VARIABLE
    update_night_swith if USE_SWITCH
    GameTime::tint if $game_time_pause_tint != true
  end
  def update_night_switch
    if hour? > DAY_TIME_START and hour? < NIGHT_TIME_START
      $game_switches[NIGHT_DAY_SWITCH] = true unless $game_switches[NIGHT_DAY_SWITCH] == true
    else
     $game_switches[NIGHT_DAY_SWITCH] = false unless $game_switches[NIGHT_DAY_SWITCH] == false
    end
  end
  def self.hour?
    return $game_time / 60
  end
  def self.minute?
    return $game_time % 60
  end
  def self.time?
    meri = "AM"
    hour = GameTime::hour?
    minute = GameTime::minute?
    if hour > 11 then meri = "PM" end
    if hour == 0 then hour = 12; meri = "AM" end
    if hour > 12 then hour -= 12 end
    if hour < 10 then hour = " " + hour.to_s else hour.to_s end
    if minute < 10 then minute = "0" + minute.to_s else minute.to_s end
    return hour.to_s + ":" + minute.to_s + " " + meri
  end
  def self.set(number)
    $game_time = number if number < 1440
    GameTime::tint(0)
  end
  def self.change(number)
    $game_time += number
    $game_time -= 1440 if $game_time > 1440
    $game_time += 1440 if $game_time < 0
    GameTime::tint(0)
  end
  def self.tint(tint = 60)
    if USE_TINT != true then return end
    for i in NOTINTMAPS
      if $game_map.map_id == i
        $game_map.screen.start_tone_change(Tone.new(0,0,0,0),0)
        return
      end
    end
    if SceneManager::scene_is?(Scene_Map) then else return end
    case $game_time
    when PRESUNRISE_TIME .. SUNRISE_TIME
      $game_map.screen.start_tone_change(PRESUNRISE_TONE, tint)
    when SUNRISE_TIME .. NOONSTART_TIME
      $game_map.screen.start_tone_change(SUNRISE_TONE, tint)
    when NOONSTART_TIME .. NOONEND_TIME
      $game_map.screen.start_tone_change(NOONSTART_TONE, tint)
    when NOONEND_TIME .. PRESUNSET_TIME
      $game_map.screen.start_tone_change(NOONEND_TONE, tint)
    when PRESUNSET_TIME .. SUNSET_TIME
      $game_map.screen.start_tone_change(PRESUNSET_TONE, tint)
    when SUNSET_TIME .. 1440
      $game_map.screen.start_tone_change(SUNSET_TONE, tint)
    when 0 .. MIDNIGHT_TIME
      $game_map.screen.start_tone_change(SUNSET_TONE, tint)
    when MIDNIGHT_TIME .. PRESUNRISE_TIME
      $game_map.screen.start_tone_change(MIDNIGHT_TONE, tint)
    end
  end
  def self.pause_time(set)
    $game_time_pause_time = set
  end
  def self.pause_tint(set)
    $game_time_pause_tint = set
  end
  def self.clock(set)
    SceneManager.scene.clock_visible?(set)
  end

  class Window_Clock < Window_Base
    def initialize
      case CLOCK_POSITION
      when 1
        super(0,0,115,56)
      when 2
        super(429,0,115,56)
      when 3
        super(0,360,115,56)
      when 4
        super(429,360,115,56)
      end
      self.visible = $game_time_clock_visibility unless $game_time_clock_visibility.nil?
    end
    def update
      self.contents.clear
      self.contents.draw_text(0,0,100,24,GameTime::time?)
      $game_time_clock_visibility = self.visible
    end
  end

end

module DataManager
  class << self
  alias gametime_msc make_save_contents
  alias gametime_esc extract_save_contents
  end
  def self.make_save_contents
    contents = gametime_msc
    contents[:gametime] = $game_time
    contents
  end
  def self.extract_save_contents(contents)
    gametime_esc(contents)
    $game_time = contents[:gametime]
  end
end


class Scene_Map < Scene_Base
  alias gametime_post_transfer post_transfer
  alias gametime_create_all_windows create_all_windows
  alias gametime_update_map update
  def post_transfer
    GameTime::tint(0)
    gametime_post_transfer
  end
  def create_all_windows
    gametime_create_all_windows
    @gametimeclock = GameTime::Window_Clock.new if USE_CLOCK
  end
  def update
    gametime_update_map
    @gametimeclock.update if @gametimeclock.nil? == false
    if Input.trigger?(CLOCK_TOGGLE) and @gametimeclock.nil? == false
      @gametimeclock.visible ? @gametimeclock.visible = false : @gametimeclock.visible = true
    end
  end
  def clock_visible?(set)
    @gametimeclock.visible = set
  end
end

class Scene_Base
  alias gametime_update update
  def update
    gametime_update
    GameTime::update
  end
end

GameTime::init

Imagenes:
Spoiler:



Demo

Script día y noche
¡En el baluarte de los dioses! xD
Cualquier duda preguntar.

Espero que os sea de utilidad.

Se ha encontrado incompatibilidad con estos scripts:
MOG - Simple Anti Lag (V2.1)
MOG - Animation anitlag

Ambos antilags de MOG xD en cambio los antilags de Casper funcionan correctamente. Gracias a LordIthacar por avisarme de estos avisos.

EDITO

Os dejo aquí el script actualizado que me acaba de pasar Fatyguero, no dispone de demo aún ni de explicaciones mías por eso lo dejo aparte hasta que me aclare del todo xD

Código:
    #Advanced Game Time + Night/Day v1.5.2
    #----------#
    #Features: Provides a series of functions to set and recall current game time
    #          as well customizable tints based on current game time to give the
    #          appearance of night and day in an advanced and customizable way.
    #
    #Usage:  Script calls:
    #          GameTime.sec?                      #current second
    #          GameTime.min?                      #current minute
    #          GameTime.hour?                    #current hour
    #          GameTime.hour_nom?                #current hour (12-hour)
    #          GameTime.day?                      #current day of month
    #          GameTime.day_week?                #current day of the week
    #          GameTime.day_year?                #current day of the year
    #          GameTime.month?                    #current month
    #          GameTime.year?                    #current year
    #          GameTime.year_post("set")          #changes the year post to set
    #          GameTime.pause_tint(true/false)    #pauses/unpauses tint
    #          GameTime.notime(true/false)        #stops time based on true/false
    #          GameTime.change(s,m,h,d,dw,mn,y)      #manually set the time
    #                                    seconds,minutes,hours,days,weekday,months,years
    #                                              any can be nil to not be changed
    #          GameTime.set("handle",n)          #increases a certain time portion
    #                                            valid arguments are:
    #                                              addsec,addmin,addhour,addday
    #                                              addmonth,addyear
    #                                            and:
    #                                              remsec,remmin,remhour,remday
    #                                              remmonth,remyear
    #          GameTime.clock?(true/false)        #hides/shows the clock
    #          GameTime.save_time                #saves the current time
    #          GameTime.load_time                #loads the saved time
    #
    #        Message Codes:
    #          GTSEC    #Inputs the current second
    #          GTMIN    #Inputs the current minute
    #          GTHOUR  #Inputs the current hour
    #          GTDAYN  #Inputs the day of the month
    #          GTDAYF  #Inputs the day of the week (full)
    #          GTDAYA  #Inputs the day of the week (abbreviated)
    #          GTMONN  #Inputs the month of the year
    #          GTMONF  #Inputs the name of the month (full)
    #          GTMONA  #Inputs the name of the month (abbreviated)
    #          GTYEAR  #Inputs the current year
    #
    #        Map Note Tags: (These go in the note box of Map Properties)
    #          Notint  #These maps will not tint!
    #          Notime  #Stops time from moving in that map
    #        
    #Customization: Set below, in comments.
    #
    #Examples: GameTime.pause_tint = false
    #          GameTime.change(nil,30,4,1,1,1,2012)
    #          GameTime.set("addyear",5)
    #          GameTime.clock?(true)
    #
    #----------#
    #-- Script by: V.M of D.T
    #
    #- Questions or comments can be:
    #    given by email: sumptuaryspade@live.ca
    #    provided on facebook: http://www.facebook.com/DaimoniousTailsGames
    #  All my other scripts and projects can be found here: http://daimonioustails.weebly.com/
    #
    #--- Free to use in any project, commercial or non-commercial, with credit given
    # - - Though a donation's always a nice way to say thank you~ (I also accept actual thank you's)
    
    #_# BEGIN_CUSTOMIZATION #_#
    
    
    #What time a new game starts at: [sec, min, hour, day, month, year]
    START_TIME = [0,0,6,0,0,0]
    #Wether or not to set time to PC (Real) Time
    $USE_REAL_TIME = false
    #Time does not increase while the message window is visible:
    NOTIMEMESSAGE = true
    #Time does not increase unless you are on the map
    PAUSE_IN_MENUS = true
    #Time does not increase if you are in battle
    NOBATTLETIME = false
    #Clock is shown
    USECLOCK = false
    #Set to true to have the clock show up in the menu!
    USECLOCK_MENU = true
    #Set the format for the clock both in and out of menu
    #1. hh:mm am/pm
    #2. Sun dd hh:mm am/pm
    #3. hh:mm        (24 hour clock)
    #4. Sun dd hh:mm (24 hour clock)
    #5. Custom clock, see below
    CLOCK_FORMAT = 5
    MENU_CLOCK_FORMAT = 4
    #Clock window background opacity
    CLOCK_BACK = 75
    #Whether to use a special image for the back of the clock or not (Picture folder)
    CUSTOM_CLOCK_BACKGROUND = false
    #The name of the special image to use
    CUSTOM_CLOCK_BACKGROUND_IMAGE = "Spider"
    #The offset of the image on the x-axis
    CUSTOM_CLOCK_BACKGROUND_X = 0
    #The offset of the image on the y-axis
    CUSTOM_CLOCK_BACKGROUND_Y = 0
    #Button to be used to toggle the clock
    CLOCK_TOGGLE = :Y
    #X and Y position of clock
    CLOCK_X = Graphics.width - 175
    CLOCK_Y = Graphics.height - 48 - 24 - 12
    #Finetune the width of the clock window here:
    CLOCK_WIDTH = 175
    #Whether or not those little dots on the clock blink
    USE_BLINK = true
    #The speed at which they blink
    BLINK_SPEED = 120
    #Here is where you would insert the array of commands for the custom clock:
    CUSTOM_CLOCK = ["weekshort"," ","day"," ","year","yearp"]
    CUSTOM_CLOCK2 = ["hour12","blinky","min"," ","meri"]
    #Available commands for CUSTOM_CLOCK:
    # "sec" - seconds        "min" - minutes
    # "hour" - hour (24)      "hour12" - hour (12)
    # "meri" - AM/PM          "day" - day of the month
    # "weekshort" - day of the week abbr
    # "weeklong" - day of the week long
    # "month" - month        "monthshort" - month name abbr
    # "monthlong" - month name
    # "year" - year          "yearp" - year post
    # "blinky" - those blinky dots
    
    
    #Using KHAS lighting effects script? Turn this on to use that tint
    USE_KHAS = false
    #Using Victor Engine Light effects? Turn this on to use that tint
    USE_VICTOR = false
    #Variables that count down each gametime second/minute
    TIMER_VARIABLES = []
    
    #Use Tint in the Battles
    BATTLE_TINT = false
    
    #Time it takes for a second (or minute) to pass, in frames by default
    #(Frame rate is 60 frames per second)
    DEFAULT_TIMELAPSE = 5
    #Variable ID containing the current speed of time!
    TIMELAPSE_VARIABLE = 80
    #Whether to use seconds or not
    NOSECONDS = true
    #Number of seconds in a minute
    SECONDSINMIN = 60
    #Number of minutes in an hour
    MINUTESINHOUR = 60
    #Number of hours in a day
    HOURSINDAY = 24
    #Names of the days (As little or as many days in the week as you want)
    DAYNAMES = ["Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado"]
    #Day name abbreviations
    DAYNAMESABBR = ["Dom","Lun","Mar","Mie","Jue","Vie","Sab"]
    #Number of days in each month (Also represents number of months in a year)
    MONTHS = [14,12,15,14,15,14,15,14,15,14,15,14]
    #Names of the months
    MONTHNAMES = ["Enero","Febrero","Marzo","Abril","Mayo","Junio",
                  "Julio","Agosto","Septiembre","Octubre","Noviembre","Deciembre"]
    #Abrreviated names of the months
    MONTHNAMESABBR = ["Ene","Feb","Mar","Abr","May","Jun",
                      "Jul","Ago","Sep","Oct","Nov","Dic"]
    #The default letters to be posted before the year in dates
    DEFAULT_YEAR_POST = "Año"
    #NOT YET IMPLEMENTED *IGNORE*
    USE_PERIODS = true
                    
    #Gradual tint effects! (The hardest part)
    #It may look daunting, and it is, but here is where you put the tint
    #to be shown at each hour (the actual tint is usually somewhere in between)
    #The number of Color.new objects here must equal the number of hours in a day
    #Starts from hour 0 (or 12am)
    #A color object is -> Color.new(r,g,b,a)
    # Where r is red,g is green,b is blue,and a is opacity and all are (0-255)
    TINTS = [Color.new(30,0,40,155),
            Color.new(20,0,30,135),
            Color.new(20,0,30,135),
            Color.new(10,0,30,135),
            Color.new(10,0,20,125),
            Color.new(0,0,20,125),
            Color.new(80,20,20,125),
            Color.new(130,40,10,105),
            Color.new(80,20,10,85),
            Color.new(0,0,0,65),
            Color.new(0,0,0,35),
            Color.new(0,0,0,15),
            Color.new(0,0,0,0),
            Color.new(0,0,0,0),
            Color.new(0,0,0,5),
            Color.new(0,0,0,15),
            Color.new(0,0,0,25),
            Color.new(0,0,10,55),
            Color.new(80,20,20,85),
            Color.new(130,40,30,105),
            Color.new(80,20,40,125),
            Color.new(10,0,50,135),
            Color.new(20,0,60,135),
            Color.new(30,0,70,155)]
    
    #NOT YET IMPLEMENTED *IGNORE*
    PERIODS = [["Night",0,5],
              ["Morning",6,11],
              ["Afternoon",12,17],
              ["Evening",18,23]]
            
    $gametimeclockvisible = false
    #_# END CUSTOMIZATION #_#
            
    module GameTime
      def self.run
        $game_time = Current_Time.new
        $game_time_tint = Sprite_TimeTint.new
      end
      def self.update
        return if $game_message.busy? and NOTIMEMESSAGE
        if !SceneManager.scene.is_a?(Scene_Map) and PAUSE_IN_MENUS
          return $game_time_tint.update if SceneManager.scene.is_a?(Scene_Title)
          return $game_time_tint.update if SceneManager.scene.is_a?(Scene_File)
          return unless SceneManager.scene.is_a?(Scene_Battle) and !NOBATTLETIME
        end
        $game_time.update
        $game_time_tint = Sprite_TimeTint.new if $game_time_tint.disposed?
        update_tint
      end
      def self.update_tint
        $game_time_tint.update unless @pause_tint
      end
      def self.sec?
        return $game_time.sec
      end
      def self.min?
        return $game_time.min
      end
      def self.mint?
        return $game_time.min if $game_time.min > 9
        return "0" + $game_time.min.to_s
      end
      def self.hour?
        return $game_time.hour
      end
      def self.hour_nom?
        hour = $game_time.hour
        hour -= 12 if hour > 11
        hour = 12 if hour == 0
        return hour
      end
      def self.day?
        return $game_time.day if $USE_REAL_TIME
        return $game_time.day + 1
      end
      def self.day_week?
        return $game_time.dayweek
      end
      def self.day_year?
        month = month? - 1
        day = day?
        while month > 0
          day += MONTHS[month]
          month -= 1
        end
        day
      end
      def self.day_name
        return DAYNAMES[$game_time.dayweek-1] if $USE_REAL_TIME
        return DAYNAMES[$game_time.dayweek]
      end
      def self.day_name_abbr
        return DAYNAMESABBR[$game_time.dayweek-1] if $USE_REAL_TIME
        return DAYNAMESABBR[$game_time.dayweek]
      end
      def self.month_name_abbr
        return MONTHNAMESABBR[$game_time.month-1] if $USE_REAL_TIME
        return MONTHNAMESABBR[$game_time.month]
      end
      def self.month?
        return $game_time.month if $USE_REAL_TIME
        return $game_time.month + 1
      end
      def self.month_name
        return MONTHNAMES[$game_time.month-1] if $USE_REAL_TIME
        return MONTHNAMES[$game_time.month]
      end
      def self.year?
        return $game_time.year
      end
      def self.pause_tint(set)
        @pause_tint = set
        $game_time_tint.force_update if !@pause_tint
      end
      def self.change(s = nil,m = nil,h = nil,d = nil,dw = nil, mn = nil,y = nil)
        $game_time.manual(s,m,h,d,dw,mn,y)
      end
      def self.set(handle,n)
        $game_time.forward(handle,n)
      end
      def self.clock?(set)
        SceneManager.scene.clock_visible?(set)
      end
      def self.year_post(set)
        $game_time.year_post = set
      end
      def self.save_time
        $saved_game_time = $game_time.dup
      end
      def self.load_time
        $game_time = $saved_game_time.dup
      end
      def self.no_time_map
        note = $game_map.map_note
        /Notime/ =~ note
        return false unless $~
        return true
      end
      def self.notime(set)
        $game_time.notime = set
      end
    
      class Current_Time
      
        attr_reader    :sec
        attr_reader    :min
        attr_reader    :hour
        attr_reader    :day
        attr_reader    :dayweek
        attr_reader    :month
        attr_reader    :year
        attr_accessor  :year_post
        attr_accessor  :notime
      
        def initialize
          reset_all_values
        end
        def reset_all_values
          @sec = START_TIME[0]
          @min = START_TIME[1]
          @hour = START_TIME[2]
          @day = START_TIME[3]
          @dayweek = 0
          @month = START_TIME[4]
          @year = START_TIME[5]
          @notime = false
          @year_post = DEFAULT_YEAR_POST
        end
        def update
          return realtime if $USE_REAL_TIME
          return if GameTime.no_time_map or @notime
          $game_variables[TIMELAPSE_VARIABLE] = DEFAULT_TIMELAPSE if $game_variables[TIMELAPSE_VARIABLE] <= 0
          return unless Graphics.frame_count % $game_variables[TIMELAPSE_VARIABLE] == 0
          NOSECONDS ? addmin(1) : addsec(1)
          update_timers
        end
        def update_timers
          return unless TIMER_VARIABLES.size > 0
          for i in TIMER_VARIABLES
            $game_variables[i] -= 1 unless $game_variables[i] == 0
          end
        end
        def realtime
          @sec = Time.now.sec
          @sec = 0 if @sec == 60
          @min = Time.now.min
          @hour = Time.now.hour
          @day = Time.now.day
          @dayweek = Time.now.wday
          @month = Time.now.month
          @year = Time.now.year
          0
        end
        def addsec(s)
          @sec += s
          return unless @sec == SECONDSINMIN
          @sec = 0
          addmin(1)
        end
        def addmin(m)
          @min += m
          return unless @min == MINUTESINHOUR
          @min = 0
          addhour(1)
        end
        def addhour(h)
          @hour += h
          return unless @hour == HOURSINDAY
          @hour = 0
          addday(1)
        end
        def addday(d)
          @day += d
          @dayweek += d
          @dayweek = 0 if @dayweek == DAYNAMES.size
          return unless @day == MONTHS[@month]
          @day = 0
          addmonth(1)
        end
        def addmonth(mn)
          @month += mn
          return unless @month == MONTHS.size
          @month = 0
          addyear(1)
        end
        def addyear(y)
          @year += y
        end
        def manual(s = nil,m = nil,h = nil,d = nil,dw = nil,mn = nil,y = nil)
          @sec = s if !s.nil?
          @sec = SECONDSINMIN - 1 if @sec >= SECONDSINMIN
          @min = m if !m.nil?
          @min = MINUTESINHOUR - 1 if @min >= MINUTESINHOUR
          @hour = h if !h.nil?
          @hour = HOURSINDAY - 1 if @hour >= HOURSINDAY
          @day = d if !d.nil?
          @day = MONTHS[@month] - 1 if @day >= MONTHS[@month]
          @dayweek = dw if !dw.nil?
          @dayweek = 0 if @dayweek >= DAYNAMES.size
          @month = mn if !mn.nil?
          @month = MONTHS.size - 1 if @month >= MONTHS.size
          @year = y if !y.nil?
        end
        def forward(handle,n)
          handle = handle.to_s + "(1)"
          n.times do |s| eval(handle) end
        end
        def remsec(s)
          @sec -= s
          return unless @sec == -1
          @sec = SECONDSINMIN
          remmin(1)
        end
        def remmin(m)
          @min -= m
          return unless @min == -1
          @min = MINUTESINHOUR
          remhour(1)
        end
        def remhour(h)
          @hour -= h
          return unless @hour == -1
          @hour = HOURSINDAY - 1
          remday(1)
        end
        def remday(d)
          @day -= d
          @dayweek -= d
          @dayweek = DAYNAMES.size - 1 if @dayweek == -1
          return unless @day == -1
          @day = MONTHS[@month] - 1
          remmonth(1)
        end
        def remmonth(mn)
          @month -= mn
          return unless @month == -1
          @month = MONTHS.size - 1
          remyear(1)
        end
        def remyear(y)
          @year -= y
        end
      end
    
      class Sprite_TimeTint < Sprite_Base
        def initialize(viewport = nil)
          super(viewport)
          self.z = 10
          create_contents
          update
          @old_tint = [0,0,0,0]
          @old_time = -1
        end
        def create_contents
          self.bitmap = Bitmap.new(Graphics.width,Graphics.height)
          self.visible = false
        end
        def force_update
          @old_time = -1
          update
        end
        def update
          return use_default if SceneManager.scene.is_a?(Scene_Battle) and BATTLE_TINT
          return use_khas if USE_KHAS
          return use_victor if USE_VICTOR
          return use_default
        end
        def use_default
          return if self.disposed?
          create_contents if self.bitmap.height != Graphics.height
          create_contents if self.bitmap.width != Graphics.width
          self.visible = SceneManager.scene.is_a?(Scene_Map)
          self.visible = true if SceneManager.scene.is_a?(Scene_Battle) and BATTLE_TINT
          self.visible = false if SceneManager.scene.is_a?(Scene_Title)
          self.visible = false if no_tint
          return unless self.visible
          min = $game_time.min
          return if min == @old_time
          @old_time = min
          rgba = get_new_tint(min)
          return if rgba == @old_tint
          @old_tint = rgba
          self.bitmap.clear
          self.bitmap.fill_rect(0,0,Graphics.width,Graphics.height,Color.new(rgba[0],rgba[1],rgba[2],rgba[3]))
        end
        def use_khas      
          begin
          temp = $game_map.light_surface.opacity
          rescue
          return
          end
          self.visible = false
          if no_tint
            $game_map.effect_surface.set_color(0,0,0)
            $game_map.effect_surface.set_alpha(0)
          end
          return if no_tint
          min = $game_time.min
          return if min == @old_time
          @old_time = min
          rgba = get_new_tint(min)
          return if rgba == @old_tint
          @old_tint = rgba
          $game_map.effect_surface.set_color(rgba[0],rgba[1],rgba[2])
          $game_map.effect_surface.set_alpha(rgba[3])
        end
        def no_tint
          return if $game_map.nil?
          note = $game_map.map_note
          /Notint/ =~ note
          return false unless $~
          return true
        end
        def use_victor
          return if $game_map.nil?
          self.visible = false
          $game_map.screen.shade.change_color(0,0,0,0) if no_tint
          $game_map.screen.shade.change_opacity(0) if no_tint
          return if no_tint
          $game_map.screen.shade.show if !$game_map.screen.shade.visible
          min = $game_time.min
          return if min == @old_time
          @old_time = min
          rgba = get_new_tint(min)
          return if rgba == @old_tint
          @old_tint = rgba
          $game_map.screen.shade.change_color(rgba[0],rgba[1],rgba[2],0)
          $game_map.screen.shade.change_opacity(rgba[3],0)
        end
        def get_new_tint(min)
          ctint = TINTS[$game_time.hour]
          ntint = TINTS[$game_time.hour + 1] unless $game_time.hour + 1 == HOURSINDAY
          ntint = TINTS[0] if $game_time.hour + 1 == HOURSINDAY
          r = ctint.red.to_f - ((ctint.red.to_f - ntint.red) * (min.to_f / MINUTESINHOUR))
          g = ctint.green.to_f - ((ctint.green.to_f - ntint.green) * (min.to_f / MINUTESINHOUR))
          b = ctint.blue.to_f - ((ctint.blue.to_f - ntint.blue) * (min.to_f / MINUTESINHOUR))
          a = ctint.alpha.to_f - ((ctint.alpha.to_f - ntint.alpha) * (min.to_f / MINUTESINHOUR))
          return [r,g,b,a]
        end
      end
    
      class Window_GameClock < Window_Base
        def initialize
          super(CLOCK_X,CLOCK_Y,CLOCK_WIDTH,clock_height)
          self.opacity = CLOCK_BACK unless SceneManager.scene.is_a?(Scene_Menu)
          update
          self.visible = $gametimeclockvisible unless SceneManager.scene.is_a?(Scene_Menu)
        end
        def clock_height
          return 80 if !CUSTOM_CLOCK2.nil? and CLOCK_FORMAT == 5 and SceneManager.scene.is_a?(Scene_Map)
          return 80 if !CUSTOM_CLOCK2.nil? and MENU_CLOCK_FORMAT == 5 and SceneManager.scene.is_a?(Scene_Menu)
          return 56
        end
        def update
          if NOSECONDS && @set_minute == $game_time.min
            if Graphics.frame_count % BLINK_SPEED / 2 == 0 && USE_BLINK
              return
            end
          end
          contents.clear
          @set_minute = $game_time.min if NOSECONDS
          if SceneManager.scene.is_a?(Scene_Map)
            v = CLOCK_FORMAT
          else
            v = MENU_CLOCK_FORMAT
          end
          string = normal_clock if v == 1
          string = dated_clock if v == 2
          string = military_clock if v == 3
          string = dated_military_clock if v == 4
          string = custom(CUSTOM_CLOCK) if v == 5
          string2 = custom(CUSTOM_CLOCK2) if !CUSTOM_CLOCK2.nil? and v == 5
          contents.draw_text(0,0,contents.width,24,string,1)
          contents.draw_text(0,24,contents.width,24,string2,1) if !CUSTOM_CLOCK2.nil? and v == 5
        end
        def military_clock
          hour = $game_time.hour
          minute = $game_time.min
          if hour < 10 then hour = " " + hour.to_s else hour.to_s end
          if minute < 10 then minute = "0" + minute.to_s else minute.to_s end
          string =  hour.to_s + blinky + minute.to_s
          return string
        end
        def dated_military_clock
          hour = $game_time.hour
          minute = $game_time.min
          dayweek = DAYNAMESABBR[$game_time.dayweek]
          day = $game_time.day
          day += 1 unless $USE_REAL_TIME
          if hour < 10 then hour = " " + hour.to_s else hour.to_s end
          if minute < 10 then minute = "0" + minute.to_s else minute.to_s end
          if day < 10 then day = " " + day.to_s end
          string = dayweek.to_s + " " + day.to_s + " "
          string += hour.to_s + blinky + minute.to_s
          return string
        end
        def normal_clock
          meri = "AM"
          hour = $game_time.hour
          minute = $game_time.min
          if hour > 11 then meri = "PM" end
          if hour == 0 then hour = 12; meri = "AM" end
          if hour > 12 then hour -= 12 end
          if hour < 10 then hour = " " + hour.to_s else hour.to_s end
          if minute < 10 then minute = "0" + minute.to_s else minute.to_s end
          string =  hour.to_s + blinky + minute.to_s + " " + meri
          return string
        end
        def dated_clock
          meri = "AM"
          hour = $game_time.hour
          minute = $game_time.min
          dayweek = DAYNAMESABBR[$game_time.dayweek]
          day = $game_time.day
          day += 1 unless $USE_REAL_TIME
          if hour > 11 then meri = "PM" end
          if hour == 0 then hour = 12; meri = "AM" end
          if hour > 12 then hour -= 12 end
          if hour < 10 then hour = " " + hour.to_s else hour.to_s end
          if minute < 10 then minute = "0" + minute.to_s else minute.to_s end
          if day < 10 then day = " " + day.to_s end
          string = dayweek.to_s + " " + day.to_s + " "
          string += hour.to_s + blinky + minute.to_s + " " + meri
          return string
        end
        def blinky
          return ":" unless USE_BLINK
          return " " if Graphics.frame_count % BLINK_SPEED > (BLINK_SPEED / 2)
          return ":"
        end
        def custom(array)
          string = ""
          for command in array
            case command
            when "sec"
              sec = $game_time.sec
              sec = "0" + sec.to_s if sec < 10
              string += sec.to_s
            when "min"
              minute = $game_time.min
              minute = "0" + minute.to_s if minute < 10
              string += minute.to_s
            when "hour"
              hour = $game_time.hour
              hour >= 12 ? meri = "PM" : meri = "AM"
              hour = " " + hour.to_s if hour < 10
              string += hour.to_s
            when "hour12"
              hour12 = $game_time.hour
              hour12 -= 12 if hour12 > 12
              hour12 = 12 if hour12 == 0
              string += hour12.to_s
            when "meri"
              hour = $game_time.hour
              hour >= 12 ? meri = "PM" : meri = "AM"
              string += meri.to_s
            when "weekshort"
              dayweek = DAYNAMESABBR[$game_time.dayweek]
              string += dayweek.to_s
            when "weeklong"
              dayweekn = DAYNAMES[$game_time.dayweek]
              string += dayweekn.to_s
            when "day"
              day = $game_time.day
              day += 1 unless $USE_REAL_TIME
              string += day.to_s
            when "month"
              month = $game_time.month
              month += 1 unless $USE_REAL_TIME
              string += month.to_s
            when "monthshort"
              monthna = MONTHNAMESABBR[$game_time.month]
              string += monthna.to_s
            when "monthlong"
              monthn = MONTHNAMES[$game_time.month]
              string += monthn.to_s
            when "year"
              year = $game_time.year
              string += year.to_s
            when "yearp"
              string += $game_time.year_post
            when "blinky"
              string += blinky
            else
              string += command.to_s
            end
          end
          return string
        end
      end
    
    end
    
    GameTime.run
    
    class Window_Base < Window
      alias game_time_convert_escape_characters convert_escape_characters
      def convert_escape_characters(text)
        result = game_time_convert_escape_characters(text)
        result.gsub!(/GTSEC/) { GameTime.sec? }
        result.gsub!(/GTMIN/) { GameTime.mint? }
        result.gsub!(/GTHOUR/) { GameTime.hour? }
        result.gsub!(/GTDAYN/) { GameTime.day? }
        result.gsub!(/GTDAYF/) { GameTime.day_name }
        result.gsub!(/GTDAYA/) { GameTime.day_name_abbr }
        result.gsub!(/GTMONF/) { GameTime.month? }
        result.gsub!(/GTMONN/) { GameTime.month_name }
        result.gsub!(/GTMONA/) { GameTime.month_name_abbr }
        result.gsub!(/GTYEAR/) { GameTime.year? }
        result
      end
    end
    
    class Scene_Base
      alias game_time_update update
      def update
        game_time_update
        GameTime.update
      end
      def clock_visible?(set)
        return
      end
    end
    
    class Scene_Map
      alias game_time_post_transfer post_transfer
      alias game_time_init create_all_windows
      alias game_time_map_update update
      alias game_time_start start
      def start
        game_time_start
        GameTime.update_tint
      end
      def create_all_windows
        game_time_init
        @gametimeclock = GameTime::Window_GameClock.new if USECLOCK
        if CUSTOM_CLOCK_BACKGROUND
          @clockbackground = Sprite.new(@gametimeclock.viewport)
          @clockbackground.bitmap = Cache.picture(CUSTOM_CLOCK_BACKGROUND_IMAGE)
          @clockbackground.x = @gametimeclock.x
          @clockbackground.x += CUSTOM_CLOCK_BACKGROUND_X
          @clockbackground.y = @gametimeclock.y
          @clockbackground.y += CUSTOM_CLOCK_BACKGROUND_Y
        end
      end
      def post_transfer
        GameTime.update_tint
        game_time_post_transfer
      end
      def update
        game_time_map_update
        $game_variables[14] = $game_time.hour
        return unless USECLOCK
        @gametimeclock.update unless SceneManager.scene != self
        if Input.trigger?(CLOCK_TOGGLE) and @gametimeclock.nil? == false
          @gametimeclock.visible ? @gametimeclock.visible = false : @gametimeclock.visible = true
          $gametimeclockvisible = @gametimeclock.visible
          @clockbackground.visible = @gametimeclock.visible if @clockbackground
        end
      end
      def clock_visible?(set)
        @gametimeclock.visible = set
        $gametimeclockvisible = set
      end
      def update_encounter
        if $game_player.encounter
          $game_time_tint.use_default
          SceneManager.call(Scene_Battle)
        end
      end
    end
    
    class Game_Map
      def map_note
        return @map.note unless @map.nil?
      end
    end
    
    class Scene_Menu
      alias gt_start start
      alias gt_update update
      def start
        gt_start
        @clock = GameTime::Window_GameClock.new if USECLOCK_MENU
        return if @clock.nil?
        @clock.x = 0
        @clock.y = @gold_window.y - @clock.height
        @clock.width = @gold_window.width
        @clock.create_contents
      end
      def update
        gt_update
        @clock.update unless @clock.nil?
        @clock.contents.clear if SceneManager.scene != self and !@clock.nil?
      end
    end
    
    class Scene_Battle
      alias gametime_pre_terminate pre_terminate
      def pre_terminate
        gametime_pre_terminate
        $game_time_tint.update
      end
    end
    
    module DataManager
      class << self
      alias gametime_msc make_save_contents
      alias gametime_esc extract_save_contents
      alias gametime_sng setup_new_game
      end
      def self.make_save_contents
        contents = gametime_msc
        contents[:gametime] = $game_time
        contents
      end
      def self.extract_save_contents(contents)
        gametime_esc(contents)
        $game_time = contents[:gametime]
      end
      def self.setup_new_game
        gametime_sng
        $game_time = GameTime::Current_Time.new
      end
    end


Última edición por Muzgar el Lun Mar 20, 2017 3:35 pm, editado 10 veces
avatar
Muzgar
Admin
Admin

RPG Maker : Ace
Mensajes : 1028
Monedas : 864
Reputación : 108

Volver arriba Ir abajo

Cambiar el tiempo

Mensaje por Nina el Miér Mar 19, 2014 2:23 pm

¡Muy buenas!
Gracias por dejar el script. Está muy chulo.
Mi duda sería la siguiente:
Podría cambiar el tiempo a mi antojo? Por ejemplo,  poner el color de la pantalla que se pone a las 1:00AM en un mapa y que no cambie más, que se quede así y al pasar a otro mapa, que vuelva a la normalidad. (No querría el reloj, claro).

Un saludo! Y de nuevo, gracias!  I love you

-----------------------EDITO---------------------------------------
Me descargué la demo y para mi sorpresa, venía explicado en Español y de como lo quería =) (no le he dado antes porque pensaba que sería en inglés, como todos y bla bla).
Intentaré aprovechar la demo para hacerlo como busco.
Gracias igualmente.
avatar
Nina
PJ de Quest
PJ de Quest

Femenino
España
RPG Maker : Ace
Mensajes : 32
Monedas : 378
Reputación : 8
Localización : España

Volver arriba Ir abajo

Re: [Ace]Script día/noche + reloj

Mensaje por Muzgar el Miér Mar 19, 2014 4:31 pm

Primero antes de nada... me alegro de que te guste el script ^^

Respondiendo a tu pregunta, sí. Está todo explicado en la demo que he dejado pero te explicaré aquí el ejemplo que me has preguntado:

Para poner que sea la 1 AM tendrías que poner en un evento el siguiente comando "llamar script" y poner "GameTime::set(60)" así fuerzas que sea la 1:00 AM. Si no quieres que cambie nada más (no quieres que cambie el tono de la pantalla) tendrías que poner llamar al siguiente script (como antes xD) "GameTime::pause_tint(true)" con esto bloqueas el cambio del color de pantalla por parte del script, si no quieres que el tiempo avance también puedes usar esta otra llamada "GameTime::pause_time(true)" (aunque si usas esto el anterior no te hará falta xD) y para quitar el reloj de la pantalla usas este otro "GameTime::clock(false)" Y listo xD

... como sé que se me da fatal explicar te dejo en forma de screens

Spoiler:

Nota: recuerda que en la linea 32 del script está asignado que al pulsar "Shift" se ponga o quite el reloj, para deshabilitar esto simplemente sustituye ":SHIFT" por ":INPUT"

Cualquier duda revisa la demo y si aun así no te has enterado... vuelve a preguntar por aquí ^^

Un saludo

-------edito.....

Vaya xDD mientras te contestaba veo que has visto la demo xD bueno de cualquier forma te dejo la respuesta aquí, cualquier duda ya sabes y sí... la demo está en español ya que la hice personalmente (aunque te enlaza/da publicidad a un foro viejo pero lo acabo de cambiar hace un rato xD) mucha suerte y espero que te sirva

_________________
Apoya wild wars poniendo esta barra en tu firma


Muzgar apoya a...
Spoiler:

avatar
Muzgar
Admin
Admin

RPG Maker : Ace
Mensajes : 1028
Monedas : 864
Reputación : 108

Volver arriba Ir abajo

Re: [Ace]Script día/noche + reloj

Mensaje por Nina el Miér Mar 19, 2014 6:33 pm

¡¡¡WAW!!! Todo probado en el RPGMVXAce.
Entre tus explicaciones y la demo, todo manific *O* Funciona perfecto. ¡¡¡Muchas gracias!!! (Haces mucho traduciendo demos *¬*).
Tendré que hacerme un listado de los números correspondientes a las horas xD

Lo he juntado con el script de Khas (el de las luces con efecto) y no tira ningún problema =] (Por si alguien también quiere juntar los 2 scripts).

Gracias por la respuesta rápida y la preocupación.

Psdt: Cómo puedo aportar un script para la página "Índice Scripts RGSS3"?
avatar
Nina
PJ de Quest
PJ de Quest

Femenino
España
RPG Maker : Ace
Mensajes : 32
Monedas : 378
Reputación : 8
Localización : España

Volver arriba Ir abajo

Re: [Ace]Script día/noche + reloj

Mensaje por Muzgar el Miér Mar 19, 2014 7:21 pm

Me alegro de que te funcionase perfectamente ^^ y no, no lo he traducido, hice la demo personalmente por eso es "cutre" xD simple pero funcional xD

Gracias por informar que no hay problemas con el script de luces de khas

Y no quiero desviar el tema pero te respondo xD simplemente postea un script de Ace en el apartado "Biblioteca de scripts RGSS3|ACE" y después en el post "Índice Scripts RGSS3" avisa del aporte que hiciste para que te lo incluyan ^^

Un saludo

_________________
Apoya wild wars poniendo esta barra en tu firma


Muzgar apoya a...
Spoiler:

avatar
Muzgar
Admin
Admin

RPG Maker : Ace
Mensajes : 1028
Monedas : 864
Reputación : 108

Volver arriba Ir abajo

Re: [Ace]Script día/noche + reloj

Mensaje por Arkara el Mar Feb 24, 2015 8:56 am

Muy buen script funciona a la perfección pero tengo una duda que no puedo resolver

¿como se podrian crear variables para que a depende que hora se activen los eventos?

Gran trabajo.
avatar
Arkara
PJ de Relleno
PJ de Relleno

España
RPG Maker : Ace
Mensajes : 2
Monedas : 2
Reputación : 0

Volver arriba Ir abajo

Re: [Ace]Script día/noche + reloj

Mensaje por Muzgar el Miér Feb 25, 2015 12:24 pm

Hola Arkara, primero de todo... bienvenido al foro xD

Me alegra muchísimo que te guste el script pero... lamentablemente no sé como usar variables combinandolo con el script. La demo la hice hace muchísimo y tengo que mirarlo mejor. En un principio te digo dos cosas.

Primero, hay una opción en el script que pone:

#Store current time in a variable?
USE_VARIABLE = false
TIME_VARIABLE = 1

Entre la linea 75 u 77, prueba poniendo "true" en vez de "false" y en time_variable ponle el número de la variable que quieras usar para controlarla. Luego supongo que la variable iría igual que el script, por minutos, es decir si quieres que un evento ocurra a las 6 de la tarde tendrías que poner la variable igual a 1080 (Sí la variable es igual a 1080 o más que pase tal cosa)

En teoría debería funcionar pero no he tenido tiempo para probarlo

Lo segundo es que... tengas un poco de paciencia xD el usuario Fatyguero me acaba de pasar este script actualizado y mejorado, el cual pondré ahora mismo en el propio post. Lo acabo de ver ahora mismo y no sé muy bien como funcionará por eso digo lo de paciencia xD necesito un poco de tiempo para mirarlo y crear otra demo. Pero lo dejo ya en el propio post por si quieres ir echandole un ojo mientras.

Si sigue el problema avísame, intentaré tener otra respuesta más clara y mejor para la próxima xD

Un saludo

_________________
Apoya wild wars poniendo esta barra en tu firma


Muzgar apoya a...
Spoiler:

avatar
Muzgar
Admin
Admin

RPG Maker : Ace
Mensajes : 1028
Monedas : 864
Reputación : 108

Volver arriba Ir abajo

Re: [Ace]Script día/noche + reloj

Mensaje por Arkara el Vie Feb 27, 2015 2:11 pm

Muchas gracias por la respuesta

Teniendo en cuenta que saldra un nuevo script tendre paciencia y esperare a que lo acabes para implementar el reloj en mi juego, tengo la esperanza que con este script sera mas facil implementar variables.

gracias
avatar
Arkara
PJ de Relleno
PJ de Relleno

España
RPG Maker : Ace
Mensajes : 2
Monedas : 2
Reputación : 0

Volver arriba Ir abajo

Re: [Ace]Script día/noche + reloj

Mensaje por fatyguero el Jue Mar 05, 2015 6:17 am

Muy buenas Arkara, por pedido de Muzgar voy a colocar aqui el metodo para hacer lo que pides, guardar el valor del tiempo en una variable del programa

Para el primer script es muy sencillo y solo tienes una opción:

1º creas un evento en proceso paralelo, yo recomiendo que sea un evento comun para que se aplique a todos los mapas.
2º  vas a opciones de variables y creas la variable a la cual le asignaras el valor del tiempo, por ejemplo le pones de nombre "hora".
3º A esa variable le das el valor de esta manera: marcas "subtituir" y vas a la opcion de "otros" en la cual escribiras "$game_time". Quedaria asi Variable"hora" = $game_time
4º Creas el o los eventos que quieras que se activen segun el valor de esa variable, ten en cuenta que el valor del tiempo en este script es de 0(12 AM) a 1440(12PM), por lo que deberias de calcular mas o menos en base a eso, si quieres que un evento se active a las 6 de la tarde deberias poner "si la variable "hora" es igual a "1080"(6 PM) entonces..." y ahi activas lo que quieras, marca la exepcion con el valor mayor o menor al de activacion para que el evento se desactive.

En el caso del segundo script, para mi el mejor de los dos, la cosa es practicamente igual, con la diferencia de que aqui tienes muchas mas opciones, como por ejemplo puedes guardar el valor del dia de la semana(7 tiene una semana), los dias del mes(tu mismo lo configuras), los minutos, las horas, los meses o los años). por lo que podrias activar un evento segun que opciones de esas quisieras, el metodo es el mismo por lo que te dejo los diferentes valores a asignarle a tu variable "hora":

$game_time.sec = segundo exacto del reloj
$game_time.min = minuto especifico del reloj
$game_time.hour = hora del dia, en este caso el maximo valor esta entre 0(12Am) y 24(12Pm). Una cosa a tener en cuenta esque la hora tiene 60 minutos y sus respectivos segundos por lo que mientras la variable permaneza con un valor de hora fijo, el evento con esa hora se activara todo el tiempo hasta que el valor cambie a otro. Recomiendo poner un tiempo de espera justo despues de activar el evento, el tiempo dependera de cual rapido hemos configurado el script para que ejecute la hora, por ejemplo si pusimos que 1 minuto es equivalente a 5 frames pues tendriamos como resultado que en 300 frames pasaria una hora, mas o menos serian unos 6 segundos reales, y el tiempo de espera tendria que ser mayor a 300 en este caso.
$game_time.day = numero correspondiente al dia del mes, hay que tener en cuenta que siempre el dia 1 de cada mes corresponde al valor 0 y de ahi en adelante la variable sumara 1 por cacada dia que pase hasta volver a 0 cuando comiennce otro mes.
$game_time.dayweek = numero que corresponde al dia de la semana, cada semana tiene 7 dias, comenzando por el numero 0(domingo) y acabando en el numero 6(sabado)
$game_time.month = corresponde al numero del mes del año, si tiene 12 meses el maximo de valor seria de 0 a 11, siendo enero el numero 0 y diciembre el 11

Y hasta ahi me se xD, un ejemplo seria si quieres que aparezca un personaje el dia 7 de marzo a las 11 de la mañana seria asi....

1º creas el evento comun en paralelo que asigne valor a las variables "dia", "mes" y "hora", en este caso es: dia = $game_time.day, mes = game_time.month, y hora = $game_time.hour.
2ª creas un evento comun en proceso paralelo que tenga las siguientes condiciones:
Condiciones y efectos:Variable[dia] == 8
 Condiciones y efectos:Variable[mes] == 2
  Condiciones y efectos:Variable[hora] == 11

Activar interruptor[cosa que se activa] = On
    fin
   fin
exepcion

Activar interruptor[cosa que se activa] = off
fin

Ahi hariamos que aparezca el evento justo el dia del mes y a la hora que quisimos y que cuando se acabe ese dia se desactive hasta que vuelva a ser el dia, el mes y la hora igual a la anterior.


Y bueno, espero haberme explicado bien, este ultimo script tiene miles de usos y todos muy faciles de lograr por lo que lo recomiendo al 100%

Saluuuuuuudos y espero que sirva ^^
avatar
fatyguero
PJ Principal
PJ Principal

Masculino
Argentina
RPG Maker : Ace
Mensajes : 341
Monedas : 376
Reputación : 93
Edad : 33
Localización : en el culo del mundo... digo el centro xD

Volver arriba Ir abajo

Re: [Ace]Script día/noche + reloj

Mensaje por Muzgar el Jue Mar 05, 2015 11:54 pm

Muchísimas gracias por explicar esa parte Fatyguero ya que yo andaba un poco bloqueado en eso xD (llevo demasiado sin usar el maker xD)

Sacaré la demo que prometí cuando pueda, pero lamentablemente dudo que sea pronto. Por ello cualquier duda ponedla en el post e intentaré solucionarlo como pueda... digo esto a pesar de tener que pedirle ayuda a fatyguero esta vez por que no lo entendía yo mismo bien ^^" (Vaya admin estoy hecho xD)

Espero que se te solucionase la duda Arkara, y disculpa el retraso al contestar.

Nuevamente gracias Fatyguero por la ayuda.

Un saludo

_________________
Apoya wild wars poniendo esta barra en tu firma


Muzgar apoya a...
Spoiler:

avatar
Muzgar
Admin
Admin

RPG Maker : Ace
Mensajes : 1028
Monedas : 864
Reputación : 108

Volver arriba Ir abajo

(Ya está solucionado)

Mensaje por Rafaxter el Sáb Jun 06, 2015 8:00 pm

[El problema ya me lo han resuelto, muchas gracias Japo]

Hola, perdonad el Necro-post (Me dijo Muzgar por si acaso...)  xD. Pero tengo un problema, y es que quiero hacer que entre las 21:00 y las 4:00 aparezcan en una zona pensada para ello unos NPC de lobos, y al llegar las 4 desaparedcan (son characters) y con la explicación de arriba no consigo hacerlo, ya que ami no me sale ''sustituir'' ni ''otro'' en la zona de variables, ayuda pls T.T


Última edición por Rafaxter el Sáb Jun 06, 2015 9:55 pm, editado 1 vez (Razón : Ya solucioné el problema.)
avatar
Rafaxter
PJ de Relleno
PJ de Relleno

Masculino
España
RPG Maker : MV
Mensajes : 26
Monedas : 57
Reputación : 3
Edad : 18
Localización : Madrid

Volver arriba Ir abajo

Re: [Ace]Script día/noche + reloj

Mensaje por fatyguero el Dom Jun 07, 2015 3:53 am

hola rafaxter mira lo que quieres es muy sencillo.

simplemente le pones un interruptor a tu evento de lobo y en evento comunes y en proceseso paralelo, pones:

si $game_time.hour >=21, en un condicional, aqui activas el interruptor de los lobos ( por lo general la ultima opcion que te da las opciones de variables es "otros", asi que utiliza la ultima) y le activas la opcion de "exepcion", en la cual pondras otra condicion: si $game_time.hour >= 4, aqui es donde pones DESACTIVAR el interrruptor de los lobos.

cuando digo condicional me refiero a "conidiciones y efectos" de las opciones de eventos.

espero te haya sido de ayuda ^^

saluuuuuuuuuuuuuudosssssss
avatar
fatyguero
PJ Principal
PJ Principal

Masculino
Argentina
RPG Maker : Ace
Mensajes : 341
Monedas : 376
Reputación : 93
Edad : 33
Localización : en el culo del mundo... digo el centro xD

Volver arriba Ir abajo

Re: [Ace]Script día/noche + reloj

Mensaje por Rafaxter el Dom Jun 07, 2015 9:53 pm

fatyguero escribió:hola rafaxter mira lo que quieres es muy sencillo.

simplemente le pones un interruptor a tu evento de lobo y en evento comunes y en proceseso paralelo, pones:

si $game_time.hour >=21, en un condicional, aqui activas el interruptor de los lobos ( por lo general la ultima opcion que te da las opciones de variables es "otros", asi que utiliza la ultima) y le activas la opcion de "exepcion", en la cual pondras otra condicion: si $game_time.hour >= 4, aqui es donde pones DESACTIVAR el interrruptor de los lobos.

cuando digo condicional me refiero a "conidiciones y efectos" de las opciones de eventos.

espero te haya sido de ayuda ^^

saluuuuuuuuuuuuuudosssssss
 Lo siento pero aparte de tardar en entender algunas partes, al hacerlo (Creo que lo hice tal como dices) Error salvaje apareció en la linea 450


He acabado liándome mucho y así acabó.  ¿Podrías mandarme una o varias fotos pls?

ERROR:
avatar
Rafaxter
PJ de Relleno
PJ de Relleno

Masculino
España
RPG Maker : MV
Mensajes : 26
Monedas : 57
Reputación : 3
Edad : 18
Localización : Madrid

Volver arriba Ir abajo

Re: [Ace]Script día/noche + reloj

Mensaje por fatyguero el Lun Jun 08, 2015 5:25 am

mmmm el condicional esta bien hecho, pero te recomiendo que actives el evento mediante un interruptor, y en la parte de exepcion lo desactives a ese interruptor.

si aun asi no te funciona puede ser porque el programa no reconoce la variable como global si no como local..., en ese mismo evento comun, donde tienes las condiciones y efectos, pon esto:

variable[x](la variable que tu quieras) = $game_time.hour

eso en teoria asigna el valor de la variable del script a una variable del programa y al hacerl en proceso paralelo pues no daria errores. Ahora bien, si pones esto, en el condicional deves de cambiar a "si la variable[x] >= 21 entonces que accione el interruptor" y en exepcion "si la variable[x] >= 4, pues que lo desactive.

Perdon por no poner imagenes, no me anda muy rapido el internet en estos dias xD

saluuuuuuudos y perdon si me explique mal x_x
avatar
fatyguero
PJ Principal
PJ Principal

Masculino
Argentina
RPG Maker : Ace
Mensajes : 341
Monedas : 376
Reputación : 93
Edad : 33
Localización : en el culo del mundo... digo el centro xD

Volver arriba Ir abajo

Re: [Ace]Script día/noche + reloj

Mensaje por Rafaxter el Lun Jun 08, 2015 3:27 pm

Lo siento, sigo igual que como estaba, aunque gracias por intentar ayudar.
avatar
Rafaxter
PJ de Relleno
PJ de Relleno

Masculino
España
RPG Maker : MV
Mensajes : 26
Monedas : 57
Reputación : 3
Edad : 18
Localización : Madrid

Volver arriba Ir abajo

Re: [Ace]Script día/noche + reloj

Mensaje por Muzgar el Lun Jun 08, 2015 5:49 pm

Yo no me quiero meter mucho por que ahora mismo ando liado y no me entero xD pero... quiero avisar que creo que Rafa está usando el primer script (el viejo xD) y Faty está explicando según el segundo script xDDD

Al menos cuando rafa dijo "on la explicación de arriba no consigo hacerlo" Es por que la explicación que había dado Fatyguero era con el SEGUNDO script...

Creo que debería quitar el primer script para ahorrar problemas... pero me da demasiada pereza crear una nueva demo D:

Si tengo tiempo lo hago pero no prometo nada

Un saludo


Última edición por Muzgar el Sáb Feb 27, 2016 9:41 pm, editado 2 veces

_________________
Apoya wild wars poniendo esta barra en tu firma


Muzgar apoya a...
Spoiler:

avatar
Muzgar
Admin
Admin

RPG Maker : Ace
Mensajes : 1028
Monedas : 864
Reputación : 108

Volver arriba Ir abajo

Re: [Ace]Script día/noche + reloj

Mensaje por Rafaxter el Lun Jun 08, 2015 8:19 pm

Ok, eso explica muchas cosas, gracias por aclararnos Muzgar xD

Ojala consiga hacer lo de los lobos, seria el único evento día/noche (a no ser que aprenda y puede que hiciera mas :3) Gracias a todos por ayudarme.
avatar
Rafaxter
PJ de Relleno
PJ de Relleno

Masculino
España
RPG Maker : MV
Mensajes : 26
Monedas : 57
Reputación : 3
Edad : 18
Localización : Madrid

Volver arriba Ir abajo

Re: [Ace]Script día/noche + reloj

Mensaje por NicholayHernandez el Mar Jun 09, 2015 12:34 am

Yo hice un engine! que te dice la hora! con ayuda del light efects de victor saints haces los efectos de dia y noche con eventos paralelos! creo que no se complica mucho la cosa! Si quieres te dejo una demo, o un video tutorial donde explican como tener la hora real en el RPG Maker

NicholayHernandez
PJ de Quest
PJ de Quest

Colombia
RPG Maker : Ace
Mensajes : 51
Monedas : 117
Reputación : 7

Volver arriba Ir abajo

Re: [Ace]Script día/noche + reloj

Mensaje por fatyguero el Mar Jun 09, 2015 3:09 am

ok, fallo de los dos por no avisar ni preguntar cual script habia en uso xDDD.

la solucion es un poco mas complicada pero es lo mismo.

en el condicional pones asi:

condiciones y efectos: $game_time(esta opcion la escribes en la parte de "otros" de las condiciones y efectos en la tercera pestaña) >= 1260 --- entonces que se active el interruptor.

y en la exepcion le pones:
condicoines y efectos: $game_time >= 240 y que desactive el interruptor de los eventos de los lobos.

todo esto de igual manera que con el ejemplo que cite antes, en proceso paralelo.

Ahora la explicacion xD. el tiempo en el primer script se basa en que la variable $game_time consta de un valor, en frames, de 1440 como maximo, el cual se resetea y vuelve a 0 cuando pasa de ese limite, esto es, si te pones a dividir 1440 / 60 que son los frames por segundo por defecto, te va a dar 24, es decir el total de horas de un dia ^^, por esa razon 1260 serian las 9 de la noche y 240 serian las 4 de la mañana.

Espero haberme explicado bien esta ves xD, saluuuuuuuuudos y ojala ya te solucione el problema, si no me va tocar hacerte un ejemplo xD. y otra cosa, eh visto que el proceso paralelo tu le has puesto el interruptor "lobos" para que se active el proceso... pues me parece que ese interruptor mejor se lo pongas a los eventos de los lobos y para el evento comun utilices algun otro que actives ni bien comience el juego para que el evento comun empiece a trabajar desde el inicio, pero eso ya lo veras tu ^^

saluuuuuuuuudos
avatar
fatyguero
PJ Principal
PJ Principal

Masculino
Argentina
RPG Maker : Ace
Mensajes : 341
Monedas : 376
Reputación : 93
Edad : 33
Localización : en el culo del mundo... digo el centro xD

Volver arriba Ir abajo

Re: [Ace]Script día/noche + reloj

Mensaje por Bardo1992 el Miér Ene 18, 2017 12:08 pm

Muzgar escribió:Primero antes de nada... me alegro de que te guste el script ^^

Respondiendo a tu pregunta, sí. Está todo explicado en la demo que he dejado pero te explicaré aquí el ejemplo que me has preguntado:

Para poner que sea la 1 AM tendrías que poner en un evento el siguiente comando "llamar script" y poner "GameTime::set(60)" así fuerzas que sea la 1:00 AM. Si no quieres que cambie nada más (no quieres que cambie el tono de la pantalla) tendrías que poner llamar al siguiente script (como antes xD) "GameTime::pause_tint(true)" con esto bloqueas el cambio del color de pantalla por parte del script, si no quieres que el tiempo avance también puedes usar esta otra llamada "GameTime::pause_time(true)" (aunque si usas esto el anterior no te hará falta xD) y para quitar el reloj de la pantalla usas este otro "GameTime::clock(false)" Y listo xD

... como sé que se me da fatal explicar te dejo en forma de screens

Spoiler:

Nota: recuerda que en la linea 32 del script está asignado que al pulsar "Shift" se ponga o quite el reloj, para deshabilitar esto simplemente sustituye ":SHIFT" por ":INPUT"

Cualquier duda revisa la demo y si aun así no te has enterado... vuelve a preguntar por aquí ^^

Un saludo

-------edito.....

Vaya xDD mientras te contestaba veo que has visto la demo xD bueno de cualquier forma te dejo la respuesta aquí, cualquier duda ya sabes y sí... la demo está en español ya que la hice personalmente (aunque te enlaza/da publicidad a un foro viejo pero lo acabo de cambiar hace un rato xD) mucha suerte y espero que te sirva


buenas, espero que como es una duda no sea necropost aunque lleve inactivo este tema años. Espero que alguien lo lea y me pueda dar ayuda. He intentado implementar este script de dia y noche, hasta ahi todo bien, pero luego he estado tratando de anularlo cuando entras en un edificio y no lo consigo, es decir, el tono de pantalla oscuro de la noche se queda incluso dentro de edificios y no es plato de buen gusto. Espero haberme explicado y que me podais ayudar. Gracias
buenas, espero que como es una duda no sea necropost aunque lleve inactivo este tema años. Espero que alguien lo lea y me pueda dar ayuda. He intentado implementar este script de dia y noche, hasta ahi todo bien, pero luego he estado tratando de anularlo cuando entras en un edificio y no lo consigo, es decir, el tono de pantalla oscuro de la noche se queda incluso dentro de edificios y no es plato de buen gusto. Espero haberme explicado y que me podais ayudar. Gracias

Edito:tengo la mitad del trabajo hecho asi que espero ayuda, por el amor de dios, la virgen y vuestros padres. He conseguido implementar el script sin ningun tipo de problema, tras horas de investigacion lo he hecho. pero ahora tengo el problema de que no se retoman los valores.

Ejemplo: implemento el script, en la calle es de noche, entro en un edificio y logro que se haga de dia, pero claro, a la hora de regresar al exterior, no se retoman los valores que debiera tener el script o el reloj. Expongo, entro a las 1 de la noche en un edificio, lo configuro para que se haga de dia dentro del edificio pero al salir, deberia seguir siendo de noche, pues en un entrar y salir no deberian pasar 8 horas. Ayuda por favor, gracias

Bardo1992
PJ de Relleno
PJ de Relleno

España
RPG Maker : Ace
Mensajes : 25
Monedas : 69
Reputación : 1

Volver arriba Ir abajo

Re: [Ace]Script día/noche + reloj

Mensaje por KRiZaLiD el Miér Ene 18, 2017 3:10 pm

Hola, debes dirigirte a esta parte.

Código:
 #Include the ids of any maps not to be tinted based on time[size=11][/size]
  # Usually reserved for indoor maps[size=11][/size]
  NOTINTMAPS = [2]

Ahi dice que escribas o incluyas todos los mapas que no desees que sean pintados, o cambiados de color.

NO TINT MAPS = ???

ahi escribe el ID del mapa, si tienes varios, pues escribes una coma y sigues escribiendo todos los mapas que desees.

saludos
kriz

_________________
Mi Proyecto:


KRiZaLiD apoya:
avatar
KRiZaLiD
Héroe
Héroe

Masculino
Chile
RPG Maker : Vx
Mensajes : 721
Monedas : 3736
Reputación : 93
Edad : 32
Localización : Florida (pueblo fantasma), Chile

Volver arriba Ir abajo

Re: [Ace]Script día/noche + reloj

Mensaje por Bardo1992 el Miér Ene 18, 2017 3:43 pm

KRiZaLiD escribió:Hola, debes dirigirte a esta parte.

Código:
 #Include the ids of any maps not to be tinted based on time[size=11][/size]
  # Usually reserved for indoor maps[size=11][/size]
  NOTINTMAPS = [2]

Ahi dice que escribas o incluyas todos los mapas que no desees que sean pintados, o cambiados de color.

NO TINT MAPS = ???

ahi escribe el ID del mapa, si tienes varios, pues escribes una coma y sigues escribiendo todos los mapas que desees.

saludos
kriz
 me salvas el dia, grazie mille

Bardo1992
PJ de Relleno
PJ de Relleno

España
RPG Maker : Ace
Mensajes : 25
Monedas : 69
Reputación : 1

Volver arriba Ir abajo

Re: [Ace]Script día/noche + reloj

Mensaje por Lueez el Lun Feb 06, 2017 2:59 am

Muy bueno el script, pero como hago para que el relóg no aparezca en el intro y como puedo activarlo.

Lueez
PJ de Relleno
PJ de Relleno

Venezuela
RPG Maker : Ace
Mensajes : 8
Monedas : 10
Reputación : 0

Volver arriba Ir abajo

Re: [Ace]Script día/noche + reloj

Mensaje por fatyguero el Lun Feb 06, 2017 12:12 pm

Holas Bardo, pues es lo mismo que en la respuesta que te dio kriz. en los mapas que no quieras el reloj pues en la configuracion de estos, en el notetag le pones esto: Notime

Con esto el reloj se desactivara mientras estes en ese mapa, esto es para los mapas de la intro ^^

Saluuuuuuuuuuuuuudos
avatar
fatyguero
PJ Principal
PJ Principal

Masculino
Argentina
RPG Maker : Ace
Mensajes : 341
Monedas : 376
Reputación : 93
Edad : 33
Localización : en el culo del mundo... digo el centro xD

Volver arriba Ir abajo

Re: [Ace]Script día/noche + reloj

Mensaje por Lueez el Lun Feb 06, 2017 11:58 pm

Muchas gracias por la ayuda fatiguero por cierto no soy bardo creo que me confundes.


Última edición por Blacknight el Mar Feb 07, 2017 12:23 am, editado 1 vez (Razón : Muy corto)

Lueez
PJ de Relleno
PJ de Relleno

Venezuela
RPG Maker : Ace
Mensajes : 8
Monedas : 10
Reputación : 0

Volver arriba Ir abajo

Re: [Ace]Script día/noche + reloj

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Página 1 de 2. 1, 2  Siguiente

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

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