Here is the script if needed:
I haven't seen this script used around much, but I'm hoping someone can help me out. xP I know 'no' amount of scripting so all I get is what is commented on. I just wanna know if something is possible and if so, how to do it.
From Near's test bed, I gathered that you could check what time it is and use it as a condition via Call Script. I've been using this to give NPCs a daily routine but I've come across something I'm not quite sure about.
To check the time, I use
$ats.hours_is >= 1 and $ats.hours_is <= 24
Which I'm sure you figured out that the current time is between 1 am to midnight. I make it more specific to give NPCs a more believable hours awake/asleep.
$ats.hours_is >= 6 and $ats.hours_is <= 14
The problem is simple, I can't figure out how to check for the time past 14 but before 6.
$ats.hours_is >= 14 and $ats.hours_is <= 6
Apparently would not/does not work.
Alternately, I tried this:
But that doesn't seem to work either.
Any help on this issue is greatly appreciated. =)
Code:
#===================================================
# â– ATS - Advanced Time System
#===================================================
# Rewiten by Near Fantastica
# Date: 23.07.05
# Version: 1
#
# Written by Dubealex
# Date: 26.11.04
#
# Thanks to Satana_81 for the test tilesets
#===================================================
Â
#===================================================
# â–¼ CLASS Advanced_Time Begins
#===================================================
class Advanced_Time
Â
  attr_reader :define_start_sec
  attr_reader :weather_type
  attr_reader :weather_strength
Â
  def initialize
   @weather_pattern = []
   @cycle_period=[]
   @tint_period=[]
   @cycle_season=[]
   @name_period=[]
   @name_season=[]
   @name_month=[]
   @name_day=[]
   @start_clock=[]
   @start_date=[]
Â
=begin -----------------------------------------------------------------------------------------------------
   ■Advanced Time System Settings:
   ---------------------------------------------------------------------------------------------------------
   ▼ Day Night System Transitioning :
  Â
   The DNS is built in to the time system and therefore any map you want to have the DNS
   active on place a "*" in the name of the map.
   ---------------------------------------------------------------------------------------------------------
   ▼ Method of Season Transitioning :
   Â
   ◠ Titleset Transitioning = The tileset its replaced
     When Titleset Transitioning is set the script will pull the tileset and autotiles used
     set to the season ID. For exmaple "Plains 1" for tileset or "Water 1" for autotiles.
     The script will then automaticly change the 1 to the season ID which will load the
     new tileset. Maps that the developer wishes to have the tileset changing place
     a "~" in the name.
    Â
   ◠ Map Transitioning = The Map is replaced
     When Map Transitioning is set the script changes the whole map. It will transport the
     player to the same x,y on a map with the same name and the matching season ID.
     For example "Town [1]". The script will then automaticaly change the 1 to the
     season ID which will load the new map. Maps that the developer wishes to have
     the map changing place "[Season ID]"  in the map name where Season ID is the ID
     of the season of that map.
=end #----------------------------------------------------------------------------------------------------
Â
=begin -----------------------------------------------------------------------------------------------------
   ■Advanced Weather System Settings:
   ---------------------------------------------------------------------------------------------------------
   ▼ Weather Patterns :
  Â
   With the Advanced Weather System by Ccoa the Advanced Time System and keep track
   and change weather depending on season. The flag $aws must be set true if the weather
   script is to be used.
  Â
   1 - rain           5 - rain with thunder and lightning
   2 - storm         6 - falling leaves (autumn)
   3 - snow          7 - blowing leaves (autumn)
   4 - hail           8 - swirling leaves (autumn)
  Â
   The script randomly picks bettween having weather and no weather.
   Then the script randomly picks the weather if there is going to be weather.
   If the same weather is added more then once it will add to % chnage that weather
   will be picked. If the same weather is picked again its power is inceased. The
   range of power is 10 - 40. @weather_cycle is the % of weather for the game.
   0 = very little and 10 = a lot of weather. @weather_period is the amount
   of time in mintues till the next weather cycle range  = 1-59. @bgs_control is
   a flag that tells the script to inculde BGS with Dynamic Weather
