Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- =begin
- #===============================================================================
- Title: Message Skip
- Author: Hime
- Date: Jul 21, 2013
- --------------------------------------------------------------------------------
- ** Change log
- Jul 21, 2013
- - Initial release
- --------------------------------------------------------------------------------
- ** Terms of Use
- * Free to use in non-commercial projects
- * Contact me for commercial use
- * No real support. The script is provided as-is
- * Will do bug fixes, but no compatibility patches
- * Features may be requested but no guarantees, especially if it is non-trivial
- * Credits to Hime Works in your project
- * Preserve this header
- --------------------------------------------------------------------------------
- ** Description
- This script allows you to skip messages (fast-forward) by holding down the
- CTRL key.
- --------------------------------------------------------------------------------
- ** Installation
- Place this script below Materials and above Main
- --------------------------------------------------------------------------------
- ** Usage
- You can choose which key will be used as the skip key.
- You can enable or disable message skipping by assigning a disable switch.
- When the disable switch is ON, players cannot skip messages.
- --------------------------------------------------------------------------------
- ** Compatibility
- This script overwrites the following methods
- Window_Message
- input_pause
- #===============================================================================
- =end
- $imported = {} if $imported.nil?
- $imported["TH_MessageSkip"] = true
- #===============================================================================
- # ** Configuration
- #===============================================================================
- module TH
- module Message_Skip
- # Switch to use to prevent message skipping
- Disable_Switch = 0
- # Key to hold to skip messages
- Skip_Key = :CTRL
- # Use "auto skip" mode. When the skip mode is OFF, you need to hold the
- # skip key to fast-forward messages. When the skip mode is ON, you just
- # need to press it once to begin skipping, and press it again to stop
- # skipping
- Auto_Skip = false
- # Ignore delays when skipping.
- Skip_Delays = true
- # Ignore pauses when skipping
- end
- end
- #===============================================================================
- # ** Rest of script
- #===============================================================================
- class Window_Message < Window_Base
- def skip_key
- TH::Message_Skip::Skip_Key
- end
- def skip_key_pressed?
- !$game_switches[TH::Message_Skip::Disable_Switch] && Input.press?(skip_key)
- end
- #-----------------------------------------------------------------------------
- # Overwrite. Actually all you really need is that extra line of code to tell
- # the fiber to resume
- #-----------------------------------------------------------------------------
- def input_pause
- self.pause = true
- wait(10)
- Fiber.yield until Input.trigger?(:B) || Input.trigger?(:C) || skip_key_pressed?
- Input.update
- self.pause = false
- end
- alias :th_skip_message_wait :wait
- def wait(duration)
- return if TH::Message_Skip::Skip_Delays && skip_key_pressed?
- th_skip_message_wait(duration)
- end
- alias :th_wait_for_one_character :wait_for_one_character
- def wait_for_one_character
- update_show_fast
- Fiber.yield unless @show_fast || @line_show_fast || (TH::Message_Skip::Skip_Delays && skip_key_pressed?)
- end
- end
- class Scene_Battle < Scene_Base
- def skip_key
- TH::Message_Skip::Skip_Key
- end
- def skip_key_pressed?
- !$game_switches[TH::Message_Skip::Disable_Switch] && Input.press?(skip_key)
- end
- alias :th_show_fast? :show_fast?
- def show_fast?
- Input.press?(:A) || Input.press?(:C) || (TH::Message_Skip::Skip_Delays && skip_key_pressed?)
- end
- alias :th_wait_for_animation :wait_for_animation
- def wait_for_animation
- return if TH::Message_Skip::Skip_Delays && skip_key_pressed?
- update_for_wait
- update_for_wait while @spriteset.animation?
- end
- alias :th_wait_for_effect :wait_for_effect
- def wait_for_effect
- return if TH::Message_Skip::Skip_Delays && skip_key_pressed?
- update_for_wait
- update_for_wait while @spriteset.effect?
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment