#============================================================================== # Kylock1.2+(RMDude-Kylock1.5) Time System Script # Kylock's Time System VX 1.2 (2008/09/05) - Kylock # Kylock ½Ã°£(¹ã³·) ½Ã½ºÅÛ VX 1.5 + RMdude ´Þ·Â ¸ðµå ½Ã½ºÅÛ - RMDude #============================================================================== #============================================================================== # ÀÌ ½ºÅ©¸³Æ®´Â °ÔÀÓ¿¡ ³âµµ¿ùÀÏ, ¿äÀÏ, ½Ã°£°ú ¹ã, ³·ÀÇ °³³äÀ» ½É¾îÁÝ´Ï´ÙÀ×. #============================================================================== #============================================================================== #============================================================================== #============================================================================== #============================================================================== # RMDude´ÔÀÇ ½ºÅ©¸³Æ®¸¦ ¹ÙÅÁÀ¸·Î Kylock´ÔÀÇ ½ºÅ©¸³Æ® 1.2¸¦ °³Á¶Çß½À´Ï´Ù. # RMDude´ÔÀÇ ½ºÅ©¸³Æ®¿Í ´Þ¸® SojaBird´ÔÀÇ È­¸é»ó º¯¼ö¸¦ Ç¥½ÃÇÏ´Â ½ºÅ©¸³Æ®¿Í # ÇÔ²² ¾²¼Å¾ß HUD°¡ Ç¥½ÃµË´Ï´Ù. #============================================================================== # ¸ÊÀÇ À̸§ ¾Õ¿¡ [KTS]¸¦ ºÙ¿©ÁÖ¼Å¾ß ±× ¸Ê¿¡¼­ ¹ã°ú ³·ÀÌ ³ªÅ¸³³´Ï´Ù. # [KTS]MAP001 <<< ¿ä·¸°Ô # ¹ã°ú ³·ÀÇ ½Ã°£ Á¶Á¤Àº 104¹ø° ÁÙ, ¹ã°ú ³·ÀÇ »öÁ¶ Á¶Á¤Àº136¹ø° ÁÙ. #============================================================================== #============================================================================== # °³Á¶ÀÚ : communnn #============================================================================== #============================================================================== # Kylock's Time System VX 1.2 (2008/09/05) - Kylock # Kylock ½Ã°£(¹ã³·) ½Ã½ºÅÛ VX 1.5 + RMdude ´Þ·Â ¸ðµå ½Ã½ºÅÛ - RMDude # Kylock's Time System VX 1.2 (2008/09/05) - Kylock # Kylock ½Ã°£(¹ã³·) ½Ã½ºÅÛ VX 1.5 + RMdude ´Þ·Â ¸ðµå ½Ã½ºÅÛ - RMDude # Kylock's Time System VX 1.2 (2008/09/05) - Kylock # Kylock ½Ã°£(¹ã³·) ½Ã½ºÅÛ VX 1.5 + RMdude ´Þ·Â ¸ðµå ½Ã½ºÅÛ - RMDude #============================================================================== # À̺¥Æ® ÀÛ¼ºÀ¸·Î °í±ÞÅÇÀÇ ½ºÅ©¸³Æ®·Î ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. # $kts.sec(n) - nÃÊ°¡ Áö³² # $kts.min(n) - nºÐÀÌ Áö³² (n°ªÀÌ 120À̸é 2½Ã°£ÀÌ Áö³²) # $kts.hours(n) - n½Ã°£ÀÌ Áö³² (n°ªÀÌ 48À̸é 2ÀÏÀÌ Áö³²) # $kts.days(n) - nÀÏÀÌ Áö³² (n°ªÀÌ 365¸é 1³âÀÌ Áö³²) # $kts.jump_to_hour(n) - ´ÙÀ½ n½Ã°£À¸·Î Á¡ÇÁ # - (¿¹¸¦ µé¾î¼­ ´ÙÀ½ 21½Ã·Î Á¡ÇÁ¸¦ ÇÏ°Ú´Ù¸é, # - 3¿ù 15ÀÏ 10½ÃÀ϶§ 3¿ù 15ÀÏ 21½Ã·Î Á¡ÇÁ # - 3¿ù 15ÀÏ 23½ÃÀ϶§ 3¿ù 16ÀÏ 21½Ã·Î Á¡ÇÁ # - 3¿ù 15ÀÏ 21½ÃÀ϶§´Â Á¡ÇÁ°¡ ¾ÈµÊ. # - *°°Àº ½Ã°£´ë·Î´Â Á¡ÇÁ°¡ ¾ÈµÇ³×¿© # - Á¡ÇÁ½Ã ¾à°£ÀÇ ¸ØÃã Çö»óÀÌ ÀÖ½À´Ï´Ù. #============================================================================== #============================================================================== #============================================================================== #============================================================================== #============================================================================== #============================================================================== #============================================================================== #============================================================================== module KTS #------------------------------------------------------------------------------ # User Definable Clock Settings #------------------------------------------------------------------------------ #============================================================================== #============================================================================== SPEED = 1000#½Ã°£ ¼Óµµ°ªÀÔ´Ï´Ù. 1Àº Çö½Ç ½Ã°£ ¼Óµµ, ¹è·Î ¿Ã¶ó°¨. #============================================================================== AMPM = true # ¿ÀÀü°ú ¿ÀÈĸ¦ Ç¥½ÃÇÒÁö ¿©ºÎÀÔ´Ï´Ù.true:12½Ã°£Á¦, false:24½Ã°£Á¦. # # ¿ÀÀü, ¿ÀÈÄ´Â 12½Ã°£Á¦, trueÀ϶§ Ç¥½ÃµË´Ï´Ù. START_HOUR = 8 # ½ÃÀÛÇÒ ½Ã°£À» Á¤ÇÕ´Ï´Ù. 0 ~ 23, 24´Â 0À¸·Î ÀÐÀ½. START_DAY = 1 # ½ÃÀÛÇÏ´Â ÀϼöÀÔ´Ï´Ù. 1ÀÏ°, 2ÀÏ° ¿ä·±°Å ¾²½Ç¶§ ÁÁ³×¿© #============================================================================== # °¢ ´ÞÀÇ ¸¶Áö¸·ÀÏÀ» Á¤ÇÕ´Ï´Ù. JAN = 31 FEB =28 MAR = 31 APR = 30 MAY = 31 JUN = 30 JUL = 31 AUG = 31 SEP = 30 OCT = 31 NOV = 30 DEC = 31 #============================================================================== MON1 = JAN MON2 = MON1 + FEB MON3 = MON2 + MAR MON4 = MON3 + APR MON5 = MON4 + MAY MON6 = MON5 + JUN MON7 = MON6 + JUL MON8 = MON7 + AUG MON9 = MON8 + SEP MON10 = MON9 + OCT MON11 = MON10 + NOV YRDY = MON11 + DEC #============================================================================== WKOS = 4 # ½ÃÀÛÇÏ´Â ¿äÀÏÀÇ °ªÀÔ´Ï´Ù. 0Àº ÀÏ¿äÀÏ, 1¿ù¿äÀÏ ~ 6Åä¿äÀÏ STYR =2011 # ½ÃÀÛÇÏ´Â ³âµµÀÇ °ªÀÔ´Ï´Ù. STMON = 10 # ½ÃÀÛÇÏ´Â ¿ùÀÇ °ªÀÔ´Ï´Ù. STDAY = 20 # ½ÃÀÛÇÏ´Â ÀÏÀÇ °ªÀÔ´Ï´Ù. #------------------------------------------------------------------------------ #============================================================================== # °¢ ¿äÀÏÀÇ À̸§À» Á¤ÇÕ´Ï´Ù. DAY_NAMES = ["ÀÏ¿äÀÏ","¿ù¿äÀÏ","È­¿äÀÏ","¼ö¿äÀÏ","¸ñ¿äÀÏ","±Ý¿äÀÏ","Åä¿äÀÏ"] DAY_ABR = ["(ÀÏ)","(¿ù)","(È­)","(¼ö)","(¸ñ)","(±Ý)","(Åä)"] #------------------------------------------------------------------------------ # °¢ ½Ã°£ÀÇ ºÎºÐÀ» Á¤ÇÕ´Ï´Ù. 5´Ü°è°¡ Àֳ׿ä. ¾Æ·¡ Á¤ÇÑ ½Ã°£ÀÌ µÇ¸é »öÁ¶°¡ º¯ÇÕ´Ï´Ù. #------------------------------------------------------------------------------ T1 = [ 0,4 ] # 0½ÃºÎÅÍ 4½Ã±îÁö -136¹ø° ÁÙ¿¡¼­ ´Ü°èº° »öÁ¶¸¦ Á¶Á¤ÇÒ ¼ö ÀÖ¾î¿ä. T2 = [ 5,11] # 5½ÃºÎÅÍ 11½Ã±îÁö T3 = [12,18] # 12½ÃºÎÅÍ 18½Ã±îÁö T4 = [19,22] # 19½ÃºÎÅÍ 22½Ã±îÁö T5 = [23,24] # 23½ÃºÎÅÍ 24½Ã±îÁö #------------------------------------------------------------------------------ #============================================================================== #- #============================================================================== VARIABLES_OUTPUT = true ######### ¾Æ·¡´Â º¯¼ö ¹øÈ£ÀÔ´Ï´Ù. ²À ÀÚ½ÅÀÇ °ÔÀÓ¿¡ ¸Â°Ô º¯°æÇØÁÖ¼¼¿ä!!! ####### TIME = 1 # ½Ã°£À» Ç¥½ÃÇÏ´Â º¯¼ö ¹øÈ£ÀÔ´Ï´Ù. \V[n] À¸·Î Ç¥½Ã °¡´É SECONDS = 6 # ÃÊÀÇ °ªÀ» ¹Þ´Â º¯¼ö ¹øÈ£ÀÔ´Ï´Ù. MINUTES = 5 # ºÐÀÇ °ªÀ» ¹Þ´Â º¯¼ö ¹øÈ£ÀÔ´Ï´Ù. HOURS = 4 # ½ÃÀÇ °ªÀ» ¹Þ´Â º¯¼ö ¹øÈ£ÀÔ´Ï´Ù. START_HOUR ·Î ½ÃÀÛ ½Ã¸¦ º¯°æ °¡´É DAYS = 10 # Áö³­ ÀϼöÀÇ °ªÀ» ¹Þ´Â º¯¼ö ¹øÈ£ÀÔ´Ï´Ù. START_DAY ·Î ½ÃÀÛ Àϼö º¯°æ °¡´É PERIOD = 11 # ½Ã°£ÀÇ 5´Ü°è ºÎºÐ °ªÀ» ¹Þ´Â º¯¼ö ¹øÈ£ÀÔ´Ï´Ù. 1´Ü°è´Â °ªÀÌ 1...5´Ü°è´Â 5 DAYNAME = 3 # ¿ùÈ­¼ö¸ñ±ÝÅäÀÏÀ» Ç¥½ÃÇÏ´Â º¯¼ö ¹øÈ£ÀÔ´Ï´Ù. \V[n] À¸·Î Ç¥½Ã °¡´É CALDAYNAME = 12 # ¿ùÈ­¼ö¸ñ±ÝÅäÀÏÀÇ °ªÀ» ¹Þ´Â º¯¼ö ¹øÈ£ÀÔ´Ï´Ù. WKOS ·Î ½ÃÀÛ ¿äÀÏ º¯°æ °¡´É # #PERIOD¿Í °°ÀÌ ÀÏ¿äÀÏ¿£ °ªÀÌ 0, ¿ù¿äÀÏ¿£ 1...½ÄÀ¸·Î CALENDARDAY = 9 # ÀÏÀÇ °ªÀ» ¹Þ´Â º¯¼ö ¹øÈ£ÀÔ´Ï´Ù. STDAY ·Î ½ÃÀÛ ÀÏ º¯°æ °¡´É CALENDARMONTH = 8 # ¿ùÀÇ °ªÀ» ¹Þ´Â º¯¼ö ¹øÈ£ÀÔ´Ï´Ù. STMON ·Î ½ÃÀÛ ¿ù º¯°æ °¡´É CALENDARYEAR = 7 # ³âµµÀÇ °ªÀ» ¹Þ´Â º¯¼ö ¹øÈ£ÀÔ´Ï´Ù. STYR ·Î ½ÃÀÛ ³âµµ º¯°æ °¡´É DATE = 2 # ³âµµ/¿ù/ÀÏ À» Ç¥½ÃÇÏ´Â º¯¼ö ¹øÈ£ÀÔ´Ï´Ù. \V[n] À¸·Î Ç¥½Ã °¡´É ############################################################################### # #----------------------------------------------------------------------- # USE_TONE = true # FADE_LENGTH = 120 # °¢ ½Ã°£ÀÇ ºÎºÐ¿¡ Á¶Á¤µÇ´Â »öÁ¶ ¼öÄ¡ÀÔ´Ï´Ù. # RED, GREEN, BLUE, GREY C1 = Tone.new(-187, -119, -17, 68) C2 = Tone.new( 17, -51, -102, 0) C3 = Tone.new( 0, 0, 0, 0) C4 = Tone.new( -68, -136, -34, 0) C5 = Tone.new(-187, -119, -17, 68) end #============================================================================== # Core Time System Engine #============================================================================== class Kylock_Time_System # sets instance variables def initialize $kts_map_data = load_data("Data/MapInfos.rvdata") @event_offset = (KTS::START_HOUR * 3600) + (KTS::START_DAY * 86400) $kts_event_tone = false $kts_battle_tone = true end # Computes current time and updates variables if used def update @total_seconds = (Graphics.frame_count * KTS::SPEED / 60) + @event_offset @seconds = (@total_seconds) % 60 @minutes = (@total_seconds / 60) % 60 @hours = (@total_seconds / 3600) % 24 @days = (@total_seconds / 86400) # Calculate past days before game KTS::STDAY - @psday = KTS::STYR*365 + KTS::STDAY - KTS::START_DAY if KTS::STMON == 2 @psday += KTS::MON1 elsif KTS::STMON ==3 @psday += KTS::MON2 elsif KTS::STMON == 4 @psday += KTS::MON3 elsif KTS::STMON == 5 @psday += KTS::MON4 elsif KTS::STMON == 6 @psday += KTS::MON5 elsif KTS::STMON == 7 @psday += KTS::MON6 elsif KTS::STMON == 8 @psday += KTS::MON7 elsif KTS::STMON == 9 @psday += KTS::MON8 elsif KTS::STMON == 10 @psday += KTS::MON9 elsif KTS::STMON == 11 @psday += KTS::MON10 elsif KTS::STMON == 12 @psday += KTS::MON11 else @psday += 0 end # calculate calendar @yearday = @days + @psday @yearday %= KTS::YRDY @calendaryear = @days + @psday - @yearday @calendaryear /= KTS::YRDY if @yearday > KTS::MON11 @calendarmonth = 12 @calendarday = @yearday - KTS::MON11 elsif @yearday > KTS::MON10 @calendarmonth = 11 @calendarday = @yearday - KTS::MON10 elsif @yearday > KTS::MON9 @calendarmonth = 10 @calendarday = @yearday - KTS::MON9 elsif @yearday > KTS::MON8 @calendarmonth = 9 @calendarday = @yearday - KTS::MON8 elsif @yearday > KTS::MON7 @calendarmonth = 8 @calendarday = @yearday - KTS::MON7 elsif @yearday > KTS::MON6 @calendarmonth = 7 @calendarday = @yearday - KTS::MON6 elsif @yearday > KTS::MON5 @calendarmonth = 6 @calendarday = @yearday - KTS::MON5 elsif @yearday > KTS::MON4 @calendarmonth = 5 @calendarday = @yearday - KTS::MON4 elsif @yearday > KTS::MON3 @calendarmonth = 4 @calendarday = @yearday - KTS::MON3 elsif @yearday > KTS::MON2 @calendarmonth = 3 @calendarday = @yearday - KTS::MON2 elsif @yearday > KTS::MON1 @calendarmonth = 2 @calendarday = @yearday - KTS::MON1 else @calendarmonth = 1 @calendarday = @yearday end update_tint if KTS::VARIABLES_OUTPUT $game_variables[KTS::TIME] = getTime $game_variables [KTS::DATE] = getDate $game_variables[KTS::SECONDS] = @seconds $game_variables[KTS::MINUTES] = @minutes $game_variables[KTS::HOURS] = @hours $game_variables[KTS::DAYS] = @days $game_variables[KTS::PERIOD] = @period $game_variables[KTS::DAYNAME] = getDayName $game_variables[KTS::CALENDARDAY] = @calendarday $game_variables[KTS::CALENDARMONTH] = @calendarmonth $game_variables[KTS::CALENDARYEAR] = @calendaryear end end def getTime if KTS::AMPM # Formats a 12-Hour Clock if @hours > 12 hours1 = @hours - 12 if hours1 > 9 time = sprintf("¿ÀÈÄ" + "%02d½Ã %02dºÐ", hours1, @minutes) else time = sprintf("¿ÀÈÄ" + "%01d½Ã %02dºÐ", hours1, @minutes)#"%01d:%02d" + " PM" end else if @hours > 9 time = sprintf("¿ÀÀü" + "%02d½Ã %02dºÐ", @hours, @minutes)#"%02d:%02d" + " AM" else time = sprintf("¿ÀÀü" + "%01d½Ã %02dºÐ", @hours, @minutes)#"%01d:%02d" + " AM" end end return time else # Formats a 24-Hour Clock time = sprintf("%02d½Ã %02dºÐ", @hours, @minutes) return time end end def getDate if @calendaryear >999 date = sprintf("%04d³â %02d/%02d", @calendaryear, @calendarmonth, @calendarday ) elsif @calendaryear >99 date = sprintf("%03d³â %02d/%02d", @calendaryear, @calendarmonth, @calendarday) elsif @calendaryear >9 date = sprintf("%02d³â %02d/%02d", @calendaryear, @calendarmonth, @calendarday) else date = sprintf("%01d³â %02d/%02d", @calendaryear, @calendarmonth, @calendarday) end return date end #----------------------------------------------------------------------- # Script Command Functions #----------------------------------------------------------------------- def stop @time_stopped = @total_seconds end def go @event_offset -= (@total_seconds - @time_stopped) end def sec(sec = 0) @event_offset += sec end def min(min = 0) @event_offset += min * 60 end def hours(hours = 0) @event_offset += hours * 3600 end def days(days = 0) @event_offset += days * 86400 end def jump_to_hour(jhour = 0) while @hours != jhour @event_offset += 1 $kts.update end end #----------------------------------------------------------------------- # Script Support/Misc Functions #----------------------------------------------------------------------- def getDayName weekday = @days + KTS::WKOS - KTS::START_DAY weekday %= KTS::DAY_NAMES.length return KTS::DAY_NAMES[weekday] end def getDayNamespr weekdayspr = @days + KTS::WKOS - KTS::START_DAY weekdayspr %= KTS::DAY_NAMES.length return KTS::DAY_ABR[weekdayspr] end #----------------------------------------------------------------------- # Screen Tone Functions #----------------------------------------------------------------------- def update_tint(duration = KTS::FADE_LENGTH) if KTS::USE_TONE && !$kts_event_tone && $kts_map_data[$game_map.map_id].outside_tint? if @hours >= KTS::T1[0] and @hours <= KTS::T1[1] @period = 1 screen.start_tone_change(KTS::C1,duration) elsif @hours >= KTS::T2[0] and @hours <= KTS::T2[1] @period = 2 screen.start_tone_change(KTS::C2,duration) elsif @hours >= KTS::T3[0] and @hours <= KTS::T3[1] @period = 3 screen.start_tone_change(KTS::C3,duration) elsif @hours >= KTS::T4[0] and @hours <= KTS::T4[1] @period = 4 screen.start_tone_change(KTS::C4,duration) elsif @hours >= KTS::T5[0] and @hours <= KTS::T5[1] @period = 5 screen.start_tone_change(KTS::C5,duration) end else # no tone if indoors if !$kts_map_data[$game_map.map_id].outside_tint? screen.start_tone_change(Tone.new(0,0,0,0),duration) end end end def screen if $game_temp.in_battle return $game_troop.screen else return $game_map.screen end end end #============================================================================== # Instantly updates screen tone when a new map is loaded. #============================================================================== class Game_Map alias kts_setup setup def setup(map_id) kts_setup(map_id) $kts_event_tone = false $kts.update $kts.update_tint(0) end end #============================================================================== # Instantly updates screen tone when a battle starts. #============================================================================== class Spriteset_Battle alias kts_create_battleback create_battleback def create_battleback $kts.update_tint(0) kts_create_battleback end end #============================================================================== # Temporarily disables auto-toning if an event tints the screen. #============================================================================== class Game_Interpreter alias kts_Interpreter_command_223 command_223 def command_223 $kts_event_tone = true kts_Interpreter_command_223 end end #============================================================================== # Integrates the Time System into the Game System. #============================================================================== class Game_System # inits a KTS object alias kts_initialize initialize def initialize $kts=Kylock_Time_System.new kts_initialize end # Updates kts every game frame alias kts_update update def update $kts.update kts_update end end #============================================================================== # Scans Map Names for Toning #============================================================================== class RPG::MapInfo def name # Definition prevents location scripts from reading anything within return @name.gsub(/\[.*\]/) {""} # brackets, including the brackets end def original_name return @name end def outside_tint? return @name.scan(/[\KTS]/).size > 0 end end #============================================================================== # Sets up the time window for the menu. #============================================================================== class Window_KTS < Window_Base def initialize(x, y) super(x, y, 160, WLH + 32) refresh end def refresh self.contents.clear self.contents.draw_text(4, -6, 120, 32, $kts.getTime, 2) end def update super $kts.update self.contents.clear self.contents.draw_text(4, -6, 120, 32, $kts.getTime, 2) end end #============================================================================== # Adds the time window to the menu. #============================================================================== class Scene_Menu < Scene_Base alias kts_start start def start kts_start @kts_window = Window_KTS.new(0,305) end alias kts_terminate terminate def terminate kts_terminate @kts_window.dispose end alias kts_update update def update kts_update @kts_window.update end end #============================================================================== # Saves and Loads game time to/from save game file. #============================================================================== class Scene_File alias kts_write_save_data write_save_data def write_save_data(file) kts_write_save_data(file) Marshal.dump($kts, file) end alias kts_read_save_data read_save_data def read_save_data(file) kts_read_save_data(file) $kts = Marshal.load(file) end end