93 lines
No EOL
3.3 KiB
Ruby
93 lines
No EOL
3.3 KiB
Ruby
#==============================================================================
|
|
# ■ RGSS3 メッセージスキップ機能 Ver1.01 by 星潟
|
|
#------------------------------------------------------------------------------
|
|
# メッセージウィンドウに表示された文章を一気に読み飛ばします。
|
|
# テストモード限定化機能と、特定のスイッチがONの時だけ
|
|
# メッセージスキップを有効にする機能も併せて持っています。
|
|
#------------------------------------------------------------------------------
|
|
# Ver1.01 入力待ち無視(\^)が無効になる不具合を修正しました。
|
|
#==============================================================================
|
|
module M_SKIP
|
|
|
|
#メッセージスキップの効果をテストモードに限定するか?
|
|
#trueでテストモード限定、falseで常時
|
|
|
|
T_LIMT = false
|
|
|
|
#メッセージスキップ有効化スイッチIDの設定。
|
|
#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 |