# # 逃走時に所持金を落とす #  (C)2007 TYPE74RX-T # #============================================================================== # ■ Game_Temp #------------------------------------------------------------------------------ #  セーブデータに含まれない、一時的なデータを扱うクラスです。このクラスのイン # スタンスは $game_temp で参照されます。 #============================================================================== class Game_Temp #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias rx_rgsss21_initialize initialize def initialize # メソッドを呼び戻す rx_rgsss21_initialize @rx_runaway_message = @rx_runaway_message_type = 1 @rx_runaway_drop_rate = 25 @rx_runaway_drop_gold_rate = 5 @rx_runaway_message_wait = 40 @rx_runaway_drop_message = [お金を落としてしまった!, ] end #-------------------------------------------------------------------------- # ★ 逃走時のメッセージ #-------------------------------------------------------------------------- def rx_runaway_message=(message) @rx_runaway_message = message end def rx_runaway_message return @rx_runaway_message end #-------------------------------------------------------------------------- # ★ 逃走の際、所持金を落とした時のメッセージ表示タイプ #-------------------------------------------------------------------------- def rx_runaway_message_type=(type) @rx_runaway_message_type = type end def rx_runaway_message_type return @rx_runaway_message_type end #-------------------------------------------------------------------------- # ★ 逃走の際、所持金を落とす確率 #-------------------------------------------------------------------------- def rx_runaway_drop_rate=(rate) @rx_runaway_drop_rate = rate end def rx_runaway_drop_rate return @rx_runaway_drop_rate end #-------------------------------------------------------------------------- # ★ 逃走の際、落とす所持金の割合(所持金の x %) #-------------------------------------------------------------------------- def rx_runaway_drop_gold_rate=(rate) @rx_runaway_drop_gold_rate = rate end def rx_runaway_drop_gold_rate return @rx_runaway_drop_gold_rate end #-------------------------------------------------------------------------- # ★ 逃走時または所持金を落とした場合にメッセージを表示する長さ #-------------------------------------------------------------------------- def rx_runaway_message_wait=(wait) @rx_runaway_message_wait = wait end def rx_runaway_message_wait return @rx_runaway_message_wait end #-------------------------------------------------------------------------- # ★ 逃走の際、所持金を落とした時のメッセージ #-------------------------------------------------------------------------- def rx_runaway_drop_message=(message) @rx_runaway_drop_message = message end def rx_runaway_drop_message return @rx_runaway_drop_message end end #============================================================================== # ■ Interpreter #------------------------------------------------------------------------------ #  イベントコマンドを実行するインタプリタです。このクラスは Game_System クラ # スや Game_Event クラスの内部で使用されます。 #============================================================================== class Interpreter #-------------------------------------------------------------------------- # ★ 注釈 #-------------------------------------------------------------------------- alias rx_rgsss21_command_108 command_108 def command_108 # 逃走メッセージの設定 if @parameters[0].include(逃走メッセージ) # 文字列を分解する param = @parameters[0].split([s-]+) $game_temp.rx_runaway_message = param[1] # 継続(競合対策) return true end # 逃走の際落とす所持金とメッセージの設定 if @parameters[0].include(逃走ペナルティ設定) # 初期設定 rx_str = @parameters[0] # 複数行にわたって設定している場合 # それらを全て変数に代入する i = 1 loop do # 次の行に文字列がある場合 if @list[@index+i].code == 408 rx_str += @list[@index+i].parameters[0] i += 1 else break end end # 文字列を分解する param = rx_str.split([s-]+) # 逃走の際落とす所持金とメッセージに関する情報を取得 $game_temp.rx_runaway_message_type = param[1].to_i $game_temp.rx_runaway_drop_rate = param[2].to_i $game_temp.rx_runaway_drop_gold_rate = param[3].to_i $game_temp.rx_runaway_message_wait = param[4].to_i $game_temp.rx_runaway_drop_message[0] = param[5] if param[6] != nil $game_temp.rx_runaway_drop_message[1] = param[6] end # 継続(競合対策) return true end # メソッドを呼び戻す rx_rgsss21_command_108 end end #============================================================================== # ■ Scene_Battle #------------------------------------------------------------------------------ #  バトル画面の処理を行うクラスです。 #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # ★ 逃走の際にお金を落とした時のメッセージを作成(7パターン) #-------------------------------------------------------------------------- def rx_runaway_drop_message(type, gold) case type when 1 message = gold.to_s + $data_system.words.gold + $game_temp.rx_runaway_drop_message[0] when 2 message = $game_temp.rx_runaway_drop_message[0] + gold.to_s + $data_system.words.gold when 3 message = $game_temp.rx_runaway_drop_message[0] + gold.to_s + $data_system.words.gold message += $game_temp.rx_runaway_drop_message[1] when 4 message = gold.to_s + $game_temp.rx_runaway_drop_message[0] when 5 message = $game_temp.rx_runaway_drop_message[0] + gold.to_s when 6 message = $game_temp.rx_runaway_drop_message[0] + gold.to_s message += $game_temp.rx_runaway_drop_message[1] when 7 message = $game_temp.rx_runaway_drop_message[0] end return message end #-------------------------------------------------------------------------- # ● バトル終了 # result 結果 (0勝利 1逃走 2敗北) #-------------------------------------------------------------------------- alias rx_rgsss21_battle_end battle_end def battle_end(result) # ★ 逃走の場合 if result == 1 # 設定した確率で所持金を落とす判定が出た場合 if rand(100) $game_temp.rx_runaway_drop_rate # パーティコマンドウインドウを閉じる @party_command_window.active = false @party_command_window.visible = false # 落とす所持金を計算 rx_drop_gold = $game_party.gold $game_temp.rx_runaway_drop_gold_rate 100 # メッセージ表示 @help_window.set_text(rx_runaway_drop_message($game_temp.rx_runaway_message_type, rx_drop_gold), 1) # 所持金を減らす $game_party.lose_gold(rx_drop_gold) # ウェイト Graphics.freeze Graphics.transition($game_temp.rx_runaway_message_wait) # 逃走時用のメッセージが用意されていたら elsif $game_temp.rx_runaway_message != # パーティコマンドウインドウを閉じる @party_command_window.active = false @party_command_window.visible = false # メッセージ表示 @help_window.set_text($game_temp.rx_runaway_message, 1) # ウェイト Graphics.freeze Graphics.transition($game_temp.rx_runaway_message_wait) end end # メソッドを呼び戻す rx_rgsss21_battle_end(result) end end