=end #----------------------------------------------------------------------------------------------------
Â
   @aws = false
   @bgs_control = false
   @active_weather = false
   @weather_type = 0
   @weather_strength = 10
   @weather_cycle = 10
   @weather_period = 40
   @weather_pattern[1] = [3]
   @weather_pattern[2] = [1,1,2,3]
   @weather_pattern[3] = [1,1,2,5]
   @weather_pattern[4] = [1,2,4,5]
   @weather_pattern[5] = [1,1,2,6]
   @weather_pattern[5] = [1,1,3,7,8]
Â
=begin -----------------------------------------------------------------------------------------------------
   ■ATS Settings Configuration:
   ---------------------------------------------------------------------------------------------------------
   ▼ LENGTH AND SPEED OF TIME:
   Â
   Those variables defines the speed and length of every aspect of the ATS.
   @time_speed define how fast a seconds last. Setting it to 0 makes a real time system.
   Below 0 is a slower time than normal, and higher than 0 will accelerate the time.
   The length value are used to customize the length of every component of the ATS.
   Remember that since it is the SPEED setting that defines how fast the time goes,
   you don't have to say that a minute last 30 sec to make it faster. You can leave it
   as real-time, and just accelerate the length of a second with @time_speed !
=end #----------------------------------------------------------------------------------------------------
  Â
   @ats_time_speed = 40       # 0 is a Real Time System
   @minutes_length = 60        # Seconds
   @hour_length = 60           # Minutes
   @day_length = 24           # Hours
   @week_length = 7           # Days
   @month_length = 22         # Days
   @year_length = 12          # Months
   @decade_length = 10         # Years
   @century_length = 100        # Years
   @millenium_length = 1000     # Years
  Â
=begin ----------------------------------------------------------------------------------------------------
    ▼ GAME DEFAULT START-UP VALUES:
  Â
    Here you can define the default start-up values for each components. The data
    you enter here will be taken into consideration at each new game started. So if you want
    your game to begin at 2:12 pm, you can adjust all that in here. You can also set some
    basic default options you have, like trigger the AM/PM time format ON/OFF.
    You don't have to set the start-up season and period, since it will be set automatically
    with the date and the clock.
=end #-----------------------------------------------------------------------------------------------------
  Â
  @clock_mode = 1        # 1= 24 hours format / 2= AM/PM flag format
   @start_clock  = [4,50,10]   # [hour, min, sec] -> Write in 24 hours format.
   @start_date   = [3,29,198] # [month, day, year] Â
  Â
  Â
=begin -----------------------------------------------------------------------------------------------------
    ▼ ATS PERIODS CYCLE SETTINGS:
  Â
   An ATS Period works just as my old NDS Period.
   Periods defines a 24 hours loop - Example: Morning>Day>Evening>Night
   Here you can defines what is the cycle (in hours) for each periods.
   You can have as much period as you desire, I created the 4 main one, as shown
   in the example above. To add period, simply copy a line and replace the ID of the
   period by the next in line. DO NOT skip numbers.
   Syntax: @cycle_period[ID] --> Don't use ID0. (You can name them later).
   Example: @cycle_period[1] = (5..11) Will make the period ID#1  begins at 5am
   and ends at 11am. Use the 24 hours clock format to defines the period length.
=end #-----------------------------------------------------------------------------------------------------
  Â
   @cycle_period[1] = (5..11)  #Defined as (start_hour..end_hour)
   @cycle_period[2] = (12..18)
   @cycle_period[3] = (19..22)
   @cycle_period[4] = (23..24)
   @cycle_period[5] = (0..4)
Â
=begin ----------------------------------------------------------------------------------------------------
   ▼ ATS PERIODS COLOR TONE (TINT) SETTINGS:
  Â
   Here you can define what will be the color tone used for each periods.
   Use the same period ID defined above. Example: @tint_period[1] is the tint used
   with the @cycle_period[1] settings.
   Syntax: @tint_period[1] = [red, green, blue, gray, transition_time] Â
   To know the number you want for your tint, simply opens a RPG Maker Project, and
   create an event, choose "Tint Screen" and test the values you want, then enter them
   in here.
=end #-----------------------------------------------------------------------------------------------------
  Â
   @tint_period[1] = [0, -40, -60, 50, 600]
   @tint_period[2] = [0, 0, 0, 0, 600]
   @tint_period[3] = [-68, -85, -34, 120, 600]
   @tint_period[4] = [-150, -100, -50, 180, 600] Â
   @tint_period[5] = [-95, -78, -44, 180, 600]
  Â
=begin -----------------------------------------------------------------------------------------------------
   ▼ SEASONS CYCLE SETTINGS:
  Â
   Here you can define how much time last every season. This is an "optional" feature.
   You can just leave it alone if you aren't using it. This work as the periods, but seasons
   are defined using months instead of hours. To know how it works, read the periods comments.
   Example: @cycle_season[1] = (6..8) Will make the season ID#1  begins on the
   6th month of the year, and end on the last day of the 8th month of the year.
=end #-----------------------------------------------------------------------------------------------------
   Â
   @cycle_season[1] = (1..3) #Defined as (start_month..end_month)
   @cycle_season[2] = (4..6)
   @cycle_season[3] = (7..9)
   @cycle_season[4] = (10..12)
  Â
  Â
=begin ----------------------------------------------------------------------------------------------------
   ▼ ATS COMPONENT'S NAMES SETTINGS:
  Â
   Here you can choose the name tagged to every relevant component of the ATS.
   The words you defined here will be used in window and menus in your game.
   It make it easy to configure and customize that way. You can also refer to those variables
   names if you need to access any component's names. That way, if you make a mistake or
   want to change something in the middle of your development, you can easily do it.
   If you added/deleted periods/seasons, just adjust this section too. So if you created a season
   ID#6, you can copy a line from here and add the 6 where it belongs. (Between [ ])
   This is also were you define all your Months and Days name. It work the same way.
   @name_month[1] will refer to the first month of your year. By default, it's January.
=end #----------------------------------------------------------------------------------------------------
  Â
   @name_period[1] = "Morning"
   @name_period[2] = "Day"
   @name_period[3] = "Evening"
   @name_period[4] = "Night"
   @name_period[5] = "Late Night"
  Â
   @name_season[1] = "Growth"
   @name_season[2] = "Prosperity"
   @name_season[3] = "Hollow"
   @name_season[4] = "Dream"
  Â
   @name_month[1]  = "Reku"
   @name_month[2]  = "Rifa"
   @name_month[3]  = "Ray"
   @name_month[4]  = "Aoemi"
   @name_month[5]  = "Atoma"
   @name_month[6]  = "Ava"
   @name_month[7]  = "Dayla"
   @name_month[8]  = "Detoa"
   @name_month[9]  = "Dawn"
   @name_month[10]= "Sleema"
   @name_month[11]= "Sloa"
   @name_month[12]= "Sleep"
  Â
   @name_day[1] = "Awnday"
   @name_day[2] = "Belday"
   @name_day[3] = "Corday"
   @name_day[4] = "Dyaday"
   @name_day[5] = "Emiday"
   @name_day[6] = "Iliaday"
   @name_day[7] = "Ilioday"   Â
  Â
#--- â– END OF SETTINGS (No Need To Edit Further)-------------------------------------------
     Â
   @speed_restore = 0
   if @ats_time_speed >= Graphics.frame_rate
     @ats_time_speed=Graphics.frame_rate-1
    end
   @year_length+=1
   @month_length+=1
   if @start_clock[0] >= 12 : @am=false else @am=true end
   define_start_sec_in_hours= @start_clock[0] * @minutes_length * @hour_length
   define_start_sec_in_min= @start_clock[1] * @minutes_length
   @define_start_sec= define_start_sec_in_hours+define_start_sec_in_min+@start_clock[2]
  end
