//============================================================================= // RPG Maker MZ - VW Battleend Message  // Copyright (c) 2025 Virtual Wanderer // This software is released under the MIT License. // http://opensource.org/licenses/mit-license.php //============================================================================= /*:ja * @target MZ * @plugindesc 戦闘終了メッセージ拡張 * @author LegionHawk(VirtualWanderer) * * @param enemyEscapedMessage * @text 敵逃走時のメッセージ * @desc 敵が全部逃げた場合のメッセージテンプレート。 * @default %2はいなくなった。 * @type string * * @param enemyEscapedSwitch * @text 敵逃走スイッチ * @desc 敵が全部逃げた場合にONにするスイッチ * @default 0 * @type switch * * @param soloDefeatMessage * @text パーティー人数1人での敗北メッセージ * @desc パーティー人数1人でのメッセージテンプレート。 * @default %1は力尽きた……… * @type string * * @help VW_BattleendMessage.js * * このプラグインは、戦闘勝利メッセージの拡張を行うものです。 * 戦闘に勝利したときのメッセージで敵グループ名を参照出来るようにします。 * また、敵が全部逃げた場合のメッセージテンプレート、 * およびパーティー人数が1人の状態での敗北メッセージテンプレートを * プラグインパラメータを使用して設定出来ます。 * * ※注意事項 * BattleManager.displayVictoryMessageとBattleManager.displayDefeatMessageを * 上書きで書き換えてます。 * これらの処理を使用しているプラグインがある場合、それらのプラグインより上に * 設定する必要があります。 * * プラグインの特性上、競合の可能性が大きい処理のため、競合対策の * サポートは基本対象外となります。 * * ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ * ■ 設定方法 * ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ * エディタ側のデータベース→用語にあるメッセージ欄の「勝利」 * の項目に敵グループを指定したい場合、%2を文中に入れる。 * 同様に「敗北」の項目で敵グループを指定したい場合も * %2を文中に入れる事で設定出来る。 * 敗北時のメッセージはパーティー人数が1人の場合は * プラグインパラメータで指定したものになる。 * (詳細はプラグインパラメータの項目を参照) * * ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ * ■ プラグインパラメータ * ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ * ・敵逃走時のメッセージ * 敵が全部逃げた場合のメッセージテンプレート。 * * ・敵逃走スイッチ * 敵が全部逃げた場合にONにするスイッチ。0だと使用しないようになる。 * * ・パーティー人数1人での敗北メッセージ * パーティー人数1人の状態で敗北した場合のメッセージテンプレート。 * * ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ * ■ プラグインコマンド * ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ * なし * * ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ * ■ 利用規約 * ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ * 当プラグインのライセンス表示を残しておいて下さい。 * 当プラグインにつきましては、作者に無断で改変、再配布が可能で、 * 利用形態(商用、18禁利用等)についても制限はありません。 * ただし、動作保証などもございません。 * このプラグインを使用した結果、例えPCが爆発して大怪我したり、 * 死者が出たとしても、作者は一切責任を持ちません。 * * ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ * ■ 更新履歴 * ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ * V1.0.0 初版 * */ (() => { const parameters = PluginManager.parameters("VW_BattleendMessage"); const enemyEscapedMessage = parameters['enemyEscapedMessage']; const enemyEscapedSwitch = Number(parameters['enemyEscapedSwitch']); const soloDefeatMessage = parameters['soloDefeatMessage']; //逃走敵の設定 Game_Unit.prototype.hiddenMembers = function() { return this.members().filter(member => member.isHidden()); }; //敵全部逃走済みかの判定 Game_Unit.prototype.isAllHidden = function() { return this.hiddenMembers().length >= this.members().length; }; //戦闘勝利メッセージの設定(上書き) BattleManager.displayVictoryMessage = function() { if($gameTroop.isAllHidden()) { //逃走スイッチの設定(ON) if(enemyEscapedSwitch > 0) { $gameSwitches.setValue(enemyEscapedSwitch, true); } //戦闘勝利(敵逃亡)のメッセージに敵グループ名を設定追加(%2)で変換 $gameMessage.add(enemyEscapedMessage.format($gameParty.name(),$dataTroops[$gameTroop._troopId].name)); } else { //逃走スイッチの設定(OFF) if(enemyEscapedSwitch > 0) { $gameSwitches.setValue(enemyEscapedSwitch, false); } //戦闘勝利のメッセージに敵グループ名を設定追加(%2)で変換 $gameMessage.add(TextManager.victory.format($gameParty.name(),$dataTroops[$gameTroop._troopId].name)); } }; //戦闘敗北メッセージの設定(上書き) BattleManager.displayDefeatMessage = function() { const numBattleMembers = $gameParty._actors.length; if (numBattleMembers === 1) { $gameMessage.add(soloDefeatMessage.format($gameParty.name(),$dataTroops[$gameTroop._troopId].name)); } else { $gameMessage.add(TextManager.defeat.format($gameParty.name(),$dataTroops[$gameTroop._troopId].name)); } }; })();