#=================================================  =============================
# ■ RGSS3 メッセージスキップ機能 Ver1.01 by 星潟
#------------------------------------------------------------------------------
# メッセージウィンドウに表示された  章を一気に読み飛ばします。
# テストモード限定化機能と、特定の  イッチがONの時だけ
# メッセージスキップを有効にする機  も併せて持っています。
#------------------------------------------------------------------------------
# Ver1.01 入力待ち無視(\^)が無効になる不具  合を修正しました。
#=================================================  ============================= 
module M_SKIP
  
  #メッセージスキップの効果をテスト  ードに限定するか?
  #trueでテストモード限定、falseで常時
  
  T_LIMT = false
  
  #メッセージスキップ有効化スイッチI  Dの設定。
  #0にするとスイッチによる判定は消滅  。
  #1以上にすると、そのスイッチがONの  のみメッセージスキップ有効。
  
  SWITID = 0
  
  #メッセージスキップに使用するキー  設定。
  #文字送りキーとしても機能します。
  #nilにするとメッセージスキップ機能  てを無効化。
  
  KEY    = :CTRL
  
end
class Window_Message < Window_Base
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  alias update_mb update
  def update
    if skip_execute
      @pause_skip = true
      @show_fast = true
    end
    update_mb
  end
  #--------------------------------------------------------------------------
  # ● スキップ判定
  #--------------------------------------------------------------------------
  def skip_execute
    if M_SKIP::T_LIMT
      unless $TEST or $BTEST
        return false
      end
    end
    if M_SKIP::SWITID != 0
      return false unless $game_switches[M_SKIP::SWITID]
    end
    return false unless Input.press?(M_SKIP::KEY)
    return true
  end
  #--------------------------------------------------------------------------
  # ● 入力処理
  #--------------------------------------------------------------------------
  def process_input
    if $game_message.choice?
      input_choice
    elsif $game_message.num_input?
      input_number
    elsif $game_message.item_choice?
      input_item
    else
      input_pause unless @pause_skip or skip_execute
    end
  end
  #--------------------------------------------------------------------------
  # ● 入力待ち処理
  #--------------------------------------------------------------------------
  def input_pause
    self.pause = true
    wait(10)
    if M_SKIP::KEY == nil
      Fiber.yield until Input.trigger?(:B) || Input.trigger?(:C)
    else
      if M_SKIP::T_LIMT == true
        if $TEST or $BTEST
          Fiber.yield until Input.trigger?(:B) || Input.trigger?(:C) || Input.press?(M_SKIP::KEY)
        else
          Fiber.yield until Input.trigger?(:B) || Input.trigger?(:C)
        end
      else
        Fiber.yield until Input.trigger?(:B) || Input.trigger?(:C) || Input.press?(M_SKIP::KEY)
      end
    end
    Input.update
    self.pause = false
  end
end
 
Социальные закладки