게임/알만툴

VXA 메시지 스킵 빨리감기

미친사람 2016. 7. 21. 02:39
반응형
=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 = false
    # 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
end
반응형