fix issue with map renderer after battles ( commit 2c65a9de7d )

This commit is contained in:
infinitefusion
2022-06-03 15:38:38 -04:00
parent cc200ac0ed
commit 6ecdd9575f
10 changed files with 503 additions and 509 deletions

View File

@@ -330,7 +330,7 @@ module Settings
POKE_RADAR_ENCOUNTERS = [
[78, 30, :FLETCHLING,2,5], #Rt. 1
[86, 30, :FLETCHLING,2,5], #Rt. 2
[90, 30, :FLETCHLING,2,5], #Rt. 2
[90, 30, :FLETCHLING,2,5], #Rt. 2
[491, 30, :SHROOMISH,2,5], #Viridian Forest
[490, 30, :BUDEW,4,9], #Rt. 3
[106, 30, :NINCADA,8,10], #Rt. 4
@@ -359,25 +359,25 @@ module Settings
[171, 30, :BIDOOF,2,5], #Rt. 22
[143, 30, :RIOLU,25,25], #Rt. 23
[8, 30, :BUNEARY,12,13], #Rt. 24
[145, 30, :ABSOL,30,35], #Rt. 26
[147, 30, :ABSOL,30,35], #Rt. 27
[145, 30, :ABSOL,30,35], #Rt. 26
[147, 30, :ABSOL,30,35], #Rt. 27
[311, 30, :BIDOOF,5,5], #Rt. 29
[284, 30, :LUXIO,40,45], #Rt. 33
[288, 30, :VIGOROTH,40,45], #Rt. 32
[342, 30, :GOLETT,40,45], #Ruins of Alph
[261, 30, :BELLOSSOM,45,50], #Rt. 31
[262, 30, :BIBAREL,45,50], #Rt. 30
[284, 30, :LUXIO,40,45], #Rt. 33
[288, 30, :VIGOROTH,40,45], #Rt. 32
[342, 30, :GOLETT,40,45], #Ruins of Alph
[261, 30, :BELLOSSOM,45,50], #Rt. 31
[262, 30, :BIBAREL,45,50], #Rt. 30
[265, 30, :KIRLIA,25,30], #Rt. 34
[267, 30, :SUDOWOODO,25,30], #Rt. 36
[267, 30, :SUDOWOODO,25,30], #Rt. 36
[300, 30, :ROSELIA,30,30], #National Park
[300, 30, :BRELOOM,30,30], #Ilex Forest
[670, 30, :WEAVILE,50,50], #Ice mountains
[528, 30, :PYUKUMUKU,20,20], #Treasure Beach
[690, 30, :OCTILLERY,32,45], #Deep Ocean
[561, 30, :MAGMAR,32,45], #Mt. Ember
[562, 30, :NINJASK,45,50], #Boon Island
[603, 30, :KECLEON,45,50], #Chrono Island
[654, 30, :WHIMSICOTT,32,45] #Brine Road
[562, 30, :NINJASK,45,50], #Boon Island
[603, 30, :KECLEON,45,50], #Chrono Island
[654, 30, :WHIMSICOTT,32,45] #Brine Road
]
#=============================================================================

View File

@@ -2,18 +2,12 @@
# Battle intro animation
#===============================================================================
def pbSceneStandby
$scene.disposeSpritesets if $scene && $scene.is_a?(Scene_Map)
if RPG::Cache.need_clearing
RPG::Cache.clear
end
Graphics.frame_reset
yield
$scene.createSpritesets if $scene && $scene.is_a?(Scene_Map)
end
def pbBattleAnimation(bgm=nil,battletype=0,foe=nil)
$game_temp.in_battle = true
viewport = Viewport.new(0,0,Graphics.width,Graphics.height)
viewport = Viewport.new(0,0,Graphicsc.width,Graphics.height)
viewport.z = 99999
# Set up audio
playingBGS = nil

View File

@@ -572,7 +572,7 @@ def pbLoadRpgxpScene(scene)
oldscene = $scene
$scene = scene
Graphics.freeze
oldscene.disposeSpritesets
#oldscene.disposeSpritesets
visibleObjects = pbHideVisibleObjects
Graphics.transition(20)
Graphics.freeze
@@ -582,7 +582,7 @@ def pbLoadRpgxpScene(scene)
Graphics.transition(20)
Graphics.freeze
$scene = oldscene
$scene.createSpritesets
#$scene.createSpritesets
pbShowObjects(visibleObjects)
Graphics.transition(20)
end

View File

