Notice: fwrite(): Write of 461 bytes failed with errno=28 No space left on device in /home/rmrk/domains/rmrk.net/public_html/Sources/Cache/APIs/FileBased.php on line 96

Notice: fwrite(): Write of 59 bytes failed with errno=28 No space left on device in /home/rmrk/domains/rmrk.net/public_html/Sources/Cache/APIs/FileBased.php on line 96

Notice: fwrite(): Write of 1714 bytes failed with errno=28 No space left on device in /home/rmrk/domains/rmrk.net/public_html/Sources/Cache/APIs/FileBased.php on line 96

Notice: fwrite(): Write of 44 bytes failed with errno=28 No space left on device in /home/rmrk/domains/rmrk.net/public_html/Sources/Cache/APIs/FileBased.php on line 96

Notice: fwrite(): Write of 8192 bytes failed with errno=28 No space left on device in /home/rmrk/domains/rmrk.net/public_html/Sources/Cache/APIs/FileBased.php on line 96
Print Page - Jet's Time System

The RPG Maker Resource Kit

RMRK RPG Maker Creation => VX => VX Scripts Database => Topic started by: jet10985 on April 14, 2010, 04:04:43 AM

Title: Jet's Time System
Post by: jet10985 on April 14, 2010, 04:04:43 AM
Jet's Time System
By Jet (Obviously)


Introduction

[spoiler]This is my time system. It has a whole lot of features and customization options. I have obtained opinions from users like you to know what they want in a time system. This has all the features of the time system you may already use, PLUS MORE! Enjoy. =)[/spoiler]

Features

[spoiler]
This is the Jet Engine, an add-on for all my scripts to check if they are up-to date.

#===============================================================================
# The Jet Engine
# By Jet10985 (Jet)
# Help by: Yanfly, OriginalWij, BigEd781
#===============================================================================
# This is my handy module i use to hold my regularly used methods. It also
# Stores which of my scripts people are using. I release this to help people
# write patches for my snippets if needed or they just want my methods.
#===============================================================================
# The Jet Engine now checks all of my scripts that you are using and tells you
# if any of them are outdated.
#===============================================================================
=begin
New Methods:

active - adds a script to the hash of my scripts being used by the user
check_note_tags - checks the obj's notebox for a RegExp word. Returns true or false.
show_char - Shows a walking character sprite.
script_active? - Checks if 1 of my scripts is active in the editor.
check_tag_number - Checks the obj's notebox for a RegExp word and number. Returns the number.

=end


module JetEngine
 
 $engine_scripts = {}
 
 def self.active(name, version = true)
   $engine_scripts[name] = version unless $engine_scripts.include?(name)
 end

 def self.check_note_tags(obj, tag)
   obj.note.each_line { |notetag|
   case notetag
   when tag
     return true
   end
   }
   return false
 end
 
 def self.show_char(x, y, actor_id)
   @char = Game_Character.new
   @char.set_graphic(actor_id.character_name, actor_id.character_index)
   @char.step_anime = true
   @char.moveto(x, y)
   @sprite = Sprite_Character.new(nil, @char)
 end

 def self.script_active?(name)
   if $engine_scripts.include?(name)
     return true
   else
     return false
   end
 end
 
 def self.check_tag_number(obj, tag)
   obj.note.split(/[\r\n]+/).each { |notetag|
   case notetag
   when tag
     @result = $1.to_i
   end }
   return @result
 end
 
 def self.check_current_version
   $outdated_scripts = []
   for i in 0...$engine_scripts.keys.size - 1
     case $engine_scripts.keys[i]
     when "Run/Guard Hotkey"
       if $engine_scripts.values[i] != "v1"
         $outdated_scripts.push("Run/Guard Hotkey")
       end
     when "Run/Guard Hotkey ATB"
       if $engine_scripts.values[i] != "v1"
         $outdated_scripts.push("Run/Guard Hotkey ATB")
       end
     when "Disable Battle Commands"
       if $engine_scripts.values[i] != "v1"
         $outdated_scripts.push("Disable Battle Commands")
       end
     when "Break States"
       if $engine_scripts.values[i] != "v1.1"
         $outdated_scripts.push("Break States")
       end
     when "Immortal States"
       if $engine_scripts.values[i] != "v1"
         $outdated_scripts.push("Immortal States")
       end
     when "Percentage of Damage"
       if $engine_scripts.values[i] != "v1.1"
         $outdated_scripts.push("Percentage of Damage")
       end
     when "Blue Magic"
       if $engine_scripts.values[i] != "v1"
         $outdated_scripts.push("Blue Magic")
       end
     when "Remove Dead Actors"
       if $engine_scripts.values[i] != "v1.2"
         $outdated_scripts.push("Remove Dead Actors")
       end
     when "Change Actor Options"
       if $engine_scripts.values[i] != "v2"
         $outdated_scripts.push("Change Actor Options")
       end
     when "Set Actor Max Level"
       if $engine_scripts.values[i] != "v1.1"
         $outdated_scripts.push("Set Actor Max Level")
       end
     when "Singular EXP"
       if $engine_scripts.values[i] != "v1"
         $outdated_scripts.push("Singular EXP")
       end
     when "No Actor EXP"
       if $engine_scripts.values[i] != "v1.1"
         $outdated_scripts.push("No Actor EXP")
       end
     when "If Party Has Equipped"
       if $engine_scripts.values[i] != "v1"
         $outdated_scripts.push("If Party Has Equipped")
       end
     when "If Party Has Skill"
       if $engine_scripts.values[i] != "v1"
         $outdated_scripts.push("If Party Has Skill")
       end
     when "Level Up Items"
       if $engine_scripts.values[i] != "v1"
         $outdated_scripts.push("Level Up Items")
       end
     when "Learn A Skill Items"
       if $engine_scripts.values[i] != "v1"
         $outdated_scripts.push("Learn A Skill Items")
       end
     when "Parameter Icons"
       if $engine_scripts.values[i] != "v1"
         $outdated_scripts.push("Parameter Icons")
       end
     when "Windowskin Snippet"
       if $engine_scripts.values[i] != "v1"
         $outdated_scripts.push("Windowskin Snippet")
       end
     when "Hide Text Box"
       if $engine_scripts.values[i] != "v1"
         $outdated_scripts.push("Hide Text Box")
       end
     when "Change Windowskin"
       if $engine_scripts.values[i] != "v1"
         $outdated_scripts.push("Change Windowskin")
       end
     when "Diagonal Map Scroll"
       if $engine_scripts.values[i] != "v1.1"
         $outdated_scripts.push("Diagonal Map Scroll")
       end
     when "Item SE"
       if $engine_scripts.values[i] != "v1"
         $outdated_scripts.push("Item SE")
       end
     when "Screensaver"
       if $engine_scripts.values[i] != "v1.1"
         $outdated_scripts.push("Screensaver")
       end
     when "Pause Menu"
       if $engine_scripts.values[i] != "v1"
         $outdated_scripts.push("Pause Menu")
       end
     when "Change GameOver"
       if $engine_scripts.values[i] != "v1.1"
         $outdated_scripts.push("Change GameOver")
       end
     when "Aliased Load Menu Option"
       if $engine_scripts.values[i] != "v2"
         $outdated_scripts.push("Aliased Load Menu Option")
       end
     when "Success Bar"
       if $engine_scripts.values[i] != "v1"
         $outdated_scripts.push("Success Bar")
       end
     when "Speed Save"
       if $engine_scripts.values[i] != "v1"
         $outdated_scripts.push("Speed Save")
       end
     when "Extra Window"
       if $engine_scripts.values[i] != "v1"
         $outdated_scripts.push("Extra Window")
       end
     when "Records Window"
       if $engine_scripts.values[i] != "v1.1"
         $outdated_scripts.push("Records Window")
       end
     when "Level Up Effects"
       if $engine_scripts.values[i] != "v1"
         $outdated_scripts.push("Level Up Effects")
       end
     when "Alignment System"
       if $engine_scripts.values[i] != "v1.5"
         $outdated_scripts.push("Alignment System")
       end
     when "DayNight System"
       if $engine_scripts.values[i] != "v1.2.1"
         $outdated_scripts.push("DayNight System")
       end
     when "Cheat System"
       if $engine_scripts.values[i] != "v1.1"
         $outdated_scripts.push("Cheat System")
       end
     when "Stamina System"
       if $engine_scripts.values[i] != "v1"
         $outdated_scripts.push("Stamina System")
       end
     end
   end
 end
end

class Scene_Map
 
 alias jet2011_start start
 def start
   jet2011_start
   if $BTEST
     JetEngine.check_current_version
     p $outdated_scripts unless $outdated_scripts = []
   end
 end
end
[/spoiler]

[spoiler]#===============================================================================
# Features
#===============================================================================
# CHECK means the script has the feature
# WIP means it is a future feature
#-------------------------------------------------------------------------------
# Thomas Edison Compat. CHECK
# Auto-Tint  CHECK
# Auto-Weather  CHECK
# Auto-Season  CHECK
# Time to variable/switch  CHECK
# Weather to switch CHECK
# Changable Days/Months  CHECK
# Military time  CHECK
# Real time option CHECK
# Resting  CHECK
# Map/Menu Windows CHECK
# Changable map encounters  WIP
# Map labels  CHECK
# Alignment System compat.  CHECK
# Tile set Changes  WIP
# Skill damage differences depending on time of day.  WIP
# Update only on Map feature.  CHECK
#===============================================================================
[/spoiler]

Script/Demo

Download Demo Here (Might be outdated) (http://www.mediafire.com/?htzlywtj3qj)

Script:
[spoiler]
#===============================================================================
# Time System
# By Jet10985 (Jet)
# Slight Help by: Mr. Anonymous
#===============================================================================
# This script is my time system. Time System: A system of tracking in-game "time"
# which in-turn contain more systems relating to time. Used for visual effects,
# the novelty, and eventing purposes. My Time System: see Time system +
# see ultimate.
# This script has: 50 customization option.
#===============================================================================

#===============================================================================
# Features
#===============================================================================
# CHECK means the script has the feature
# WIP means it is a future feature
#-------------------------------------------------------------------------------
# Thomas Edison Compat. CHECK
# Auto-Tint  CHECK
# Auto-Weather  CHECK
# Auto-Season  CHECK
# Time to variable/switch  CHECK
# Weather to switch CHECK
# Changable Days/Months  CHECK
# Military time  CHECK
# Real time option CHECK
# Resting  CHECK
# Map/Menu Windows CHECK
# Changable map encounters  WIP
# Map labels  CHECK
# Alignment System compat.  CHECK
# Tile set Changes  WIP
# Skill damage differences depending on time of day.  WIP
# Update only on Map feature.  CHECK
#===============================================================================

=begin

Disable auto-tint and auto-weather on maps:

In the map name ex. MAP001, add [JDN] in the name. Like so

MAP001 [JDN]


Built-in script commands:

freeze_time(option)   <--------------- Script-time command only
option = true/false. true freeze's time, false unfreeze's it.

add_time(type, amount)   <------------------- Script-time command only
type = "minute", "hour", "day", "month", "year" according to what you want to add
amount = amount of that time you want to add.

jump_to_hour(hour)    <-------------------------- Script-time command only
hour = the hour you want to jump to. Be below 25 and above 0.
--------------------------------------------------------------------------------
Compatability Instructions:

If you want compatability with Jet's Alignment system and/or Thomas Edison VX,
place this script below both of them and toggle the configuration for them below

=end

#===============================================================================
# BEGIN CONFIGURATION
#===============================================================================

module Jet_DayNight # Don't Touch.
 
#===============================================================================
# Detail Configuration
#===============================================================================

 # Use computer time or script time? false is script, true is computer.
 REAL_TIME = false
 
 # This switch will turn the script into a real time script while on.
 REAL_TIME_SWITCH = 61

 # Hour script time will start at.
 STARTING_HOUR = 1
 
 # Minute script time will start at.
 STARTING_MINUTE = 0
 
 # Day script time will start at.
 STARTING_DAY = 0
 
 # Year script time will start at.
 STARTING_YEAR = 2010
 
 # This is how many frames it takes for a Script time minute to pass.
 # 60 frames = 1 Real life second. So 120 would be 2 real life seconds, etc.
 MINUTE_LENGTH = 120
 
 # Military time or AM/PM time? false is AM/PM, true is military.
 MILITARY_TIME = false
 
 # Should time only update on the map, and no where else?
 UPDATE_ONLY_ON_MAP = true
 
 # Automaticly change seasons? (This is auto-weather as well)
 AUTO_SEASONS = true
 
 # Automaticly tint according to time of day/weather?
 AUTO_TINT = true
 
 # Allows resting? Resting is the ability to call a scene that will allow
 # the player to "rest" for a certain amount of hours. Script time only.
 ALLOW_REST = true
 
 # The button to call the resting menu.
 REST_BUTTON = Input::F5
 
 # Include a window showing time of day, month, and day name in the menu?
 MENU_TIME_WINDOW = true
 
 # Include a window showing time of day and day name on the map?
 MAP_TIME_WINDOW = true
 
 # These are the X and Y coordinates of the map time window if you choose to
 # display the window on the map.
 MAP_TIME_WINDOW_COORDS = [384, 360]
 
 # This will add compatability with Thomas Edison VX the same as if you were
 # using KGC's day/night.
 # Meaning, lights will be on during night and off during day.
 THOMAS_EDISON_COMPATABILITY = true
 
 # This will add Jet's Alignment System compatability. Meaning, if you
 # have negative alignment, dusk and night will give bonus stats, and
 # vice versa for dawn and day if you're good.
 ALIGNMENT_SYSTEM_COMPATABILITY = false
 
 # This is the positive alignment bonus in dawn/day. These are in decimals.
 # By default, all bonuses are 1.2, meaning 20% bonus.
 #               ATK  DEF  SPI  AGI
 GOOD_BONUSES = [1.2, 1.2, 1.2, 1.2]
 
 # This is the negative alignment bonus in dusk/night. These are in decimals.
 # By default, all bonuses are 1.2, meaning 20% bonus.
 #               ATK  DEF  SPI  AGI
 BAD_BONUSES = [1.2, 1.2, 1.2, 1.2]

 
#===============================================================================
# Calendar Configuration (Script time only)
#===============================================================================

 # These are the months in a 3-4 letter form that will be used.
 MONTHS = {
 
 0 => ["Jan", 31],  # month number => ["Month name", days in month],
 1 => ["Feb", 28],  # month number => ["Month name", days in month],
 2 => ["Mar", 31],  # month number => ["Month name", days in month],
 3 => ["Apr", 30],
 4 => ["May", 31],
 5 => ["June", 30],
 6 => ["July", 31],
 7 => ["Aug", 31],
 8 => ["Sept", 30],
 9 => ["Oct", 31],
 10 => ["Nov", 30],
 11 => ["Dec", 31]  }
 
 # These are the days in the month in a 3-4 letter form for window space.
 DAYS = {
 
 0 => "Sun",   # day number => day name
 1 => "Mon",   # day number => day name
 2 => "Tues",   # day number => day name
 3 => "Wed",
 4 => "Thu",
 5 => "Fri",
 6 => "Sat"  }
 
#===============================================================================
# Switches Configuration (Script time and Real time)
#===============================================================================

 # The switch that will turn on when it is Autumn.
 AUTUMN_SWITCH = 50
 
 # The switch that will turn on when it is Winter.
 WINTER_SWITCH = 51
 
 # The switch that will turn on when it is Summer.
 SUMMER_SWITCH = 52
 
 # The switch that will turn on when it is Spring.
 SPRING_SWITCH = 53
 
 # The switch that will turn on when it is Raining.
 RAIN_SWITCH = 54
 
 # The switch that will turn on when it is Snowing.
 SNOW_SWITCH = 55
 
 # The switch that will turn on when it is Stormy.
 STORM_SWITCH = 56
 
 # The switch that will turn on when it is Night.
 NIGHT_SWITCH = 57
 
 # The switch that will turn on when it is Dawn.
 DAWN_SWITCH = 58
 
 # The switch that will turn on when it is Day.
 DAY_SWITCH = 59
 
 # The switch that will turn on when it is Dusk.
 DUSK_SWITCH = 60
 
#===============================================================================
# Variable Configuration (Script time and Real time)
#===============================================================================

 # Variable hour will be stored in.
 HOUR_VARIABLE = 50
 
 # Variable minute will be stored in.
 MINUTE_VARIABLE = 51
 
 # Variable day will be stored in.
 DAY_VARIABLE = 52
 
 # Variable month will be stored in.
 MONTH_VARIABLE = 53
 
 # Variable year will be stored in.
 YEAR_VARIABLE = 54
 
#===============================================================================
# Weather Configuration (Script time and Real time)
#-------------------------------------------------------------------------------
# Seasonal Numbers:
# 0 = Winter
# 1 = Autumn
# 2 = Summer
# 3 = Spring
#===============================================================================

 # Seasons that rain will occur in randomly.
 RAIN_SEASONS = [0, 1, 3]
 
 # Seasons that snow will occur in randomly.
 SNOW_SEASONS = [0, 1]
 
 # Seasons that storms will occur in randomly.
 STORM_SEASONS = [0, 1, 3]
 
#===============================================================================
# Season Configuration (Script time only)
#===============================================================================

 # These months will be in the summer season.
 SUMMER_MONTHS = [5, 6, 7]
 
 # These months will be in the summer season.
 WINTER_MONTHS = [11, 0, 1]
 
 # These months will be in the summer season.
 AUTUMN_MONTHS = [8, 9, 10]
 
 # These months will be in the summer season.
 SPRING_MONTHS = [2, 3, 4]
 
#===============================================================================
# Tint Configuration (Hours config for Script time only, tint for both.)
#===============================================================================

 # These hours will be considered dusk.
 DUSK_HOURS = [18, 19, 20, 21]
 
 # These hours will be considered night.
 NIGHT_HOURS = [22, 23, 24, 1, 2, 3]
 
 # These hours are considered dawn.
 DAWN_HOURS = [4, 5, 6, 7]
 
 # These hours are considered day.
 DAY_HOURS = [8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
 
 # This is the tint that will be applied for dusk.
 DUSK_TINT = Tone.new(17, -51, -102, 0)
 
 # This is the tint that will be applied for night.
 NIGHT_TINT = Tone.new(-187, -119, -17, 68)
 
 # This is the tint that will be applied for dawn.
 DAWN_TINT = Tone.new(17, -51, -102, 0)
 
 # This is the tint that will be applied for day.
 DAY_TINT = Tone.new(0, 0, 0, 0)
 
 # This is the amount of time it takes for tone to change from one to another.
 FADE_LENGTH = 240
 
end

#===============================================================================
# DON'T EDIT FURTHER UNLESS YOU KNOW WHAT TO DO.
#===============================================================================
class RPG::MapInfo
 
 def name
   return @name.gsub(/\[.*\]/) {""}
 end
 
 def indoors?
   return @name.scan(/\[JDN\]/).size > 0
 end
end

class Game_Time
 
 include Jet_DayNight
 
 attr_accessor :day
 attr_accessor :day_name
 attr_accessor :days_passed
 attr_accessor :month
 attr_accessor :month_name
 attr_accessor :month_day
 attr_accessor :hour
 attr_accessor :minute
 attr_accessor :second
 attr_accessor :minute_length
 attr_accessor :year
 attr_accessor :frozen_time
 attr_accessor :map_infos
 
 def initialize
   if REAL_TIME
     @day =  Time.now.strftime("%j").to_i
     @day_name = Time.now.strftime('%a')
     @month = Time.now.strftime("%m").to_i
     @month_name = Time.now.strftime("%b")
     @month_day = Time.now.strftime("%d")
     @hour = Time.now.hour
     @minute = Time.now.min
     @year = Time.now.strftime("%Y").to_i
   else
     @day =  STARTING_DAY % DAYS.keys.size
     @day_name = DAYS[@day]
     @days_passed = STARTING_DAY
     @hour = STARTING_HOUR
     @month = 0
     @minute = STARTING_MINUTE
     @second = 0
     @year = STARTING_YEAR
   end
   @frozen_time = false
   @map_infos = load_data("Data/MapInfos.rvdata")
   @minute_length = 0
 end
 
 def screen
   if $game_temp.in_battle
     return $game_troop.screen
   else
     return $game_map.screen
   end
 end

 def update_time
   @day_name = DAYS[@day]
   @map_infos = load_data("Data/MapInfos.rvdata")
   time_of_day = get_time_of_day
   unless @map_infos[$game_map.map_id].indoors?
     case time_of_day
     when "Dusk"
       if !$instant_tint
         screen.start_tone_change(DUSK_TINT, FADE_LENGTH) unless screen.tone == DUSK_TINT || !AUTO_TINT
       else
         screen.start_tone_change(DUSK_TINT, 0)
       end
     when "Night"
       if !$instant_tint
         screen.start_tone_change(NIGHT_TINT, FADE_LENGTH) unless screen.tone == NIGHT_TINT || !AUTO_TINT
       else
         screen.start_tone_change(NIGHT_TINT, 0)
       end
     when "Dawn"
       if !$instant_tint
         screen.start_tone_change(DAWN_TINT, FADE_LENGTH) unless screen.tone == DAWN_TINT || !AUTO_TINT
       else
         screen.start_tone_change(DAWN_TINT, 0)
       end
     when "Day"
       if !$instant_tint
         screen.start_tone_change(DAY_TINT, FADE_LENGTH) unless screen.tone == DAY_TINT || !AUTO_TINT
       else
         screen.start_tone_change(DAY_TINT, 0)
       end
     end
     get_weather
   end
   if REAL_TIME || $game_switches[REAL_TIME_SWITCH]
     @day =  Time.now.strftime("%j").to_i
     @day_name = Time.now.strftime('%a')
     @month = Time.now.strftime("%m").to_i
     @month_name = Time.now.strftime("%b")
     @month_day = Time.now.strftime("%d")
     @hour = Time.now.hour
     @minute = Time.now.min
     @second = Time.now.sec
     @year = Time.now.strftime("%Y").to_i
   else
     @second += 1
     @minute_length += 1 unless @frozen_time
     if @minute_length == MINUTE_LENGTH
       @minute += 1
       @minute_length = 0
     end
     if @minute == 60
       @hour += 1
       @minute = 0
     end
     if @hour == 25
       @day += 1
       @hour = 1
     end
     if @day == DAYS.keys.size
       @day = 0
       @days_passed += DAYS.keys.size
     end
     if @days_passed > MONTHS[@month][1]
       @month += 1
     end
     if @month == MONTHS.keys.size
       @year += 1
       @month = 0
       @days_passed = 0
     end
   end
   $game_variables[MINUTE_VARIABLE] = @minute
   $game_variables[HOUR_VARIABLE] = @hour
   $game_variables[YEAR_VARIABLE] = @year
   $game_variables[DAY_VARIABLE] = @day
   $game_variables[MONTH_VARIABLE] = @month
   get_season
   if @seconds == 1000
     @seconds = 0
   end
 end
 
 def get_month_data(type)
   case type
   when 0
     return @month
   when 1
     return @month_name
   when 2
     return @month_day
   end
 end
 
 def get_day_data(type)
   case type
   when 0
     return @day
   when 1
     return @day_name
   end
 end
 
 def get_time_data(type)
   case type
   when 0
     return @second
   when 1
     return @minute
   when 2
     return @hour
   when 3
     return @year
   end
 end
 
 def get_season
   if REAL_TIME
     if @month == 12 || 1 || 2
       $game_switches[AUTUMN_SWITCH] = false
       $game_switches[SPRING_SWITCH] = false
       $game_switches[SUMMER_SWITCH] = false
       $game_switches[WINTER_SWITCH] = true
       return "Winter"
     elsif @month == 3 || 4 || 5
       $game_switches[AUTUMN_SWITCH] = false
       $game_switches[SUMMER_SWITCH] = false
       $game_switches[WINTER_SWITCH] = false
       $game_switches[SPRING_SWITCH] = true
       return "Spring"
     elsif @month == 6 || 7 || 8
       $game_switches[AUTUMN_SWITCH] = false
       $game_switches[SPRING_SWITCH] = false
       $game_switches[WINTER_SWITCH] = false
       $game_switches[SUMMER_SWITCH] = true
       return "Summer"
     elsif @month == 9 || 10 || 11
       $game_switches[SPRING_SWITCH] = false
       $game_switches[SUMMER_SWITCH] = false
       $game_switches[WINTER_SWITCH] = false
       $game_switches[AUTUMN_SWITCH] = true
       return "Autumn"
     end
   else
     if SUMMER_MONTHS.include?(@month)
       $game_switches[SUMMER_SWITCH] = true
       $game_switches[AUTUMN_SWITCH] = false
       $game_switches[SPRING_SWITCH] = false
       $game_switches[WINTER_SWITCH] = false
       return "Summer"
     elsif WINTER_MONTHS.include?(@month)
       $game_switches[AUTUMN_SWITCH] = false
       $game_switches[SPRING_SWITCH] = false
       $game_switches[SUMMER_SWITCH] = false
       $game_switches[WINTER_SWITCH] = true
       return "Winter"
     elsif AUTUMN_MONTHS.include?(@month)
       $game_switches[SPRING_SWITCH] = false
       $game_switches[SUMMER_SWITCH] = false
       $game_switches[WINTER_SWITCH] = false
       $game_switches[AUTUMN_SWITCH] = true
       return "Autumn"
     elsif SPRING_MONTHS.include?(@month)
       $game_switches[AUTUMN_SWITCH] = false
       $game_switches[SUMMER_SWITCH] = false
       $game_switches[WINTER_SWITCH] = false
       $game_switches[SPRING_SWITCH] = true
       return "Spring"
     end
   end
 end
 
 def get_weather
   random_weather = get_season
   new_weather = []
   case random_weather
   when "Winter"
     new_weather.push("Clear")
     if RAIN_SEASONS.include?(0)
       new_weather.push("Rain")
     end
     if SNOW_SEASONS.include?(0)
       new_weather.push("Snow")
     end
     if STORM_SEASONS.include?(0)
       new_weather.push("Storm")
     end
     stuff = rand(new_weather.size - 1)
     @more_stuff = new_weather[stuff]
   when "Autumn"
     new_weather.push("Clear")
     if RAIN_SEASONS.include?(1)
       new_weather.push("Rain")
     end
     if SNOW_SEASONS.include?(1)
       new_weather.push("Snow")
     end
     if STORM_SEASONS.include?(1)
       new_weather.push("Storm")
     end
     stuff = rand(new_weather.size - 1)
     @more_stuff = new_weather[stuff]
   when "Summer"
     new_weather.push("Clear")
     if RAIN_SEASONS.include?(2)
       new_weather.push("Rain")
     end
     if SNOW_SEASONS.include?(2)
       new_weather.push("Snow")
     end
     if STORM_SEASONS.include?(2)
       new_weather.push("Storm")
     end
     stuff = rand(new_weather.size - 1)
     @more_stuff = new_weather[stuff]
   when "Spring"
     new_weather.push("Clear")
     if RAIN_SEASONS.include?(3)
       new_weather.push("Rain")
     end
     if SNOW_SEASONS.include?(3)
       new_weather.push("Snow")
     end
     if STORM_SEASONS.include?(3)
       new_weather.push("Storm")
     end
     stuff = rand(new_weather.size - 1)
     @more_stuff = new_weather[stuff]
   end
   case @more_stuff
   when "Clear"
     screen.weather(0, 0, 0)
     $game_switches[RAIN_SWITCH] = false
     $game_switches[STORM_SWITCH] = false
     $game_switches[SNOW_SWITCH] = false
   when "Rain"
     screen.weather(1, 4 || 5, 999)
     $game_switches[RAIN_SWITCH] = true
     $game_switches[STORM_SWITCH] = false
     $game_switches[SNOW_SWITCH] = false
   when "Storm"
     screen.weather(2, 4 || 5, 999)
     $game_switches[RAIN_SWITCH] = false
     $game_switches[STORM_SWITCH] = true
     $game_switches[SNOW_SWITCH] = false
   when "Snow"
     screen.weather(3, 4 || 5, 999)
     $game_switches[RAIN_SWITCH] = false
     $game_switches[STORM_SWITCH] = false
     $game_switches[SNOW_SWITCH] = true
   end
 end

 def get_time_of_day
   if REAL_TIME
     if (18..21) === @hour
       $game_switches[DUSK_SWITCH] = true
       $game_switches[DAWN_SWITCH] = false
       $game_switches[DAY_SWITCH] = false
       $game_switches[NIGHT_SWITCH] = false
       $light_switch = true
       return "Dusk"
     elsif (22..24) === @hour || (1..3) === @hour
       $game_switches[DUSK_SWITCH] = false
       $game_switches[DAWN_SWITCH] = false
       $game_switches[DAY_SWITCH] = false
       $game_switches[NIGHT_SWITCH] = true
       $light_switch = true
       return "Night"
     elsif (4..7) === @hour
       $game_switches[DUSK_SWITCH] = false
       $game_switches[DAWN_SWITCH] = true
       $game_switches[DAY_SWITCH] = false
       $game_switches[NIGHT_SWITCH] = false
       $light_switch = false
       return "Dawn"
     elsif (8..17) === @hour
       $game_switches[DUSK_SWITCH] = false
       $game_switches[DAWN_SWITCH] = false
       $game_switches[DAY_SWITCH] = true
       $game_switches[NIGHT_SWITCH] = false
       $light_switch = false
       return "Day"
     end
   else
     if DUSK_HOURS.include?(@hour)
       $game_switches[DUSK_SWITCH] = true
       $game_switches[DAWN_SWITCH] = false
       $game_switches[DAY_SWITCH] = false
       $game_switches[NIGHT_SWITCH] = false
       $light_switch = true
       return "Dusk"
     elsif DAWN_HOURS.include?(@hour)
       $game_switches[DUSK_SWITCH] = false
       $game_switches[DAWN_SWITCH] = true
       $game_switches[DAY_SWITCH] = false
       $game_switches[NIGHT_SWITCH] = false
       $light_switch = false
       return "Dawn"
     elsif NIGHT_HOURS.include?(@hour)
       $game_switches[DUSK_SWITCH] = false
       $game_switches[DAWN_SWITCH] = false
       $game_switches[DAY_SWITCH] = false
       $game_switches[NIGHT_SWITCH] = true
       $light_switch = true
       return "Night"
     elsif DAY_HOURS.include?(@hour)
       $game_switches[DUSK_SWITCH] = false
       $game_switches[DAWN_SWITCH] = false
       $game_switches[DAY_SWITCH] = true
       $game_switches[NIGHT_SWITCH] = false
       $light_switch = false
       return "Day"
     end
   end
 end
end

$game_time = Game_Time.new

class Window_DayNight < Window_Base
 
 include Jet_DayNight
 
 def initialize
   super(0, 360, 160, 56)
   refresh
 end
 
 def refresh
   self.contents.clear
   $game_time.update_time unless UPDATE_ONLY_ON_MAP
   if MILITARY_TIME
     if $game_time.minute < 10
       self.contents.draw_text(0, 0, 140, WLH, $game_time.day_name + "  " + $game_time.hour.to_s + ":" + 0.to_s + $game_time.minute.to_s)
     else
       self.contents.draw_text(0, 0, 140, WLH, $game_time.day_name + "  " + $game_time.hour.to_s + ":" + $game_time.minute.to_s)
     end
   else        
     if $game_time.minute < 10
       if $game_time.hour > 12
         self.contents.draw_text(0, 0, 140, WLH, $game_time.day_name + "  " + ($game_time.hour - 12).to_s + ":" + 0.to_s + $game_time.minute.to_s + " " + "PM")
       else
         self.contents.draw_text(0, 0, 140, WLH, $game_time.day_name + "  " + $game_time.hour.to_s + ":" + 0.to_s + $game_time.minute.to_s + " " + "AM")
       end
     else
       if $game_time.hour > 12
         self.contents.draw_text(0, 0, 140, WLH, $game_time.day_name + "  " + ($game_time.hour - 12).to_s + ":" + $game_time.minute.to_s + " " + "PM")
       else
         self.contents.draw_text(0, 0, 140, WLH, $game_time.day_name + "  " + $game_time.hour.to_s + ":" + $game_time.minute.to_s + " " + "AM")
       end
     end
   end
 end
 
 def update
   refresh
 end
end

class Scene_Base
 
 include Jet_DayNight
 
 alias jet8922_update update unless $@
 def update
   jet8922_update
   if UPDATE_ONLY_ON_MAP
     $game_time.update_time if $scene.is_a?(Scene_Map)
   else
     $game_time.update_time unless $scene.is_a?(Scene_Title)
   end
 end
end

class Scene_Menu
 
 alias jet3922_start start unless $@
 def start
   jet3922_start
   @time_window = Window_DayNight.new if MENU_TIME_WINDOW
   @time_window.y = 304 if MENU_TIME_WINDOW
 end
 
 alias jet3022_terminate terminate unless $@
 def terminate
   @time_window.dispose if MENU_TIME_WINDOW
   jet3022_terminate
 end
 
 alias jet3026_update update unless $@
 def update
   jet3026_update
   @time_window.update if MENU_TIME_WINDOW
 end
end

class Game_Interpreter
 
 def jump_to_hour(hour)
   if hour < 24
     if hour > 0
       $game_time.hour = hour
     else
       p "Hour must be above 0 and below 25, please edit the command."
     end
   else
     p "Hour must be above 0 and below 25, please edit the command."
   end
 end
 
 def add_time(time, amount)
   case time
   when "minute"
     loop do
       $game_time.minute += 1
       amount -= 1
       if amount == 0
         break
       end
     end
   when "hour"
     loop do
       $game_time.hour += 1
       amount -= 1
       if amount == 0
         break
       end
     end
   when "day"
     loop do
       $game_time.day += 1
       amount -= 1
       if amount == 0
         break
       end
     end
   when "month"
     loop do
       $game_time.month += 1
       amount -= 1
       if amount == 0
         break
       end
     end
   when "year"
     loop do
       $game_time.year += 1
       amount -= 1
       if amount == 0
         break
       end
     end
   end
 end
 
 def freeze_time(option)
   if option == true
     $game_time.frozen_time = true
   elsif option == false
     $game_time.frozen_time = false
   elsif
     p "The option you chose was neither true or false. Please error check and try again"
   end
 end
end

class Window_NumberInput
 
 def index=(new_index)
   @index = new_index
 end
end

class Scene_Rest < Scene_Base
 
 def start
   super
   create_menu_background
   if $game_time.frozen_time
     @notification_window = Window_Help.new
     @notification_window.y = 188
     @notification_window.set_text("Time is frozen, so you may not rest. Press enter to continue.", 1)
   else
     @number_window = Window_NumberInput.new
     @number_window.digits_max = 3
     @number_window.x = 210
     @number_window.y = 190
     @number_window.index = 2
     @number_window.active = true
     @description_window = Window_Help.new
     @description_window.set_text("How many hours would you like to rest?", 1)
     @decoration_window = Window_Base.new(210, 190, 120, 56)
   end
 end
 
 def terminate
   super
   if $game_time.frozen_time
     @notification_window.dispose
     dispose_menu_background
   else
     @number_window.dispose
     @description_window.dispose
     @decoration_window.dispose
     dispose_menu_background
   end
 end
 
 def update
   if $game_time.frozen_time
     if Input.trigger?(Input::C)
       $scene = Scene_Map.new
     end
   else
     @number_window.update
     if Input.trigger?(Input::C)
       loop do      
         $game_time.hour += 1
         $game_time.update_time
         @number_window.number -= 1
         @number_window.update
         Graphics.wait(10)
         if @number_window.number == 0
           break
         end
       $scene = Scene_Map.new
       end
     end
     if Input.trigger?(Input::B)
       $scene = Scene_Map.new
     end
   end
 end
end
     
class Scene_Map
 
 include Jet_DayNight
 
 alias jet3829_start start unless $@
 def start
   unless $game_time.map_infos[$game_map.map_id].indoors?
     $instant_tint = true
     $game_time.get_weather unless $first_weather
     $first_weather = true
   end
   @time_window = Window_DayNight.new if MAP_TIME_WINDOW
   @time_window.x = MAP_TIME_WINDOW_COORDS[0] if MAP_TIME_WINDOW
   @time_window.y = MAP_TIME_WINDOW_COORDS[1] if MAP_TIME_WINDOW
   jet3829_start
 end
 
 alias jet3023_update update unless $@
 def update
   if @message_window.openness > 0 && MAP_TIME_WINDOW
     @time_window.visible = false
   elsif MAP_TIME_WINDOW
     @time_window.visible = true
   end
   @time_window.update if MAP_TIME_WINDOW
   update_rest if ALLOW_REST
   jet3023_update
 end
 
 alias jet6454_terminate terminate unless $@
 def terminate
   @time_window.dispose if MAP_TIME_WINDOW
   jet6454_terminate
 end
 
 def update_rest
   if Input.trigger?(REST_BUTTON)
     snapshot_for_background
     $scene = Scene_Rest.new
   end
 end
end
     
class Scene_File
 
 alias jet3890_write_save_data write_save_data unless $@
 def write_save_data(file)
   jet3890_write_save_data(file)
   Marshal.dump($game_time, file)
 end
 
 alias jet5935_read_save_data read_save_data unless $@
 def read_save_data(file)
   jet5935_read_save_data(file)
   $game_time = Marshal.load(file)
 end
end

class Spriteset_Map
 
 include Jet_DayNight
 
 if THOMAS_EDISON_COMPATABILITY
   alias jet3422_update_light_effects update_light_effects unless $@
   def update_light_effects
     if $light_switch || $game_time.map_infos[$game_map.map_id].indoors?
       jet3422_update_light_effects
     else
       for effect in @light_effects
         effect.light.visible = false
       end
     end
   end
 end
end

class Game_Battler
 
 include Jet_DayNight
 
 if ALIGNMENT_SYSTEM_COMPATABILITY

   def atk
     n = [[base_atk + @atk_plus, 1].max, 999].min
     for state in states do n *= state.atk_rate / 100.0 end
     n = [[Integer(n), 1].max, 999].min
     if $game_system.alignment < 0 && $light_switch
       n *= BAD_BONUS[0]
     elsif $game_system.alignment > 0 && !$light_switch
       n *= GOOD_BONUS[0]
     end
     return n
   end

   def def
     n = [[base_def + @def_plus, 1].max, 999].min
     for state in states do n *= state.def_rate / 100.0 end
     n = [[Integer(n), 1].max, 999].min
     if $game_system.alignment < 0 && $light_switch
       n *= BAD_BONUS[1]
     elsif $game_system.alignment > 0 && !$light_switch
       n *= GOOD_BONUS[1]
     end
     return n
   end

   def spi
     n = [[base_spi + @spi_plus, 1].max, 999].min
     for state in states do n *= state.spi_rate / 100.0 end
     n = [[Integer(n), 1].max, 999].min
     if $game_system.alignment < 0 && $light_switch
       n *= BAD_BONUS[2]
     elsif $game_system.alignment > 0 && !$light_switch
       n *= GOOD_BONUS[2]
     end
     return n
   end

   def agi
     n = [[base_agi + @agi_plus, 1].max, 999].min
     for state in states do n *= state.agi_rate / 100.0 end
     n = [[Integer(n), 1].max, 999].min
     if $game_system.alignment < 0 && $light_switch
       n *= BAD_BONUS[3]
     elsif $game_system.alignment > 0 && !$light_switch
       n *= GOOD_BONUS[3]
     end
     return n
   end
 end
end

class Game_Map
 
 alias jet5044_setup setup unless $@
 def setup(*args)
   jet5044_setup(*args)
   @map_infos = load_data("Data/MapInfos.rvdata")
   if @map_infos[@map_id].indoors?
     @screen.start_tone_change(Tone.new(0, 0, 0), 0)
     @screen.weather(0, 0, 0)
   end
 end
end

unless $engine_scripts.nil?
 JetEngine.active("DayNight System", "v1.2.1")
end  
[/spoiler]

FAQ

[spoiler]Q: Where do I put this script?
A: Put this script in the script edition under Materials and above Main

Q: How do i edit ______?
A: Look at the script configurations first! If you are SURE the option is not there, post in this topic.

Q: Can i freeze time?
A: Yes, you can. Look in the script intructions, or download the demo.

Q: What is military time?
A: Military time is when they use a 24-hour clock. Instead of 5 PM, it'd be 17.

Q:What is the difference between real time and script time?
A: Script time is entirely created and help BY the script. Real time draws the time set on your computer.[/spoiler]

Credit

Jet10985/Jet
Mr. Anonymous
bulletxt if used with Thomas Edison VX
Kylock
Title: Re: Jet's Time System
Post by: modern algebra on April 14, 2010, 11:53:50 AM
Looks pretty neat. Great job jet!
Title: Re: Jet's Time System
Post by: Cascading Dragon on April 14, 2010, 01:49:25 PM
You have come a long way Jet. Have you ever got that durability script to work?
Title: Re: Jet's Time System
Post by: jet10985 on April 14, 2010, 10:26:57 PM
@MA: Tahnks, that means a lot coming from you =)

@redyugi: Nope.
Title: Re: Jet's Time System
Post by: Cascading Dragon on April 16, 2010, 04:09:52 PM
Why not? If you can do this, you could do a durability script. We have faith in you. Good luck :)
Title: Re: Jet's Time System
Post by: jet10985 on April 16, 2010, 10:28:10 PM
Thanks redyugi, i appreciate the feedback and support. I really just haven't remembered that i wanted it in the first place O_O
It'll get done eventually...
Title: Re: Jet's Time System
Post by: ?????? on April 19, 2010, 02:17:35 PM
;D ;D ;D GOOD SCRIPT... ;D ;D ;D
Title: Re: Jet's Time System
Post by: ????????????? on April 20, 2010, 05:43:57 PM
I think this script is very helpful  :)
Title: Re: Jet's Time System
Post by: Skyselarke on May 29, 2010, 01:28:28 PM
Hey Jet,

