Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ###--------------------------------------------------------------------------###
- # Slo-mo script #
- # Version 1.0 #
- # #
- # Credits: #
- # Original code by: Neonblack #
- # Modified by: #
- # #
- # This work is licensed under the Creative Commons Attribution-NonCommercial #
- # 3.0 Unported License. To view a copy of this license, visit #
- # http://creativecommons.org/licenses/by-nc/3.0/. #
- # Permissions beyond the scope of this license are available at #
- # http://cphouseset.wordpress.com/liscense-and-terms-of-use/. #
- # #
- # Contact: #
- # NeonBlack - neonblack23@live.com (e-mail) or "neonblack23" on skype #
- ###--------------------------------------------------------------------------###
- ###--------------------------------------------------------------------------###
- # Revision information: #
- # V1.0 - 10.29.2011 #
- # Wrote and debugged main script #
- ###--------------------------------------------------------------------------###
- ###--------------------------------------------------------------------------###
- # Compatibility: #
- # Alias - Game_System: initialize, update #
- # Sprite_Character: update #
- # Scene_Map: perform_battle_transition #
- # Scene_Menu: initialize #
- # New Classes - Game_FrameRate #
- # New Objects - Game_FrameRate: initialize, update, glitch_test #
- ###--------------------------------------------------------------------------###
- ###--------------------------------------------------------------------------###
- # Instructions: #
- # Place this script in the "Materials" section of the scripts above main. #
- # This script is pretty much plug and play with a few options available to #
- # change below. Using the script is as simple as changing a single #
- # variable. To enter slo-mo, simply change the pre-defined variable. #
- # Since changing the framerate affects pretty much everything on screen and #
- # everything in an event, caution is advised when using this script. #
- ###--------------------------------------------------------------------------###
- ###--------------------------------------------------------------------------###
- # Config: #
- # These are the default values used by several of the functions in the #
- # script. You may change these values as you find your game requires in #
- # order to give the player a better playing experience based on your game. #
- # #
- # The default variable used for the frame rate. Changing this variable at #
- # any time in game will result in a modified frame rate. #
- SET_FPS_VARIABLE = 27 # Default = 27 #
- # #
- # The default "slow" value. While the framerate is this value or below, all #
- # events on screen change to "add" blending mode to make slo-mo mode a little #
- # more fancy. Set this value to 9 or below to disable it. #
- SLOMO_BLEND_EFFECT = 30 # Default = 30 #
- # #
- # The default min and max values for FPS. These limit what your min and max #
- # values can be in game to prevent large scale bugs. Even if you set them #
- # higher or lower, the RGSS2 core engine cannot use frame rates lower than 10 #
- # or higher than 120. #
- LIMIT_FPS_MAX = 60 # Default = 60 #
- LIMIT_FPS_MIN = 30 # Default = 30 #
- # #
- ###--------------------------------------------------------------------------###
- ###--------------------------------------------------------------------------###
- # The following lines are the actual core code of the script. While you are #
- # certainly invited to look, modifying it may result in undesirable results. #
- # Modify at your own risk! #
- ###--------------------------------------------------------------------------###
- # New class - Controls the framerate in game if it is changed by a controller.
- class Game_FrameRate
- def initialize
- # Nothing here! Is that even allowed? In any case, this is a placeholder.
- end
- def update
- new_fps = $game_variables[SET_FPS_VARIABLE]
- new_fps = 60 if new_fps < 10
- new_fps = glitch_test(new_fps)
- if not $scene.is_a?(Scene_Battle) && $scene != Scene_Menu
- Graphics.frame_rate = new_fps if Graphics.frame_rate != new_fps
- end
- $game_variables[SET_FPS_VARIABLE] = new_fps
- end
- # New object - Called by the "update" object. Used to check the new FPS
- # value and limit it if needed.
- def glitch_test(fps)
- fps = LIMIT_FPS_MAX if fps > LIMIT_FPS_MAX
- fps = LIMIT_FPS_MIN if fps < LIMIT_FPS_MIN
- return fps
- end
- end
- class Game_System
- # Alias method - Used to initialize frame rate.
- alias initialize_with_framerate initialize
- def initialize
- $cp_framerate = Game_FrameRate.new
- initialize_with_framerate
- end
- # Alias method - Used to update the frame rate.
- alias update_with_framerate update
- def update
- update_with_framerate
- $cp_framerate.update
- end
- end
- class Sprite_Character < Sprite_Base
- # Alias method - Used to change sprite blending.
- alias update_with_framerate update
- def update
- update_with_framerate
- self.blend_type = Graphics.frame_rate <= SLOMO_BLEND_EFFECT ? 1 : 0
- end
- end
- class Scene_Map < Scene_Base
- # Alias method - Used to return the framerate to 60 in battle.
- alias perform_battle_transition_with_framerate perform_battle_transition
- def perform_battle_transition
- Graphics.frame_rate = 60
- perform_battle_transition_with_framerate
- end
- end
- class Scene_Menu < Scene_Base
- # Alias method - Used to return the framerate to 60 in the menu.
- alias initialize_with_framerate initialize
- def initialize(menu_index = 0)
- Graphics.frame_rate = 60
- initialize_with_framerate(menu_index)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement