Ok i think i have everything figured out

I got it almost perfect! except that the items refresh at midnight each night(actually 23:59) other than every 24 hours for each person, which is still pretty good. If i ever figure out how to do it the 24 hour way i'll put it in a future update. While playing around with it i got some more idea's i want to implement which i may work on later. This is probably the last update i'll post in this thread, I'll post future updates in the script submission thread so if a mod wants to lock this topic feel free to do so.
here is the link and here is the script.
CODE
#===============================================================================
# Stealing System
# Author: Maximusmaxy
# Version: 1.0
# Thanks to:
# VValkingman - For requesting it & adding his two cents to the script
# Blizzard - For the Advanced Time and Environment System (ATES)
# Zeriab - For the dialogue system
#===============================================================================
# Version 0.5a 8/9/2011
# Version 0.9 9/9/2011
# Version 0.9.5 10/9/2011
# Version 0.9.6 11/9/2011
# Version 0.9.8a 13/9/2011
# Version 1.0 14/9/2011
#===============================================================================
#
# NOTE: Some of the features have been written to work with Advanced Time and
# Environment System (ATES) by Blizzard and Dialogue System by Zeriab and will
# not work without them.
#
# BIGGER NOTE: MUST be placed under the required scripts as it rewrites some of
# there methods.
#
# ATES can be found at the following link:
# http://forum.chaos-project.com/index.php?topic=710.0
#
# Dialogue System can be found at the following link:
# http://forum.chaos-project.com/index.php/topic,64.0.html
#
#=============================Instructions======================================
#
# Stealing:
# To attempt to steal from an event use the input button specified in the config
#
# Messages:
# To steal from an event you must be facing it's back otherwise the event will
# notice you, or in other words it will activate it's fail message. If the
# steal is successful it will activate the events success message, and the
# item the event is holding will be added to your inventory. Back stealing can
# be turned off in the configuration, so you can steal from any direction.
# After the item is stolen and you try to steal from the event again, it will
# trigger it's unavailable message, unless the item has been refreshed.
# The default messages can be adjusted in the config.
#
# Self Switches:
# Instead of the default messages appearing you can use the self switches and
# use your own custom messages, or other actions. The self switches activated
# by different processes can be adjusted in the config.
#
# The defaults for both messages and self switches can be set up in the config
# below but can be changed by adding to the item initialisation script call:
# Steal.whatever(event,id,amount,MESSAGE,SWITCH)
# see Items for a description of the script call.
#
# Eg. Steal.gold(5,100,200,false,true) Will deactivate the message and only
# activate the events self switch. You can activate both at the same time
# if you wish but this is not recomended for 2 messages at the same time.
#
# Items:
# The items held by the event need to be initialised by using a script call,
# the easiest way to do this is place the call script in a parallel process.
# The call scripts are as follows:
#
# Steal.gold(EVENT,AMOUNT)
# Adds gold to the event
# or
# Steal.gold(EVENT,AMOUNT_MINIMUM,AMOUNT_MAXIMUM)
# Adds random gold to the event
# or
# Steal.gold(EVENT)
# See custom gold stealing for deatails
#
# Steal.item(EVENT,ID,AMOUNT)
# Adds items to the event
#
# Steal.weapon(EVENT,ID,AMOUNT)
# Adds weapons to the event
#
# Steal.armor(EVENT,ID,AMOUNT)
# Adds armor to the event
#
# Steal.nothing(EVENT,MESSAGE,SWITCH)
# Makes the event available to be triggered by stealing from it, useful for
# custom situations using self switches.
#
# EVENT is the event id on the current map
# ID is the id of the item/weapon/armor in the database
# AMOUNT is the amount of the gold/item/weapon/armor the event has
# For gold a random number between AMOUNT_MINIMUM and AMOUNT_MAXIMUM is chosen
# if using the second script call.
# MESSAGE and SWITCH can be added to any of the script calls to add there
# functionality to them eg. Steal.gold(5,-1,-1,false,true) can be used for
# custom gold and self switches will be triggered instead of the messages.
#
# Item Refreshing:
# Using the timer from ATES you are able to refresh the items the event has
# every day. This feature can be enabled/disabled in the configuration. You can
# also manually refresh the item of the event using the call script.
#
# Steal.refresh(EVENT)
# EVENT is the event id on the current map
#
# Leveling:
# The higher your level in thievery, the more gold you recieve from stealing.
# Every time you steal from an event you gain an experience point towards your
# level. The Breaks in the levels can be set up in the config, every time your
# exp is equal to a value in the config, you will level up.
#
# You can also call leveling with the script calls
#
# Steal.exp(AMOUNT)
# adds the AMOUNT to the experience, cannot be negative.
#
# Steal.level(AMOUNT)
# adds the AMOUNT to the level, can be negative for deleveling.
#
# Steal.set_level(LEVEL)
# set level to chosen LEVEL
#
# There are three choices for the amount of gold recieved from leveling up.
#
# ADDITION: a set amount of gold is added per level.
# Eg. with addition of 100g.
# Lvl 1 = 50g, Lvl 2 = 50+100 = 150g, Lvl 3 = 50+200 = 250g ect.
#
# MULTIPLICATION: gold recieved is multiplied by your level
# Eg. Lvl 1 = 50g, Lvl 2 = 50*2 = 100g, Lvl 3 = 50*3 = 150g ect.
#
# CUSTOM: A user selected amount is chosen to be recieved each level
# When using custom make your script call Steal.gold(EVENT)
# It disregards amounts when type is custom.
# Eg. Lvl 1 = 50g to 100g, Lvl 2 = 120g to 180g
#
# Leveling can be enabled/disabled in the config
#
# In-Game Variables:
# In the config you can choose whether you would like game variables to
# represent the stealing level and your current experience, and experience to
# the next level. These can then be used in messages/eventing ect.
# You can also also reference them for scripting using the following variables:
#
# $game_party.steal_level for the level
# $game_party.steal_exp for the experience
# $game_party.steal_next for the experience to next level
#
# Don't adjust these values manually as the other variables will not scale
# accordingly. Use the script calls in Leveling.
#
# Compatabillity:
# This script would be incompatable with other time/clock based systems, and
# is only compatable with ATES. If the key for stealing conflicts with the
# key of another script just change it in the configuration. It may also
# conflict with scripts that deal heavily with events, such as an ABS.
#
#===============================================================================
module Steal
#===============================================================================
# Begin Configuration
#===============================================================================
#Input button to steal
STEAL_KEY = Input::X #Defaults as A key on the keyboard
#default congifuration for messages display/switch activation
MESSAGE = true
SWITCH = false
#Set true to only be able to steal from the back, false for any direction
BACK = true
#Choose what you want your stealing messages to say. MESSAGE must be true for
#them to activate, but this can also be changed in the script call.
SUCCESS_MESSAGE1 = 'You Succesfully Steal:'
SUCCESS_MESSAGE3 = 'Score!'
FAIL_MESSAGE1 = 'I can''t steal from here.'
FAIL_MESSAGE2 = 'They will notice me.'
FAIL_MESSAGE3 = 'I should try again from behind.'
UNAVAILABLE_MESSAGE1 = 'This person doesn''t have anything i can'
UNAVAILABLE_MESSAGE2 = 'steal. I should try again later.'
UNAVAILABLE_MESSAGE3 = ''
#Set the self switches you want to activate by stealing. SWITCH must be true
#for them to activate, but this can also be changed in the script call.
SUCCESS_SWITCH = 'B'
FAIL_SWITCH = 'C'
UNAVAILABLE_SWITCH = 'D'
#Set the breaks for levels here
#Type 0 = set, Every time experience is equal to a level in the
#STEAL_LEVEL you will level up eg. level 2 = 5exp , level 3 = 10exp
#Type 1 = addition, Level breaks will be added consecutively
#eg. level 2 = 5 exp , level 3 = 5+10 = 15exp, level 4 = 15+20 = 35exp
LEVELING = true #true if leveling is allowed, false if not
BREAK_TYPE = 1 #Set = 0, Addition = 1
STEAL_LEVEL = [0,5,10,20,35,50,75,100,140,200] #0 must be first value
#Set the gold gain leveling type
LEVEL_TYPE = 2 #Addition = 0, Multiplication = 1, Custom = 2
ADDITION = 100 #the amount for addition
#set the amount of gold recieved per level for custom leveling
#The amount of levels must equal the amount of level breaks otherwise it
#will not work.
CUSTOM = [ #These amounts will only apply to custom leveling
[50,105], #level 1
[125,255], #level 2
[283,334], #level 3
[350,465], #level 4
[550,664], #level 5
[680,763], #level 6
[794,875], #level 7
[896,954], #level 8
[990,1050], #level 9
[1070,1250] #level 10
]
#set whether or not you want the exp/level/next as in-game variables and which
LEVEL_USE = true
EXP_USE = true
NEXT_USE = true
LEVEL_VARIABLE = 1
EXP_VARIABLE = 2
NEXT_VARIABLE = 3
#choose whether or not you want to enable item refreshing after each day.
#Requires ATES
REFRESH_ENABLE = true
#===============================================================================
# End Configuration
#===============================================================================
#Config error handling
if LEVELING && LEVEL_TYPE == 2 && CUSTOM.size != STEAL_LEVEL.size
raise 'The amount of levels must be equal in both CUSTOM and STEAL_LEVEL for custom gold gain'
end
if LEVELING && STEAL_LEVEL[0] != 0
raise 'first variable in STEAL_LEVEL must be 0'
end
def self.do
#return if there is no event in front of you
return if $game_map.front == nil
#id is the event in front of you
id = $game_map.front
#return if that event has no item
return if $game_map.events[id].steal_item == 0
#don't turn toward the player
$game_map.events[id].direction = $game_map.events[id].old_direction
#If item is stolen or not refreshed
if $game_map.stolen[id] #Unavailable
#play cancel sound effect
$game_system.se_play($data_system.cancel_se)
#show fail text if message is true
self.steal_unavailable(id) if $game_map.events[id].steal_message
#activate switch if switch is true
self.switch(id,UNAVAILABLE_SWITCH) if $game_map.events[id].steal_switch
elsif ($game_player.direction == $game_map.events[id].old_direction &&
BACK) || !BACK #Success
#steal from that event
$game_map.events[id].steal
#update the variables
$game_party.update
#print steal message if message is true
self.steal_success(id) if $game_map.events[id].steal_message
#activate switch if switch is true
self.switch(id,SUCCESS_SWITCH) if $game_map.events[id].steal_switch
else#Fail
#play cancel sound effect
$game_system.se_play($data_system.cancel_se)
#show fail text if message is true
self.steal_fail(id) if $game_map.events[id].steal_message
#activate the switch if switch is true
self.switch(id,FAIL_SWITCH) if $game_map.events[id].steal_switch
end
end
def self.switch(id,switch)
key = [$game_map.map_id,id,switch]
#activate the switch
$game_self_switches[key] = true
#refresh the map
$game_map.need_refresh = true
end
def self.steal_success(id)
#case for type
case $game_map.events[id].steal_item[0]
when 0 #Gold
type = $data_system.words.gold.to_s
when 1 #Item
type = $data_items[$game_map.events[id].steal_item[1]].name
when 2 #Weapon
type = $data_weapons[$game_map.events[id].steal_item[1]].name
when 3 #Armor
type = $data_armors[$game_map.events[id].steal_item[1]].name
when 4 #Nothing
type = ''
end
#plural check
s = ($game_map.events[id].steal_item[2] == 1 ? "" : "s")
s = "" if $game_map.events[id].steal_item[0] == 0 ||
$game_map.events[id].steal_item[0] == 4
#if type is gold
if $game_map.events[id].steal_item[0] == 0
#display gold amount
amount = $game_map.events[id].gold.to_s
elsif $game_map.events[id].steal_item[0] == 4
#display nothing
amount = 'Nothing!'
else
#display normal amount
amount = $game_map.events[id].steal_item[2].to_s
end
#show success text
a = SUCCESS_MESSAGE1
b = amount + " " + type + s
c = SUCCESS_MESSAGE3
Dialog_Steal.show(a,b,c,true)
end
def self.steal_fail(id)
#show the fail message
a = FAIL_MESSAGE1
b = FAIL_MESSAGE2
c = FAIL_MESSAGE3
Dialog_Steal.show(a,b,c,false)
end
def self.steal_unavailable(id)
#show the unavailable message
a = UNAVAILABLE_MESSAGE1
b = UNAVAILABLE_MESSAGE2
c = UNAVAILABLE_MESSAGE3
Dialog_Steal.show(a,b,c,false)
end
#Set the steal item of the event to [type,id,amount]
#type 0 = gold, 1 = item, 2 = weapon, 3 = armor
#id = id in the database
#amount/min/max = amount of that item stolen
def self.gold(event,amount_min = -1,amount_max = -1,message = MESSAGE,switch = SWITCH)
$game_map.events[event].steal_item = [0,amount_min,amount_max]
$game_map.events[event].steal_message = message
$game_map.events[event].steal_switch = switch
end
def self.item(event,id,amount,message = MESSAGE,switch = SWITCH)
$game_map.events[event].steal_item = [1,id,amount]
$game_map.events[event].steal_message = message
$game_map.events[event].steal_switch = switch
end
def self.weapon(event,id,amount,message = MESSAGE,switch = SWITCH)
$game_map.events[event].steal_item = [2,id,amount]
$game_map.events[event].steal_message = message
$game_map.events[event].steal_switch = switch
end
def self.armor(event,id,amount,message = MESSAGE,switch = SWITCH)
$game_map.events[event].steal_item = [3,id,amount]
$game_map.events[event].steal_message = message
$game_map.events[event].steal_switch = switch
end
def self.nothing(event,message = MESSAGE,switch = SWITCH)
$game_map.events[event].steal_item = [4,-1,-1]
$game_map.events[event].steal_message = message
$game_map.events[event].steal_switch = switch
end
#refresh the events item
def self.refresh(event)
$game_map.stolen[event] = false
end
def self.exp(exp)
return if exp < 0
for i in 0...exp
#increment the experience and update to check if leveling
$game_party.steal_exp += 1
#update the variables
$game_party.update
end
end
def self.level(level)
#add the level
$game_party.steal_level += level
#if level is greater then the maximum level
if $game_party.steal_level > (STEAL_LEVEL.size)
#set the level to maximum level
$game_party.steal_level = (STEAL_LEVEL.size)
end
#if level is less then minimum level
if $game_party.steal_level < 1
#set level to minimum level
$game_party.steal_level = 1
end
#adjust other variables accordingly
$game_party.steal_exp = $game_party.level_array[$game_party.steal_level - 1]
$game_party.steal_leveled = true
$game_party.steal_flag = $game_player.steal_exp
#update the variables
$game_party.update
end
def self.set_level(level)
#set the level
$game_party.steal_level = level
#if level is greater then the maximum level
if $game_party.steal_level > (STEAL_LEVEL.size)
#set the level to maximum level
$game_party.steal_level = (STEAL_LEVEL.size)
end
#if level is less then minimum level
if $game_party.steal_level < 1
#set level to minimum level
$game_party.steal_level = 1
end
#adjust other variables accordingly
$game_party.steal_exp = $game_party.level_array[$game_party.steal_level - 1]
$game_party.steal_leveled = true
$game_party.steal_flag = $game_party.steal_exp
#update the variables
$game_party.update
end
end
#===============================================================================
# Game_Event
#===============================================================================
class Game_Event < Game_Character
attr_accessor :steal_item
attr_accessor :direction
attr_accessor :old_direction
attr_accessor :gold
attr_accessor :steal_message
attr_accessor :steal_switch
alias max_steal_initialize_later initialize
alias max_steal_update_later update
def initialize( *args )
max_steal_initialize_later( *args )
#add the stealing variables to the event
@steal_item = 0
@old_direction = 2
@gold = 0
@steal_message = Steal::MESSAGE
@steal_switch = Steal::SWITCH
end
def steal
#if the event has an item that isn't stolen
if @steal_item != 0 && !$game_map.stolen[id]
#case for the type
case @steal_item[0]
when 0 #gold
#if type is custom
if Steal::LEVEL_TYPE == 2 #custom gold
x = Steal::CUSTOM[$game_party.steal_level - 1][0]
y = Steal::CUSTOM[$game_party.steal_level - 1][1]
@gold = x + rand(y - x)
#if no maximum specified
elsif @steal_item[2] == -1 #normal gold
@gold = @steal_item[1]
else #random gold
@gold = @steal_item[1] + rand(@steal_item[2] - @steal_item[1])
end
case Steal::LEVEL_TYPE
when 0 #Addition
$game_party.gain_gold(@gold +
(Steal::ADDITION * ($game_player.steal_level-1)))
when 1 #Multiplication
$game_party.gain_gold(@gold * $game_player.steal_level)
when 2 #Custom
$game_party.gain_gold(@gold)
end
when 1 #item
#add item id, amount
$game_party.gain_item(@steal_item[1],@steal_item[2])
when 2 #weapon
#add weapon id, amount
$game_party.gain_weapon(@steal_item[1],@steal_item[2])
when 3 #armor
#add armor id, amount
$game_party.gain_armor(@steal_item[1],@steal_item[2])
end
#activate the stolen variable if not nothing
$game_map.stolen[@id] = true if @steal_item[0] != 4
#increment steal experience if not nothing
$game_party.steal_exp += 1 if @steal_item[0] != 4
end
end
def update
max_steal_update_later
#update the old direction variable
@old_direction = @direction
end
end
#===============================================================================
# Game_Party
#===============================================================================
class Game_Party
attr_accessor :steal_level
attr_accessor :steal_exp
attr_accessor :steal_leveled
attr_accessor :steal_flag
attr_accessor :steal_next
attr_reader :level_array
alias max_steal_initialize_later initialize
def initialize
@steal_level = 1
@steal_exp = 0
@steal_leveled = true
@steal_flag = 0
@level_array = []
#if break type is addition
if Steal::BREAK_TYPE == 1
x = 0
for i in 0...Steal::STEAL_LEVEL.size
x += Steal::STEAL_LEVEL[i]
@level_array[i] = x
end
else #if break type is set
@level_array = Steal::STEAL_LEVEL
end
@steal_next = @level_array[@steal_level] - @steal_exp
$game_variables[Steal::LEVEL_VARIABLE] = @steal_level if Steal::LEVEL_USE
$game_variables[Steal::EXP_VARIABLE] = @steal_exp if Steal::EXP_USE
$game_variables[Steal::NEXT_VARIABLE] = @steal_next if Steal::NEXT_USE
max_steal_initialize_later
end
def update
#only level if allowed
if Steal::LEVELING
#if you recieve experience, allow leveling
if @steal_flag != @steal_exp
@steal_leveled = false
end
#level up when level is equal to a value in STEAL_LEVEL
if @level_array.include?(@steal_exp) && !@steal_leveled
#play leveling sound effect
$game_system.se_play($data_system.shop_se)
#level up
@steal_level += 1
@steal_leveled = true
@steal_flag = @steal_exp
else
#play normal sound effect
$game_system.se_play($data_system.decision_se)
end
#if at last level
if @steal_level == (@level_array.size)
@steal_next = nil
else #update the exp to next level variable
@steal_next = (@level_array[@steal_level] - @steal_exp)
end
end
#If experience variable is used
if Steal::EXP_USE
#update the experience variable
$game_variables[Steal::EXP_VARIABLE] = @steal_exp
end
#If level variable is used
if Steal::LEVEL_USE
#update the level variable
$game_variables[Steal::LEVEL_VARIABLE] = @steal_level
end
#If exp to next level variable is used
if Steal::NEXT_USE
#update the exp to next level variable
$game_variables[Steal::NEXT_VARIABLE] = @steal_next
end
end
end
#===============================================================================
# Game_Player
#===============================================================================
class Game_Player < Game_Character
alias max_steal_update_later update
def update
max_steal_update_later
#If not moving
unless moving?
#If Steal button was pressed
if Input.trigger?(Steal::STEAL_KEY)
#Steal from the event in front of you
Steal.do
end
end
end
end
#===============================================================================
# Game_Map
#===============================================================================
class Game_Map
attr_accessor :stolen
attr_accessor :stolen_min
attr_accessor :stolen_hour
alias max_steal_initialize_later initialize
alias max_steal_update_later update
def initialize
max_steal_initialize_later
#create arrays for storing stolen data from events
@stolen = []
end
#return the event id of the event in front of you
def front
#direction of the player
d = $game_player.direction
#coords of the space in front of you
x = $game_player.x + (d == 6 ? 1 : d == 4 ? -1 : 0)
y = $game_player.y + (d == 2 ? 1 : d == 8 ? -1 : 0)
#id of the event
id = check_event(x,y)
#return nil if there is no event there
return nil if id.instance_of?(Array)
#return the event id
return id
end
def update
max_steal_update_later
#if map needs reset
if $game_system.stolen_maps[@map_id] == 2
#reset stolen variables
$game_map.stolen = [nil]
$game_system.stolen_maps[@map_id] = 0
end
end
end
#===============================================================================
# Games_System
#===============================================================================
class Game_System
attr_accessor :stolen_maps
alias max_steal_initialize_later initialize
alias max_steal_update_later update
def initialize
max_steal_initialize_later
#0 = no reset, 1 = stolen from, 2 = need reset
@stolen_maps = []
@stolen_maps[1] = 1
end
def update
#if ates is right version and refresh is enabled
if $ates >= 0.4 && Steal::REFRESH_ENABLE
for i in 0..$game_system.stolen_maps.size
#check if ates time is midnight and a map is stolen from
if $game_system.ates.time.hour == 23 &&
$game_system.ates.time.min == 59 &&
$game_system.stolen_maps[i] == 1
#reset stolen variables
$game_system.stolen_maps[i] = 2
end
end
end
max_steal_update_later
end
end
#===============================================================================
# Interpreter
#===============================================================================
class Interpreter
alias max_command_201_later command_201
def command_201
max_command_201_later
if @parameters[0] == 0
#add the map to the stolen maps
$game_system.stolen_maps[@map_id] = @parameters[1]
else
#add the map to the stolen maps
$game_system.stolen_maps[@map_id] = $game_variables[@parameters[1]]
end
end
end
#===============================================================================
# Window_Stealing
#===============================================================================
#Main window for stealing
class Window_Stealing < Window_Base
def initialize
super(120, 300, 400, 128)
self.contents = Bitmap.new(width - 32, height - 32)
self.opacity = 200
end
end
#===============================================================================
# Dialog_steal
# Uses the Dialog System as a framework of printing the stealing messages.
#===============================================================================
class Dialog_Steal < Dialog
def initialize(text1,text2,text3,level = false)
#lines of text
@text1 = text1
@text2 = text2
@text3 = text3
#level window?
@level = level
end
def main_window
#create array for storing disposable windows
@disposables = []
#main text window
@window1 = Window_Stealing.new
#draw the lines of text
@window1.contents.draw_text(0,0,480,32,@text1)
@window1.contents.draw_text(0,32,480,32,@text2)
@window1.contents.draw_text(0,64,480,32,@text3)
@window1.z = STARTING_Z_VALUE + 1
#add to disposables
@disposables << @window1
#if steal is successful show the exp/level bar
if @level && Steal::LEVELING
@window2 = Window_Help.new
#if level is at max print MAX as the next experience
@window2.set_text("Steal Level: #{$game_party.steal_level}" +
' '*15 + 'Experience to next level: ' +
($game_party.steal_next == nil ? 'MAX' : "#{$game_party.steal_next}"), 0)
@window2.z = STARTING_Z_VALUE + 1
#add to disposables
@disposables << @window2
end
end
def main_dispose
#dispose of all windows
@disposables.each {|element| element.dispose}
end
def update
#if pressing B/C/Steal key, exit the window
if Input.trigger?(Input::B) || Input.trigger?(Input::C) ||
Input.trigger?(Steal::STEAL_KEY)
mark_to_close
end
end
end
#===============================================================================
# ATES Modification
# Modified to update the map every minute to create a realistic time advancement
# Time now always progresses forward from script calls instead of back and forth
#===============================================================================
module ATES
def self.advance(m = 1, h = 0)
#if ates doesn't exist or wrong version
if $ates == nil || $ates < 0.4
raise 'you need ATES v0.4 or higher to use this method'
end
return false if m < 0 || h < 0
#create a variable
hour = $game_system.ates.time.hour
min = $game_system.ates.time.min
#loop for the hours
for i in 0..h
#if not the last hour, use 60 minutes
new_m = (i == h ? m : 60)
#loop for the new minutes
for j in 0..new_m
#create a new variable for the loop
new_hour = (hour + i) % 24
new_min = min + j
#increase hour and reset if min = 60
new_hour += 1 if new_min > 59
new_hour = 0 if new_hour == 24
#modulus the minute
new_min %= 60
#update the actual hour/minute
$game_system.ates.time.hour = new_hour
$game_system.ates.time.min = new_min
#update the map and system
$game_map.update
$game_system.update
end
end
return true
end
def self.make_it_day
#increase minutes to 60 (or 0)
min = 60 - $game_system.ates.time.min
#increase hour to day start
hour = DAY_START - $game_system.ates.time.hour - 1
#subtract from 24 if negative
hour += 24 if hour < 0
#advance to day start
ATES.advance(min,hour)
return true
end
def self.make_it_night
#increase minutes to 60 (or 0)
min = 60 - $game_system.ates.time.min
#increase hour to night start
hour = NIGHT_START - $game_system.ates.time.hour - 1
#subtract from 24 if negative
hour += 24 if hour < 0
#advance to night start
ATES.advance(min,hour)
return true
end
end