=begin
RPGツクールVXAce用スクリプト素材
全滅時にコモンイベントを実施
2012年12月08日
tamuraさんは遊び足りない 製作
[url]http://tamurarpgvx.blog137.fc2.com/[/url]
【概要】
戦闘で全滅したときに、ゲームオーバーに行かずにコモンイベントを実施します。
【導入方法】
スクリプトエディタを開き、左のリストの一番下、「ここに追加」と書いてある部分の
下の空欄を選び、右クリック、「挿入」を選ぶ。
出来た空欄に、「名前」の所でファイル名を入れておくといい。
右に空白の領域に、このテキストファイル全文をコピーして貼り付け。
【使い方】
・戦闘で全滅した際、ゲームスイッチ CALL_GAME_OVER_EX 番がONだと、
ゲームオーバーにならずに、コモンイベント STARTUP_COMMON を実施します。
これらのスイッチ・コモンイベントを、下記 module TamuraGameOver のところで
設定してください。
【注意事項・コモンイベントの作り方】
・まず「全回復」を実行してください。
マップに戻った瞬間にゲームオーバーになります。
・コモンイベントが一通り終わったら、イベントコマンドの「スクリプト」を使って、
SceneManager.call(Scene_Map)
と書かないと、マップに戻れずにフリーズします!
・おそらく「場所移動」を使う人が大半かと思われますが、上記の
SceneManager.call(Scene_Map) の後で場所移動を実行しないとフリーズします。
=end
module TamuraGameOver
#このスイッチがONの時に、ゲームオーバーコモンを呼び出す。
CALL_GAME_OVER_EX = 306
#この番号のコモンイベントを呼び出す。
STARTUP_COMMON = 10
end
#==============================================================================
# ■ BattleManager
#------------------------------------------------------------------------------
# ゲームオーバーの呼び出しを変更。
#==============================================================================
module BattleManager
#--------------------------------------------------------------------------
# ● 敗北の処理
#--------------------------------------------------------------------------
def self.process_defeat
$game_message.add(sprintf(Vocab::Defeat, $game_party.name))
wait_for_message
if @can_lose
revive_battle_members
replay_bgm_and_bgs
SceneManager.return
else
if $game_switches[TamuraGameOver::CALL_GAME_OVER_EX]
SceneManager.call(Scene_GameOverEx)
else
SceneManager.goto(Scene_Gameover)
end
end
battle_end(2)
return true
end
end
#==============================================================================
# ■ Scene_GameOverEx
#------------------------------------------------------------------------------
# 宝箱画面の処理を行うクラス。
#==============================================================================
class Scene_GameOverEx < Scene_Base
#--------------------------------------------------------------------------
# ● 開始処理
#--------------------------------------------------------------------------
def start
super
SceneManager.clear
$game_map.refresh
$game_message.visible = false
@menu_calling = false
create_all_windows
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
def update
super
$game_map.update(true)
end
#--------------------------------------------------------------------------
# ● ウィンドウの作成・現在のイベントの中断・コモンイベント予約
#--------------------------------------------------------------------------
def create_all_windows
@message_window = Window_Message.new
$game_map.interpreter.clear
$game_temp.reserve_common_event(TamuraGameOver::STARTUP_COMMON) #開始コモンイベント
end
end