ここでは、いわゆる「モンスター闘技場」の作り方をまとめます。
「モンスター闘技場」とは、下記のものを指します。
- モンスター同士が戦う。
- プレイヤーは参戦しない。
- プレイヤーは戦闘結果の勝者1名(体?)を予想する。
- 予想が当たっていれば、報酬が出る。
目次
サンプルプロジェクト
以下ではイベント内容を載せます。
MVも99%同じですが、一箇所だけスクリプトが異なります。
必要なもの
ステート
- 観客 - アクターが戦闘に参加しないよう、行動できないようにします。
- 闘技場(出場者) - 出場モンスターに付与します。「行動成約:味方を攻撃」にしてプレイヤーを攻撃しないようにします。
プラグイン
ステートで「味方を攻撃」を指定しても、自身を攻撃してしまうので、これを回避するプラグインを使用します。
プラグインの設定内容は、サンプルプロジェクトを参照ください。
MZ用
▼混乱ステート拡張(トリアコンタン様作) - ConfusionExtend.js
plugin-mz.fungamemake.com/archives/2581
MV用
▼混乱ステート拡張(トリアコンタン様作) - ConfusionExtend.js
plugin.fungamemake.com/archives/1157
▼混乱ステート時に自分を攻撃しない(ecf5DTTzl6h6lJj02様作) - ConfusionTargetEx.js
plugin.fungamemake.com/archives/27962
変数
- 生存インデックス(勝利者インデックス) - 戦闘終了時に勝者のインデックス番号を代入します。
- 勝者名 - 戦闘終了時に勝者の名前を代入します。
- 予想 - 戦闘開始前に勝者を予想し、代入します。
バトルイベント(コモンイベント)
ターン0/スパン:バトル
敵味方にステートを付与します。
同時にステータスウィンドウを非表示にすることで、雰囲気を出します。
◆スクリプト://アクターステータスウィンドウを非表示(この戦闘のみ) :スクリプト:SceneManager._scene._statusWindow.hide(); :スクリプト://MVでは BattleManager._statusWindow.hide();
◆敵キャラのステート変更:敵グループ全体, + 闘技場 ◆ステートの変更:パーティ全体, + 観客
ターン終了/スパン:ターン
敵グループが残り1体になったか判定し、勝者のインデックスと名前を取得します。
また、勝利者が決定した時点で、戦闘を終了します。
◆条件分岐:スクリプト:$gameTroop.aliveMembers().length === 1; ◆変数の操作:#0001 生存インデックス = $gameTroop.aliveMembers()[0].index(); ◆変数の操作:#0002 勝者名 = $gameTroop.aliveMembers()[0].name(); ◆文章:なし, なし, ウィンドウ, 下 :文章:試合終了! :文章:\V[2]の勝利! :文章:インデックス\V[1] ◆バトルの中断 ◆ :分岐終了
注意点:デプロイメント
サンプルではベースの戦闘をSVにし、闘技場の雰囲気を出すためにFVに切り替える処理を入れています。
この処理だけでデプロイメント時に「未使用ファイルを除外する」機能を使用すると、FV用の敵の画像が除外されてしまいます。
必要に応じて、ファイルを補完してください。
下記記事の「未使用ファイルとして除外されない対策」を参考にしてください。

コメントを投稿するにはログインしてください。