mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-06 06:01:46 +00:00
fixes mélangés...
This commit is contained in:
@@ -1006,6 +1006,7 @@ class Interpreter
|
||||
# * Return to Title Screen
|
||||
#-----------------------------------------------------------------------------
|
||||
def command_354
|
||||
resetPlayerPosition
|
||||
$game_temp.to_title = true
|
||||
return false
|
||||
end
|
||||
|
||||
@@ -45,6 +45,7 @@ class Spriteset_Map
|
||||
end
|
||||
|
||||
def initialize(map=nil)
|
||||
return if $scene.is_a?(Scene_Intro) || $scene.is_a?(Scene_DebugIntro)
|
||||
@map = (map) ? map : $game_map
|
||||
$scene.map_renderer.add_tileset(@map.tileset_name)
|
||||
@map.autotile_names.each { |filename| $scene.map_renderer.add_autotile(filename) }
|
||||
|
||||
@@ -1,225 +1,245 @@
|
||||
#===============================================================================
|
||||
# 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)
|
||||
# begin
|
||||
# old_initialize(map) if map != nil
|
||||
# @footsprites = []
|
||||
# rescue
|
||||
# return
|
||||
# end
|
||||
# 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)
|
||||
# return if $scene.is_a?(PokemonLoad_Scene) || $scene.is_a?(PokemonLoadScreen)
|
||||
# @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
|
||||
@@ -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 ===============================================================
|
||||
# #
|
||||
# # 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)
|
||||
# #
|
||||
# #===============================================================================
|
||||
# module UnrealTime
|
||||
# # Set false to disable this system (returns Time.now)
|
||||
# ENABLED=true
|
||||
#
|
||||
# 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"
|
||||
# })
|
||||
# # 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
|
||||
#
|
||||
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
|
||||
# # 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
|
||||
@@ -1,4 +1,5 @@
|
||||
class Scene_DebugIntro
|
||||
attr_accessor :map_renderer
|
||||
def main
|
||||
Graphics.transition(0)
|
||||
sscene = PokemonLoad_Scene.new
|
||||
@@ -8,8 +9,41 @@ class Scene_DebugIntro
|
||||
end
|
||||
end
|
||||
|
||||
def resetPlayerPosition
|
||||
save_data = load_save_file(SaveData::FILE_PATH)
|
||||
map = save_data[:map_factory].map.map_id
|
||||
x = save_data[:game_player].x
|
||||
y = save_data[:game_player].y
|
||||
dir = save_data[:game_player].direction
|
||||
$MapFactory.setup(map)
|
||||
$game_player.moveto(x,y)
|
||||
$game_player.direction = dir
|
||||
end
|
||||
|
||||
|
||||
def load_save_file(file_path)
|
||||
save_data = SaveData.read_from_file(file_path)
|
||||
unless SaveData.valid?(save_data)
|
||||
if File.file?(file_path + '.bak')
|
||||
pbMessage(_INTL('The save file is corrupt. A backup will be loaded.'))
|
||||
save_data = load_save_file(file_path + '.bak')
|
||||
else
|
||||
self.prompt_save_deletion
|
||||
return {}
|
||||
end
|
||||
end
|
||||
return save_data
|
||||
end
|
||||
|
||||
def returnToTitle()
|
||||
resetPlayerPosition
|
||||
pbMapInterpreter.command_end
|
||||
$game_temp.to_title = true
|
||||
end
|
||||
|
||||
def pbCallTitle
|
||||
return Scene_DebugIntro.new if $DEBUG
|
||||
$game_temp.to_title = false
|
||||
#return Scene_DebugIntro.new if $DEBUG
|
||||
return Scene_Intro.new
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user