Â
# â– WRITE ATTRIBUTE (Modify ATS Data) (No Need To Edit)---------------------------------- Â
 def sec(sec=0)
  @define_start_sec+=sec
 end
Â
#--------------------------------------------------------------------------------------------------------
 def min(min=0)
  @define_start_sec+=min*@minutes_length
 end
Â
#--------------------------------------------------------------------------------------------------------
 def hours(hours=0)
  @define_start_sec+=hours*@minutes_length*@hour_length
 end Â
Â
#-------------------------------------------------------------------------------------------------------- Â
 def days(days=0)
  if days<0 : @rewind=true end
  @define_start_sec+=days*@minutes_length*@hour_length*@day_length
 end Â
Â
#-------------------------------------------------------------------------------------------------------- Â
 def months(months=0)
   if months<0 : @rewind=true end
  @define_start_sec+=months*@minutes_length*@hour_length*@day_length*@month_length
 end
Â
#-------------------------------------------------------------------------------------------------------- Â Â
 def speed(speed=0)
  @speed_restore = @ats_time_speed
  @ats_time_speed = speed
 end
Â
#-------------------------------------------------------------------------------------------------------- Â Â
 def speed_restore
  @ats_time_speed = @speed_restore
 end
 Â
# â– READ ATTRIBUTE (Fetch ATS Data) (No Need To Edit)------------------------------------- Â
 def full_date
  day_name=@name_day[week_day_is]
  month_name=@name_month[months_is]
  month_day=month_day_is
  year= total_years_is
  full_date= day_name + ", " + month_name + " " + month_day.to_s  + " " +  year.to_s
  return full_date
 end
Â
#-------------------------------------------------------------------------------------------------------- Â Â
 def speed_is
  return @ats_time_speed
 end
Â
#-------------------------------------------------------------------------------------------------------- Â Â
  def total_sec_is
   ats_total_sec = (Graphics.frame_count / (Graphics.frame_rate-@ats_time_speed))+@define_start_sec
   return ats_total_sec
  end
Â
#-------------------------------------------------------------------------------------------------------- Â Â
  def total_years_is
   total_years=(total_months_is / @year_length) + @start_date[2]
   return total_years
  end
Â
#-------------------------------------------------------------------------------------------------------- Â Â
  def total_months_is
   total_months=(total_days_is / @month_length) + @start_date[0]
   return total_months
  end
Â
#-------------------------------------------------------------------------------------------------------- Â Â Â
  def total_decades_is
   total_decades=total_years_is / @decade_length
   return total_decades
  end
Â
#-------------------------------------------------------------------------------------------------------- Â Â Â
  def total_centuries_is
   total_centuries=total_years_is / @century_length
   return total_centuries
  end
Â
#-------------------------------------------------------------------------------------------------------- Â Â Â
  def total_millenium_is
   total_millenium=total_years_is/@millenium_length
   return total_millenium
  end
  Â
#-------------------------------------------------------------------------------------------------------- Â Â Â
  def total_weeks_is
   total_weeks= total_days_is / @week_length
   return total_weeks
  end
   Â
#-------------------------------------------------------------------------------------------------------- Â Â Â Â
  def total_hours_is
   total_hours= total_sec_is / @minutes_length / @hour_length
   return total_hours
  end
 Â
#-------------------------------------------------------------------------------------------------------- Â Â Â Â
  def total_min_is
   total_min = total_sec_is / @minutes_length
   return total_min
  end Â
 Â
#-------------------------------------------------------------------------------------------------------- Â Â
  def date
   month=months_is
   month_day=month_day_is
   year=total_years_is
   date=sprintf("%02d/%02d/%04d", month, month_day, year)
   return date
  end
Â
#-------------------------------------------------------------------------------------------------------- Â Â
  def clock
  Â
   hour=hours_is
   min=min_is
   sec=secs_is
  Â
   if @clock_mode == 1
    clock=sprintf("%02d:%02d:%02d", hour, min, sec)
    return clock
   else
    if @am==true : am_pm="AM" else am_pm="PM" end
    clock=sprintf("%02d:%02d:%02d %s", hour, min, sec, am_pm)
    return clock
  end
  end
 Â
#-------------------------------------------------------------------------------------------------------- Â Â Â
  def hours_is
   hour=real_hour=real_hours
   if @clock_mode == 2
    if @am==false and real_hour !=12 : hour-=(@day_length/2) end
    hour %= (@day_length/2)+1
    if real_hour < (@day_length/2) : @am=true else @am=false end
     if hour==0 : hour=1 end
     if real_hour==0 : hour=12 end
     end Â
   return hour
  end
 Â
#-------------------------------------------------------------------------------------------------------- Â Â Â
  def real_hours
   real_hour = total_sec_is / @minutes_length / @hour_length % @day_length
   return real_hour
  end
 Â
#-------------------------------------------------------------------------------------------------------- Â Â
  def secs_is
   sec = total_sec_is % @minutes_length
   return sec
  end
Â
#-------------------------------------------------------------------------------------------------------- Â Â
  def min_is
   mins = total_sec_is / @minutes_length % @hour_length
   return mins
  end
Â
#-------------------------------------------------------------------------------------------------------- Â Â
  def total_days_is
   total_days = (total_sec_is / @minutes_length / @hour_length / @day_length) + @start_date[1]
   return total_days
  end
 Â
#-------------------------------------------------------------------------------------------------------- Â Â
  def week_day_is
   week_day= total_days_is % @week_length
   if week_day==0 : week_day=@week_length end
   return week_day
  end
Â
#-------------------------------------------------------------------------------------------------------- Â Â
  def week_name
   return @name_day[week_day_is]
  end
 Â
#-------------------------------------------------------------------------------------------------------- Â Â
  def month_name
   return @name_month[months_is]
  end
Â
#-------------------------------------------------------------------------------------------------------- Â Â
  def months_is
    month=total_months_is % @year_length
    if @rewind==true
    if month==0 : months(-1) end
     @rewind=false Â
   else
    if month==0 : months(1) end
   end  Â
   return month
  end
Â
#-------------------------------------------------------------------------------------------------------- Â Â
  def month_day_is
   month_day=total_days_is % @month_length
   if @rewind==true
    if month_day==0 : days(-1) end
     @rewind=false Â
   else
    if month_day==0 : days(1) end
   end  Â
   return month_day
  end
   Â
#-------------------------------------------------------------------------------------------------------- Â Â
  def period_id
   for i in 1...@cycle_period.size
    if @cycle_period[i] === $ats.real_hours
    return i
    break
    end Â
   end Â
  end
 Â
#-------------------------------------------------------------------------------------------------------- Â Â
  def period
   for i in 1...@cycle_period.size
    if @cycle_period[i] === real_hours
    if i==0 : i=1 end
    return @name_period[i]
    break
    end Â
   end Â
  end
Â
#-------------------------------------------------------------------------------------------------------- Â
def period_tint
   for i in 1...@cycle_period.size
    if @cycle_period[i] === real_hours
    return [-50, -50, -50, 50, 100] if i == 2 and $game_screen.weather_type != 0
    return @tint_period[i]
    break
    end Â
   end Â
  end
Â
#-------------------------------------------------------------------------------------------------------- Â Â
  def season
   for i in 1...@cycle_season.size
    if @cycle_season[i] === months_is
    return @name_season[i]
    break
    end Â
   end Â
  end
Â
#-------------------------------------------------------------------------------------------------------- Â Â
  def season_id
   for i in 1...@cycle_season.size
    if @cycle_season[i] === months_is
    if i==0 : i=1 end
    return i
    break
    end Â
   end Â
  end
Â
#-------------------------------------------------------------------------------------------------------- Â Â
  def start_seconds
   return @define_start_sec
  end
 Â
#-------------------------------------------------------------------------------------------------------- Â Â
 def weather_active(flag)
  @aws = flag
 end
Â
#-------------------------------------------------------------------------------------------------------- Â Â
 def weather_bgs(flag)
  @bgs_control = flag
 end
Â
#-------------------------------------------------------------------------------------------------------- Â Â
 def stop_weather
  $game_screen.weather(0, 0, 0)
  set_weather_bgs(0)
 end
Â
#-------------------------------------------------------------------------------------------------------- Â Â
 def weather_is
  case $game_screen.weather_type
  when 0
   return "Clear"
  when 1
   return "Rain"
  when 2
   return "Storm"
  when 3
   return "Snow"
  when 4..5
   return "Gale"
  when 6..8
   return "Windy"
  end
 end
Â
#-------------------------------------------------------------------------------------------------------- Â Â
 def set_weather_bgs(type)
  return if @bgs_control == false
  bgs = BGS.new
  bgs.volume = 80
  bgs.pitch = 100
  case type
  when 0
   $game_system.bgs_fade(10)
  when 1
   bgs.name = "005-Rain01"
   $game_system.bgs_play(bgs)
  when 2
   bgs.name = "006-Rain02"
   $game_system.bgs_play(bgs)
  when 3
   $game_system.bgs_fade(10)
  when 4..5
   bgs.name = "007-Rain03"
   $game_system.bgs_play(bgs)
  when 6
   bgs.name = "001-Wind01"
   $game_system.bgs_play(bgs)
  when 7
   bgs.name = "002-Wind02"
   $game_system.bgs_play(bgs)
  when 8
   bgs.name = "003-Wind03"
   $game_system.bgs_play(bgs)
  end
 end
Â
#-------------------------------------------------------------------------------------------------------- Â Â
 def weather
  return if @aws == false
  return if $game_map.weather_active == false
  if min_is % @weather_period == 0 and @active_weather == false
   @active_weather = true
   if rand(10).between?(0, @weather_cycle)
    pattern = @weather_pattern[season_id]
    size = pattern.size - 1
    type = pattern[rand(size).to_i]
    if @weather_type == type
     if @weather_strength.between?(0, 40)
      @weather_strength += 10
      else
      @weather_strength = 40
     end
    else
     @weather_strength = 10
    end
    @weather_type = type
    $game_screen.weather(@weather_type, @weather_strength, 0)
    set_weather_bgs(@weather_type)
   else
    @active_weather = true
    @weather_strength = 0
    $game_screen.weather(0, 0, 0)
    set_weather_bgs(0)
   end
  else
   @active_weather = false if min_is % @weather_period != 0
  end
 end
 Â
end
#===================================================
# â–² CLASS Advanced_Time Ends
#===================================================
Â
Â
#===================================================
# â–¼ CLASS Scene_Map Additional Code Begins
#===================================================
class Scene_Map
Â
alias ats_scene_map_main main
alias ats_scene_map_update update
 Â
  def main
   if $game_map.dns_active
    tone = $ats.period_tint
    $game_screen.start_tone_change(Tone.new(tone[0],tone[1],tone[2],tone[3]),0)
   end
   #@alex_ats_window = ATS_TimeTest_Window.new
   ats_scene_map_main
   #@alex_ats_window.dispose
  end
 Â
  def update
   ats_scene_map_update
   #@alex_ats_window.update
   $ats.weather
   if $game_map.dns_active
    tone = $ats.period_tint
    $game_screen.start_tone_change(Tone.new(tone[0],tone[1],tone[2],tone[3]),tone[4])
   end
  end Â
 Â