@@ -1,225 +1,225 @@
#===============================================================================
# Klein Footprints / WolfPP for Pokémon Essentials
# Give credits if you're using this!
# http://kleinstudio.deviantart.com
# #===============================================================================
# # Klein Footprints / WolfPP for Pokémon Essentials
# # Give credits if you're using this!
# # http://kleinstudio.deviantart.com
# #
# # bo4p5687 update (v.19)
# #===============================================================================
#
# bo4p5687 update (v.19)
#===============================================================================
# Fix event comment
def pbEventCommentInput(*args)
parameters = []
list = *args[0].list # Event or event page
elements = *args[1] # Number of elements
trigger = *args[2] # Trigger
return nil if list == nil
return nil unless list.is_a?(Array)
for item in list
next unless item.code == 108 || item.code == 408
if item.parameters[0] == trigger[0]
start = list.index(item) + 1
finish = start + elements[0]
for id in start...finish
next if !list[id]
parameters.push(list[id].parameters[0])
end
return parameters
end
end
return nil
end
module FootprintVariables
# If you set pokemon here, they doesn't have footprints
FOLLOWING_DONT_WALK = [
# Example:
# 12,15,17
]
# Set here the terrain tag for footprints, 3 is sand
TERRAIN_FOOT = 3
# Initial opacity for footprints
FOOT_OPACITY = 62
# Delay velocity
FOOT_DELAY = 1.1
def self.get_new_id
newId = 1
while !$game_map.events[newId].nil? do
break if $game_map.events[newId].erased
newId += 1
end
return newId
end
def self.show(event, position)
if event != $game_player
return if event.character_name == "" || event.character_name == "nil" || event.name.include?("/nofoot/")
return if pbEventCommentInput(event, 0, "NoFoot")
if $Trainer.party.length > 0
return if (!($game_map.events[event] && $game_map.events[event].name == "Dependent") &&
(FOLLOWING_DONT_WALK.include?($Trainer.party[0].species) || $PokemonGlobal.bicycle))
end
end
character_sprites = $scene.spriteset.character_sprites
viewport = $scene.spriteset.viewport1
footsprites = $scene.spriteset.footsprites
nid = self.get_new_id
rpgEvent = RPG::Event.new(position[0], position[1])
rpgEvent.id = nid
fev = Game_Event.new($game_map.map_id, rpgEvent, $game_map)
eventsprite = Sprite_Character.new(viewport, fev)
character_sprites.push(eventsprite)
footsprites.push(Footsprite.new(eventsprite, fev, viewport, $game_map, position[2], nid, character_sprites, (event==$game_player)))
end
end
class Game_Event < Game_Character
attr_reader :erased
end
class Sprite_Character
alias old_initialize_foot initialize
def initialize(viewport, character=nil)
old_initialize_foot(viewport, character)
@disposed = false
end
alias old_update_foot update
def update
return if @disposed
old_update_foot
end
alias old_dispose_foot dispose
def dispose
old_dispose_foot
@disposed = true
end
end
class Spriteset_Map
attr_accessor :character_sprites
attr_accessor :footsprites
alias old_initialize initialize
def initialize(map=nil)
old_initialize(map)
@footsprites = []
end
def viewport1
return @@viewport1
end
def putFootprint(event, pos)
return FootprintVariables.show(event, pos)
end
alias old_dispose dispose
def dispose
old_dispose
@footsprites.each { |sprite| sprite.dispose } if !@footsprites.nil?
@footsprites.clear
end
alias old_update update
def update
old_update
return if @footsprites.nil?
@footsprites.each { |sprite| sprite.update }
end
end
class Scene_Map
def spriteset?
return !@spritesets.nil?
end
end
class Game_Character
def get_last_pos
case direction
when 2 then return [@x, @y-1, direction] # Move down
when 4 then return [@x+1, @y, direction] # Move left
when 6 then return [@x-1, @y, direction] # Move right
when 8 then return [@x, @y+1, direction] # Move up
end
return false
end
def foot_prints?
return $game_map.terrain_tag(get_last_pos[0], get_last_pos[1]) == FootprintVariables::TERRAIN_FOOT && $scene.is_a?(Scene_Map) && $scene.spriteset?
end
alias leave_tile_footprints triggerLeaveTile
def triggerLeaveTile
leave_tile_footprints
$scene.spriteset.putFootprint(self, get_last_pos) if foot_prints?
end
end
class Footsprite
def initialize(sprite,event,viewport,map,direction,nid,chardata,player)
@rsprite = sprite
# Sprite
@sprite = Sprite.new(viewport)
file = player && $PokemonGlobal.bicycle ? "footsetbike.png" : "footset.png"
@sprite.bitmap = RPG::Cache.load_bitmap("Graphics/Pictures/", file)
# Set position
@realwidth = @sprite.bitmap.width/4
@sprite.src_rect.width = @realwidth
@opacity = FootprintVariables::FOOT_OPACITY
setFootset(direction)
# Values
@map = map
@event = event
@disposed = false
@eventid = nid
@viewport = viewport
@chardata = chardata
update
end
def setFootset(direction)
@sprite.src_rect.x =
case direction
when 2 then 0 # Move down
when 4 then @realwidth * 3 # Move left
when 6 then @realwidth * 2 # Move right
when 8 then @realwidth # Move up
end
@sprite.opacity = @opacity
end
def dispose
return if @disposed
@disposed = true
@event.erase
(0...@chardata.length).each { |i| @chardata.delete_at(i) if @chardata[i] == @rsprite }
@rsprite.dispose
@sprite.dispose
@sprite = nil
end
def update
return if @disposed
x = @rsprite.x - @rsprite.ox
y = @rsprite.y - @rsprite.oy
width = @rsprite.src_rect.width
height = @rsprite.src_rect.height
@sprite.x = x + width / 2
@sprite.y = y + height
@sprite.ox = @realwidth / 2
@sprite.oy = @sprite.bitmap.height
@sprite.z = @rsprite.z - 2
@opacity -= FootprintVariables::FOOT_DELAY
@sprite.opacity = @opacity
dispose if @sprite.opacity <= 0
end
end
# # Fix event comment
# def pbEventCommentInput(*args)
# parameters = []
# list = *args[0].list # Event or event page
# elements = *args[1] # Number of elements
# trigger = *args[2] # Trigger
# return nil if list == nil
# return nil unless list.is_a?(Array)
# for item in list
# next unless item.code == 108 || item.code == 408
# if item.parameters[0] == trigger[0]
# start = list.index(item) + 1
# finish = start + elements[0]
# for id in start...finish
# next if !list[id]
# parameters.push(list[id].parameters[0])
# end
# return parameters
# end
# end
# return nil
# end
#
# module FootprintVariables
# # If you set pokemon here, they doesn't have footprints
# FOLLOWING_DONT_WALK = [
# # Example:
# # 12,15,17
# ]
#
# # Set here the terrain tag for footprints, 3 is sand
# TERRAIN_FOOT = 3
#
# # Initial opacity for footprints
# FOOT_OPACITY = 62
#
# # Delay velocity
# FOOT_DELAY = 1.1
#
# def self.get_new_id
# newId = 1
# while !$game_map.events[newId].nil? do
# break if $game_map.events[newId].erased
# newId += 1
# end
# return newId
# end
#
# def self.show(event, position)
# if event != $game_player
# return if event.character_name == "" || event.character_name == "nil" || event.name.include?("/nofoot/")
# return if pbEventCommentInput(event, 0, "NoFoot")
# if $Trainer.party.length > 0
# return if (!($game_map.events[event] && $game_map.events[event].name == "Dependent") &&
# (FOLLOWING_DONT_WALK.include?($Trainer.party[0].species) || $PokemonGlobal.bicycle))
# end
# end
# character_sprites = $scene.spriteset.character_sprites
# viewport = $scene.spriteset.viewport1
# footsprites = $scene.spriteset.footsprites
# nid = self.get_new_id
# rpgEvent = RPG::Event.new(position[0], position[1])
# rpgEvent.id = nid
# fev = Game_Event.new($game_map.map_id, rpgEvent, $game_map)
# eventsprite = Sprite_Character.new(viewport, fev)
# character_sprites.push(eventsprite)
# footsprites.push(Footsprite.new(eventsprite, fev, viewport, $game_map, position[2], nid, character_sprites, (event==$game_player)))
# end
#
# end
#
# class Game_Event < Game_Character
# attr_reader :erased
# end
#
# class Sprite_Character
# alias old_initialize_foot initialize
# def initialize(viewport, character=nil)
# old_initialize_foot(viewport, character)
# @disposed = false
# end
#
# alias old_update_foot update
# def update
# return if @disposed
# old_update_foot
# end
#
# alias old_dispose_foot dispose
# def dispose
# old_dispose_foot
# @disposed = true
# end
# end
#
# class Spriteset_Map
# attr_accessor :character_sprites
# attr_accessor :footsprites
#
# alias old_initialize initialize
# def initialize(map=nil)
# old_initialize(map)
# @footsprites = []
# end
#
# def viewport1
# return @@viewport1
# end
#
# def putFootprint(event, pos)
# return FootprintVariables.show(event, pos)
# end
#
# alias old_dispose dispose
# def dispose
# old_dispose
# @footsprites.each { |sprite| sprite.dispose } if !@footsprites.nil?
# @footsprites.clear
# end
#
# alias old_update update
# def update
# old_update
# return if @footsprites.nil?
# @footsprites.each { |sprite| sprite.update }
# end
# end
#
# class Scene_Map
# def spriteset?
# return !@spritesets.nil?
# end
# end
#
# class Game_Character
#
# def get_last_pos
# case direction
# when 2 then return [@x, @y-1, direction] # Move down
# when 4 then return [@x+1, @y, direction] # Move left
# when 6 then return [@x-1, @y, direction] # Move right
# when 8 then return [@x, @y+1, direction] # Move up
# end
# return false
# end
#
# def foot_prints?
# return $game_map.terrain_tag(get_last_pos[0], get_last_pos[1]) == FootprintVariables::TERRAIN_FOOT && $scene.is_a?(Scene_Map) && $scene.spriteset?
# end
#
# alias leave_tile_footprints triggerLeaveTile
# def triggerLeaveTile
# leave_tile_footprints
# $scene.spriteset.putFootprint(self, get_last_pos) if foot_prints?
# end
#
# end
#
# class Footsprite
# def initialize(sprite,event,viewport,map,direction,nid,chardata,player)
# @rsprite = sprite
# # Sprite
# @sprite = Sprite.new(viewport)
# file = player && $PokemonGlobal.bicycle ? "footsetbike.png" : "footset.png"
# @sprite.bitmap = RPG::Cache.load_bitmap("Graphics/Pictures/", file)
# # Set position
# @realwidth = @sprite.bitmap.width/4
# @sprite.src_rect.width = @realwidth
# @opacity = FootprintVariables::FOOT_OPACITY
# setFootset(direction)
# # Values
# @map = map
# @event = event
# @disposed = false
# @eventid = nid
# @viewport = viewport
# @chardata = chardata
# update
# end
#
# def setFootset(direction)
# @sprite.src_rect.x =
# case direction
# when 2 then 0 # Move down
# when 4 then @realwidth * 3 # Move left
# when 6 then @realwidth * 2 # Move right
# when 8 then @realwidth # Move up
# end
# @sprite.opacity = @opacity
# end
#
# def dispose
# return if @disposed
# @disposed = true
# @event.erase
# (0...@chardata.length).each { |i| @chardata.delete_at(i) if @chardata[i] == @rsprite }
# @rsprite.dispose
# @sprite.dispose
# @sprite = nil
# end
#
# def update
# return if @disposed
# x = @rsprite.x - @rsprite.ox
# y = @rsprite.y - @rsprite.oy
# width = @rsprite.src_rect.width
# height = @rsprite.src_rect.height
# @sprite.x = x + width / 2
# @sprite.y = y + height
# @sprite.ox = @realwidth / 2
# @sprite.oy = @sprite.bitmap.height
# @sprite.z = @rsprite.z - 2
# @opacity -= FootprintVariables::FOOT_DELAY
# @sprite.opacity = @opacity
# dispose if @sprite.opacity <= 0
# end
# end

