Joined
Oct 9, 2018
Messages
333
Reaction score
224
First Language
Greek
Primarily Uses
RMVXA
Hello!
I use Vlue's Advanced Game Time + Night/Day v1.6e Script
so when i change the month to start from 1 the game starts from 2 for some reason...
and when i choose 2 it goes on 3 and goes on.. (i think and the day too, not only the month..)

This is the script i am using
Ruby:
#Advanced Game Time + Night/Day v1.6e
#----------#
#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
#           GTMERI   #Inputs AM/PM depending
#           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,11,1,1,1]
#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 = false
#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 = false
#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. Custom clock, see below
CLOCK_FORMAT = 1
MENU_CLOCK_FORMAT = 2
#Set to true for a Twenty four hour clock
TF_HOUR_CLOCK = false
#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 = ""
#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 = :ALT
#Toggle Options - :off, :hour12, :hour24
CLOCK_TOGGLE_OPTIONS = [:off, :hour24]
#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 = false
#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 = ["hourtog","blinky","min"," ","meri"]
#Available commands for CUSTOM_CLOCK:
# "sec" - seconds         "min" - minutes
# "hour" - hour (24)      "hour12" - hour (12)
# "hourtog" - hour toggle (12, 24)
# "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 = [11]
 
#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 = 60
#Variable ID containing the current speed of time!
TIMELAPSE_VARIABLE = 12
#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 = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]
#Day name abbreviations
DAYNAMESABBR = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]
#Number of days in each month (Also represents number of months in a year)
MONTHS = [31,28,31,30,31,30,31,31,30,31,30,31]
#Names of the months
MONTHNAMES = ["January","February","March","April","May","June",
              "July","August","September","October","November","December"]
#Abrreviated names of the months
MONTHNAMESABBR = ["Jan","Feb","Mar","Apr","May","Jun",
                  "Jul","Aug","Sep","Oct","Nov","Dec"]
#The default letters to be posted before the year in dates
DEFAULT_YEAR_POST = ""
#NOT YET IMPLEMENTED *IGNORE*
USE_PERIODS = false
               
#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,70,155),
         Color.new(30,0,40,155),
         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(0,0,10,55),
         Color.new(0,0,10,55),
         Color.new(130,40,30,105),
         Color.new(80,20,40,125),
         Color.new(10,0,50,135),
         Color.new(20,0,60,135)]
 
