#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:= # Game Data Reloader by Blizzard # Version: 1.1 # Type: Debug Tool # Date: 11.9.2010 # Date v1.1: 23.3.2019 #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:= # # This work is licensed under BSD License 2.0: # # #---------------------------------------------------------------------------- # # # # Copyright (c) Boris "Blizzard" Mikić # # All rights reserved. # # # # Redistribution and use in source and binary forms, with or without # # modification, are permitted provided that the following conditions are met: # # # # 1. Redistributions of source code must retain the above copyright notice, # # this list of conditions and the following disclaimer. # # # # 2. Redistributions in binary form must reproduce the above copyright # # notice, this list of conditions and the following disclaimer in the # # documentation and/or other materials provided with the distribution. # # # # 3. Neither the name of the copyright holder nor the names of its # # contributors may be used to endorse or promote products derived from # # this software without specific prior written permission. # # # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE # # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR # # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN # # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # # POSSIBILITY OF SUCH DAMAGE. # # # #---------------------------------------------------------------------------- # # You may use this script for both non-commercial and commercial products # without limitations as long as you fulfill the conditions presented by the # above license. The "complete" way to give credit is to include the license # somewhere in your product (e.g. in the credits screen), but a "simple" way # is also acceptable. The "simple" way to give credit is as follows: # # Game Data Reloader licensed under BSD License 2.0 # Copyright (c) Boris "Blizzard" Mikić # # Alternatively, if your font doesn't support diacritic characters, you may # use this variant: # # Game Data Reloader licensed under BSD License 2.0 # Copyright (c) Boris "Blizzard" Mikic # # In general other similar variants are allowed as long as it is clear who # the creator is (e.g. "Game Data Reloader created by Blizzard" is # acceptable). But if possible, prefer to use one of the two variants listed # above. # # If you fail to give credit and/or claim that this work was created by you, # this may result in legal action and/or payment of damages even though this # work is free of charge to use normally. # #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:= # # Compatibility: # # 99% compatible with SDK v1.x. 98% compatible with SDK 2.x. Compatible with # Blizz-ABS's Intelligent Passability. When using Custom Controls, the # buttons can be mapped to any buttons on the keyboard. # # # Features: # # - allows you to reload all game data during the game # - allows you to refresh the current map during the game # # new in v1.1: # - added new license # - added usage and crediting instructions # # # Explanation: # # This Script will allow you to reload game data while playtesting the game. # It can reload database game data and map data including refreshing the # current map you are in so you can view the changes you have made in your # game right away without restarting it. When refreshing the map, it will be # reloaded as if you exited and reentered the map, resetting all events to # its initial positions and resetting the map into its initial state. To be # able to make actual use of this script, always run the game from the # Game.exe, never from the editor. # # # Notes: # # - When refreshing the map during event execution, the event execution will # continue. This can cause bugs (especially during auto-run events that # change switches and variable) so be careful if you want to refresh a map # during event execution. # - Changes in scripts cannot be reloaded. If you made changes to a script, # you have to restart the game for the changes to apply. # # # If you find any bugs, please report them here: # http://forum.chaos-project.com #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:= #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: # START Configuration #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: BUTTON_RELOAD = Input::F6 # the button to reload the game data BUTTON_REFRESH = Input::F5 # the button to refresh the map #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: # END Configuration #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: $game_data_reloader = 1.1 #============================================================================== # module Input #============================================================================== module Input class << Input alias update_reloader update end def self.update update_reloader reloading = Input.trigger?(BUTTON_RELOAD) refreshing = Input.trigger?(BUTTON_REFRESH) if reloading || refreshing load_sprite = Sprite.new load_sprite.z = 100000 load_sprite.bitmap = Bitmap.new(640, 480) load_sprite.bitmap.font.color = Color.new(0, 0, 0) text = reloading ? 'Reloading...' : 'Refreshing...' load_sprite.bitmap.draw_text(-1, 223, 640, 32, text, 1) load_sprite.bitmap.draw_text(1, 223, 640, 32, text, 1) load_sprite.bitmap.draw_text(-1, 225, 640, 32, text, 1) load_sprite.bitmap.draw_text(1, 225, 640, 32, text, 1) load_sprite.bitmap.font.color = Color.new(255, 255, 0) load_sprite.bitmap.draw_text(0, 224, 640, 32, text, 1) 10.times {Graphics.update} if reloading RPG.init_game $game_map.need_refresh = true if $scene.is_a?(Scene_Map) end if refreshing $BlizzABS.util.check_map_data if $BlizzABS != nil $scene.spriteset.dispose if $scene.is_a?(Scene_Map) $game_map.setup($game_map.map_id) $scene.spriteset = Spriteset_Map.new $game_player.center($game_player.x, $game_player.y) $game_map.need_refresh = true else $scene.spriteset = Spriteset_Battle.new end end load_sprite.dispose end end end #============================================================================== # module RPG #============================================================================== module RPG def self.init_game # normal game data $data_actors = load_data('Data/Actors.rxdata') $data_classes = load_data('Data/Classes.rxdata') $data_skills = load_data('Data/Skills.rxdata') $data_items = load_data('Data/Items.rxdata') $data_weapons = load_data('Data/Weapons.rxdata') $data_armors = load_data('Data/Armors.rxdata') $data_enemies = load_data('Data/Enemies.rxdata') $data_troops = load_data('Data/Troops.rxdata') $data_states = load_data('Data/States.rxdata') $data_animations = load_data('Data/Animations.rxdata') $data_tilesets = load_data('Data/Tilesets.rxdata') $data_common_events = load_data('Data/CommonEvents.rxdata') $data_system = load_data('Data/System.rxdata') # used by some CMSes, etc., add more stuff here if you need it $map_infos = load_data('Data/MapInfos.rxdata') $map_infos.each_key {|key| $map_infos[key] = $map_infos[key].name} end end #============================================================================== # Scene_Map #============================================================================== class Scene_Map attr_accessor :spriteset end #============================================================================== # Scene_Battle #============================================================================== class Scene_Battle attr_accessor :spriteset end