HyperLimited
Member
I'm using this script for my game.
I just have 2 questions:
1. How can I set specific, advance, or subtract dates and times in the game using the call script command from this this script? I have no idea what line I'm supposed to use.
2. How can I adjust the color tones during the day/night shifts so that it has more of a dark blue tone at night?
I'd really appreciate any help. Manually tinkering with scripts isn't my thing. ':|
Code:
#=======================================#
# class Game_Title #
# Written by Deke
# Rewiten by Near Fantastica
#=======================================#
class Game_Time
attr_accessor :minute_length
def initialize
@minute_length= 1#0.325 #length of game minute in real seconds
@hour_length= 60.0 #minute in an hour
@day_length= 24.0 #hours in a day
@month_length=30.0 #days in a month
@year_length=12.0 #months in a year
@minutes=0 #starting minute count
start_minute=0
add_minutes(start_minute)
start_hour=12 #starting hour count
add_hours(start_hour)
start_day=1 #starting day count
add_days(start_day)
start_month=8 #starting month count
add_months(start_month-1)
start_year= 2735 #starting year count
add_years(start_year)
end
def add_minutes(minutes)
@minutes +=minutes
end
def add_hours(hours)
@minutes +=hours*@hour_length
end
def add_days(days)
@minutes += days*@hour_length*@day_length
end
def add_months(months)
@minutes +=months * @hour_length*@day_length*@month_length
end
def add_years(years)
@minutes += years * @hour_length*@day_length*@month_length * @year_length
end
def get_year
minutes=get_total_minutes
year=minutes / @hour_length / @day_length / @month_length / @year_length
return year
end
def get_month
minutes=get_total_minutes
month=minutes / @hour_length / @day_length / @month_length % @year_length + 1
return month
end
def get_day
minutes=get_total_minutes
day=minutes / @hour_length / @day_length % @month_length
return day
end
def get_hour
minutes=get_total_minutes
hour=minutes / @hour_length % @day_length
return hour
end
def get_total_minutes
total_sec=Graphics.frame_count / Graphics.frame_rate
minute=(total_sec/@minute_length+@minutes)
return minute
end
def get_minute
minutes=get_total_minutes % @hour_length
return minutes
end
def get_tone
period_length=Math::PI*(get_hour / @day_length)
red_shift= -100+ 115*Math.sin(period_length)
green_shift= -140+ 155*Math.sin(period_length)
blue_shift= -150+ 165*Math.sin(period_length)
return Tone.new(red_shift, green_shift, blue_shift, 0)
end
end # of class Game_Time
#=======================================#
# â– class Window_Time
# written by Deke
#=======================================#
class Window_Time < Window_Base
#--------------------------------------------------------------------------
def initialize
super(0, 0, 160, 96)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $defaultfonttype
self.contents.font.size = $defaultfontsize
refresh
end
#--------------------------------------------------------------------------
def refresh
self.contents.clear
@total_sec = Graphics.frame_count / Graphics.frame_rate
@minute=$game_time.get_minute.floor
hour = $game_time.get_hour
pm_flag= hour >=12 ? true : false
hour= hour >= 12 ? hour-12 : hour
day=$game_time.get_day
month=$game_time.get_month
year=$game_time.get_year
if hour.floor==0
text=sprintf("%02d:%02d",12,@minute)
else
text=sprintf("%02d:%02d",hour,@minute)
end
if pm_flag
text += " PM"
else
text += " AM"
end
self.contents.font.color = normal_color
self.contents.draw_text(4, 0, 120, 32, text, 2)
text = sprintf("%02d-%02d-%02d", month, day, year)
self.contents.font.color=system_color
self.contents.draw_text(4,32,120,32,text)
end
#--------------------------------------------------------------------------
def update
if $game_time.get_minute.floor != @minute
refresh
end
end
end # of class
#=======================================
class Game_Temp
#--------------------------------------------------------------------------
# â— Refer setup to Game Temp
#--------------------------------------------------------------------------
alias dns_game_temp_initalize initialize
#--------------------------------------------------------------------------
# â— Refer the Attr
#--------------------------------------------------------------------------
attr_reader :map_infos #Added Lines
attr_reader :outside_array #Added Lines
#--------------------------------------------------------------------------
# â— Refer setup to Scene Map
#--------------------------------------------------------------------------
def initialize
dns_game_temp_initalize
@outside_array = Array.new
@map_infos = load_data("Data/MapInfos.rxdata")
for key in @map_infos.keys
@outside_array[key] = @map_infos[key].name.include?(" -")
end
end
end
#=======================================
class Scene_Map
#--------------------------------------------------------------------------
# â— Refer setup to Scene Map
#--------------------------------------------------------------------------
alias dns_scene_map_main main
alias dns_scene_map_update update
#--------------------------------------------------------------------------
# â— Main
#--------------------------------------------------------------------------
def main
if $game_temp.outside_array[$game_map.map_id]
tone=$game_time.get_tone
@minute=$game_time.get_minute.floor
$game_screen.start_tone_change(tone, 0)
end
@spriteset = Spriteset_Map.new
@message_window = Window_Message.new
Graphics.transition
loop do
$light_effects.refresh
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@spriteset.dispose
@message_window.dispose
if $scene.is_a?(Scene_Title)
Graphics.transition
Graphics.freeze
end
$light_effects.hide
end
#--------------------------------------------------------------------------
# â— Update
#--------------------------------------------------------------------------
def update
$light_effects.update
conditional1 =$game_temp.outside_array[$game_map.map_id] and $game_time.get_minute.floor != @minute
conditional2 =$game_temp.outside_array[$game_map.map_id] and @current_id != $game_map.map_id
if conditional1 or conditional2
tone=$game_time.get_tone
$game_screen.start_tone_change(tone, 0)
@minute = $game_time.get_minute.floor
$game_map.need_refresh=true
@current_id=$game_map.map_id
end
if $game_temp.outside_array[$game_map.map_id] == false and @current_id != $game_map.map_id
$game_screen.start_tone_change(Tone.new(0,0,0,0),0)
@current_id=$game_map.map_id
end
dns_scene_map_update
end
end
#======================================================
class Scene_Title
#--------------------------------------------------------------------------
# â— Refer setup to Scene Map
#--------------------------------------------------------------------------
alias dns_scene_title_update update
#--------------------------------------------------------------------------
# â— Refer setup to Scene Map
#--------------------------------------------------------------------------
def update
$game_time=Game_Time.new
#Dubealex Addition (from XRXS) to show Map Name on screen
dns_scene_title_update
end
end
#========================================================
class Scene_Load
def read_save_data(file)
characters = Marshal.load(file)
Graphics.frame_count = Marshal.load(file)
$game_system = Marshal.load(file)
$game_switches = Marshal.load(file)
$game_variables = Marshal.load(file)
$game_self_switches = Marshal.load(file)
$game_screen = Marshal.load(file)
$game_actors = Marshal.load(file)
$game_party = Marshal.load(file)
$game_troop = Marshal.load(file)
$game_map = Marshal.load(file)
$game_player = Marshal.load(file)
# $game_time = Marshal.load(file) #Added Line
if $game_system.magic_number != $data_system.magic_number
$game_map.setup($game_map.map_id)
$game_player.center($game_player.x, $game_player.y)
end
$game_party.refresh
end
end # of Scene_Load updates
#=======================================================
class Scene_Save
def write_save_data(file)
characters = []
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
characters.push([actor.character_name, actor.character_hue])
end
Marshal.dump(characters, file)
Marshal.dump(Graphics.frame_count, file)
$game_system.save_count += 1
$game_system.magic_number = $data_system.magic_number
Marshal.dump($game_system, file)
Marshal.dump($game_switches, file)
Marshal.dump($game_variables, file)
Marshal.dump($game_self_switches, file)
Marshal.dump($game_screen, file)
Marshal.dump($game_actors, file)
Marshal.dump($game_party, file)
Marshal.dump($game_troop, file)
Marshal.dump($game_map, file)
Marshal.dump($game_player, file)
Marshal.dump($game_time,file) # Added Line
end
end # of Scene_Save updates
#========================================================
class Game_Map
#--------------------------------------------------------------------------
# â— Refer the attr
#--------------------------------------------------------------------------
attr_reader :outside
attr_reader :map_id
#--------------------------------------------------------------------------
# â— Outside
#--------------------------------------------------------------------------
def outside
return $game_temp.outside_array[@map_id]
end
end
#==============================================================================
# â– Light Effect System
#------------------------------------------------------------------------------
#  By: Near Fantastica
# Date: 13/2/05
#
# Addes light Effects to the DNS so objects glow and have ground effect lighting...
#==============================================================================
class Light_Effect_System
#--------------------------------------------------------------------------
# â— Refer the attr
#--------------------------------------------------------------------------
attr_accessor :picture_le
attr_accessor :event_list
attr_accessor :type_list
#--------------------------------------------------------------------------
# â— Initialization
#--------------------------------------------------------------------------
def initialize
@event_counter = 0
@picture_le = Array.new
@event_list = Array.new
@type_list = Array.new
end
#--------------------------------------------------------------------------
# â— Setup Light Effects on Map Change
#--------------------------------------------------------------------------
def setup
# Setup Event Max
@event_counter = 0
for i in 1..999
if $game_map.map.events[i].id > @event_counter
@event_counter = $game_map.map.events[i].id
end
end
#
for i in 1..@event_counter
if $game_map.map.events[i] == nil
next
end
case $game_map.map.events[i].name
when "Ground"
ground(i)
when "Fire"
fire(i)
when "Lamp Post"
lamp(i)
when "Left Lantern"
left_lantern(i)
when "Right Lantern"
right_lantern(i)
end
end
end
#--------------------------------------------------------------------------
# â— Updates the Array based on time of day
#--------------------------------------------------------------------------
def update
if $game_time.get_hour > 7 and $game_time.get_hour < 14
hide
else
show
end
end
#--------------------------------------------------------------------------
# â— Updates the XY of the sprites
#--------------------------------------------------------------------------
def refresh
for i in 0..$light_effects.picture_le.size - 1
case $light_effects.type_list[i]
when "Ground"
$light_effects.picture_le[i].x = ($game_map.events[$light_effects.event_list[i]].real_x - 200 - $game_map.display_x) / 4
$light_effects.picture_le[i].y = ($game_map.events[$light_effects.event_list[i]].real_y - 200 - $game_map.display_y) / 4
$light_effects.picture_le[i].visible = true
when "Fire"
$light_effects.picture_le[i].x = ($game_map.events[$light_effects.event_list[i]].real_x - 300 - $game_map.display_x) / 4
$light_effects.picture_le[i].y = ($game_map.events[$light_effects.event_list[i]].real_y - 300 - $game_map.display_y) / 4
$light_effects.picture_le[i].visible = true
when "Left Lamp Post"
$light_effects.picture_le[i].x = (-0.25 * $game_map.display_x) + ($game_map.events[$light_effects.event_list[i]].x * 32) - 5
$light_effects.picture_le[i].y = (-0.25 * $game_map.display_y) + ($game_map.events[$light_effects.event_list[i]].y * 32) - 15
when "Right Lamp Post"
$light_effects.picture_le[i].x = (-0.25 * $game_map.display_x) + ($game_map.events[$light_effects.event_list[i]].x * 32) - 25
$light_effects.picture_le[i].y = (-0.25 * $game_map.display_y) + ($game_map.events[$light_effects.event_list[i]].y * 32) - 15
$light_effects.picture_le[i].visible = true
when "Left Lantern"
$light_effects.picture_le[i].x = (-0.25 * $game_map.display_x) + ($game_map.events[$light_effects.event_list[i]].x * 32) - 20
$light_effects.picture_le[i].y = (-0.25 * $game_map.display_y) + ($game_map.events[$light_effects.event_list[i]].y * 32) - 5
$light_effects.picture_le[i].visible = true
when "Right Lantern"
$light_effects.picture_le[i].x = (-0.25 * $game_map.display_x) + ($game_map.events[$light_effects.event_list[i]].x * 32) - 10
$light_effects.picture_le[i].y = (-0.25 * $game_map.display_y) + ($game_map.events[$light_effects.event_list[i]].y * 32) - 5
$light_effects.picture_le[i].visible = true
end
end
end
#--------------------------------------------------------------------------
# â— Redraws the Array
#--------------------------------------------------------------------------
def redraw
if @picture_le != []
for i in 0..@picture_le.size - 1
@picture_le[i].bitmap.dispose
end
@picture_le = Array.new
@event_list = Array.new
@type_list = Array.new
end
end
#--------------------------------------------------------------------------
# â— Shows Array
#--------------------------------------------------------------------------
def show
if @picture_le != []
for i in 0..@picture_le.size - 1
@picture_le[i].visible = true
end
end
end
#--------------------------------------------------------------------------
# â— Hides Array
#--------------------------------------------------------------------------
def hide
if @picture_le != []
for i in 0..@picture_le.size - 1
@picture_le[i].visible = false
end
end
end
#--------------------------------------------------------------------------
# â— Setup Light Effects for Ground
#--------------------------------------------------------------------------
def ground(event_index)
light_effects = Sprite.new
light_effects.bitmap = RPG::Cache.picture("LE.PNG")
light_effects.zoom_x = 200 / 100.0
light_effects.zoom_y = 200 / 100.0
light_effects.z = 1000
light_effects.opacity = 50
light_effects.visible = false
@picture_le.push(light_effects)
@event_list.push(event_index)
@type_list.push("Ground")
end
#--------------------------------------------------------------------------
# â— Setup Light Effects for Fire
#--------------------------------------------------------------------------
def fire(event_index)
light_effects = Sprite.new
light_effects.bitmap = RPG::Cache.picture("LE.PNG")
light_effects.zoom_x = 300 / 100.0
light_effects.zoom_y = 300 / 100.0
light_effects.z = 1000
light_effects.opacity = 100
light_effects.visible = false
@picture_le.push(light_effects)
@event_list.push(event_index)
@type_list.push("Fire")
end
#--------------------------------------------------------------------------
# â— Setup Light Effects for Lamp
#--------------------------------------------------------------------------
def lamp(event_index)
light_effects = Sprite.new
light_effects.bitmap = RPG::Cache.picture("LE.PNG")
light_effects.z = 1000
light_effects.opacity = 100
light_effects.visible = false
@picture_le.push(light_effects)
@event_list.push(event_index)
@type_list.push("Left Lamp Post")
light_effects = Sprite.new
light_effects.bitmap = RPG::Cache.picture("LE.PNG")
light_effects.z = 1000
light_effects.opacity = 100
light_effects.visible = false
@picture_le.push(light_effects)
@event_list.push(event_index)
@type_list.push("Right Lamp Post")
end
#--------------------------------------------------------------------------
# â— Setup Light Effects for Lantern
#--------------------------------------------------------------------------
def left_lantern(event_index)
light_effects = Sprite.new
light_effects.bitmap = RPG::Cache.picture("LE.PNG")
light_effects.z = 1000
light_effects.opacity = 150
light_effects.visible = false
@picture_le.push(light_effects)
@event_list.push(event_index)
@type_list.push("Left Lantern")
end
#--------------------------------------------------------------------------
# â— Setup Light Effects for Lantern
#--------------------------------------------------------------------------
def right_lantern(event_index)
light_effects = Sprite.new
light_effects.bitmap = RPG::Cache.picture("LE.PNG")
light_effects.z = 1000
light_effects.opacity = 150
light_effects.visible = false
@picture_le.push(light_effects)
@event_list.push(event_index)
@type_list.push("Right Lantern")
end
end
#==============================================================================
# â– Game_Map
#------------------------------------------------------------------------------
#  Add defenision of the names to Game Map Class
#==============================================================================
class Game_Map
#--------------------------------------------------------------------------
# â— Refer the attr
#--------------------------------------------------------------------------
attr_accessor :map
#--------------------------------------------------------------------------
# â— Refer setup to Game Map
#--------------------------------------------------------------------------
alias les_game_map_setup setup
#--------------------------------------------------------------------------
# â— Refers the Map Setup
#--------------------------------------------------------------------------
def setup(map_id)
$light_effects.redraw
les_game_map_setup(map_id)
$light_effects.setup
end
end
#==============================================================================
# â– Scene_Title
#------------------------------------------------------------------------------
#  It is the class which processes the title picture
#==============================================================================
class Scene_Title
#--------------------------------------------------------------------------
# â— Refer setup to Scene Title
#--------------------------------------------------------------------------
alias les_scene_title_update update
#--------------------------------------------------------------------------
# â— Sets up the ABS
#--------------------------------------------------------------------------
def update
$light_effects = Light_Effect_System.new
les_scene_title_update
end
end
I just have 2 questions:
1. How can I set specific, advance, or subtract dates and times in the game using the call script command from this this script? I have no idea what line I'm supposed to use.
2. How can I adjust the color tones during the day/night shifts so that it has more of a dark blue tone at night?
I'd really appreciate any help. Manually tinkering with scripts isn't my thing. ':|