end
#===================================================
# â–² CLASS Scene_Map Additional Code Ends
#===================================================
Â
Â
#===================================================
# â–¼ CLASS ATS_TimeTest_Window Begins
#===================================================
class ATS_TimeTest_Window < Window_Base
Â
 def initialize
  super(0,0,250,400)
  self.contents = Bitmap.new(width - 32, height - 32)
  self.contents.font.name = "Tekton Pro Cond"
  self.contents.font.size =14
  self.opacity = 100
  update Â
 end Â
Â
 def refresh
 #def update #testing and debugging window
  return if Graphics.frame_count % 10 != 0
  self.contents.clear
  self.contents.font.color = text_color(0)
  self.contents.draw_text(0, 0, 400, 32, "Current Full Clock: " +$ats.clock)
  self.contents.draw_text(0, 16, 400, 32, "Small Date: " +$ats.date)
  self.contents.draw_text(0, 32, 400, 32, "Full Date: " +$ats.full_date)
  self.contents.draw_text(0, 60, 400, 32, "Week ID#: " + $ats.week_day_is.to_s)
Â
  self.contents.draw_text(0, 80, 400, 32, "Period: " + $ats.period)
  self.contents.draw_text(0, 100, 400, 32, "Season: " + $ats.season)
  self.contents.draw_text(0, 120, 400, 32, "Month ID#: " + $ats.months_is.to_s)
  self.contents.draw_text(0, 140, 400, 32, "Map Name#: " + $game_map.map_name)
  self.contents.draw_text(0, 160, 400, 32, "Weather: " + $ats.weather_is)
 end
end
#===================================================
# â–² CLASS ATS_TimeTest_Window Ends
#===================================================
Â
#===================================================
# â–¼ CLASS Scene_Title Additional Code Begins
#===================================================
class Scene_Title
 $ats=Advanced_Time.new
end Â
#===================================================
# â–² CLASS Scene_Title Additional Code Ends
#===================================================
Â
Â
#===================================================
# â–¼ CLASS Game_Map Additional Code Begins
#===================================================
class Game_Map
Â
 attr_accessor :tileset_refresh
 attr_accessor :tileset_transition
 attr_accessor :map_transition
 attr_accessor :dns_active
 attr_accessor :weather_active
 attr_accessor :lights_refresh
 attr_accessor :shadows_refresh
 attr_accessor :shadows_redraw
Â
 alias ats_game_map_update update
 alias ats_game_map_setup setup
 alias ats_game_map_initialize initialize
Â
 def initialize
  ats_game_map_initialize
  @tileset_refresh = false
  @season = $ats.season_id
  @tileset_transition = false
  @map_transition = false
  @dns_active = false
  @weather_active = false
  @lights_refresh = false
  @shadows_refresh = false
  @shadows_redraw = false
  @map_transition_id = 0
 end
Â
 def setup(map_id)
  ats_game_map_setup(map_id)
  # Setup
  @dns_active = false
  @weather_active = false
  @tileset_transition = false
  @map_transition = false
 Â
  map_infos = load_data("Data/MapInfos.rxdata")
  # DNS
  if map_infos[map_id].name.include?("*")
   map_infos[map_id].name.delete!("*")
   @dns_active = true
   tone = $ats.period_tint
   $game_screen.start_tone_change(Tone.new(tone[0],tone[1],tone[2],tone[3]),0)
  else
   $game_screen.start_tone_change(Tone.new(0,0,0,0),0)
  end
  # Dynamic Weather
  if map_infos[map_id].name.include?("^")
   map_infos[map_id].name.delete!("^")
   @weather_active = true
   $game_screen.weather($ats.weather_type, $ats.weather_strength, 0)
   $ats.set_weather_bgs($ats.weather_type)
  else
   $game_screen.weather(0, 0, 0)
   $ats.set_weather_bgs(0)
  end
  # Tileset Transition
  if map_infos[map_id].name.include?("&")
   map_infos[map_id].name.delete!("&")
   @tileset_transition = true
  end
  # Map Transition
  if map_infos[map_id].name.include?("[") and map_infos[map_id].name.include?("]")
   index = map_infos[map_id].name.index("[")
   temp = map_infos[map_id].name[index+1].chr
   map_infos[map_id].name.delete!(temp)
   map_infos[map_id].name.delete!("[")
   map_infos[map_id].name.delete!("]")
   @map_transition = true
  end
  @map_name = map_infos[map_id].name
  # Tileset Transition
  if @tileset_transition
   name = $game_map.tileset_name.split
   @tileset_name = name[0] + " " + $ats.season_id.to_s
   for i in 0..6
    autotile_name = @autotile_names[i].split
    next if autotile_name[0] == nil
    if autotile_name[1] == nil
     @autotile_names[i] = autotile_name[0]
    else
     @autotile_names[i] = autotile_name[0] + " " + $ats.season_id.to_s
    end
   end
  end
 end