I'm new to these forums (stumbled upon them by accident from rpgrevolution.net) and saw yer script.  I absolutely love it as it's a lot easier to customize and it adds weather at random.  I did however find one glitch that I thought I should mention.

When testing my game, I noticed if I press continue (loading a saved game saved after I installed the script) and for some reason need to go back and do new game, the clock stays at where it was in the saved game.  However, if I start NEW without selecting continue, then it starts at the specified time.  I don't know if this might be a problem, but I thought I would mention it just in case.

If you come up with a fix let me know as I will be checking these forums a lot more.  They're more helpful than the rpgrevolution ones.

Sincerely,
Joshua A.

---- Edit----
Also, is there a way to have a menu option to select whether the person wants the clock displayed on the map or some kind of something?
Title: Re: Jet's Time System
Post by: Cascading Dragon on May 29, 2010, 06:29:01 PM
He hasnt' updated on here in a while. rpgmakervx.net is where he is frequently. Check there
Title: Re: Jet's Time System
Post by: Osaka on September 11, 2010, 09:57:05 PM
I guess this is the best place to ask.

I'm sure this is REALLY simple, but how do I make events based on certain times? I can't find any information on how to do it in the script files...
Title: Re: Jet's Time System
Post by: Cascading Dragon on September 11, 2010, 10:35:02 PM
The variables and switches you set up in the script. If you didn't set up variables and switches, it means you need to go through the beginning until it says
#===============================================================================
# DON'T EDIT FURTHER UNLESS YOU KNOW WHAT TO DO.
#===============================================================================
Title: Re: Jet's Time System
Post by: Osaka on September 11, 2010, 11:29:01 PM
Quote from: redyugi on September 11, 2010, 10:35:02 PM
The variables and switches you set up in the script. If you didn't set up variables and switches, it means you need to go through the beginning until it says
#===============================================================================
# DON'T EDIT FURTHER UNLESS YOU KNOW WHAT TO DO.
#===============================================================================