View File

@@ -1,278 +1,278 @@
#===============================================================================
# * Unreal Time System - by FL (Credits will be apreciated)
#===============================================================================
# #===============================================================================
# # * Unreal Time System - by FL (Credits will be apreciated)
# #===============================================================================
# #
# # This script is for Pokémon Essentials. It makes the time in game uses its
# # own clock that only pass when you are in game instead of using real time
# # (like Minecraft and Zelda: Ocarina of Time).
# #
# #== INSTALLATION ===============================================================
# #
# # To this script works, put it above main OR convert into a plugin.
# #
# #== HOW TO USE =================================================================
# #
# # This script automatic works after installed.
# #
# # If you wish to add/reduce time, there are 3 ways:
# #
# # 1. EXTRA_SECONDS/EXTRA_DAYS are variables numbers that hold time passage;
# # The time in these variable isn't affected by PROPORTION.
# # Example: When the player sleeps you wish to the time in game advance
# # 8 hours, so put in EXTRA_SECONDS a game variable number and sum
# # 28800 (60*60*8) in this variable every time that the players sleeps.
# #
# # 2. 'UnrealTime.add_seconds(seconds)' and 'UnrealTime.add_days(days)' does the
# # same thing, in fact, EXTRA_SECONDS/EXTRA_DAYS call these methods.
# #
# # 3. 'UnrealTime.advance_to(16,17,18)' advance the time to a fixed time of day,
# # 16:17:18 on this example.
# #
# #== NOTES ======================================================================
# #
# # If you wish to some parts still use real time like the Trainer Card start time
# # and Pokémon Trainer Memo, just change 'pbGetTimeNow' to 'Time.now' in their
# # scripts.
# #
# # This script uses the Ruby Time class. Before Essentials version 19 (who came
# # with 64-bit ruby) it can only have 1901-2038 range.
# #
# # Some time methods:
# # 'pbGetTimeNow.year', 'pbGetTimeNow.mon' (the numbers from 1-12),
# # 'pbGetTimeNow.day','pbGetTimeNow.hour', 'pbGetTimeNow.min',
# # 'pbGetTimeNow.sec', 'pbGetAbbrevMonthName(pbGetTimeNow.mon)',
# # 'pbGetTimeNow.strftime("%A")' (displays weekday name),
# # 'pbGetTimeNow.strftime("%I:%M %p")' (displays Hours:Minutes pm/am)
# #
# #===============================================================================
#
# This script is for Pokémon Essentials. It makes the time in game uses its
# own clock that only pass when you are in game instead of using real time
# (like Minecraft and Zelda: Ocarina of Time).
# if defined?(PluginManager) && !PluginManager.installed?("Unreal Time System")
# PluginManager.register({
# :name => "Unreal Time System",
# :version => "1.1",
# :link => "https://www.pokecommunity.com/showthread.php?t=285831",
# :credits => "FL"
# })
# end
#
#== INSTALLATION ===============================================================
# module UnrealTime
# # Set false to disable this system (returns Time.now)
# ENABLED=true
#
# To this script works, put it above main OR convert into a plugin.
# # Time proportion here.
# # So if it is 100, one second in real time will be 100 seconds in game.
# # If it is 60, one second in real time will be one minute in game.
# PROPORTION=60
#
#== HOW TO USE =================================================================
# # Starting on Essentials v17, the map tone only try to refresh tone each 30
# # real time seconds.
# # If this variable number isn't -1, the game use this number instead of 30.
# # When time is changed with advance_to or add_seconds, the tone refreshes.
# TONE_CHECK_INTERVAL = 10.0
#
# This script automatic works after installed.
# # Make this true to time only pass at field (Scene_Map)
# # A note to scripters: To make time pass on other scenes, put line
# # '$PokemonGlobal.addNewFrameCount' near to line 'Graphics.update'
# TIME_STOPS=true
#
# If you wish to add/reduce time, there are 3 ways:
# # Make this true to time pass in battle, during turns and command selection.
# # This won't affect the Pokémon and Bag submenus.
# # Only works if TIME_STOPS=true.
# BATTLE_PASS=true
#
# 1. EXTRA_SECONDS/EXTRA_DAYS are variables numbers that hold time passage;
# The time in these variable isn't affected by PROPORTION.
# Example: When the player sleeps you wish to the time in game advance
# 8 hours, so put in EXTRA_SECONDS a game variable number and sum
# 28800 (60*60*8) in this variable every time that the players sleeps.
# # Make this true to time pass when the Dialog box or the main menu are open.
# # This won't affect the submenus like Pokémon and Bag.
# # Only works if TIME_STOPS=true.
# TALK_PASS=true
#
# 2. 'UnrealTime.add_seconds(seconds)' and 'UnrealTime.add_days(days)' does the
# same thing, in fact, EXTRA_SECONDS/EXTRA_DAYS call these methods.
# # Choose switch number that when true the time won't pass (or -1 to cancel).
# # Only works if TIME_STOPS=true.
# SWITCH_STOPS=-1
#
# 3. 'UnrealTime.advance_to(16,17,18)' advance the time to a fixed time of day,
# 16:17:18 on this example.
# # Choose variable(s) number(s) that can hold time passage (or -1 to cancel).
# # Look at description for more details.
# EXTRA_SECONDS=79
# EXTRA_DAYS=-1
#
#== NOTES ======================================================================
# # Initial date. In sequence: Year, month, day, hour and minutes.
# # Method UnrealTime.reset resets time back to this time.
# def self.initial_date
# return Time.local(2000,1,1, 12,0)
# end
#
# If you wish to some parts still use real time like the Trainer Card start time
# and Pokémon Trainer Memo, just change 'pbGetTimeNow' to 'Time.now' in their
# scripts.
# # Advance to next time. If time already passed, advance
# # into the time on the next day.
# # Hour is 0..23
# def self.advance_to(hour,min=0,sec=0)
# if hour < 0 || hour > 23
# raise RangeError, "hour is #{hour}, should be 0..23"
# end
# day_seconds = 60*60*24
# seconds_now = pbGetTimeNow.hour*60*60+pbGetTimeNow.min*60+pbGetTimeNow.sec
# target_seconds = hour*60*60+min*60+sec
# seconds_added = target_seconds-seconds_now
# seconds_added += day_seconds if seconds_added<0
# $PokemonGlobal.newFrameCount+=seconds_added
# PBDayNight.sheduleToneRefresh
# end
#
# This script uses the Ruby Time class. Before Essentials version 19 (who came
# with 64-bit ruby) it can only have 1901-2038 range.
# # Resets time to initial_date.
# def self.reset
# raise "Method doesn't work when TIME_STOPS is false!" if !TIME_STOPS
# $game_variables[EXTRA_SECONDS]=0 if EXTRA_DAYS>0
# $game_variables[EXTRA_DAYS]=0 if EXTRA_DAYS>0
# $PokemonGlobal.newFrameCount=0
# $PokemonGlobal.extraYears=0
# PBDayNight.sheduleToneRefresh
# end
#
# Some time methods:
# 'pbGetTimeNow.year', 'pbGetTimeNow.mon' (the numbers from 1-12),
# 'pbGetTimeNow.day','pbGetTimeNow.hour', 'pbGetTimeNow.min',
# 'pbGetTimeNow.sec', 'pbGetAbbrevMonthName(pbGetTimeNow.mon)',
# 'pbGetTimeNow.strftime("%A")' (displays weekday name),
# 'pbGetTimeNow.strftime("%I:%M %p")' (displays Hours:Minutes pm/am)
# # Does the same thing as EXTRA_SECONDS variable.
# def self.add_seconds(seconds)
# raise "Method doesn't work when TIME_STOPS is false!" if !TIME_STOPS
# $PokemonGlobal.newFrameCount+=(seconds*Graphics.frame_rate)/PROPORTION.to_f
# PBDayNight.sheduleToneRefresh
# end
#
#===============================================================================
if defined?(PluginManager) && !PluginManager.installed?("Unreal Time System")
PluginManager.register({
:name => "Unreal Time System",
:version => "1.1",
:link => "https://www.pokecommunity.com/showthread.php?t=285831",
:credits => "FL"
})
end
module UnrealTime
# Set false to disable this system (returns Time.now)
ENABLED=true
# Time proportion here.
# So if it is 100, one second in real time will be 100 seconds in game.
# If it is 60, one second in real time will be one minute in game.
PROPORTION=60
# Starting on Essentials v17, the map tone only try to refresh tone each 30
# real time seconds.
# If this variable number isn't -1, the game use this number instead of 30.
# When time is changed with advance_to or add_seconds, the tone refreshes.
TONE_CHECK_INTERVAL = 10.0
# Make this true to time only pass at field (Scene_Map)
# A note to scripters: To make time pass on other scenes, put line
# '$PokemonGlobal.addNewFrameCount' near to line 'Graphics.update'
TIME_STOPS=true
# Make this true to time pass in battle, during turns and command selection.
# This won't affect the Pokémon and Bag submenus.
# Only works if TIME_STOPS=true.
BATTLE_PASS=true
# Make this true to time pass when the Dialog box or the main menu are open.
# This won't affect the submenus like Pokémon and Bag.
# Only works if TIME_STOPS=true.
TALK_PASS=true
# Choose switch number that when true the time won't pass (or -1 to cancel).
# Only works if TIME_STOPS=true.
SWITCH_STOPS=-1
# Choose variable(s) number(s) that can hold time passage (or -1 to cancel).
# Look at description for more details.
EXTRA_SECONDS=79
EXTRA_DAYS=-1
# Initial date. In sequence: Year, month, day, hour and minutes.
# Method UnrealTime.reset resets time back to this time.
def self.initial_date
return Time.local(2000,1,1, 12,0)
end
# Advance to next time. If time already passed, advance
# into the time on the next day.
# Hour is 0..23
def self.advance_to(hour,min=0,sec=0)
if hour < 0 || hour > 23
raise RangeError, "hour is #{hour}, should be 0..23"
end
day_seconds = 60*60*24
seconds_now = pbGetTimeNow.hour*60*60+pbGetTimeNow.min*60+pbGetTimeNow.sec
target_seconds = hour*60*60+min*60+sec
seconds_added = target_seconds-seconds_now
seconds_added += day_seconds if seconds_added<0
$PokemonGlobal.newFrameCount+=seconds_added
PBDayNight.sheduleToneRefresh
end
# Resets time to initial_date.
def self.reset
raise "Method doesn't work when TIME_STOPS is false!" if !TIME_STOPS
$game_variables[EXTRA_SECONDS]=0 if EXTRA_DAYS>0
$game_variables[EXTRA_DAYS]=0 if EXTRA_DAYS>0
$PokemonGlobal.newFrameCount=0
$PokemonGlobal.extraYears=0
PBDayNight.sheduleToneRefresh
end
# Does the same thing as EXTRA_SECONDS variable.
def self.add_seconds(seconds)
raise "Method doesn't work when TIME_STOPS is false!" if !TIME_STOPS
$PokemonGlobal.newFrameCount+=(seconds*Graphics.frame_rate)/PROPORTION.to_f
PBDayNight.sheduleToneRefresh
end
def self.add_days(days)
add_seconds(60*60*24*days)
end
NEED_32_BIT_FIX = [''].pack('p').size <= 4
end
# Essentials V18 and lower compatibility
module Settings
TIME_SHADING = defined?(ENABLESHADING) ? ENABLESHADING : ::TIME_SHADING
end if defined?(TIME_SHADING) || defined?(ENABLESHADING)
module PBDayNight
class << self
if method_defined?(:getTone) && UnrealTime::TONE_CHECK_INTERVAL > 0
def getTone
@cachedTone = Tone.new(0,0,0) if !@cachedTone
return @cachedTone if !Settings::TIME_SHADING
toneNeedUpdate = (!@dayNightToneLastUpdate ||
Graphics.frame_count-@dayNightToneLastUpdate >=
Graphics.frame_rate*UnrealTime::TONE_CHECK_INTERVAL
)
if toneNeedUpdate
getToneInternal
@dayNightToneLastUpdate = Graphics.frame_count
end
return @cachedTone
end
end
# Shedule a tone refresh on the next try (probably next frame)
def sheduleToneRefresh
@dayNightToneLastUpdate = nil
end
end
end
def pbGetTimeNow
return Time.now if !$PokemonGlobal || !UnrealTime::ENABLED
day_seconds = 60*60*24
if UnrealTime::TIME_STOPS
# Sum the extra values to newFrameCount
if UnrealTime::EXTRA_SECONDS>0
UnrealTime.add_seconds(pbGet(UnrealTime::EXTRA_SECONDS))
$game_variables[UnrealTime::EXTRA_SECONDS]=0
end
if UnrealTime::EXTRA_DAYS>0
UnrealTime.add_seconds(day_seconds*pbGet(UnrealTime::EXTRA_DAYS))
$game_variables[UnrealTime::EXTRA_DAYS]=0
end
elsif UnrealTime::EXTRA_SECONDS>0 && UnrealTime::EXTRA_DAYS>0
# Checks to regulate the max/min values at UnrealTime::EXTRA_SECONDS
while pbGet(UnrealTime::EXTRA_SECONDS)>=day_seconds
$game_variables[UnrealTime::EXTRA_SECONDS]-=day_seconds
$game_variables[UnrealTime::EXTRA_DAYS]+=1
end
while pbGet(UnrealTime::EXTRA_SECONDS)<=-day_seconds
$game_variables[UnrealTime::EXTRA_SECONDS]+=day_seconds
$game_variables[UnrealTime::EXTRA_DAYS]-=1
end
end
start_time=UnrealTime.initial_date
if UnrealTime::TIME_STOPS
time_played=$PokemonGlobal.newFrameCount
else
time_played=Graphics.frame_count
end
time_played=(time_played*UnrealTime::PROPORTION)/Graphics.frame_rate
time_jumped=0
if UnrealTime::EXTRA_SECONDS>-1
time_jumped+=pbGet(UnrealTime::EXTRA_SECONDS)
end
if UnrealTime::EXTRA_DAYS>-1
time_jumped+=pbGet(UnrealTime::EXTRA_DAYS)*day_seconds
end
time_ret = 0
# Before Essentials V19, there is a year limit. To prevent crashes due to this
# limit, every time that you reach in year 2036 the system will subtract 6
# years (to works with leap year) from your date and sum in
# $PokemonGlobal.extraYears. You can sum your actual year with this extraYears
# when displaying years.
loop do
time_fix=0
if $PokemonGlobal.extraYears!=0
time_fix = $PokemonGlobal.extraYears*day_seconds*(365*6+1)/6
end
time_ret=start_time+(time_played+time_jumped-time_fix)
break if !UnrealTime::NEED_32_BIT_FIX || time_ret.year<2036
$PokemonGlobal.extraYears+=6
end
return time_ret
end
if UnrealTime::ENABLED
class PokemonGlobalMetadata
attr_accessor :newFrameCount # Became float when using extra values
attr_accessor :extraYears
def addNewFrameCount
return if (UnrealTime::SWITCH_STOPS>0 &&
$game_switches[UnrealTime::SWITCH_STOPS])
self.newFrameCount+=1
end
def newFrameCount
@newFrameCount=0 if !@newFrameCount
return @newFrameCount
end
def extraYears
@extraYears=0 if !@extraYears
return @extraYears
end
end
if UnrealTime::TIME_STOPS
class Scene_Map
alias :updateold :update
def update
$PokemonGlobal.addNewFrameCount
updateold
end
if UnrealTime::TALK_PASS
alias :miniupdateold :miniupdate
def miniupdate
$PokemonGlobal.addNewFrameCount
miniupdateold
end
end
end
if UnrealTime::BATTLE_PASS
class PokeBattle_Scene
alias :pbGraphicsUpdateold :pbGraphicsUpdate
def pbGraphicsUpdate
$PokemonGlobal.addNewFrameCount
pbGraphicsUpdateold
end
end
end
end
end
# def self.add_days(days)
# add_seconds(60*60*24*days)
# end
#
# NEED_32_BIT_FIX = [''].pack('p').size <= 4
# end
#
# # Essentials V18 and lower compatibility
# module Settings
# TIME_SHADING = defined?(ENABLESHADING) ? ENABLESHADING : ::TIME_SHADING
# end if defined?(TIME_SHADING) || defined?(ENABLESHADING)
#
# module PBDayNight
# class << self
# if method_defined?(:getTone) && UnrealTime::TONE_CHECK_INTERVAL > 0
# def getTone
# @cachedTone = Tone.new(0,0,0) if !@cachedTone
# return @cachedTone if !Settings::TIME_SHADING
# toneNeedUpdate = (!@dayNightToneLastUpdate ||
# Graphics.frame_count-@dayNightToneLastUpdate >=
# Graphics.frame_rate*UnrealTime::TONE_CHECK_INTERVAL
# )
# if toneNeedUpdate
# getToneInternal
# @dayNightToneLastUpdate = Graphics.frame_count
# end
# return @cachedTone
# end
# end
#
# # Shedule a tone refresh on the next try (probably next frame)
# def sheduleToneRefresh
# @dayNightToneLastUpdate = nil
# end
# end
# end
#
# def pbGetTimeNow
# return Time.now if !$PokemonGlobal || !UnrealTime::ENABLED
# day_seconds = 60*60*24
# if UnrealTime::TIME_STOPS
# # Sum the extra values to newFrameCount
# if UnrealTime::EXTRA_SECONDS>0
# UnrealTime.add_seconds(pbGet(UnrealTime::EXTRA_SECONDS))
# $game_variables[UnrealTime::EXTRA_SECONDS]=0
# end
# if UnrealTime::EXTRA_DAYS>0
# UnrealTime.add_seconds(day_seconds*pbGet(UnrealTime::EXTRA_DAYS))
# $game_variables[UnrealTime::EXTRA_DAYS]=0
# end
# elsif UnrealTime::EXTRA_SECONDS>0 && UnrealTime::EXTRA_DAYS>0
# # Checks to regulate the max/min values at UnrealTime::EXTRA_SECONDS
# while pbGet(UnrealTime::EXTRA_SECONDS)>=day_seconds
# $game_variables[UnrealTime::EXTRA_SECONDS]-=day_seconds
# $game_variables[UnrealTime::EXTRA_DAYS]+=1
# end
# while pbGet(UnrealTime::EXTRA_SECONDS)<=-day_seconds
# $game_variables[UnrealTime::EXTRA_SECONDS]+=day_seconds
# $game_variables[UnrealTime::EXTRA_DAYS]-=1
# end
# end
# start_time=UnrealTime.initial_date
# if UnrealTime::TIME_STOPS
# time_played=$PokemonGlobal.newFrameCount
# else
# time_played=Graphics.frame_count
# end
# time_played=(time_played*UnrealTime::PROPORTION)/Graphics.frame_rate
# time_jumped=0
# if UnrealTime::EXTRA_SECONDS>-1
# time_jumped+=pbGet(UnrealTime::EXTRA_SECONDS)
# end
# if UnrealTime::EXTRA_DAYS>-1
# time_jumped+=pbGet(UnrealTime::EXTRA_DAYS)*day_seconds
# end
# time_ret = 0
# # Before Essentials V19, there is a year limit. To prevent crashes due to this
# # limit, every time that you reach in year 2036 the system will subtract 6
# # years (to works with leap year) from your date and sum in
# # $PokemonGlobal.extraYears. You can sum your actual year with this extraYears
# # when displaying years.
# loop do
# time_fix=0
# if $PokemonGlobal.extraYears!=0
# time_fix = $PokemonGlobal.extraYears*day_seconds*(365*6+1)/6
# end
# time_ret=start_time+(time_played+time_jumped-time_fix)
# break if !UnrealTime::NEED_32_BIT_FIX || time_ret.year<2036
# $PokemonGlobal.extraYears+=6
# end
# return time_ret
# end
#
# if UnrealTime::ENABLED
# class PokemonGlobalMetadata
# attr_accessor :newFrameCount # Became float when using extra values
# attr_accessor :extraYears
#
# def addNewFrameCount
# return if (UnrealTime::SWITCH_STOPS>0 &&
# $game_switches[UnrealTime::SWITCH_STOPS])
# self.newFrameCount+=1
# end
#
# def newFrameCount
# @newFrameCount=0 if !@newFrameCount
# return @newFrameCount
# end
#
# def extraYears
# @extraYears=0 if !@extraYears
# return @extraYears
# end
# end
#
# if UnrealTime::TIME_STOPS
# class Scene_Map
# alias :updateold :update
# def update
# $PokemonGlobal.addNewFrameCount
# updateold
# end
#
# if UnrealTime::TALK_PASS
# alias :miniupdateold :miniupdate
# def miniupdate
# $PokemonGlobal.addNewFrameCount
# miniupdateold
# end
# end
# end
#
# if UnrealTime::BATTLE_PASS
# class PokeBattle_Scene
# alias :pbGraphicsUpdateold :pbGraphicsUpdate
# def pbGraphicsUpdate
# $PokemonGlobal.addNewFrameCount
# pbGraphicsUpdateold
# end
# end
# end
# end
# end