#NOT YET IMPLEMENTED *IGNORE*
PERIODS = [["Night",0,5],
           ["Morning",6,12],
           ["Afternoon",13,19],
           ["Evening",20,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.meri?
    return "AM" if $game_time.hour < 12
    return "PM"
  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.visible = false if @pause_tint
    $game_time_tint.force_update if !@pause_tint
  end
  def self.tint_paused?
    @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
    attr_accessor   :toggle
    attr_accessor   :hour24
 
    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
      @toggle = 0
    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 get_next_toggle
      @toggle = 0 unless @toggle
      @toggle += 1
      @toggle = 0 if @toggle == CLOCK_TOGGLE_OPTIONS.size
      return CLOCK_TOGGLE_OPTIONS[@toggle]
    end
    def set_hour24(value)
      @hour24 = value
    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
      @old_tint = [0,0,0,0]
      update
    end
    def update
      return true if GameTime.tint_paused?
      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 == 3 and SceneManager.scene.is_a?(Scene_Map)
      return 80 if !CUSTOM_CLOCK2.nil? and MENU_CLOCK_FORMAT == 3 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
      bon = TF_HOUR_CLOCK ? 2 : 0
      if $game_time.hour24
        bon = $game_time.hour24 ? 2 : 0
      end
      string = normal_clock if v + bon == 1
      string = dated_clock if v + bon == 2
      string = military_clock if v + bon == 3
      string = dated_military_clock if v + bon == 4
      string = custom(CUSTOM_CLOCK) if v == 3
      string2 = custom(CUSTOM_CLOCK2) if !CUSTOM_CLOCK2.nil? and v == 3
      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 == 3
    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)
      array = array.clone
      if array.include?("hourtog")
        bon = TF_HOUR_CLOCK
        bon = $game_time.hour24 if $game_time.hour24
        index = array.index("hourtog")
        array[index] = bon ? "hour" : "hour12"
      end
      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!(/GTMERI/) { GameTime.meri? }
    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
      @clockbackground.visible = @gametimeclock.visible
    end
  end
  def post_transfer
    $game_time_tint.force_update
    game_time_post_transfer
  end
  def update
    game_time_map_update
    return unless USECLOCK
    @gametimeclock.update unless SceneManager.scene != self
    if Input.trigger?(CLOCK_TOGGLE) and @gametimeclock.nil? == false
      option = $game_time.get_next_toggle
      if option == :off
        @gametimeclock.visible = false
      else
        @gametimeclock.visible = true
      end
      if option == :hour12
        $game_time.set_hour24(false)
      elsif option == :hour24
        $game_time.set_hour24(true)
      end
      $gametimeclockvisible = @gametimeclock.visible
      @clockbackground.visible = @gametimeclock.visible if @clockbackground
    end
  end
  def clock_visible?(set)
    @gametimeclock.visible = set
    @clockbackground.visible = @gametimeclock.visible if @clockbackground
    $gametimeclockvisible = set
  end
  def update_encounter
    if $game_player.encounter
      $game_time_tint.use_default if BATTLE_TINT
      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
 
Last edited:

EntangledPear

Previously No Patience (now patient enough)
Veteran
Joined
Sep 12, 2018
Messages
122
Reaction score
54
First Language
Slovak
Primarily Uses
RMVXA
If you set this part:

#What time a new game starts at: [sec, min, hour, day, month, year]
START_TIME = [0,0,11,1,1,1]

to this:
#What time a new game starts at: [sec, min, hour, day, month, year]
START_TIME = [0,0,11,1,0,1]

what does it do? Maybe it just marks the first month (January) as 0, not 1? (similarly also for day and year, maybe?)
 
  • Like
Reactions: Bex
Joined
Oct 9, 2018
Messages
333
Reaction score
224
First Language
Greek
Primarily Uses
RMVXA
as a temporary solution i do this as you said, but if someone can tell me how to fix this by starting from 1 it would be nice because i use many contitional braches and it gets confusing... because i want to use 1 and i put 2 to work.. or i need 5 and i have to put 6... Very confusinggg :(
 

EntangledPear

Previously No Patience (now patient enough)
Veteran
Joined
Sep 12, 2018
Messages
122
Reaction score
54
First Language
Slovak
Primarily Uses
RMVXA
I am not good at scripting, so I can't help you with that, but personally I would assume that it is done like this (i.e. not really intuitively) for a reason and maybe it's not easy to make such a change to the script (so I'd just suck it up and remember I have to use different numbers :LZSwink:). But I might be wrong and someone will give you a good answer.
 

Roninator2

Gamer
Veteran
Joined
May 22, 2016
Messages
4,385
Reaction score
1,214
First Language
English
Primarily Uses
RMVXA
as a temporary solution i do this as you said, but if someone can tell me how to fix this by starting from 1 it would be nice because i use many contitional braches and it gets confusing... because i want to use 1 and i put 2 to work.. or i need 5 and i have to put 6... Very confusinggg :(
You have to remember like @RianQuenlin said, it is saving the information in an array.
Array's start at 0 for a number, just like the variables and the first index of an array is 0, but that doesn't matter for this issue.
Also take into consideration the script works off military time (24 hour clock).
which starts at 0 and goes to 24 (but 24 is actually 0, it's only used to represent the exact moment of midnight) the rest of the time is a representation of the current time.
0000-0059 is 12:00am - 12:59am
0100-0159 is 1:00am - 1:59am
0200-0259 is 2:00am - 2:59am
etc.
so if you enter 2 for the hour it is at the start of the 'third' hour of the day.

Same goes for the Month. 12 months starting at 0 and goes to 12 (0), so you get a range of 0-11.
0 - January
1 - February
2 - March
etc.

And it's done in the code like so month = month? - 1
 
Joined
Oct 9, 2018
Messages
333
Reaction score
224
First Language
Greek
Primarily Uses
RMVXA
Okap then. Thanks everyone! :)
 

Latest Threads

Latest Profile Posts

I've been trying to get certain devs' and artists' permission to use their characters in a certain plugin demo I've been working on. I got permission for 3 characters thus far... I'm hoping I can get at least 5 by the end of next week.
By far, the weirdest flex I've ever seen on the internet is "I don't have the attention span to read what you wrote, but I REALLY want the world to know I don't have that attention span!".
Why... the FACK... do I work in customer service?!?!
Excuse me while I go question allllll my life choices.
DamageEvil_6.png added!
index.php

Forum statistics

Threads
125,778
Messages
1,173,427
Members
164,934
Latest member
_CnZ_
Top