Â
 def map_name
  return @map_name
 end
Â
 def update
  # Map Transition
  if @map_transition
   transition_id = "["+$ats.season_id.to_s+"]"
   map_infos = load_data("Data/MapInfos.rxdata")
   for key in map_infos.keys
    if map_infos[key].name.include?(@map_name) and map_infos[key].name.include?(transition_id)
     next if key == @map_id
     setup(key)
     @tileset_refresh = true
     return
    end
   end
  end
  # Tileset Transition
  if @tileset_transition
   if @season != $ats.season_id
    @tileset_refresh = true
    @season = $ats.season_id
    tileset_name = $game_map.tileset_name.split
    @tileset_name = tileset_name[0] + " " + $ats.season_id.to_s
    for i in 0..6
     autotile_name = $game_map.autotile_names[i].split
     next if autotile_name[0] == nil
     if autotile_name[1] == nil
      @autotile_names[i] = autotile_name[0]
     else
      @autotile_names[i] = autotile_name[0] + " " + $ats.season_id.to_s
     end
    end
   end
  end
  $game_map.need_refresh = true
  ats_game_map_update
 end
Â
end
#===================================================
# â–² CLASS Game_Map Additional Code Ends
#===================================================
Â
Â
#===================================================
# â–¼ CLASS Spriteset_Map Additional Code Begins
#===================================================
class Spriteset_Map
Â
 alias ats_spriteset_map_update update
Â
 def update
  if $game_map.tileset_refresh
   $game_map.tileset_refresh = false
   Graphics.freeze
   dispose
   initialize
   Graphics.transition(20)
  end
  ats_spriteset_map_update
 end
Â
end
#===================================================
# â–² CLASS Spriteset_Map Additional Code Ends
#===================================================
Â
Â
#===================================================
# â–¼ CLASS BGS Additional Code Begins
#===================================================
Â
class BGS
 #--------------------------------------------------------------------------
 attr_accessor :name
 attr_accessor :volume
 attr_accessor :pitch
 #--------------------------------------------------------------------------
 def initialize
  @name = ""
  @volume = 80
  @pitch = 100
 end
end
#===================================================
# â–² CLASS BGS Additional Code Ends
#===================================================
I haven't seen this script used around much, but I'm hoping someone can help me out. xP I know 'no' amount of scripting so all I get is what is commented on. I just wanna know if something is possible and if so, how to do it.
From Near's test bed, I gathered that you could check what time it is and use it as a condition via Call Script. I've been using this to give NPCs a daily routine but I've come across something I'm not quite sure about.
To check the time, I use
$ats.hours_is >= 1 and $ats.hours_is <= 24
Which I'm sure you figured out that the current time is between 1 am to midnight. I make it more specific to give NPCs a more believable hours awake/asleep.
$ats.hours_is >= 6 and $ats.hours_is <= 14
The problem is simple, I can't figure out how to check for the time past 14 but before 6.
$ats.hours_is >= 14 and $ats.hours_is <= 6
Apparently would not/does not work.
Alternately, I tried this:
Any help on this issue is greatly appreciated. =)