#============================================================================== # 選択肢ウェイト ver1.00 #------------------------------------------------------------------------------ #[特徴] # 選択肢を出すのにウェイトをつけることができます。 # #[どうゆうこと?] # 10秒待つと、隠し選択肢が出る。とかができる。 # #[使用方法] # 選択肢に \W[sec] と書く。 # すると、sec秒後にその選択肢が追加されます。 # #[例] # 選択肢1 # \W[10]選択肢2 # \W[10]選択肢3 # 選択肢4 # # こうすると、まず『選択肢1』が表示され、10秒後に『選択肢2』が表示される。 # 『選択肢2』が表示された10秒後に『選択肢3』と『選択肢4』が表示される。 # #[仕様] # 一つ目の選択肢にウェイトをつけることができません。 # # 作成:ぶちょー # ホム:http://nyannyannyan.bake-neko.net/ # 著作:自分で作ったとか言わないで>< # 改造はご自由にどうぞ。 # リードミーとかに私の名前の載せたりするのは任意で。 #============================================================================== #============================================================================== # 設定項目 #============================================================================== module Kazari module ChoiceWait # 追加の選択肢が表示されるときに流す音 # nil : 音が鳴りません SOUND = nil #SOUND = RPG::SE.new("Jump1", 80, 100) end end #============================================================================== # ここまで #============================================================================== #============================================================================== # ■ Game_Interpreter #============================================================================== class Game_Interpreter #-------------------------------------------------------------------------- # ● 選択肢のセットアップ #-------------------------------------------------------------------------- def setup_choices(params) if $game_message.texts.size <= 4 - params[0].size $game_message.choice_start = $game_message.texts.size $game_message.choice_max = 1 $game_message.texts.push(params[0][0]) wait = 0 for index in 0...params[0].size s = params[0][index] $game_message.choice_texts.push(s) s.gsub!(/\\W\[([0-9]+)\]/i) { "del[#{$1}]" } wait += ($1.to_i) * 60 $game_message.choice_wait.push(wait) s.gsub!(/del\[([0-9]+)\]/i) { "" } end $game_message.choice_cancel_type = params[1] $game_message.choice_proc = Proc.new { |n| @branch[@indent] = n } @index += 1 end end end #============================================================================== # ■ Game_Message #============================================================================== class Game_Message #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :choice_texts attr_accessor :choice_wait #-------------------------------------------------------------------------- # ● クリア #-------------------------------------------------------------------------- alias choice_wait_clear clear def clear choice_wait_clear @choice_texts = [] @choice_wait = [] end end #============================================================================== # ■ Window_Message #============================================================================== class Window_Message < Window_Selectable #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias choice_wait_initialize initialize def initialize choice_wait_initialize @frame_count = 0 @hide_index = 1 end #-------------------------------------------------------------------------- # ● 選択肢の入力処理 #-------------------------------------------------------------------------- alias choice_wait_input_choice input_choice def input_choice choice_wait_input_choice @frame_count += 1 if $game_message.choice_wait[@hide_index] if $game_message.choice_wait[@hide_index] < @frame_count if Kazari::ChoiceWait::SOUND Kazari::ChoiceWait::SOUND.play end self.contents.draw_text(@contents_x, @contents_y, self.width - 32, WLH, "  " + $game_message.choice_texts[@hide_index]) @item_max += 1 @hide_index += 1 @contents_y += WLH end end end end