#ツクルーム › フォーラム › RPGツクールMV (RPG Maker MV) › 戦闘終了時にHPやMPを自動全回復させたい【よくある質問】
-
投稿者投稿
-
munokura
参加者ゲーム中のバランス調整のため、戦闘が終わったら自動でHPとMPを全回復させたいのですが、どこで設定すればいいのか分かりません。
プラグインなしでできる方法があれば知りたいです。ツクールAI君
メンバー## 戦闘終了時にHPやMPを自動全回復させたい【よくある質問】 要約
**実現したいこと**
* 戦闘終了時にHP、MPを自動で全回復
**試したこと**
* 設定場所を探した
**試用プラグイン**
* なし
**問題点**
* 設定場所が不明
**不明点**
* イベントコマンドで実現可能か?
* JavaScriptの知識はあるか?
* 全回復のタイミングは戦闘終了直後か?戦闘終了画面のフェードアウト後か?
* 全ての戦闘で適用させたいか?特定の戦闘を除外したいケースはあるか?
* HP/MPのどちらかだけを回復させたいケースはあるか?投稿者様、こちらの要約は意図通りでしょうか?不明点が補足・追記いただけると回答が得やすくなると思われます。
### 回答
RPGツクールMVのデフォルト機能で戦闘終了時にHPとMPを自動全回復させる設定はありません。プラグインなしで実現するにはイベントコマンドを使う方法が一般的です。
以下、戦闘終了直後に全回復させるイベントコマンドの設定方法です。
1. 戦闘終了後に実行されるコモンイベントを作成します。
2. コモンイベントの中に、パーティメンバー全員に対して「変数の操作」コマンドを追加します。
3. 「変数の操作」コマンドで、以下の設定を行います。* オペランド:ゲームデータの変更
* データの種類:アクター
* アクター:<対象のアクター> (全員の場合はそれぞれのコマンドが必要)
* データ:HP
* 操作:代入
* オペランド:定数
* 値:<対象のアクターの最大HP> (変数で最大HPを取得することも可能)4. MPについても同様に設定します。
JavaScriptの知識があれば、プラグインを作成することでより柔軟な設定が可能になります。例えば、特定の戦闘でのみ回復させたり、回復量を調整したりといったことが実現できます。
より具体的な解決策を提示するには、上記「不明点」への回答が必要です。状況に応じて最適な方法を提案できますので、補足情報をお待ちしております。
※閲覧者の皆様、私の回答に問題がありましたら、ご指摘いただけると助かります。
また、解決できた場合、トピックを編集し「トピックを解決済みにする」にチェックを入れてください。munokura
参加者* JavaScriptの知識はあるか?
無い前提です。* 全回復のタイミングは戦闘終了直後か?戦闘終了画面のフェードアウト後か?
どちらでも良いです。* 全ての戦闘で適用させたいか?特定の戦闘を除外したいケースはあるか?
全ての戦闘で適用させたいです。* HP/MPのどちらかだけを回復させたいケースはあるか?
両方を全回復したいです。提案いただいたイベントコマンドだと、パーティメンバー全部の設定が必要です。
下記のほうが簡便と思われます。コモンイベント
トリガー:並列処理 スイッチ:お好きな番号 イベントコマンド ◆全回復:パーティ全体
を作成し、ゲーム開始時に上記のスイッチをONにする処理を作れば、いつでも全回復するゲームになります。
この場合は下記の点に注意してください。
・マップ画面に戻ったら回復する。
・ダメージ床のダメージも回復してしまいますが…戦闘毎だけに回復したいのであれば、一手間増えますが、
1.コモンイベントトリガー:自動実行
スイッチ:お好きな番号(例001)
イベントコマンド◆全回復:パーティ全体 ◆スイッチの操作:#0001 = OFF
を作成。
2.全バトルイベント(敵グループ内)に下記を作成
条件:ターン0 スパン:バトル ◆全回復:パーティ全体 ◆スイッチの操作:#0001 = ON
もし、戦闘シーン内で戦闘終了時に回復させたい場合、プラグインを使用することをお勧めします。
また、バトルイベントを共通化するプラグインもあるので、そちらを使うのも良いと思います。▼FTKR Ex Battle Event(フトコロ様作) – FTKR_ExBattleEvent.js
https://plugin.fungamemake.com/archives/1363
バトルイベントを拡張する▼SRD Battle End Events(SumRndmDde様作) – SRD_BattleEndEvents.js
https://plugin.fungamemake.com/archives/26487
戦闘終了(マップに戻る前)時に結果に応じたコモンイベントを実行できます。▼KZR 戦闘終了時HP/MP回復(ぶちょー様作) – KZR_BattleEndRecover.js
https://plugin.fungamemake.com/archives/11305
戦闘終了時にHPとMPを回復▼全バトルにバトルイベントを適用(奏ねこま(おとぶきねこま)様作) – AlwaysAppliedBattleEvent.js
https://plugin.fungamemake.com/archives/13116
指定した敵グループのバトルイベントを、全てのバトルに適用します。イベントコマンドのみで、もっと簡単な方法がありましたら、私も知りたく思います。
munokura
参加者munokura
参加者◆変数の操作:#0001 戦闘回数 = 戦闘回数
が使えるので、下記のようなコモンイベントを作ると、戦闘毎に全回復するようになりますね。トリガー:並列処理
スイッチ:001(例)◆変数の操作:#0001 戦闘回数 = 戦闘回数 ◆条件分岐:前戦闘回数 < 戦闘回数 ◆全回復:パーティ全体 ◆変数の操作:#0002 前戦闘回数 = 戦闘回数 ◆ :分岐終了
これで、ゲーム開始時にスイッチ001をONにしておけば、戦闘終了後にマップに戻った時点でパーティ全体が回復します。
表示は何もされないので、メッセージなりアニメーションを再生するなりアレンジした方が良いと思います。-
この返信は3ヶ月、 3週前に
munokuraが編集しました。
-
この返信は3ヶ月、 3週前に
munokuraが編集しました。
-
この返信は3ヶ月、 3週前に
munokuraが編集しました。
-
この返信は3ヶ月、 3週前に
munokuraが編集しました。
fsfsc
参加者//=============================================================================
// AutoRecoverAfterBattle.js
//=============================================================================
/*:
* @plugindesc 戦闘終了後に自動で全員のHPとMPを回復(ノンインベーティブ)
* @author カスタム
*
* @help 設定不要。プラグインを有効にするだけで動作します。
* 戦闘終了時(勝利・敗北・逃走・中断問わず)に、パーティ全員のHPとMPを完全回復します。
*/
(function() {
// 元のメソッドを保存
const _BattleManager_endBattle = BattleManager.endBattle;
// 元のメソッドを拡張
BattleManager.endBattle = function(result) {
_BattleManager_endBattle.call(this, result); // 元の処理を呼び出して正常に終了
// パーティ全員のHP・MPを完全回復
$gameParty.members().forEach(actor => {
actor.recoverAll();
});
};
})();
-
この返信は3ヶ月、 3週前に
-
投稿者投稿