スクリプトでバトルの処理を行う方法 [RGSS3]
バトルの処理はエンカウント式を取るなら何度も設定しなければならないイベントです。特殊なエンカウント方式を取るときなどにスクリプトで行う必要が出てきます。
バトルの処理を行うには以下の通りです。
$bm = BattleManager #バトル処理の下準備
$bm.setup(敵グループID, 逃走可能か,負けた場合も継続か)
$bm.event_proc = Proc.new{|n| @branch[1] = n}
#戦闘の結果を@branchに代入、nに選択肢の数値を代入
$game_player.make_encounter_count
SceneManager.call(Scene_Battle)
Fiber.yield #戦闘までウェイト
if @branch[1] == 0 #勝利した場合の処理
$game_message.add("勝利した場合の処理")
elsif @branch[1] == 1 #逃走した場合の処理
$game_message.add("逃げた場合の処理")
elsif @branch[1] == 2 #負けた場合の処理
$game_message.add("負けた場合の処理")
end
補足
逃走可能:trueで逃走可能、falseで逃走不可能
負けた場合も継続か:trueで継続、falseで継続しない
サンプルコード(IDが12の敵グループと戦闘、逃走可能、負けた場合ゲームオーバー、勝利した場合「勝利した」というメッセージ、逃げた場合「逃げた」というメッセージ、負けた場合「負けた」というメッセージを表示)
$bm = BattleManager
$bm.setup(12, true, false)
$bm.event_proc = Proc.new{|n| @branch[1] = n}
$game_player.make_encounter_count
SceneManager.call(Scene_Battle)
Fiber.yield
if @branch[1] == 0
$game_message.add("勝利した")
elsif @branch[1] == 1
$game_message.add("逃げた")
elsif @branch[1] == 2
$game_message.add("負けた")
end
バトルの処理に関してはシーンの移り変わりや入力しなくてはいけない変数、さらにバトル後の処理に関しても記述しなくてはいけないため、コードが他に比べて長くなります。
ふりーむ様にてRGSS3のリファレンスを公開しています。
RGSSを使ってみたい、RGSSを勉強したいという方は参考になさってください。
RGSS3リファレンス イベントコマンド版

にほんブログ村