こんにちは、今日はRPGツクールMVのランダムエンカウントで、逃走できるかどうかをスイッチの値によって切り替えるプラグインの作り方についてまとめていきます。
Table of Contents
確認環境
RPGツクールMV Version 1.6.2
プラグインコード
SetCanEscape.jsというファイルに以下のコードを貼り付けプロジェクトのプラグインフォルダに追加、プラグイン管理からプラグインを有効にすると使用可能です。
//=============================================================================
// SetCanEscape.js
//=============================================================================
/*:
* @plugindesc 逃げるコマンドの追加をスイッチで切り替える
*
* @param canEscapeSwitchNo
* @desc 逃げるコマンド有効/無効切り替えスイッチの番号
* @default 10
*
* @help 指定のスイッチがONになっている場合、戦闘コマンド「逃げる」が追加されます。
*
* このプラグインには、プラグインコマンドはありません。
*/
(function() {
var parameters = PluginManager.parameters('SetCanEscape');
Window_PartyCommand.prototype.makeCommandList = function() {
this.addCommand(TextManager.fight, 'fight');
if ($gameSwitches.value(parameters['canEscapeSwitchNo'])) {
this.addCommand(TextManager.escape, 'escape', BattleManager.canEscape());
}
};
})();
コード解説
元コード
js/rpg_windows.js 5341行目に定義されているWindow_PartyCommand.prototype.makeCommandList関数で戦闘のパーティコマンドが作られています。
Window_PartyCommand.prototype.makeCommandList = function() {
this.addCommand(TextManager.fight, 'fight');
this.addCommand(TextManager.escape, 'escape', BattleManager.canEscape());
};
こちらの関数をプラグインで上書きし、「逃げる」コマンドの追加部分にスイッチがONになっているかの条件を付与します。
プラグインパラメータ
「逃げる」コマンドの有効/無効を切り替えるスイッチとして使用するスイッチIDを設定するプラグインパラメータcanEscapeSwitchNoを定義しています。
初期値は10になっているため、初期状態ではスイッチID10がONになっている場合に「逃げる」コマンドが追加されるようになっています。
他のスイッチIDを使用したい場合はこちらのプラグインパラメータの値を変更します。
「逃げる」コマンドを表示するか
現在のコードではスイッチの値がOFFの場合、「逃げる」コマンド自体を追加しないようにしています。
こちらをコマンド自体は追加し、グレーアウトして選択できない状態にするには、以下の部分を
if ($gameSwitches.value(parameters['canEscapeSwitchNo'])) {
this.addCommand(TextManager.escape, 'escape', BattleManager.canEscape());
}
以下のように変更します。
this.addCommand(TextManager.escape, 'escape', $gameSwitches.value(parameters['canEscapeSwitchNo']));
これでコマンド自体は必ず追加され、スイッチの値により選択できるかが変わります。