Thank you very much!
Title: Re: Jet's Time System
Post by: Wiimeiser on September 20, 2010, 02:42:29 AM
What does this mean? It's not a compatibility issue because I tried on a new project with no other scripts and got exactly the same error.
Title: Re: Jet's Time System
Post by: modern algebra on September 20, 2010, 03:08:22 AM
Try changing the line that says:

THOMAS_EDISON_COMPATABILITY = true


to:


THOMAS_EDISON_COMPATABILITY = false


See what that does for you.
Title: Re: Jet's Time System
Post by: Wiimeiser on September 20, 2010, 03:58:01 AM
That worked, thanks


Edit: How would I pause time and make custom interior lighting?
Title: Re: Jet's Time System
Post by: wsensor on September 28, 2010, 07:07:02 AM
What ever happened to time scripts that used the COMMENT text option to show up instead of requiring variables and such lol.
I really miss them... I do not think I have seen any of them for vx just the one or two on xp but its been so long since I even looked at xp and I lost so many scripts/downloaded/exclusive stuff that no longer seems to exist anymore lol.
Title: Re: Jet's Time System
Post by: krekka on November 07, 2010, 05:29:34 PM
Hey, Jet, I get this error (I know that guy posted it before but I MUST USE Thomas Edison): line 966 undefined method 'update_light_effects' for class 'Spriteset_Map'. Please help me... I will be forever grateful!
:'(
Title: Re: Jet's Time System
Post by: DarthOctopus on February 03, 2011, 01:54:54 AM
Try putting Edison before Jet's Time System. That's what worked for me, I had the same problem.
Title: Re: Jet's Time System
Post by: Illuminatorr on February 05, 2011, 02:10:40 AM
Can you put up a new demo link please?