code:
//=============================================================================
// StartUpFullScreen.js
// ----------------------------------------------------------------------------
// (C)2015 Triacontane
// This software is released under the MIT License.
// http://opensource.org/licenses/mit-license.php
// ----------------------------------------------------------------------------
// Version
// 1.2.0 2022/09/09 ゲーム終了画面にもシャットダウン項目を追加できる機能を追加
// 1.1.0 2021/12/30 イベントテスト実行時は全画面化を無効にするよう仕様変更
// 1.0.3 2019/01/14 1.0.3でコアスクリプトv1.6.1以前で逆に動作しなくなっていた問題を修正
// 1.0.2 2019/01/14 コアスクリプトv1.6.1以降で正常に動作していなかった問題を修正
// 1.0.1 2018/06/30 タイトルコマンドウィンドウのY座標整数になっていなかった問題を修正
// 1.0.0 2016/03/06 初版
// ----------------------------------------------------------------------------
// [Blog]   : https://triacontane.blogspot.jp/
// [Twitter]: https://twitter.com/triacontane/
// [GitHub] : https://github.com/triacontane/
//=============================================================================

/*:
 * @plugindesc Start up full screen
 * @author triacontane
 *
 * @param Shutdown
 * @desc Command name for shutdown.
 * @default Shutdown
 *
 * @param UseTitle
 * @default true
 * @type boolean
 *
 * @param UseGameEnd
 * @default true
 * @type boolean
 *
 * @param StartUpFullScreen
 * @desc Command name for full screen option.
 * @default Full Screen
 *
 * @help Add option start up full screen.
 * This plugin is using only local execute.
 *
 * This plugin is released under the MIT License.
 */
/*:ja
 * @plugindesc フルスクリーンで起動プラグイン
 * @author トリアコンタン
 *
 * @param Shutdown
 * @text シャットダウン
 * @desc タイトル画面、ゲーム終了画面に追加するシャットダウンの項目名です。
 * @default シャットダウン
 *
 * @param UseTitle
 * @text タイトル画面に追加
 * @desc タイトル画面にシャットダウンの項目を追加します。
 * @default true
 * @type boolean
 *
 * @param UseGameEnd
 * @text ゲーム終了画面に追加
 * @desc ゲーム終了画面にシャットダウンの項目を追加します。
 * @default true
 * @type boolean
 *
 * @param StartUpFullScreen
 * @text フルスクリーンで起動
 * @desc オプション画面に追加する全画面で起動の項目名です。
 * @default フルスクリーンで起動
 *
 * @help オプション画面に「フルスクリーンで起動」を追加します。
 * 有効な場合、ゲームをフルスクリーンで起動します。
 * またタイトル画面にシャットダウンを追加します。
 *
 * このプラグインはローカル環境で実行した場合のみ有効です。
 * イベントテスト実行時はテンポを優先し全画面化は無効となります。
 *
 * このプラグインにはプラグインコマンドはありません。
 *
 * 利用規約：
 *  作者に無断で改変、再配布が可能で、利用形態（商用、18禁利用等）
 *  についても制限はありません。
 *  このプラグインはもうあなたのものです。
 */

function Scene_Terminate() {
    this.initialize.apply(this, arguments);
}

(function () {
    'use strict';
    // Nw.js環境下以外では一切の機能を無効
    if (!Utils.isNwjs()) {
        return;
    }
    var createPluginParameter = function(pluginName) {
        var paramReplacer = function(key, value) {
            if (value === 'null') {
                return value;
            }
            if (value[0] === '"' && value[value.length - 1] === '"') {
                return value;
            }
            try {
                return JSON.parse(value);
            } catch (e) {
                return value;
            }
        };
        var parameter     = JSON.parse(JSON.stringify(PluginManager.parameters(pluginName), paramReplacer));
        PluginManager.setParameters(pluginName, parameter);
        return parameter;
    };

    var param = createPluginParameter('StartUpFullScreen');

    //=============================================================================
    // Graphics
    //  privateメソッド「_requestFullScreen」を呼び出します。
    //=============================================================================
    Graphics.requestFullScreen = function() {
        if (!this._isFullScreenForPrevVersion()) {
            this._requestFullScreen();
        }
    };

    /**
     * @static
     * @method _isFullScreenForPrevVersion
     * @return {Boolean}
     * @private
     */
    Graphics._isFullScreenForPrevVersion = function() {
        return document.fullscreenElement ||
            document.mozFullScreen ||
            document.webkitFullscreenElement ||
            document.msFullscreenElement;
    };

    //=============================================================================
    // Scene_Boot
    //  フルスクリーンで起動する処理を追加します。
    //=============================================================================
    var _Scene_Boot_start = Scene_Boot.prototype.start;
    Scene_Boot.prototype.start = function() {
        _Scene_Boot_start.apply(this, arguments);
        if (ConfigManager.startUpFullScreen && !DataManager.isEventTest()) {
            Graphics.requestFullScreen();
        }
    };

    //=============================================================================
    // Scene_Title
    //  シャットダウンの処理を追加定義します。
    //=============================================================================
    var _Scene_Title_createCommandWindow = Scene_Title.prototype.createCommandWindow;
    Scene_Title.prototype.createCommandWindow = function() {
        _Scene_Title_createCommandWindow.apply(this, arguments);
        if (param.UseTitle) {
            this._commandWindow.setHandler('shutdown',  this.commandShutdown.bind(this));
        }
    };

    Scene_Title.prototype.commandShutdown = function() {
        this._commandWindow.close();
        this.fadeOutAll();
        SceneManager.goto(Scene_Terminate);
    };

    //=============================================================================
    // Scene_GameEnd
    //  シャットダウンの処理を追加定義します。
    //=============================================================================
    var _Scene_GameEnd_createCommandWindow = Scene_GameEnd.prototype.createCommandWindow;
    Scene_GameEnd.prototype.createCommandWindow = function() {
        _Scene_GameEnd_createCommandWindow.apply(this, arguments);
        if (param.UseGameEnd) {
            this._commandWindow.setHandler('shutdown',  this.commandShutdown.bind(this));
        }
    };

    Scene_GameEnd.prototype.commandShutdown = function() {
        this._commandWindow.close();
        this.fadeOutAll();
        SceneManager.goto(Scene_Terminate);
    };

    //=============================================================================
    // Window_TitleCommand
    //  シャットダウンの選択肢を追加定義します。
    //=============================================================================
    var _Window_TitleCommand_makeCommandList = Window_TitleCommand.prototype.makeCommandList;
    Window_TitleCommand.prototype.makeCommandList = function() {
        _Window_TitleCommand_makeCommandList.apply(this, arguments);
        if (param.UseTitle) {
            this.addCommand(param.Shutdown, 'shutdown');
        }
    };

    var _Window_TitleCommand_updatePlacement = Window_TitleCommand.prototype.updatePlacement;
    Window_TitleCommand.prototype.updatePlacement = function() {
        _Window_TitleCommand_updatePlacement.apply(this, arguments);
        if (param.UseTitle) {
            this.y += Math.floor(this.height / 8);
        }
    };

    //=============================================================================
    // Window_GameEnd
    //  シャットダウンの選択肢を追加定義します。
    //=============================================================================
    var _Window_GameEnd_makeCommandList = Window_GameEnd.prototype.makeCommandList;
    Window_GameEnd.prototype.makeCommandList = function() {
        _Window_GameEnd_makeCommandList.apply(this, arguments);
        if (param.UseGameEnd) {
            this.addCommand(param.Shutdown, 'shutdown');
            this._list.splice(1, 0, this._list.pop());
        }
    };

    var _Window_GameEnd_updatePlacement = Window_GameEnd.prototype.updatePlacement;
    Window_GameEnd.prototype.updatePlacement = function() {
        _Window_GameEnd_updatePlacement.apply(this, arguments);
        if (param.UseGameEnd) {
            this.y += Math.floor(this.height / 8);
        }
    };

    //=============================================================================
    // ConfigManager
    //  オプションに「フルスクリーンで起動」項目を追加します。
    //=============================================================================
    ConfigManager.startUpFullScreen = false;

    var _ConfigManager_applyData = ConfigManager.applyData;
    ConfigManager.applyData = function(config) {
        _ConfigManager_applyData.apply(this, arguments);
        this.startUpFullScreen = this.readFlag(config, 'startUpFullScreen');
    };

    var _ConfigManager_makeData = ConfigManager.makeData;
    ConfigManager.makeData = function() {
        var config = _ConfigManager_makeData.apply(this, arguments);
        config.startUpFullScreen = this.startUpFullScreen;
        return config;
    };

    //=============================================================================
    // Window_Options
    //  オプションに「フルスクリーンで起動」項目を追加します。
    //=============================================================================
    var _Window_Options_addGeneralOptions = Window_Options.prototype.addGeneralOptions;
    Window_Options.prototype.addGeneralOptions = function() {
        _Window_Options_addGeneralOptions.apply(this, arguments);
        this.addCommand(param.StartUpFullScreen, 'startUpFullScreen');
    };

    //=============================================================================
    // Scene_Terminate
    //  ゲームを終了します。
    //=============================================================================
    Scene_Terminate.prototype = Object.create(Scene_Base.prototype);
    Scene_Terminate.prototype.constructor = Scene_Terminate;

    Scene_Terminate.prototype.start = function() {
        SceneManager.terminate();
    };
})();


code:
/*=============================================================================
 StateAfterDeath.js
----------------------------------------------------------------------------
 (C)2018 Triacontane
 This software is released under the MIT License.
 http://opensource.org/licenses/mit-license.php
----------------------------------------------------------------------------
 Version
 1.0.2 2021/09/16 戦闘不能後継続ステートをすでに戦闘不能のバトラーに付与したときにも付与できるよう修正
 1.0.1 2018/08/12 継続ステートが戦闘不能後にターン数で解除されなくなっていた問題を修正
 1.0.0 2018/08/12 初版
----------------------------------------------------------------------------
 [Blog]   : https://triacontane.blogspot.jp/
 [Twitter]: https://twitter.com/triacontane/
 [GitHub] : https://github.com/triacontane/
=============================================================================*/

/*:
 * @plugindesc StateAfterDeathPlugin
 * @author triacontane
 *
 * @param states
 * @desc 戦闘不能後も継続するステートの配列の一覧です。
 * @type state[]
 * @default []
 *
 * @help StateAfterDeath.js
 *
 * 戦闘不能後も解除されず継続するステートを作成できます。
 * パラメータから対象となるステートを指定してください。
 *
 * このプラグインにはプラグインコマンドはありません。
 *
 * This plugin is released under the MIT License.
 */
/*:ja
 * @plugindesc 戦闘不能後継続ステートプラグイン
 * @author トリアコンタン
 *
 * @param states
 * @text 対象ステート
 * @desc 戦闘不能後も継続するステートの配列の一覧です。
 * @type state[]
 * @default []
 *
 * @help StateAfterDeath.js
 *
 * 戦闘不能後も解除されず継続するステートを作成できます。
 * パラメータから対象となるステートを指定してください。
 *
 * このプラグインにはプラグインコマンドはありません。
 *
 * 利用規約：
 *  作者に無断で改変、再配布が可能で、利用形態（商用、18禁利用等）
 *  についても制限はありません。
 *  このプラグインはもうあなたのものです。
 */

(function() {
    'use strict';

    /**
     * Create plugin parameter. param[paramName] ex. param.commandPrefix
     * @param pluginName plugin name(EncounterSwitchConditions)
     * @returns {Object} Created parameter
     */
    var createPluginParameter = function(pluginName) {
        var paramReplacer = function(key, value) {
            if (value === 'null') {
                return value;
            }
            if (value[0] === '"' && value[value.length - 1] === '"') {
                return value;
            }
            try {
                return JSON.parse(value);
            } catch (e) {
                return value;
            }
        };
        var parameter     = JSON.parse(JSON.stringify(PluginManager.parameters(pluginName), paramReplacer));
        PluginManager.setParameters(pluginName, parameter);
        return parameter;
    };

    var param = createPluginParameter('StateAfterDeath');
    if (!param.states) {
        param.states = [];
    }

    var _Game_BattlerBase_die      = Game_BattlerBase.prototype.die;
    Game_BattlerBase.prototype.die = function() {
        var stillStates     = this._states.filter(function(stateId) {
            return param.states.contains(stateId);
        });
        var stillStateTurns = {};
        stillStates.forEach(function(stateId) {
            stillStateTurns[stateId] = this._stateTurns[stateId];
        }, this);
        _Game_BattlerBase_die.apply(this, arguments);
        this._states     = this._states.concat(stillStates);
        this._stateTurns = stillStateTurns;
    };

    const _Game_BattlerBase_isAlive = Game_BattlerBase.prototype.isAlive;
    Game_BattlerBase.prototype.isAlive = function() {
        const result = _Game_BattlerBase_isAlive.apply(this, arguments);
        return this._ignoreDeath ? true : result;
    };

    const _Game_Battler_isStateAddable = Game_Battler.prototype.isStateAddable;
    Game_Battler.prototype.isStateAddable = function(stateId) {
        if (param.states.contains(stateId)) {
            this._ignoreDeath = true;
        }
        const result = _Game_Battler_isStateAddable.apply(this, arguments);
        this._ignoreDeath = false;
        return result;
    };
})();

repo_name: dazed/translations

license: unknown


code:
//=============================================================================
// StateRolling.js
//=============================================================================

/*:
 * @plugindesc アクター側もエネミー同様にステート表示を回転させます。
 * @author 村人C
 *
 * @help
 *
 * 使い方
 * ステートの「メモ欄」に記述
 * <turn_hide>
 * ターン数を非表示に出来ます。
 *
 *
 * プラグインパラメータ：
 *
 * StateRolling
 * <Roll>
 * アイコンの回転速度
 * 数値が小さいほど速くなります。
 *
 * Visible
 * サイドビュー時にステータスウインドウにステートを表示する
 * 有効： on
 * 無効： off
 *
 * TextVisible
 * ステートのターン数を表示する
 * 有効： on
 * 無効： off
 *
 * TextColor
 * ターン数の表示色
 * 色の指定は
 * 英単語：  Red
 * 16進数：  #ff0000
 * RGB：  rgb(255,0,0,0)
 * どのタイプでも使用可能です。
 * RGBは(赤,緑,青,グレー)になります。
 * 他の色については「CSS Color」等で検索して下さい。
 *
 *
 * 仕様
 * ステート座標の設定はサイドビュー専用です。
 * ターン数の座標はサイドビュー、フロントビューどちらも使用可能です。
 * ステートが「自動解除のタイミング：なし」の場合は、ターン数を表示しません。
 *
 *
 * readmeやスタッフロールの明記、使用報告は任意
 *
 *
 * @param Visible
 * @desc サイドビュー時にステータスウインドウにステートを表示する
 * デフォルト: off
 * @default off
 *
 * @param TextVisible
 * @desc ステートのターン数を表示する
 * デフォルト: on
 * @default on
 *
 * @param Roll
 * @desc 回転速度
 * デフォルト: 40
 * @default 40
 *
 * @param x
 * @desc x座標
 * デフォルト: 46
 * @default 46
 *
 * @param y
 * @desc y座標
 * デフォルト: 30
 * @default 30
 *
 * @param TextColor
 * @desc ターン数の文字色
 * デフォルト: #FFFFFF
 * @default #FFFFFF
 *
 * @param TextSize
 * @desc ターン数の文字サイズ
 * デフォルト: 18
 * @default 18
 *
 * @param Text_x
 * @desc ターン数のx座標
 * デフォルト: 0
 * @default 0
 *
 * @param Text_y
 * @desc ターン数のy座標
 * デフォルト: 0
 * @default 0
 *
 */

var StateRolling = StateRolling || {};
StateRolling.Parameters = PluginManager.parameters('StateRolling');
// 初期設定
StateRolling.Roll = [];
StateRolling.Text = [];
StateRolling.Roll[0] = Number(StateRolling.Parameters["Roll"]) || 40;
StateRolling.Roll[1] = Number(StateRolling.Parameters["x"])    || 46;
StateRolling.Roll[2] = Number(StateRolling.Parameters["y"])    || 30;
StateRolling.Roll[3] = StateRolling.Parameters["Visible"] || "on";
StateRolling.Text[0] = StateRolling.Parameters["TextVisible"] || "on";
StateRolling.Text[1] = Number(StateRolling.Parameters["TextSize"]) || 18;
StateRolling.Text[2] = Number(StateRolling.Parameters["Text_x"]) || 0;
StateRolling.Text[3] = Number(StateRolling.Parameters["Text_y"]) || 0;
StateRolling.Text[4] = StateRolling.Parameters["TextColor"] || "#FFFFFF";

(function() {
	// 全てのターン取得
	Game_BattlerBase.prototype.allTurns = function() {
		return this.stateTurns().concat(this.buffTurns());
	};
	// ステートのターン取得
	Game_BattlerBase.prototype.stateTurns = function() {
		var states = this.states().map(function(state) {
			return state;
		}).filter(function(state) {
			return state.iconIndex > 0;
		});
		var state = [];
		states.forEach(function(sta) {
			if (sta.meta.turn_hide) {
				state.push(0);
			} else if (sta.autoRemovalTiming > 0) {
				state.push(this._stateTurns[sta.id]-1);
			} else {
				state.push(0);
			}
		}, this);
		return state;
	};
	// 強化のターン取得
	Game_BattlerBase.prototype.buffTurns = function() {
		var turns = [];
		for (var i = 0; i < this._buffs.length; i++) {
			if (this._buffs[i] !== 0) {
				turns.push(this._buffTurns[i]);
			}
		}
		return turns;
	};
	// 回転速度
	var Sprite_StateIcon_animationWait_StateRolling = Sprite_StateIcon.prototype.animationWait;
	Sprite_StateIcon.prototype.animationWait = function() {
		Sprite_StateIcon_animationWait_StateRolling.call(this);
		return StateRolling.Roll[0];
	};
	// アイコンの更新
	var Sprite_StateIcon_updateIcon_StateRolling = Sprite_StateIcon.prototype.updateIcon;
	Sprite_StateIcon.prototype.updateIcon = function() {
		if (this._battler && this._battler.isActor()) {
			var icons = [];
			icons = this._battler.allIcons();
			icons = [...new Set(icons)];
			if (icons.length > 0) {
				this._animationIndex++;
				if (this._animationIndex >= icons.length) {
					this._animationIndex = 0;
				}
				this._iconIndex = icons[this._animationIndex];
			} else {
				this._animationIndex = 0;
				this._iconIndex = 0;
			}
		} else {
			return Sprite_StateIcon_updateIcon_StateRolling.call(this);
		}
	};
	// メンバーの初期化
	var Sprite_StateIcon_initMembers_StateRolling = Sprite_StateIcon.prototype.initMembers;
	Sprite_StateIcon.prototype.initMembers = function() {
		Sprite_StateIcon_initMembers_StateRolling.call(this);
		this._turnIndex = 0;
		this._sprite = new Sprite();
		this.addChild(this._sprite);
	};
	// アイコンのセット
	var Sprite_StateIcon_updateFrame_StateRolling = Sprite_StateIcon.prototype.updateFrame;
	Sprite_StateIcon.prototype.updateFrame = function() {
		Sprite_StateIcon_updateFrame_StateRolling.call(this);
		if (StateRolling.Text[0] === "on") { // ターン表示フラグ
			if (this._battler) {
				var turns = this._battler.allTurns();
				if (turns.length > 0) {
					this._turnIndex = turns[this._animationIndex]; // ターン数の取得
					this._sprite.bitmap = null; // 初期化
					if (this._turnIndex > 0) {
						var bitmap = new Bitmap(Sprite_StateIcon._iconWidth, Sprite_StateIcon._iconHeight);
						bitmap.fontSize = StateRolling.Text[1];
						bitmap.textColor = StateRolling.Text[4];
						bitmap.drawText(this._turnIndex, StateRolling.Text[2], (-6 + StateRolling.Text[3]), bitmap.width, bitmap.height, 'center');
						this._sprite.bitmap = bitmap; // 表示
			}}}
		}
	};
	// ステートスプライトの作成
	var Sprite_Actor_createStateSprite_StateRolling = Sprite_Actor.prototype.createStateSprite;
	Sprite_Actor.prototype.createStateSprite = function() {
		Sprite_Actor_createStateSprite_StateRolling.call(this);
		this._stateIconSprite = new Sprite_StateIcon();
		this._stateIconSprite.x = StateRolling.Roll[1];
		this._stateIconSprite.y = -Math.round((384 + StateRolling.Roll[2]) * 0.1);
		this.addChild(this._stateIconSprite);
	};
	// アクターのセット
	var Sprite_Actor_setBattler_StateRolling = Sprite_Actor.prototype.setBattler;
	Sprite_Actor.prototype.setBattler = function(battler) {
		Sprite_Actor_setBattler_StateRolling.call(this, battler)
		this._stateIconSprite.setup(battler); // 追加
	};
	// ステートアイコンの表示
	var Window_BattleStatus_drawActorIcons_StateRolling = Window_BattleStatus.prototype.drawActorIcons;
	Window_BattleStatus.prototype.drawActorIcons = function(actor, x, y, width) {
		if (!$gameSystem.isSideView()) { // サイドビュー判定
			if (this._stateIconSprite === undefined) {this._stateIconSprite = [];}
			if (this._stateIconSprite[actor.index()] === undefined) {
				this._stateIconSprite[actor.index()] = new Sprite_StateIcon();
				this._stateIconSprite[actor.index()].x = x + (Window_Base._iconWidth * 0);
				this._stateIconSprite[actor.index()].y = y + 2 + Window_Base._iconWidth;
				this.addChild(this._stateIconSprite[actor.index()]);
				this._stateIconSprite[actor.index()].setup(actor);
			}
		} else {
			if (StateRolling.Roll[3] === "on") { return Window_BattleStatus_drawActorIcons_StateRolling.call(this, actor, x, y, width); }
		}
	};
})();


code:
//
//  足踏み速度変更 ver1.00
//
// ------------------------------------------------------
// Copyright (c) 2016 Yana
// Released under the MIT license
// http://opensource.org/licenses/mit-license.php
// ------------------------------------------------------
//
// author Yana
//

var Imported = Imported || {};
Imported['StepSpeed'] = 1.00;
/*:
 * @target MZ MV
 * @url https://raw.githubusercontent.com/munokura/Yana-MV-plugins/master/Map_Message/StepSpeed.js
 * @plugindesc ver1.00/イベントの足踏み速度を変更します。
 * @author Yana
 *
 * @help
 * ------------------------------------------------------
 * 使用方法
 * ------------------------------------------------------
 * イベントのメモに
 * <足踏み速度:x>
 * または、
 * <StepSpeed:x>
 * と記述すると、足踏み速度を1/xに変更します。
 * xには小数が指定でき、1以下に設定すると、足踏み速度が速くなります。
 *
 * ------------------------------------------------------
 * 利用規約
 * ------------------------------------------------------
 * 当プラグインはMITライセンスで公開されています。
 * 使用に制限はありません。商用、アダルト、いずれにも使用できます。
 * 二次配布も制限はしませんが、サポートは行いません。
 * 著作表示は任意です。行わなくても利用できます。
 * 要するに、特に規約はありません。
 * バグ報告や使用方法等のお問合せはネ実ツクールスレ、
 * または、Twitterにお願いします。
 * https://twitter.com/yanatsuki_
 * 素材利用は自己責任でお願いします。
 * ------------------------------------------------------
 * 更新履歴:
 * ver1.00:
 * 公開
 */

(function() {
    ////////////////////////////////////////////////////////////////////////////////////

    var parameters = PluginManager.parameters('StepSpeed');

    ////////////////////////////////////////////////////////////////////////////////////

    var __GCBase_animationWait = Game_CharacterBase.prototype.animationWait;
    Game_CharacterBase.prototype.animationWait = function() {
        return __GCBase_animationWait.call(this) * this.stepSpeed();
    };

    Game_CharacterBase.prototype.stepSpeed = function() {
        return 1.0;
    }

    ////////////////////////////////////////////////////////////////////////////////////

    Game_Event.prototype.stepSpeed = function() {
        var speed = 1.0;
        if (this.event().meta['足踏み速度']) { speed = Number(this.event().meta['足踏み速度']) }
        if (this.event().meta['StepSpeed']) { speed = Number(this.event().meta['StepSpeed']) }
        return speed;
    };
}());


code:
//=============================================================================
// SystemSoundCustomize.js
// ----------------------------------------------------------------------------
// Copyright (c) 2015-2017 Triacontane
// This software is released under the MIT License.
// http://opensource.org/licenses/mit-license.php
// ----------------------------------------------------------------------------
// Version
// 1.0.0 2017/05/22 初版
// ----------------------------------------------------------------------------
// [Blog]   : https://triacontane.blogspot.jp/
// [Twitter]: https://twitter.com/triacontane/
// [GitHub] : https://github.com/triacontane/
//=============================================================================

/*:
 * @plugindesc SystemSoundCustomizePlugin
 * @author triacontane
 *
 * @help システム効果音をゲーム中に動的に変更します。
 * 変更したシステム効果音はセーブデータごとに有効になります。
 *
 * 変更はプラグインコマンドから行います。最初の引数にシステム効果音ごとの
 * タイプインデックス（後述）を指定してください。
 *
 * プラグインコマンド詳細
 *  イベントコマンド「プラグインコマンド」から実行。
 *  （パラメータの間は半角スペースで区切る）
 *
 * SSC_CHANGE_SYSTEM_SE 0 seName 90 100 0   # カーソルSEをseNameに変更
 * SSC_システム効果音変更 0 seName 90 100 0 # 同上
 * SSC_RESET_SYSTEM_SE 1                    # 決定SEをデフォルトに戻す
 * SSC_システム効果音削除 1                 # 同上
 * ※音量、ピッチ、位相を省略した場合は通常のデフォルト値が適用されます。
 *
 * タイプインデックス一覧
 *  0:カーソル
 *  1:決定
 *  2:キャンセル
 *  3:ブザー
 *  4:装備
 *  5:セーブ
 *  6:ロード
 *  7:戦闘開始
 *  8:逃走
 *  9:敵攻撃
 * 10:敵ダメージ
 * 11:敵消滅
 * 12:ボス消滅1
 * 13:ボス消滅2
 * 14:味方ダメージ
 * 15:味方戦闘不能
 * 16:回復
 * 17:ミス
 * 18:回避
 * 19:魔法回避
 * 20:魔法反射
 * 21:ショップ
 * 22:アイテム使用
 * 23:スキル使用
 *
 * This plugin is released under the MIT License.
 */
/*:ja
 * @plugindesc システム効果音変更プラグイン
 * @author トリアコンタン
 *
 * @help システム効果音をゲーム中に動的に変更します。
 * 変更したシステム効果音はセーブデータごとに有効になります。
 *
 * 変更はプラグインコマンドから行います。最初の引数にシステム効果音ごとの
 * タイプインデックス（後述）を指定してください。
 *
 * プラグインコマンド詳細
 *  イベントコマンド「プラグインコマンド」から実行。
 *  （パラメータの間は半角スペースで区切る）
 *
 * SSC_CHANGE_SYSTEM_SE 0 seName 90 100 0   # カーソルSEをseNameに変更
 * SSC_システム効果音変更 0 seName 90 100 0 # 同上
 * SSC_RESET_SYSTEM_SE 1                    # 決定SEをデフォルトに戻す
 * SSC_システム効果音削除 1                 # 同上
 * ※音量、ピッチ、位相を省略した場合は通常のデフォルト値が適用されます。
 *
 * タイプインデックス一覧
 *  0:カーソル
 *  1:決定
 *  2:キャンセル
 *  3:ブザー
 *  4:装備
 *  5:セーブ
 *  6:ロード
 *  7:戦闘開始
 *  8:逃走
 *  9:敵攻撃
 * 10:敵ダメージ
 * 11:敵消滅
 * 12:ボス消滅1
 * 13:ボス消滅2
 * 14:味方ダメージ
 * 15:味方戦闘不能
 * 16:回復
 * 17:ミス
 * 18:回避
 * 19:魔法回避
 * 20:魔法反射
 * 21:ショップ
 * 22:アイテム使用
 * 23:スキル使用
 *
 * 利用規約：
 *  作者に無断で改変、再配布が可能で、利用形態（商用、18禁利用等）
 *  についても制限はありません。
 *  このプラグインはもうあなたのものです。
 */

(function() {
    'use strict';
    var metaTagPrefix = 'SSC_';

    //=============================================================================
    // ローカル関数
    //  プラグインパラメータやプラグインコマンドパラメータの整形やチェックをします
    //=============================================================================
    var getArgNumber = function(arg, min, max) {
        if (arguments.length < 2) min = -Infinity;
        if (arguments.length < 3) max = Infinity;
        return (parseInt(arg) || 0).clamp(min, max);
    };

    var convertEscapeCharacters = function(text) {
        if (isNotAString(text)) text = '';
        var windowLayer = SceneManager._scene._windowLayer;
        return windowLayer ? windowLayer.children[0].convertEscapeCharacters(text) : text;
    };

    var isNotAString = function(args) {
        return String(args) !== args;
    };

    var convertAllArguments = function(args) {
        for (var i = 0; i < args.length; i++) {
            args[i] = convertEscapeCharacters(args[i]);
        }
        return args;
    };

    var setPluginCommand = function(commandName, methodName) {
        pluginCommandMap.set(metaTagPrefix + commandName, methodName);
    };

    //=============================================================================
    // パラメータの取得と整形
    //=============================================================================
    var pluginCommandMap = new Map();
    setPluginCommand('CHANGE_SYSTEM_SE', 'execChangeSystemSe');
    setPluginCommand('システム効果音変更', 'execChangeSystemSe');
    setPluginCommand('RESET_SYSTEM_SE', 'execResetSystemSe');
    setPluginCommand('システム効果音削除', 'execResetSystemSe');

    //=============================================================================
    // Game_Interpreter
    //  プラグインコマンドを追加定義します。
    //=============================================================================
    var _Game_Interpreter_pluginCommand      = Game_Interpreter.prototype.pluginCommand;
    Game_Interpreter.prototype.pluginCommand = function(command, args) {
        _Game_Interpreter_pluginCommand.apply(this, arguments);
        var pluginCommandMethod = pluginCommandMap.get(command.toUpperCase());
        if (pluginCommandMethod) {
            this[pluginCommandMethod](convertAllArguments(args));
        }
    };

    Game_Interpreter.prototype.execChangeSystemSe = function(args) {
        var typeIndex = getArgNumber(args.shift());
        $gameSystem.setSystemSound(typeIndex, args);
    };

    Game_Interpreter.prototype.execResetSystemSe = function(args) {
        $gameSystem.resetSystemSound(getArgNumber(args[0]));
    };

    //=============================================================================
    // Game_System
    //  カスタムシステム効果音を保持します。
    //=============================================================================
    var _Game_System_onAfterLoad = Game_System.prototype.onAfterLoad;
    Game_System.prototype.onAfterLoad = function() {
        _Game_System_onAfterLoad.apply(this, arguments);
        this.initSystemSound(false);
        this._systemSounds.forEach(function(sound) {
            if (sound) AudioManager.loadStaticSe(sound);
        });
    };

    Game_System.prototype.initSystemSound = function() {
        if (!this._systemSounds) {
            this._systemSounds = [];
        }
    };

    Game_System.prototype.setSystemSound = function(typeIndex, systemSoundArgs) {
        this.initSystemSound();
        var systemSound = {
            name  : systemSoundArgs[0] || '',
            volume: getArgNumber(systemSoundArgs[1] || 90, 0, 100),
            pitch : getArgNumber(systemSoundArgs[2] || 100, 50, 150),
            pan   : getArgNumber(systemSoundArgs[3] || 0, -100, 100)
        };
        this._systemSounds[typeIndex] = systemSound;
        AudioManager.loadStaticSe(systemSound);
    };

    Game_System.prototype.resetSystemSound = function(typeIndex) {
        this.initSystemSound();
        this._systemSounds[typeIndex] = undefined;
    };

    Game_System.prototype.getSystemSound = function(typeIndex) {
        return this._systemSounds && this._systemSounds[typeIndex] ? this._systemSounds[typeIndex] : null;
    };

    //=============================================================================
    // SoundManager
    //  カスタムシステム効果音を演奏します。
    //=============================================================================
    var _SoundManager_playSystemSound = SoundManager.playSystemSound;
    SoundManager.playSystemSound = function(n) {
        var customSound = $gameSystem.getSystemSound(n);
        if (customSound) {
            AudioManager.playStaticSe(customSound);
        } else {
            _SoundManager_playSystemSound.apply(this, arguments);
        }
    };
})();


code:
//=============================================================================
// TMVplugin - フキダシループ
// 作者: tomoaky (http://hikimoki.sakura.ne.jp/)
// Version: 1.11
// 最終更新日: 2016/06/20
//=============================================================================

/*:
 * @plugindesc フキダシアイコンをループ表示させます。
 *
 * @author tomoaky (http://hikimoki.sakura.ne.jp/)
 *
 * @help
 * 使い方:
 *   プラグインコマンドまたはメモ欄タグを使ってイベントにフキダシループを設
 *   定すると、指定されたフキダシアイコンが繰り返し表示され続けるようになり
 *   ます。
 *
 *   イベントのメモ欄以外に、実行内容の一番上にある注釈コマンド内でも同様の
 *   タグでフキダシループを設定することができます。メモ欄と注釈の両方にタグ
 *   がある場合は注釈が優先されます。
 *
 *   プラグインコマンドによるフキダシループは、イベントページの切り替わりや
 *   イベントコマンド『イベントの一時消去』などによって解除されます。
 *
 * プラグインコマンド:
 *   setBalloonLoop 2 1
 *   ２番のイベントにフキダシループとしてびっくりアイコンを設定します。イベ
 *   ント番号は -1 ならプレイヤー、0 ならコマンドを実行しているイベントが対
 *   象となります。
 *   表示するアイコンの番号はイベントコマンド『フキダシアイコンの表示』での
 *   並びに対応していて、0 を指定するとフキダシループが解除されます。
 *
 * メモ欄タグ（イベント）:
 *   <balloonLoop:1>
 *   このタグがついているイベントは setBalloonLoop を実行しなくても自動的に
 *   フキダシループが設定されます。数値は表示するアイコン番号です。
 *
 */

var Imported = Imported || {};
Imported.TMBalloonLoop = true;

if (!Imported.TMEventBase) {
  Imported.TMEventBase = true;
  (function() {

    //-----------------------------------------------------------------------------
    // Game_Event
    //

    var _Game_Event_setupPage = Game_Event.prototype.setupPage;
    Game_Event.prototype.setupPage = function() {
      _Game_Event_setupPage.call(this);
      if (this._pageIndex >= 0) {
        this.loadCommentParams();
      }
    };

    Game_Event.prototype.loadCommentParams = function() {
      this._commentParams = {};
      var re = /<([^<>:]+)(:?)([^>]*)>/g;
      var list = this.list();
      for (var i = 0; i < list.length; i++) {
        var command = list[i];
        if (command && command.code == 108 || command.code == 408) {
          for (;;) {
            var match = re.exec(command.parameters[0]);
            if (match) {
              if (match[2] === ':') {
                this._commentParams[match[1]] = match[3];
              } else {
                this._commentParams[match[1]] = true;
              }
            } else {
              break;
            }
          }
        } else {
          break;
        }
      }
    };

    Game_Event.prototype.loadTagParam = function(paramName) {
      if (this._commentParams[paramName]) {
        return this._commentParams[paramName];
      } else if (this.event().meta[paramName]) {
        return this.event().meta[paramName];
      } else {
        return null;
      }
    };

  })();
}

(function() {

  //-----------------------------------------------------------------------------
  // Game_CharacterBase
  //

  var _Game_CharacterBase_endBalloon = Game_CharacterBase.prototype.endBalloon;
  Game_CharacterBase.prototype.endBalloon = function() {
    _Game_CharacterBase_endBalloon.call(this);
    var balloonLoop = this.balloonLoop();
    if (balloonLoop) {
      this.requestBalloon(balloonLoop);
    }
  };

  Game_CharacterBase.prototype.setBalloonLoop = function(balloonLoop) {
    this._balloonLoop = balloonLoop;
  };

  Game_CharacterBase.prototype.balloonLoop = function() {
    return this._balloonLoop;
  };

  //-----------------------------------------------------------------------------
  // Game_Event
  //

  var _Game_Event_setupPage = Game_Event.prototype.setupPage;
  Game_Event.prototype.setupPage = function() {
    _Game_Event_setupPage.call(this);
    if (this._pageIndex >= 0) {
      var balloonLoop = +this.loadTagParam('balloonLoop');
      if (balloonLoop) {
    	if(!$gameSwitches.value(165)){
	      	if((balloonLoop == 15) && ($gameSwitches.value(66) || $gameActors.actor(1).hasSkill(645))){
	      		balloonLoop = 12
	      	}
	    }else{
	      	balloonLoop = 0
	    }
        this.setBalloonLoop(balloonLoop);
      }
    } else {
      this.setBalloonLoop(0);
    }
  };

  //-----------------------------------------------------------------------------
  // Game_Interpreter
  //

  var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
  Game_Interpreter.prototype.pluginCommand = function(command, args) {
    _Game_Interpreter_pluginCommand.call(this, command, args);
    if (command === 'setBalloonLoop') {
      var character = this.character(+args[0]);
      if (character) {
	    if(!$gameSwitches.value(165)){
	      	if((args[1] == 15) && ($gameSwitches.value(66) || $gameActors.actor(1).hasSkill(645))){
	      		args[1] = 12
		    }
		}else{
		     args[1] = 0
		}
        character.setBalloonLoop(+args[1]);
      }
    }
  };

  //-----------------------------------------------------------------------------
  // Sprite_Character
  //

  var _Sprite_Character_endBalloon = Sprite_Character.prototype.endBalloon;
  Sprite_Character.prototype.endBalloon = function() {
    var balloonLoop = this._character.balloonLoop();
    if (balloonLoop) {
    	if(!$gameSwitches.value(165)){
	      	if((balloonLoop == 15) && ($gameSwitches.value(66) || $gameActors.actor(1).hasSkill(645))){
	      		balloonLoop = 12
	      	}
	    }else{
	      	balloonLoop = 0
	    }
		this._balloonSprite.setup(balloonLoop);
    } else {
      _Sprite_Character_endBalloon.call(this);
    }
  };

})();


code:
//=============================================================================
// TMPlugin - バトラー表示拡張
// バージョン: 2.0.0
// 最終更新日: 2016/08/12
// 配布元    : http://hikimoki.sakura.ne.jp/
//-----------------------------------------------------------------------------
// Copyright (c) 2016 tomoaky
// Released under the MIT license.
// http://opensource.org/licenses/mit-license.php
//=============================================================================

/*:
 * @plugindesc エネミーに遠近感や息づかいの表現を追加します。
 *
 * @author tomoaky
 *
 * @param baseY
 * @text 拡大率が等倍になるＹ座標
 * @desc 拡大率が等倍になるＹ座標。
 * 初期値: 400
 * @default 400
 *
 * @param breathH
 * @text 息づかいの大きさ
 * @desc 息づかいの大きさ。
 * 初期値: 0.05
 * @default 0.05
 *
 * @param mirrorRate
 * @text 左右反転の確率
 * @desc 左右反転の確率。
 * 初期値: 0.4（ 0 ～ 1 ）
 * @default 0.4
 *
 * @param breathStop
 * @text 行動不能時呼吸
 * @desc 行動不能時に息づかいを止める。
 * 初期値: true
 * @type boolean
 * @on 有効
 * @off 無効
 * @default true
 *
 * @param shakeEffect
 * @text 点滅エフェクト差替
 * @desc 点滅エフェクトを揺れエフェクトに差し替える。
 * 初期値: true
 * @type boolean
 * @on 有効
 * @off 無効
 * @default true
 *
 * @help
 * 使い方:
 *
 *   このプラグインを導入すると、敵キャラの表示に以下の演出が追加されます。
 *     ・画面の上の方に出現する敵が小さく表示される（遠近感）
 *     ・ゆっくりと拡大縮小を繰り返す（息づかい）
 *     ・ランダムに左右が反転する
 *
 *   サイドビューでは左右反転が無効になります。
 *   敵キャラのメモ欄にタグを書き込むことで、敵キャラごとに演出の強弱を
 *   設定することができます。
 *
 *   プラグインコマンドはありません。
 *
 *
 * メモ欄（敵キャラ）タグ:
 *
 *   <scale:1>
 *     拡大率を個別に設定します、このタグがある敵キャラには遠近感の表現が
 *     適用されません。
 *
 *   <breathH:0.05>
 *     息づかいの大きさを個別に設定します。
 *
 *   <noMirror>
 *     左右反転を禁止します。
 *
 * 2021/5/15 v.2.0.1 プラグインパラメーターの調整
 *
 * 利用規約:
 *   MITライセンスです。
 *   https://licenses.opensource.jp/MIT/MIT.html
 *   作者に無断で改変、再配布が可能で、
 *   利用形態（商用、18禁利用等）についても制限はありません。
 */

var Imported = Imported || {};
Imported.TMBattlerEx = true;

var TMPlugin = TMPlugin || {};
TMPlugin.BattlerEx = {};
TMPlugin.BattlerEx.Parameters = PluginManager.parameters('TMBattlerEx');
TMPlugin.BattlerEx.BaseY = +(TMPlugin.BattlerEx.Parameters['baseY'] || 400);
TMPlugin.BattlerEx.BreathH = +(TMPlugin.BattlerEx.Parameters['breathH'] || 0.05);
TMPlugin.BattlerEx.MirrorRate = +(TMPlugin.BattlerEx.Parameters['mirrorRate'] || 0.4);
TMPlugin.BattlerEx.BreathStop = TMPlugin.BattlerEx.Parameters['breathStop'] === 'true';
TMPlugin.BattlerEx.ShakeEffect = TMPlugin.BattlerEx.Parameters['shakeEffect'] === 'true';

(function () {

  //-----------------------------------------------------------------------------
  // Sprite_Enemy
  //

  var _Sprite_Enemy_initialize = Sprite_Enemy.prototype.initialize;
  Sprite_Enemy.prototype.initialize = function (battler) {
    _Sprite_Enemy_initialize.call(this, battler);
    var r = +(battler.enemy().meta.scale || this.y / (TMPlugin.BattlerEx.BaseY * 2) + 0.5);
    this._baseScale = new Point(r, r);
    if (!$gameSystem.isSideView() && Math.random() < TMPlugin.BattlerEx.MirrorRate &&
      !battler.enemy().meta.noMirror) {
      this._baseScale.x = 0 - r;
      this._stateIconSprite.scale.x = -1;
    }
    this._breathMax = Math.randomInt(90) + 90;
    this._breathCount = Math.randomInt(this._breathMax);
  };

  var _Sprite_Enemy_update = Sprite_Enemy.prototype.update;
  Sprite_Enemy.prototype.update = function () {
    _Sprite_Enemy_update.call(this);
    this.updateScaleEx();
  };

  Sprite_Enemy.prototype.updateScaleEx = function () {
    if (TMPlugin.BattlerEx.BreathStop && !this._enemy.canMove()) return;
    this._breathCount++;
    if (this._breathCount >= this._breathMax) {
      this._breathMax = Math.randomInt(90) + 90;
      this._breathCount = 0;
    }
    var scaleX = this._baseScale.x;
    var scaleY = this._baseScale.y;
    var bh = +(this._enemy.enemy().meta.breathH || TMPlugin.BattlerEx.BreathH);
    scaleY += Math.sin(Math.PI * this._breathCount / (this._breathMax / 2)) * bh;
    this.scale.set(scaleX, scaleY);
  };

  var _Sprite_Enemy_updateBlink = Sprite_Enemy.prototype.updateBlink;
  Sprite_Enemy.prototype.updateBlink = function () {
    if (TMPlugin.BattlerEx.ShakeEffect) {
      var ed = this._effectDuration;
      this.rotation = ed % 4 < 2 ? ed / 200 : 0 - ed / 200;
    } else {
      _Sprite_Enemy_updateBlink.call(this);
    }
  };

})();


code:
//=============================================================================
// TMPlugin - コモンコマンド
// バージョン: 1.0.0
// 最終更新日: 2018/09/21
// 配布元　　: https://hikimoki.sakura.ne.jp/
//-----------------------------------------------------------------------------
// Copyright (c) 2018 tomoaky
// Released under the MIT license.
// http://opensource.org/licenses/mit-license.php
//=============================================================================

/*:
 * @plugindesc メインメニューにコモンイベント実行用のコマンドを追加します。
 *
 * @author tomoaky (https://hikimoki.sakura.ne.jp/)
 *
 * @param command1
 * @type struct<CommonCommand>
 * @desc コモンコマンドその１
 * @default {"name":"","commonEventId":"0"}
 *
 * @param command2
 * @type struct<CommonCommand>
 * @desc コモンコマンドその２
 * @default {"name":"","commonEventId":"0"}
 *
 * @param command3
 * @type struct<CommonCommand>
 * @desc コモンコマンドその３
 * @default {"name":"","commonEventId":"0"}
 *
 * @param command4
 * @type struct<CommonCommand>
 * @desc コモンコマンドその４
 * @default {"name":"","commonEventId":"0"}
 *
 * @param command5
 * @type struct<CommonCommand>
 * @desc コモンコマンドその５
 * @default {"name":"","commonEventId":"0"}
 *
 * @help
 * TMPlugin - コモンコマンド ver1.0.0
 *
 * 使い方:
 *
 *   プラグインパラメータのコマンド名と実行するコモンイベントを設定すれば
 *   メインメニューに新しいコマンドが追加されます。
 *
 *   このプラグインは RPGツクールMV Version 1.6.1 で動作確認をしています。
 *
 *   このプラグインはMITライセンスのもとに配布しています、商用利用、
 *   改造、再配布など、自由にお使いいただけます。
 */
/*~struct~CommonCommand:
 *
 * @param name
 * @desc コマンド名
 * @default
 *
 * @param commonEventId
 * @type common_event
 * @desc 実行するコモンイベント
 * @default 0
 *
 */

var Imported = Imported || {};
Imported.TMCommonCommand = true;

(function() {

	var parameters = PluginManager.parameters('TMCommonCommand');
	var CommonCommands = [
		JSON.parse(parameters['command1'] || '{}'),
		JSON.parse(parameters['command2'] || '{}'),
		JSON.parse(parameters['command3'] || '{}'),
		JSON.parse(parameters['command4'] || '{}'),
		JSON.parse(parameters['command5'] || '{}')
	];

	//-----------------------------------------------------------------------------
	// Window_MenuCommand
	//

	//save関連はWindows.jsのWindow_MenuCommand.prototype.addSaveCommandで分岐させてる
	var _Window_MenuCommand_addOriginalCommands = Window_MenuCommand.prototype.addOriginalCommands;
	Window_MenuCommand.prototype.addOriginalCommands = function() {
		_Window_MenuCommand_addOriginalCommands.call(this);
		CommonCommands.forEach(function(command) {
			if (command.commonEventId > 0) {
				if(command.commonEventId==513){
					if($gameSwitches.value(26)){
						//スイッチ26（メニュー追加）
						if($gameSwitches.value(27)||$gameSwitches.value(627)){
							//スイッチ27（操作禁止）=オンの時にグレーアウト
							this.addCommand(command.name, command.name, false);
						}else{
							this.addCommand(command.name, command.name, true);
						}
					}else{
						this.addCommand("????", "????", false);
					}
				}else{
					this.addCommand(command.name, command.name, true);
				}
			}
		}, this);
	};

	//-----------------------------------------------------------------------------
	// Scene_Menu
	//

	var _Scene_Menu_createCommandWindow = Scene_Menu.prototype.createCommandWindow;
	Scene_Menu.prototype.createCommandWindow = function() {
		_Scene_Menu_createCommandWindow.call(this);
		CommonCommands.forEach(function(command) {
			if (command.commonEventId > 0) {
				this._commandWindow.setHandler(command.name, this.commandCommonCommand.bind(this));
			}
		}, this);
	};

	Scene_Menu.prototype.commandCommonCommand = function() {
		var symbol = this._commandWindow.currentSymbol();
		CommonCommands.forEach(function(command) {
			if (command.name === symbol) {
				$gameTemp.reserveCommonEvent(command.commonEventId);
			}
		}, this);
		if ($gameTemp.isCommonEventReserved()) {
			SceneManager.goto(Scene_Map);
		} else {
			this._commandWindow.activate();
		}
	};

})();


code:
//=============================================================================
// TMPlugin - コモンイベントキー
// バージョン: 1.0.2
// 最終更新日: 2017/06/28
// 配布元    : http://hikimoki.sakura.ne.jp/
//-----------------------------------------------------------------------------
// Copyright (c) 2016 tomoaky
// Released under the MIT license.
// http://opensource.org/licenses/mit-license.php
//=============================================================================

/*:
 * @plugindesc 任意のキーにコモンイベントを設定し、マップシーンで
 * ショートカットキーとして利用できるようにします。
 *
 * @author tomoaky (http://hikimoki.sakura.ne.jp/)
 *
 * @param commonKey0
 * @type number
 * @desc ０キーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKey1
 * @type number
 * @desc １キーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKey2
 * @type number
 * @desc ２キーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKey3
 * @type number
 * @desc ３キーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKey4
 * @type number
 * @desc ４キーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKey5
 * @type number
 * @desc ５キーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKey6
 * @type number
 * @desc ６キーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKey7
 * @type number
 * @desc ７キーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKey8
 * @type number
 * @desc ８キーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKey9
 * @type number
 * @desc ９キーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyA
 * @type number
 * @desc Ａキーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyB
 * @type number
 * @desc Ｂキーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyC
 * @type number
 * @desc Ｃキーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyD
 * @type number
 * @desc Ｄキーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyE
 * @type number
 * @desc Ｅキーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyF
 * @type number
 * @desc Ｆキーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyG
 * @type number
 * @desc Ｇキーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyH
 * @type number
 * @desc Ｈキーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyI
 * @type number
 * @desc Ｉキーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyJ
 * @type number
 * @desc Ｊキーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyK
 * @type number
 * @desc Ｋキーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyL
 * @type number
 * @desc Ｌキーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyM
 * @type number
 * @desc Ｍキーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyN
 * @type number
 * @desc Ｎキーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyO
 * @type number
 * @desc Ｏキーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyP
 * @type number
 * @desc Ｐキーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyQ
 * @type number
 * @desc Ｑキーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyR
 * @type number
 * @desc Ｒキーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyS
 * @type number
 * @desc Ｓキーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyT
 * @type number
 * @desc Ｔキーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyU
 * @type number
 * @desc Ｕキーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyV
 * @type number
 * @desc Ｖキーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyW
 * @type number
 * @desc Ｗキーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyX
 * @type number
 * @desc Ｘキーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyY
 * @type number
 * @desc Ｙキーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyZ
 * @type number
 * @desc Ｚキーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyF1
 * @type number
 * @desc Ｆ１キーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyF2
 * @type number
 * @desc Ｆ２キーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyF3
 * @type number
 * @desc Ｆ３キーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyF4
 * @type number
 * @desc Ｆ４キーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyF5
 * @type number
 * @desc Ｆ５キーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyF6
 * @type number
 * @desc Ｆ６キーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyF7
 * @type number
 * @desc Ｆ７キーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyF8
 * @type number
 * @desc Ｆ８キーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyF9
 * @type number
 * @desc Ｆ９キーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyF10
 * @type number
 * @desc Ｆ１０キーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyF11
 * @type number
 * @desc Ｆ１１キーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param commonKeyF12
 * @type number
 * @desc Ｆ１２キーで起動するコモンイベント番号
 * 初期値: 0（ 1 以上で有効）
 * @default 0
 *
 * @param freeMove
 * @type boolean
 * @desc プレイヤーが移動中でもキーが有効になります。
 * 初期値: OFF ( false = OFF 無効 / true = ON 有効 )
 * @default false
 *
 * @help
 * TMPlugin - コモンイベントキー ver1.0.2
 *
 * 使い方:
 *
 *   プラグインパラメータに起動したいコモンイベントの番号を設定してください、
 *   マップシーンで対応するキーを押せばコモンイベントが実行されます。
 *
 *   下記の状況ではコモンイベントキーが無効化されます。
 *   ・シーン切り替え中
 *   ・プレイヤー移動中
 *   ・イベント実行中
 *
 *   このプラグインは RPGツクールMV Version 1.5.0 で動作確認をしています。
 *
 *
 * 注意:
 *
 *   RPGツクールMVの標準機能、または他のプラグインで使用しているキーを使うと
 *   競合によるエラーの原因になります。
 */

var Imported = Imported || {};
Imported.TMCommonEventKey = true;

(function() {

  var parameters = PluginManager.parameters('TMCommonEventKey');
  var commonKeyCodes = {48: '0', 49: '1', 50: '2', 51: '3', 52: '4',
                        53: '5', 54: '6', 55: '7', 56: '8', 57: '9',
                        65: 'A', 66: 'B', 67: 'C', 68: 'D', 69: 'E',
                        70: 'F', 71: 'G', 72: 'H', 73: 'I', 74: 'J',
                        75: 'K', 76: 'L', 77: 'M', 78: 'N', 79: 'O',
                        80: 'P', 81: 'Q', 82: 'R', 83: 'S', 84: 'T',
                        85: 'U', 86: 'V', 87: 'W', 88: 'X', 89: 'Y',
                        90: 'Z',
                        112: 'F1', 113: 'F2',  114: 'F3',  115: 'F4',
                        116: 'F5', 117: 'F6',  118: 'F7',  119: 'F8',
                        120: 'F9', 121: 'F10', 122: 'F11', 123: 'F12'};
  var commonKeys = {};
  var keys = Object.keys(commonKeyCodes);
  for (var i = 0, len = keys.length; i < len; i++) {
    var key = keys[i];
    var name = 'commonKey' + commonKeyCodes[key];
    var commonEventId = +parameters[name];
    if (commonEventId > 0) {
      Input.keyMapper[key] = name;
      commonKeys[name] = commonEventId;
    }
  }
  var freeMove = JSON.parse(parameters['freeMove']);

  //-----------------------------------------------------------------------------
  // Scene_Map
  //

  var _Scene_Map_updateScene = Scene_Map.prototype.updateScene;
  Scene_Map.prototype.updateScene = function() {
    _Scene_Map_updateScene.call(this);
    if (!SceneManager.isSceneChanging() && !$gameMap.isEventRunning() &&
        (!$gamePlayer.isMoving() || freeMove )) {
      Object.keys(commonKeys).some (function(key) {
        if (Input.isTriggered(key)) {
          $gameTemp.reserveCommonEvent(commonKeys[key]);
          return true;
        }
      });
    }
  };

})();


code:
//=============================================================================
// TMVplugin - マップ名表示拡張
// バージョン: 1.0.1
// 最終更新日: 2017/06/16
// 配布元    : http://hikimoki.sakura.ne.jp/
//-----------------------------------------------------------------------------
// Copyright (c) 2016 tomoaky
// Released under the MIT license.
// http://opensource.org/licenses/mit-license.php
//=============================================================================

/*:
 * @plugindesc マップ名の表示を調整し、一部の制御文字に対応します。
 *
 * @author tomoaky (http://hikimoki.sakura.ne.jp/)
 *
 * @param windowX
 * @type string
 * @desc マップ名ウィンドウの X 座標
 * 初期値: 0
 * @default 0
 *
 * @param windowY
 * @type string
 * @desc マップ名ウィンドウの Y 座標
 * 初期値: 0
 * @default 0
 *
 * @param windowWidth
 * @type number
 * @desc マップ名ウィンドウの幅
 * 初期値: 360
 * @default 360
 *
 * @param windowLineHeight
 * @type number
 * @desc マップ名ウィンドウの１行の高さ
 * 初期値: 96
 * @default 96
 *
 * @param fontFace
 * @type string
 * @desc マップ名に使用するフォント
 * 初期値: GameFont
 * @default GameFont
 *
 * @param fontSize
 * @type number
 * @desc フォントサイズ
 * 初期値: 28
 * @default 28
 *
 * @help
 * TMPlugin - マップ名表示拡張 ver1.0.1
 *
 * 使い方:
 *
 *   以下の制御文字が使用できます、内容はイベントコマンド『文章の表示』
 *   のものと同じです。
 *     \V[n]
 *     \N[n]
 *     \P[n]
 *     \\
 *     \G
 *
 *   プラグインコマンドはありません。
 *
 *   このプラグインは RPGツクールMV Version 1.5.0 で動作確認をしています。
 *
 *
 * プラグインパラメータ補足:
 *
 *   fontFace
 *     設定するフォント名は、事前に fonts/gamefont.css を編集して
 *     追加する必要があります。
 *     元から設定されている GameFont をまるごと（ 4 行）コピペして、
 *       font-family: フォント名;
 *       src: url("フォントのファイル名");
 *     上記 2 行を書き換えてください。つまり最終的には 8 行になります。
 *     gamefont.css が編集できたら、設定した『フォントのファイル名』と同名の
 *     フォントファイルを fonts フォルダに置き、fontFace に
 *    『フォント名』を設定してください。
 *
 *     フォントのファイル名に日本語などの2byte文字が含まれていると
 *     エラーが発生する場合があります。
 */

var Imported = Imported || {};
Imported.TMMapNameEx = true;

(function() {

  var parameters = PluginManager.parameters('TMMapNameEx');
  var windowX = +(parameters['windowX'] || 0);
  var windowY = +(parameters['windowY'] || 0);
  var windowWidth = +(parameters['windowWidth'] || 360);
  var windowLineHeight = +(parameters['windowLineHeight'] || 96);
  var fontFace = parameters['fontFace'] || 'GameFont';
  var fontSize = +(parameters['fontSize'] || 28);

  //-----------------------------------------------------------------------------
  // Window_MapName
  //

  var _Window_MapName_initialize = Window_MapName.prototype.initialize;
  Window_MapName.prototype.initialize = function() {
    _Window_MapName_initialize.call(this);
    this.x = windowX;
    this.y = windowY;
  };

  Window_MapName.prototype.refresh = function() {
    this.contents.clear();
    if ($gameMap.displayName()) {
      var width = this.contentsWidth();
      var text = this.convertEscapeCharacters($gameMap.displayName());
      this.drawBackground(0, 0, width, this.lineHeight());
      this.contents.fontFace = fontFace;
      this.contents.fontSize = fontSize;
      this.drawText(text, 0, 0, width, 'center');
    }
  };

  Window_MapName.prototype.windowWidth = function() {
    return windowWidth;
  };

  Window_MapName.prototype.lineHeight = function() {
    return windowLineHeight;
  };

})();


code:
//=============================================================================
// TMPlugin - ネームポップ
// バージョン: 2.0.0
// 最終更新日: 2016/08/12
// 配布元    : http://hikimoki.sakura.ne.jp/
//-----------------------------------------------------------------------------
// Copyright (c) 2016 tomoaky
// Released under the MIT license.
// http://opensource.org/licenses/mit-license.php
//=============================================================================

/*:
 * @plugindesc イベントの頭上に文字列を表示する機能を追加します。
 *
 * @author tomoaky (http://hikimoki.sakura.ne.jp/)
 *
 * @param backOpacity
 * @desc ネームポップの背景の不透明度。
 * 初期値: 96 ( 0 ～ 255 )
 * @default 96
 *
 * @param fontSize
 * @desc ネームポップのフォントサイズ。
 * 初期値: 20
 * @default 20
 *
 * @param outlineWidth
 * @desc ネームポップの縁取りの太さ。
 * 初期値: 4
 * @default 4
 *
 * @param outlineColor
 * @desc ネームポップの縁取りの色。
 * 初期値: rgba(0, 0, 0, 0.5)
 * @default rgba(0, 0, 0, 0.5)
 *
 * @param width
 * @desc ネームポップの幅
 * 初期値: 160
 * @default 160
 *
 * @param roundRectRadius
 * @desc TMBitmapEx.js導入時の、角丸矩形の丸部分の半径。
 * 初期値: 6
 * @default 6
 *
 * @help
 * 使い方:
 *
 *   イベントのメモ欄（または注釈コマンド）にタグを書き込むか、あるいは
 *   プラグインコマンドを使って後からネームポップを設定することで、
 *   キャラクターの頭上に文字列を表示することができます。
 *
 *   イベントの透明化をオンにするとネームポップも非表示になります。
 *   ネームポップだけを表示したい場合はイベントの画像を (なし) に
 *   してください。
 *
 *   このプラグインは RPGツクールMV Version 1.3.0 で動作確認をしています。
 *
 *
 * プラグインコマンド:
 *
 *   namePop 1 名前
 *     イベント１番の頭上に 名前 という文字列を表示します。
 *
 *   namePop 1 名前 -48 24
 *     ネームポップを上へ 48 ドット、右へ 24 ドットずらして表示します。
 *
 *   namePop 1 名前 -48 24 blue
 *     ネームポップの縁取りの色を青色で表示します。
 *
 *   namePop 1
 *     イベント１番のネームポップを消去します。
 *
 *   イベント番号（ひとつ目の数値）は以下の規則にしたがって対象を指定します。
 *     -1     … プレイヤーを対象にする
 *     0      … コマンドを実行しているイベントを対象にする
 *     1 以上 … その番号のイベントを対象にする
 *
 *
 * メモ欄（イベント）タグ:
 *
 *   <namePop:名前 12 0 red>
 *     頭上に 名前 という文字列を、通常よりも下へ 12 ドットずらして、
 *     文字の縁取りを赤色にして表示します。
 *
 *   イベントのメモ欄以外に、実行内容の一番上にある注釈コマンド内でも
 *   同様のタグでネームポップを設定することができます。
 *   メモ欄と注釈の両方にタグがある場合は注釈が優先されます。
 *
 *   ネームポップには一部の制御文字を使用することもできます。
 *   \V, \N, \P, \G, \\, \C が使えます、使い方は『文章の表示』と同じですが、
 *   \C はネームポップ全体の文字色を変更します。
 *
 *   制御文字による置換はプラグインコマンドやイベントページの切り替えにより
 *   名前が変化したときにのみ実行されます。つまり \V で変数の値を名前として
 *   設定し、その後変数の値を別の値に変更してもネームポップは変化しません。
 *
 *
 * プラグインパラメータ補足:
 *
 *   namePopOutlineColor
 *     縁取りの色は rgba(0, 0, 0, 0.5) のような形式でRGB値と不透明度を
 *     設定します。RGB値は 0 ～ 255、不透明度は 0 ～ 1.0 の範囲で値を
 *     設定してください。
 *       例: rgba(255, 0, 255, 0.5)    # 不透明度５０％のピンク
 *
 *     また、上記の形式以外に black や blue といったカラーネームと、
 *     #000000 や #0000ff のようなカラーコードを指定することもできます。
 *
 *   roundRectRadius
 *     TMBitmapEx.js をこのプラグインよりも上の位置に導入し、
 *     このパラメータの値を 1 以上にすることで、ネームポップ背景を
 *     角丸の矩形にすることができます。
 *
 *
 * 編集:x座標の調整機能追加 (author:すず)
 *
 *   第3引数(プラグインコマンドの場合は第4)にx座標を指定すると、正の数なら右へ、負なら左へ。
 *   アウトラインを指定する場合は引数を省略できません。
 *
 */

var Imported = Imported || {};
Imported.TMNamePop = true;

var TMPlugin = TMPlugin || {};
TMPlugin.NamePop = {};
TMPlugin.NamePop.Parameters = PluginManager.parameters('TMNamePop');
TMPlugin.NamePop.BackOpacity =  +(TMPlugin.NamePop.Parameters['backOpacity'] || 96);
TMPlugin.NamePop.FontSize = +(TMPlugin.NamePop.Parameters['fontSize'] || 20);
TMPlugin.NamePop.OutlineWidth = +(TMPlugin.NamePop.Parameters['outlineWidth'] || 4);
TMPlugin.NamePop.OutlineColor = TMPlugin.NamePop.Parameters['outlineColor'] || 'rgba(0, 0, 0, 0.5)';
TMPlugin.NamePop.Width = +(TMPlugin.NamePop.Parameters['width'] || 160);
TMPlugin.NamePop.RoundRectRadius = +(TMPlugin.NamePop.Parameters['roundRectRadius'] || 6);

if (!TMPlugin.EventBase) {
  TMPlugin.EventBase = true;
  (function() {

    var _Game_Event_setupPage = Game_Event.prototype.setupPage;
    Game_Event.prototype.setupPage = function() {
      _Game_Event_setupPage.call(this);
      if (this._pageIndex >= 0) this.loadCommentParams();
    };

    Game_Event.prototype.loadCommentParams = function() {
      this._commentParams = {};
      var re = /<([^<>:]+)(:?)([^>]*)>/g;
      var list = this.list();
      for (var i = 0; i < list.length; i++) {
        var command = list[i];
        if (command && command.code == 108 || command.code == 408) {
          for (;;) {
            var match = re.exec(command.parameters[0]);
            if (match) {
              this._commentParams[match[1]] = match[2] === ':' ? match[3] : true;
            } else {
              break;
            }
          }
        } else {
          break;
        }
      }
    };

    Game_Event.prototype.loadTagParam = function(paramName) {
      return this._commentParams[paramName] || this.event().meta[paramName];
    };

  })();
} // TMPlugin.EventBase

if (!TMPlugin.InterpreterBase) {
  TMPlugin.InterpreterBase = true;
  (function() {

    Game_Interpreter.prototype.convertEscapeCharactersTM = function(text) {
      text = text.replace(/\\/g, '\x1b');
      text = text.replace(/\x1b\x1b/g, '\\');
      text = text.replace(/\x1bV\[(\d+)\]/gi, function() {
        return $gameVariables.value(parseInt(arguments[1]));
      }.bind(this));
      text = text.replace(/\x1bV\[(\d+)\]/gi, function() {
        return $gameVariables.value(parseInt(arguments[1]));
      }.bind(this));
      text = text.replace(/\x1bN\[(\d+)\]/gi, function() {
        return this.actorNameTM(parseInt(arguments[1]));
      }.bind(this));
      text = text.replace(/\x1bP\[(\d+)\]/gi, function() {
        return this.partyMemberNameTM(parseInt(arguments[1]));
      }.bind(this));
      text = text.replace(/\x1bG/gi, TextManager.currencyUnit);
      return text;
    };

    Game_Interpreter.prototype.actorNameTM = function(n) {
      var actor = n >= 1 ? $gameActors.actor(n) : null;
      return actor ? actor.name() : '';
    };

    Game_Interpreter.prototype.partyMemberNameTM = function(n) {
      var actor = n >= 1 ? $gameParty.members()[n - 1] : null;
      return actor ? actor.name() : '';
    };

  })();
} // TMPlugin.InterpreterBase

(function() {

  //-----------------------------------------------------------------------------
  // Game_CharacterBase
  //

  Game_CharacterBase.prototype.setNamePop = function(namePop, shiftY, shiftX) {
    if (namePop) {
      namePop = $gameMap._interpreter.convertEscapeCharactersTM(namePop);
    }
    this._namePop  = namePop;
    this._namePopY = shiftY || 0;
    this._namePopX = shiftX || 0;
  };

  Game_CharacterBase.prototype.namePopOutlineColor = function() {
    return this._namePopOutlineColor || TMPlugin.NamePop.OutlineColor;
  };

  Game_CharacterBase.prototype.setNamePopOutlineColor = function(outlineColor) {
    this._namePopOutlineColor = outlineColor;
  };

  Game_CharacterBase.prototype.requestNamePop = function() {
    this._requestNamePop = true;
  };

  Game_CharacterBase.prototype.onChangeNamePop = function() {
    this._requestNamePop = false;
  };

  Game_CharacterBase.prototype.isNamePopRequested = function() {
    return this._requestNamePop;
  };

  //-----------------------------------------------------------------------------
  // Game_Event
  //

  var _Game_Event_setupPage = Game_Event.prototype.setupPage;
  Game_Event.prototype.setupPage = function() {
    _Game_Event_setupPage.call(this);
    if (this._pageIndex >= 0) {
      var namePop = this.loadTagParam('namePop');
      if (namePop) {
        var arr = namePop.split(' ');
        this.setNamePop(arr[0], arr[1], arr[2]);
        this.setNamePopOutlineColor(arr[3]);
      }
    } else {
      this.setNamePop(null, 0);
    }
    this.requestNamePop();
  };

  //-----------------------------------------------------------------------------
  // Game_Interpreter
  //

  var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
  Game_Interpreter.prototype.pluginCommand = function(command, args) {
    _Game_Interpreter_pluginCommand.call(this, command, args);
    if (command === 'namePop') {
      var arr = args.map(this.convertEscapeCharactersTM, this);
      var character = this.character(+arr[0]);
      if (character) {
        character.setNamePop(args[1], arr[2], arr[3]);
        character.setNamePopOutlineColor(arr[4]);
        character.requestNamePop();
      }
    }
  };

  //-----------------------------------------------------------------------------
  // Sprite_Character
  //

  var _Sprite_Character_update = Sprite_Character.prototype.update;
  Sprite_Character.prototype.update = function() {
    _Sprite_Character_update.call(this);
    this.updateNamePop();
  };

  Sprite_Character.prototype.updateNamePop = function() {
    if (this._character.isNamePopRequested() ||
        this._namePop !== this._character._namePop) {
      this._character.onChangeNamePop();
      this._namePop = this._character._namePop;
      if (this._namePop) {
        if (!this._namePopSprite) {
          this._namePopSprite = new Sprite_NamePop();
          this.addChild(this._namePopSprite);
          this._namePopSprite.y = this.namePopShiftY();
          this._namePopSprite.x = this.namePopShiftX();
        }
        this._namePopSprite.refresh(this._namePop,
                                    this._character.namePopOutlineColor());
      } else {
        this.removeChild(this._namePopSprite);
        this._namePopSprite = null;
      }
    }
  };

  Sprite_Character.prototype.namePopShiftY = function() {
    return this._character._namePopY - this.patternHeight();
  };

  Sprite_Character.prototype.namePopShiftX = function() {
    return this._character._namePopX;
  };

  //-----------------------------------------------------------------------------
  // Sprite_NamePop
  //

  function Sprite_NamePop() {
    this.initialize.apply(this, arguments);
  }

  Sprite_NamePop.prototype = Object.create(Sprite.prototype);
  Sprite_NamePop.prototype.constructor = Sprite_NamePop;

  Sprite_NamePop.prototype.initialize = function() {
    Sprite.prototype.initialize.call(this);
    this.bitmap = new Bitmap(TMPlugin.NamePop.Width, TMPlugin.NamePop.FontSize + 4);
    this.bitmap.fontSize = TMPlugin.NamePop.FontSize;
    this.bitmap.outlineWidth = TMPlugin.NamePop.OutlineWidth;
    this.anchor.x = 0.5;
    this.anchor.y = 1;
  };

  Sprite_NamePop.prototype.update = function() {
    Sprite.prototype.update.call(this);
    if($gameMessage.isBusy()){
    	this.opacity = 0;
    }else if($gameSwitches.value(35)){
    	this.opacity = 0;
    }else{
    	this.opacity = 255;
    }
    this.x = this.parent.namePopShiftX();
    this.y = this.parent.namePopShiftY();
  };

  Sprite_NamePop.prototype.refresh = function(text, outlineColor) {
    this.bitmap.clear();
    this.bitmap.textColor = '#ffffff';
    this.bitmap.outlineColor = outlineColor;
    text = this.convertEscapeCharacters(text);
    var tw = this.bitmap.measureTextWidth(text);
    var x = Math.max((this.width - tw) / 2 - 4, 0);
    var w = Math.min(tw + 8, this.width);
    this.bitmap.paintOpacity = TMPlugin.NamePop.BackOpacity;
    if (Imported.TMBitmapEx && TMPlugin.NamePop.RoundRectRadius) {
      this.bitmap.fillRoundRect(x, 0, w, this.height, TMPlugin.NamePop.RoundRectRadius, '#000000');
    } else {
      this.bitmap.fillRect(x, 0, w, this.height, '#000000');
    }
    this.bitmap.paintOpacity = 255;
    this.bitmap.drawText(text, 0, 0, this.width, this.height, 'center');
  };

  Sprite_NamePop.prototype.convertEscapeCharacters = function(text) {
    text = text.replace(/\x1bC\[(\d+)\]/gi, function() {
      this.bitmap.textColor = this.textColor(arguments[1]);
      return '';
    }.bind(this));
    return text;
  };

  Sprite_NamePop.prototype.textColor = function(n) {
    var px = 96 + (n % 8) * 12 + 6;
    var py = 144 + Math.floor(n / 8) * 12 + 6;
    var windowskin = ImageManager.loadSystem('Window');
    return windowskin.getPixel(px, py);
  };

})();


code:
//=============================================================================
// TMPlugin - 最強全脱ぎコマンド削除
// バージョン: 1.1.1
// 最終更新日: 2017/10/06
// 配布元    : http://hikimoki.sakura.ne.jp/
//-----------------------------------------------------------------------------
// Copyright (c) 2016 tomoaky
// Released under the MIT license.
// http://opensource.org/licenses/mit-license.php
//=============================================================================

/*:
 * @plugindesc 装備シーンからコマンドウィンドウを削除し、
 * スロットウィンドウに２行分のスペースを追加します。
 *
 * @author tomoaky (http://hikimoki.sakura.ne.jp/)
 *
 * @param useOptimize
 * @type boolean
 * @desc Shiftキーによる最強装備を利用する。
 * 初期値: ON ( false = OFF 無効 / true = ON 有効 )
 * @default true
 *
 * @param useClear
 * @type boolean
 * @desc Ctrl(Alt)キーによる全て外すを利用する。
 * 初期値: ON ( false = OFF 無効 / true = ON 有効 )
 * @default true
 *
 * @help
 * TMPlugin - 最強全脱ぎコマンド削除 ver1.1.1
 *
 * 使い方:
 *
 *   スロットウィンドウがアクティブな状態で Shift キーを押せば最強装備、
 *   Ctrl または Alt キーを押せば全て外すが実行されます。
 *
 *   Q または W キーによるアクター変更もスロットウィンドウが
 *   アクティブな状態で実行できます。
 *
 *   現在のバージョンではマウス、タッチ操作には対応していません。
 *
 *   プラグインコマンドはありません。
 *
 *   このプラグインは RPGツクールMV Version 1.5.1 で動作確認をしています。
 *
 *   このプラグインはMITライセンスのもとに配布しています、商用利用、
 *   改造、再配布など、自由にお使いいただけます。
 */

var Imported = Imported || {};
Imported.TMOmitEquipCommand = true;

(function() {

  var parameters = PluginManager.parameters('TMOmitEquipCommand');
  var useOptimize = JSON.parse(parameters['useOptimize']);
  var useClear = JSON.parse(parameters['useClear']);

  //-----------------------------------------------------------------------------
  // Scene_Equip
  //

  var _Scene_Equip_create = Scene_Equip.prototype.create;
  Scene_Equip.prototype.create = function() {
    _Scene_Equip_create.call(this);
    this._slotWindow.activate();
    this._slotWindow.select(0);
  };

  var _Scene_Equip_createCommandWindow = Scene_Equip.prototype.createCommandWindow;
  Scene_Equip.prototype.createCommandWindow = function() {
    _Scene_Equip_createCommandWindow.call(this);
    this._commandWindow.hide();
    this._commandWindow.deactivate();
  };

  Scene_Equip.prototype.createSlotWindow = function() {
    var wx = this._statusWindow.width;
    var wy = this._statusWindow.y;
    var ww = Graphics.boxWidth - this._statusWindow.width;
    var wh = this._statusWindow.height;
    this._slotWindow = new Window_EquipSlot(wx, wy, ww, wh);
    this._slotWindow.setHelpWindow(this._helpWindow);
    this._slotWindow.setStatusWindow(this._statusWindow);
    this._slotWindow.setHandler('ok', this.onSlotOk.bind(this));
    this._slotWindow.setHandler('cancel', this.popScene.bind(this));
    this._slotWindow.setHandler('pagedown', this.nextActor.bind(this));
    this._slotWindow.setHandler('pageup', this.previousActor.bind(this));
    this.addWindow(this._slotWindow);
  };

  Scene_Equip.prototype.onActorChange = function() {
    this.refreshActor();
    this._slotWindow.activate();
  };

  Scene_Equip.prototype.commandOptimize = function() {
    SoundManager.playEquip();
    this.actor().optimizeEquipments();
    this._itemWindow.refresh();
    this._statusWindow.refresh();
    this._slotWindow.refresh();
    this._slotWindow.activate();
  };

  Scene_Equip.prototype.commandClear = function() {
    SoundManager.playEquip();
    this.actor().clearEquipments();
    this._itemWindow.refresh();
    this._statusWindow.refresh();
    this._slotWindow.refresh();
    this._slotWindow.activate();
  };

  var _Scene_Equip_update = Scene_Equip.prototype.update;
  Scene_Equip.prototype.update = function() {
    _Scene_Equip_update.call(this);
    if (this._slotWindow.active) {
      if (Input.isTriggered('shift') && useOptimize) {
        this.commandOptimize();
      } else if (Input.isTriggered('control') && useClear) {
        this.commandClear();
      }
    }
  };

})();


code:
//=============================================================================
// TMPlugin - 一人旅メニュー
// バージョン: 0.1.0b
// 最終更新日: 2018/02/13
// 配布元    : http://hikimoki.sakura.ne.jp/
//-----------------------------------------------------------------------------
// Copyright (c) 2018 tomoaky
// Released under the MIT license.
// http://opensource.org/licenses/mit-license.php
//=============================================================================

/*:
 * @plugindesc 一人旅に特化したメインメニューを導入します。
 *
 * @author tomoaky (http://hikimoki.sakura.ne.jp/)
 *
 * @param commandWindow
 * @type struct<Parameter>
 * @desc コマンドウィンドウのパラメータ
 * @default {"x":"0","y":"0","width":"240"}
 *
 * @param statusWindow
 * @type struct<Parameter>
 * @desc ステータスウィンドウのパラメータ
 * @default {"x":"240","y":"0","width":"576","height":"624"}
 *
 * @param goldWindow
 * @type struct<Parameter>
 * @desc 所持金ウィンドウのパラメータ
 * @default {"x":"0","y":"552","width":"240"}
 *
 * @param menuFace
 * @type struct<Parameter>
 * @desc 顔グラフィックのパラメータ
 * @default {"x":"0","y":"0","width":"144","height":"144"}
 *
 * @param menuName
 * @type struct<Parameter>
 * @desc アクター名のパラメータ
 * @default {"x":"152","y":"0","width":"168"}
 *
 * @param menuNickname
 * @type struct<Parameter>
 * @desc 二つ名のパラメータ
 * @default {"x":"328","y":"0","width":"168","fontSize":"20"}
 *
 * @param menuClass
 * @type struct<Parameter>
 * @desc 職業名のパラメータ
 * @default {"x":"152","y":"36","width":"96"}
 *
 * @param menuLevel
 * @type struct<Parameter>
 * @desc レベルのパラメータ
 * @default {"x":"260","y":"36","width":"280"}
 *
 * @param menuHp
 * @type struct<Parameter>
 * @desc HPのパラメータ
 * @default {"x":"152","y":"72","width":"186"}
 *
 * @param menuHp2
 * @type struct<Parameter>
 * @desc HPのパラメータ
 * @default {"x":"152","y":"72","width":"186"}
 *
 * @param menuMp
 * @type struct<Parameter>
 * @desc MPのパラメータ
 * @default {"x":"152","y":"108","width":"186"}
 *
 * @param menuTp
 * @type struct<Parameter>
 * @desc TPのパラメータ
 * @default {"x":"350","y":"108","width":"120"}
 *
 * @param menuIcons
 * @type struct<Parameter>
 * @desc 状態異常アイコンのパラメータ
 * @default {"x":"0","y":"108","width":"144"}
 *
 * @param menuEquips
 * @type struct<Parameter>
 * @desc 装備のパラメータ
 * @default {"x":"300","y":"172","width":"240","fontSize":"20","cols":"1","space":"8"}
 *
 * @param menuStateRate
 * @type struct<Parameter>
 * @desc ステート有効度のパラメータ
 * @default {"x":"0","y":"380","width":"97","fontSize":"20","name":"4 5 6 8 9 10","cols":"2","space":"8"}
 *
 * @param menuElementRate
 * @type struct<Parameter>
 * @desc 属性有効度のパラメータ
 * @default {"x":"233","y":"380","width":"97","fontSize":"20","name":"2 3 4 5 6 7 8 9","cols":"3","space":"8"}
 *
 * @param menuProfile
 * @type struct<Parameter>
 * @desc プロフィールのパラメータ
 * @default {"x":"0","y":"516","width":"186"}
 *
 * @param menuMhp
 * @type struct<Parameter>
 * @desc 最大HPのパラメータ
 * @default {"name":"最大HP"}
 *
 * @param menuMmp
 * @type struct<Parameter>
 * @desc 最大MPのパラメータ
 * @default {"name":"最大MP"}
 *
 * @param menuAtk
 * @type struct<Parameter>
 * @desc 攻撃力のパラメータ
 * @default {"x":"0","y":"172","width":"130","fontSize":"20","name":"攻撃"}
 *
 * @param menuDef
 * @type struct<Parameter>
 * @desc 防御力のパラメータ
 * @default {"x":"138","y":"172","width":"130","fontSize":"20","name":"防御"}
 *
 * @param menuMat
 * @type struct<Parameter>
 * @desc 魔法力のパラメータ
 * @default {"x":"0","y":"208","width":"130","fontSize":"20","name":"魔攻"}
 *
 * @param menuMdf
 * @type struct<Parameter>
 * @desc 魔法防御のパラメータ
 * @default {"x":"138","y":"208","width":"130","fontSize":"20","name":"魔防"}
 *
 * @param menuAgi
 * @type struct<Parameter>
 * @desc 敏捷性のパラメータ
 * @default {"x":"0","y":"244","width":"130","fontSize":"20","name":"敏捷"}
 *
 * @param menuLuc
 * @type struct<Parameter>
 * @desc 運のパラメータ
 * @default {"x":"138","y":"244","width":"130","fontSize":"20","name":"幸運"}
 *
 * @param menuHit
 * @type struct<Parameter>
 * @desc 命中率のパラメータ
 * @default {"x":"0","y":"280","width":"130","fontSize":"20","name":"命中"}
 *
 * @param menuEva
 * @type struct<Parameter>
 * @desc 回避率のパラメータ
 * @default {"x":"138","y":"280","width":"130","fontSize":"20","name":"回避"}
 *
 * @param menuCri
 * @type struct<Parameter>
 * @desc 会心率のパラメータ
 * @default {"x":"0","y":"316","width":"130","fontSize":"20","name":"会心"}
 *
 * @param menuCev
 * @type struct<Parameter>
 * @desc 会心回避率のパラメータ
 * @default {"name":"会心回避率"}
 *
 * @param menuMev
 * @type struct<Parameter>
 * @desc 魔法回避率のパラメータ
 * @default {"name":"魔法回避率"}
 *
 * @param menuMrf
 * @type struct<Parameter>
 * @desc 魔法反射率のパラメータ
 * @default {"name":"魔法反射率"}
 *
 * @param menuCnt
 * @type struct<Parameter>
 * @desc 反撃率のパラメータ
 * @default {"x":"138","y":"316","width":"130","fontSize":"20","name":"反撃"}
 *
 * @param menuHrg
 * @type struct<Parameter>
 * @desc HP再生率のパラメータ
 * @default {"name":"HP再生率"}
 *
 * @param menuMrg
 * @type struct<Parameter>
 * @desc MP再生率のパラメータ
 * @default {"name":"MP再生率"}
 *
 * @param menuTrg
 * @type struct<Parameter>
 * @desc TP再生率のパラメータ
 * @default {"name":"TP再生率"}
 *
 * @param menuTgr
 * @type struct<Parameter>
 * @desc 狙われ率のパラメータ
 * @default {"name":"狙われ率"}
 *
 * @param menuGrd
 * @type struct<Parameter>
 * @desc 防御効果率のパラメータ
 * @default {"name":"防御効果率"}
 *
 * @param menuRec
 * @type struct<Parameter>
 * @desc 回復効果率のパラメータ
 * @default {"name":"回復効果率"}
 *
 * @param menuPha
 * @type struct<Parameter>
 * @desc 薬の知識のパラメータ
 * @default {"name":"薬の知識"}
 *
 * @param menuMcr
 * @type struct<Parameter>
 * @desc MP消費率のパラメータ
 * @default {"name":"MP消費率"}
 *
 * @param menuTcr
 * @type struct<Parameter>
 * @desc TPチャージ率のパラメータ
 * @default {"name":"TPチャージ率"}
 *
 * @param menuPdr
 * @type struct<Parameter>
 * @desc 物理ダメージ率のパラメータ
 * @default {"name":"物理ダメージ率"}
 *
 * @param menuMdr
 * @type struct<Parameter>
 * @desc 魔法ダメージ率のパラメータ
 * @default {"name":"魔法ダメージ率"}
 *
 * @param menuFdr
 * @type struct<Parameter>
 * @desc 床ダメージ率のパラメータ
 * @default {"name":"床ダメージ率"}
 *
 * @param menuExr
 * @type struct<Parameter>
 * @desc 経験獲得率のパラメータ
 * @default {"name":"経験獲得率"}
 *
 * @param horzLine1
 * @type struct<Parameter>
 * @desc 罫線1のパラメータ
 * @default {"x":"0","y":"162","width":"540","height":"2"}
 *
 * @param horzLine2
 * @type struct<Parameter>
 * @desc 罫線2のパラメータ
 * @default {"x":"0","y":"370","width":"540","height":"2"}
 *
 * @param horzLine3
 * @type struct<Parameter>
 * @desc 罫線3のパラメータ
 * @default {"x":"0","y":"506","width":"540","height":"2"}
 *
 * @param horzLine4
 * @type struct<Parameter>
 * @desc 罫線4のパラメータ
 * @default {"height":"2"}
 *
 * @param horzLine5
 * @type struct<Parameter>
 * @desc 罫線5のパラメータ
 * @default {"height":"2"}
 *
 * @param freeText1
 * @type struct<Parameter>
 * @desc フリーテキスト1のパラメータ
 * @default {"x":"100","y":"144","width":"186","name":"\\C[16]\\}Parameter"}
 *
 * @param freeText2
 * @type struct<Parameter>
 * @desc フリーテキスト2のパラメータ
 * @default {"x":"396","y":"144","width":"186","name":"\\C[16]\\}Equips"}
 *
 * @param freeText3
 * @type struct<Parameter>
 * @desc フリーテキスト3のパラメータ
 * @default {"x":"70","y":"352","width":"186","name":"\\C[16]\\}StateRate"}
 *
 * @param freeText4
 * @type struct<Parameter>
 * @desc フリーテキスト4のパラメータ
 * @default {"x":"344","y":"352","width":"186","name":"\\C[16]\\}ElementRate"}
 *
 * @param freeText5
 * @type struct<Parameter>
 * @desc フリーテキスト5のパラメータ
 * @default {"x":"240","y":"488","width":"186","name":"\\C[16]\\}Profile"}
 *
 * @param freeText6
 * @type struct<Parameter>
 * @desc フリーテキスト6のパラメータ
 * @default {}
 *
 * @param freeText7
 * @type struct<Parameter>
 * @desc フリーテキスト7のパラメータ
 * @default {}
 *
 * @param freeText8
 * @type struct<Parameter>
 * @desc フリーテキスト8のパラメータ
 * @default {}
 *
 * @param freeText9
 * @type struct<Parameter>
 * @desc フリーテキスト9のパラメータ
 * @default {}
 *
 * @param freeText10
 * @type struct<Parameter>
 * @desc フリーテキスト10のパラメータ
 * @default {}
 *
 * @param freeText11
 * @type struct<Parameter>
 * @desc フリーテキスト11のパラメータ
 * @default {}
 *
 * @param freeText12
 * @type struct<Parameter>
 * @desc フリーテキスト12のパラメータ
 * @default {}
 *
 * @param freeText13
 * @type struct<Parameter>
 * @desc フリーテキスト13のパラメータ
 * @default {}
 *
 * @param freeText14
 * @type struct<Parameter>
 * @desc フリーテキスト14のパラメータ
 * @default {}
 *
 * @param freeText15
 * @type struct<Parameter>
 * @desc フリーテキスト15のパラメータ
 * @default {}
 *
 * @param freeText16
 * @type struct<Parameter>
 * @desc フリーテキスト16のパラメータ
 * @default {}
 *
 * @param freeText17
 * @type struct<Parameter>
 * @desc フリーテキスト17のパラメータ
 * @default {}
 *
 * @param freeText18
 * @type struct<Parameter>
 * @desc フリーテキスト18のパラメータ
 * @default {}
 *
 * @param freeText19
 * @type struct<Parameter>
 * @desc フリーテキスト19のパラメータ
 * @default {}
 *
 * @param freeText20
 * @type struct<Parameter>
 * @desc フリーテキスト20のパラメータ
 * @default {}
 *
 * @param expGaugeColor1
 * @type number
 * @max 31
 * @desc 経験値ゲージの色1
 * 初期値: 30
 * @default 30
 *
 * @param expGaugeColor2
 * @type number
 * @max 31
 * @desc 経験値ゲージの色2
 * 初期値: 31
 * @default 31
 *
 * @param expNextText
 * @type string
 * @desc 経験値の書式
 * 初期値: あと %1exp
 * @default あと %1exp
 *
 * @param expMaxText
 * @type string
 * @desc 最大レベルのときの経験値の書式
 * 初期値: %1exp
 * @default %1exp
 *
 * @param expFontSize
 * @type number
 * @desc 経験値の文字の大きさ
 * 初期値: 20
 * @default 20
 *
 * @param equipMax
 * @type number
 * @desc 装備を表示する最大数
 * 初期値: 5
 * @default 5
 *
 * @param elementIcons
 * @type string
 * @desc 属性アイコン
 * 初期値: 77 64 65 66 67 68 69 70 71
 * @default 77 64 65 66 67 68 69 70 71
 *
 * @param textBackColor
 * @type string
 * @desc 文字の背景の色
 * 初期値: #000000
 * @default #000000
 *
 * @param textBackOpacity
 * @type number
 * @max 255
 * @desc 文字の背景の不透明度
 * 初期値: 128
 * @default 128
 *
 * @param horzLineColor
 * @type string
 * @desc 罫線の色
 * 初期値: #ffffff
 * @default #ffffff
 *
 * @param horzLineOpacity
 * @type number
 * @max 255
 * @desc 罫線の不透明度
 * 初期値: 48
 * @default 48
 *
 * @param forceChangeSoloMenu
 * @type select
 * @option ひとりの時だけ一人旅メニューを使う
 * @value false
 * @option 常に一人旅メニューを使う
 * @value true
 * @desc パーティの人数によるメニュー切り替え方式。
 * 初期値: 常に一人旅メニューを使う (true)
 * @default true
 *
 * @help
 * TMPlugin - 一人旅メニュー ver0.1.0b
 *
 * 使い方:
 *
 *   プラグインパラメータの値を変更することで、ほぼすべての表示物の
 *   表示位置、文字サイズなどを自由にカスタマイズすることができます。
 *   また、メニュー系シーンにおけるアクター選択の処理も省略されます。
 *
 *   プラグインコマンドはありません。
 *
 *   このプラグインは RPGツクールMV Version 1.5.1 で動作確認をしています。
 *
 *   このプラグインはMITライセンスのもとに配布しています、商用利用、
 *   改造、再配布など、自由にお使いいただけます。
 *
 *
 * プラグインパラメータ補足:
 *
 *   width の値に 0 を設定することで、その項目を非表示にすることができます。
 *   プロフィールとフリーテキストには width の値が反映されませんが、
 *   0 を設定すれば非表示にすることはできます。
 *
 *   height の値が反映されるのは以下の項目のみとなります。
 *     statusWindow / menuFace / horzLine1 ～ horzLine5
 *
 *   プロフィールとフリーテキストには \C[16] や \} などの制御文字を
 *   使用することができます。
 */
/*~struct~Parameter:
 *
 * @param x
 * @type number
 * @min -1000
 * @desc X座標
 * @default 0
 *
 * @param y
 * @type number
 * @min -1000
 * @desc Y座標
 * @default 0
 *
 * @param width
 * @type number
 * @desc 横方向の大きさ
 * @default 0
 *
 * @param height
 * @type number
 * @desc 縦方向の大きさ
 * @default 36
 *
 * @param fontSize
 * @type number
 * @desc 文字の大きさ
 * @default 28
 *
 * @param name
 * @type string
 * @desc パラメータ名
 * @default
 *
 * @param cols
 * @type number
 * @desc 列の数
 * @default 1
 *
 * @param space
 * @type number
 * @desc 列ごとの空白
 * @default 8
 *
 * @param fixed
 * @type number
 * @desc 小数点以下の桁数
 * @default 0
 *
 */

var Imported = Imported || {};
Imported.TMSoloMenu = true;

(function() {

  var parameters = PluginManager.parameters('TMSoloMenu');
  var commandWindow = JSON.parse(parameters['commandWindow'] || '{}');
  var statusWindow = JSON.parse(parameters['statusWindow'] || '{}');
  var goldWindow = JSON.parse(parameters['goldWindow'] || '{}');
  var menuFace = JSON.parse(parameters['menuFace'] || '{}');
  var menuName = JSON.parse(parameters['menuName'] || '{}');
  var menuNickname = JSON.parse(parameters['menuNickname'] || '{}');
  var menuClass = JSON.parse(parameters['menuClass'] || '{}');
  var menuLevel = JSON.parse(parameters['menuLevel'] || '{}');
  var menuHp = JSON.parse(parameters['menuHp'] || '{}');
  var menuHp2 = JSON.parse(parameters['menuHp2'] || '{}');
  var menuMp = JSON.parse(parameters['menuMp'] || '{}');
  var menuTp = JSON.parse(parameters['menuTp'] || '{}');
  var menuIcons = JSON.parse(parameters['menuIcons'] || '{}');
  var menuEquips = JSON.parse(parameters['menuEquips'] || '{}');
  var menuStateRate = JSON.parse(parameters['menuStateRate'] || '{}');
  var menuElementRate = JSON.parse(parameters['menuElementRate'] || '{}');
  var menuProfile = JSON.parse(parameters['menuProfile'] || '{}');
  var battleParameters = [];
  ['menuMhp', 'menuMmp', 'menuAtk', 'menuDef', 'menuMat', 'menuMdf', 'menuAgi', 'menuLuc',
   'menuHit', 'menuEva', 'menuCri', 'menuCev', 'menuMev', 'menuMrf', 'menuCnt', 'menuHrg',
   'menuMrg', 'menuTrg', 'menuTgr', 'menuGrd', 'menuRec', 'menuPha', 'menuMcr', 'menuTcr',
   'menuPdr', 'menuMdr', 'menuFdr', 'menuExr'].forEach(function(code) {
    battleParameters.push(JSON.parse(parameters[code] || '{}'));
  });
  var horzLines = [];
  ['horzLine1', 'horzLine2', 'horzLine3', 'horzLine4', 'horzLine5'].forEach(function(code) {
    horzLines.push(JSON.parse(parameters[code] || '{}'));
  });
  var freeTexts = [];
  ['freeText1', 'freeText2', 'freeText3', 'freeText4', 'freeText5',
   'freeText6', 'freeText7', 'freeText8', 'freeText9', 'freeText10',
   'freeText11', 'freeText12', 'freeText13', 'freeText14', 'freeText15',
   'freeText16', 'freeText17', 'freeText18', 'freeText19', 'freeText20'
   ].forEach(function(code) {
    freeTexts.push(JSON.parse(parameters[code] || '{}'));
  });
  var expGaugeColor1 = +(parameters['expGaugeColor1'] || 30);
  var expGaugeColor2 = +(parameters['expGaugeColor2'] || 31);
  var expNextText = parameters['expNextText'];
  var expMaxText = parameters['expMaxText'];
  var expFontSize = +(parameters['expFontSize'] || 28);
  var equipMax = +(parameters['equipMax'] || 6);
  var elementIcons = parameters['elementIcons'].split(' ').map(Number);
  var textBackColor = parameters['textBackColor'] || '#000000';
  var textBackOpacity = +(parameters['textBackOpacity'] || 128);
  var horzLineColor = parameters['horzLineColor'] || '#ffffff';
  var horzLineOpacity = +(parameters['horzLineOpacity'] || 48);
  var forceChangeSoloMenu = JSON.parse(parameters['forceChangeSoloMenu'] || 'true');
  var soloItemStatus = (parameters['soloItemStatus'] != null ? parameters['soloItemStatus'] : '144 160 144 144 96').split(' ').map(Number);

  //-----------------------------------------------------------------------------
  // Game_Party
  //

  Game_Party.prototype.isSoloMenuValid = function() {
    return forceChangeSoloMenu || this.size() === 1;
  };

  //-----------------------------------------------------------------------------
  // Window_MenuCommand
  //

  var _Window_MenuCommand_windowWidth = Window_MenuCommand.prototype.windowWidth;
  Window_MenuCommand.prototype.windowWidth = function() {
    if ($gameParty.isSoloMenuValid()) return +commandWindow.width;
    return _Window_MenuCommand_windowWidth.call(this);
  };

  //-----------------------------------------------------------------------------
  // Window_SoloStatus
  //

  function Window_SoloStatus() {
    this.initialize.apply(this, arguments);
  }

  Window_SoloStatus.prototype = Object.create(Window_Base.prototype);
  Window_SoloStatus.prototype.constructor = Window_Status;

  Window_SoloStatus.prototype.initialize = function() {
    Window_Base.prototype.initialize.call(this, +statusWindow.x, +statusWindow.y,
                                          +statusWindow.width, +statusWindow.height);
	this.opacity = 0;
//    this.refresh();
    if (!+statusWindow.width) this.hide();
  };

  Window_SoloStatus.prototype.refresh = function() {
    this.contents.clear();
    var actor = $gameParty.leader();
    if (actor && +statusWindow.width) {
      for (var i = 0; i < 5; i++) {
        this.drawHorzLine(horzLines[i]);
      }
      if (+menuFace.width) {
        this.drawActorFace(actor, +menuFace.x, +menuFace.y, +menuFace.width, +menuFace.height);
      }
      if (+menuIcons.width) {
        this.drawActorIcons(actor, +menuIcons.x, +menuIcons.y, +menuIcons.width);
      }
      this.drawSoloParameter(actor, 'NAME', menuName);
      this.drawSoloParameter(actor, 'NICKNAME', menuNickname);
      this.drawSoloParameter(actor, 'CLASS', menuClass);
      this.drawSoloParameter(actor, 'LEVEL', menuLevel);
      this.drawSoloParameter(actor, 'HP', menuHp);
      this.drawSoloParameter($gameActors.actor(2), 'HP', menuHp2);
      this.drawSoloParameter(actor, 'MP', menuMp);
      this.drawSoloParameter(actor, 'TP', menuTp);
      this.drawSoloParameter(actor, 'EQUIP', menuEquips);
      this.drawSoloParameter(actor, 'STATE', menuStateRate);
      this.drawSoloParameter(actor, 'ELEMENT', menuElementRate);
      this.drawSoloParameter(actor, 'PROFILE', menuProfile);
      for (var i = 0; i < 28; i++) {
        this.drawBattleParameter(actor, i, battleParameters[i]);
      }
      for (var i = 0; i < 20; i++) {
        this.drawSoloParameter(null, 'TEXT', freeTexts[i]);
      }
    }
  };

  Window_SoloStatus.prototype.drawSoloParameter = function(actor, code, parameter) {
    var width = +parameter.width;
    if (!width) return;
    var x = +parameter.x;
    var y = +parameter.y;
    this.contents.fontSize = +(parameter.fontSize || 28);
    if (code === 'NAME') {
      this.drawActorName(actor, x, y, width);
    } else if (code === 'NICKNAME') {
      this.drawActorNickname(actor, x, y, width);
    } else if (code === 'CLASS') {
      this.drawActorClass(actor, x, y, width);
    } else if (code === 'LEVEL') {
      this.drawActorLevelAndExp(actor, x, y, width);
    } else if (code === 'HP') {
      this.drawActorHp(actor, x, y, width);
    } else if (code === 'MP') {
      this.drawActorMp(actor, x, y, width);
    } else if (code === 'TP') {
      this.drawActorTp(actor, x, y, width);
    } else if (code === 'EQUIP') {
      this.drawEquipments(actor, x, y, width);
    } else if (code === 'PROFILE') {
      this.drawTextEx(actor.profile(), x, y);
    } else if (code === 'TEXT') {
      if(parameter.name == "\\V[142]"){
      //freetext 4 SPの値を右揃えにする処理
      	this.drawTextEx(parameter.name, x - (Number(String($gameVariables.value(142)).length)-1)*18, y);
      }
      else if(parameter.name.indexOf('split') != -1) {
      //freetext 6-10　エロステータスを右揃えするためにテキストを分割する
        var Text = parameter.name.split('split')
      	var Id = Text[1].match(/\\V\[(.*)\]\\fs\[0\]/)[1];
      	this.drawTextEx(Text[0], x , y);
      	this.drawTextEx(Text[1], x + 163 - (Number(String($gameVariables.value(Id)).length)-1)*14, y);
      }else if(parameter.name == "money"){
      //freetext 11 所持金関連
        var RealMoney = String($gameParty.gold().toLocaleString());
        var DreamMoney = String($gameVariables.value(5).toLocaleString());
        var RealMoney_x  = x - (Number(String(RealMoney.length))-1)*8;
        var DreamMoney_x = x - (Number(String(DreamMoney.length))-1)*8;

        if(RealMoney.length>=3){RealMoney_x-=4}
        if(DreamMoney.length>=3){DreamMoney_x-=4}

      	this.drawTextEx("\\fs[16]" + RealMoney, RealMoney_x  + 128 , y - 605);
      	this.drawTextEx("\\fs[16]" + DreamMoney,DreamMoney_x + 128 , y - 586);

      }else if(parameter.name == "location"){
      /*freetext 12 場所関連(20230825廃止)
      	if($gameMap.displayName().bytes() <= 24){
      		this.drawTextEx("\\fs[22]" + $gameMap.displayName(), x, y);
        }else if($gameMap.displayName().bytes() <= 30){
      		this.drawTextEx("\\fs[18]" + $gameMap.displayName(), x, y);
        }else if($gameMap.displayName().bytes() <= 36){
      		this.drawTextEx("\\fs[14]" + $gameMap.displayName(), x, y);
        }else{
      		this.drawTextEx("\\fs[10]" + $gameMap.displayName(), x, y);
        }
      */
      }else if(parameter.name == "huuki"){
      	if(!($gameSwitches.value(978) && !$gameSwitches.value(310) && $gameSwitches.value(253))){
      		this.drawTextEx("\\fs[24]" + String($gameVariables.value(149)), x - String($gameVariables.value(149)).bytes()*7.5  + 16, y-34);
      	}
      }else{
      	this.drawTextEx(parameter.name, x, y);
      }
    } else {
      this.drawRates(actor, x, y, width, code, parameter);
    }
    this.resetFontSettings();
  };

  Window_SoloStatus.prototype.drawActorLevelAndExp = function(actor, x, y, width) {
    var color1 = this.textColor(expGaugeColor1);
    var color2 = this.textColor(expGaugeColor2);
    if (actor.isMaxLevel()) {
      var rate = 100;
    } else {
      var currentExp = actor.currentExp() - actor.currentLevelExp();
      var nextExp = actor.nextLevelExp() - actor.currentLevelExp();
      var rate = currentExp / nextExp;
    }
    this.drawGauge(x, y, width, rate, color1, color2);
    this.changeTextColor(this.systemColor());
    this.drawText(TextManager.levelA, x, y+3, 32);
    this.resetTextColor();
    this.drawText(actor.level, x + 36, y, 32, 'right');
    if (expNextText) {
      var text = actor.isMaxLevel() ? expMaxText.format(actor.currentExp()) :
                                      expNextText.format(actor.nextRequiredExp());
      this.contents.fontSize = expFontSize;
      this.drawText(text, x, y, width, 'right');
    }
  };

  Window_SoloStatus.prototype.drawEquipments = function(actor, x, y, width) {
    var equips = actor.equips();
    var count = Math.min(equips.length, equipMax);
    var cols = +menuEquips.cols;
    for (var i = 1; i < count; i++) {
      var x2 = x + (width + +menuEquips.space) * ((i-1) % cols);
      var y2 = y + this.lineHeight() * Math.floor((i-1) / cols);
      //this.drawTextBack(x2, y2, width);
      this.drawItemName(equips[i], x2, y2, 400);
    }
  };
//Add 2019-01-31
  Window_SoloStatus.prototype.drawItemName = function(item, x, y, width) {
    if (item) {
        this.resetTextColor();
        this.drawTextEx("\\fs[20]"+item.name, x+120, y-5, width);
    }
  };

  Window_SoloStatus.prototype.drawRates = function(actor, x, y, width, code, parameter) {
    var ids = parameter.name.split(' ').map(Number);
    var cols = +parameter.cols;
    var iconBoxWidth = Window_Base._iconWidth + 4;
    for (var i = 0; i < ids.length; i++) {
      var x2 = x + (width + +parameter.space) * (i % cols);
      var y2 = y + this.lineHeight() * Math.floor(i / cols);
      if (code === 'STATE') {
        var state = $dataStates[ids[i]];
        if (!state) return;
        var value = actor.stateRate(state.id) * 100;
        var iconIndex = state.iconIndex;
      } else {
        var value = actor.elementRate(ids[i]) * 100;
        var iconIndex = elementIcons[ids[i] - 1];
      }
      this.drawTextBack(x2, y2, width);
      this.drawIcon(iconIndex, x2 + 2, y2 + 2);
      this.drawText(value.toFixed(+parameter.fixed) + '%', x2 + iconBoxWidth, y2,
                    width - iconBoxWidth, 'right');
    }
  };

  Window_SoloStatus.prototype.drawBattleParameter = function(actor, paramId, parameter) {
    var width = +parameter.width;
    if (!width) return;
    var x = +parameter.x;
    var y = +parameter.y;
    this.contents.fontSize = +(parameter.fontSize || 28);
    var textWidth = this.textWidth('00000');
    //this.drawTextBack(x, y, width);
    this.changeTextColor(this.systemColor());
    this.drawText(parameter.name, x, y+4, width - textWidth);
    this.resetTextColor();
    if (paramId < 8) {
      var value = actor.param(paramId);
    } else if (paramId < 18) {
      var value = (actor.xparam(paramId - 8) * 100).toFixed(+parameter.fixed);
    } else if (paramId < 28) {
      var value = (actor.sparam(paramId - 18) * 100).toFixed(+parameter.fixed);
    }
    this.drawText(value, x + width - textWidth - 20, y, textWidth, 'right');
    this.resetFontSettings();
  };

  Window_SoloStatus.prototype.drawTextBack = function(x, y, width) {
    if (textBackOpacity === 0) return;
    var height = this.contents.fontSize + 4;
    y += Math.floor((this.lineHeight() - height) / 2);
    this.contents.paintOpacity = textBackOpacity;
    if (Imported.TMBitmapEx) {
      this.contents.fillRoundRect(x, y, width, height, 6, textBackColor);
    } else {
      this.contents.fillRect(x, y, width, height, textBackColor);
    }
    this.contents.paintOpacity = 255;
  };

  Window_SoloStatus.prototype.drawHorzLine = function(parameter) {
    if (!+parameter.width) return;
    this.contents.paintOpacity = horzLineOpacity;
    this.contents.fillRect(+parameter.x, +parameter.y, +parameter.width,
                           +parameter.height, horzLineColor);
    this.contents.paintOpacity = 255;
  };

  //-----------------------------------------------------------------------------
  // Window_SoloItemStatus
  //

  function Window_SoloItemStatus() {
    this.initialize.apply(this, arguments);
  }

  Window_SoloItemStatus.prototype = Object.create(Window_Base.prototype);
  Window_SoloItemStatus.prototype.constructor = Window_SoloItemStatus;

  Window_SoloItemStatus.prototype.initialize = function(x, y, width) {
    Window_Base.prototype.initialize.call(this, x, y, width, this.fittingHeight(1));
    this.refresh();
  };

  Window_SoloItemStatus.prototype.refresh = function() {
    var x = 0;
    var actor = $gameParty.leader();
    this.contents.clear();
    if (soloItemStatus[0] > 0) {
      this.drawActorName(actor, x, 0, soloItemStatus[0]);
      x += soloItemStatus[0] + 16;
    }
    if (soloItemStatus[1] > 0) {
      this.drawActorIcons(actor, x, 0, soloItemStatus[1]);
      x += soloItemStatus[1] + 16;
    }
    if (soloItemStatus[2] > 0) {
      this.drawActorHp(actor, x, 0, soloItemStatus[2]);
      x += soloItemStatus[2] + 16;
    }
    if (soloItemStatus[3] > 0) {
      this.drawActorMp(actor, x, 0, soloItemStatus[3]);
      x += soloItemStatus[3] + 16;
    }
    if (soloItemStatus[4] > 0) {
      this.drawActorTp(actor, x, 0, soloItemStatus[4]);
    }
  };

  //-----------------------------------------------------------------------------
  // Scene_Menu
  //

  var _Scene_Menu_create = Scene_Menu.prototype.create;
  Scene_Menu.prototype.create = function() {
    Scene_MenuBase.prototype.create.call(this);
    this.createStatusWindow();
    //this.createGoldWindow();
    this.createCommandWindow();
  };

  var _Scene_Menu_createCommandWindow = Scene_Menu.prototype.createCommandWindow;
  Scene_Menu.prototype.createCommandWindow = function() {
    _Scene_Menu_createCommandWindow.call(this);
    if ($gameParty.isSoloMenuValid()) {
      this._commandWindow.x = +commandWindow.x;
      this._commandWindow.y = +commandWindow.y;
      //this.addChild(this._windowLayer.removeChild(this._commandWindow));
    }
  };

  var _Scene_Menu_createStatusWindow = Scene_Menu.prototype.createStatusWindow;
  Scene_Menu.prototype.createStatusWindow = function() {
    if ($gameParty.isSoloMenuValid()) {
      this._statusWindow = new Window_SoloStatus();
      this._statusWindow.reserveFaceImages();
      this.addWindow(this._statusWindow);
    } else {
      _Scene_Menu_createStatusWindow.call(this);
    }
  };

  var _Scene_Menu_createGoldWindow = Scene_Menu.prototype.createGoldWindow;
  Scene_Menu.prototype.createGoldWindow = function() {
    _Scene_Menu_createGoldWindow.call(this);
    this._goldWindow.x = +goldWindow.x;
    this._goldWindow.y = +goldWindow.y;

    //this.addChild(this._windowLayer.removeChild(this._goldWindow));
    if (!+goldWindow.width) this._goldWindow.hide();
  };

  var _Scene_Menu_commandPersonal = Scene_Menu.prototype.commandPersonal;
  Scene_Menu.prototype.commandPersonal = function() {
    if ($gameParty.isSoloMenuValid()) {
      $gameParty.setTargetActor($gameParty.leader());
      this.onPersonalOk();
    } else {
      _Scene_Menu_commandPersonal.call(this);
    }
  };

  //-----------------------------------------------------------------------------
  // Scene_ItemBase
  //

  var _Scene_ItemBase_itemTargetActors = Scene_ItemBase.prototype.itemTargetActors;
  Scene_ItemBase.prototype.itemTargetActors = function() {
    var action = new Game_Action(this.user());
    action.setItemObject(this.item());
    if ($gameParty.isSoloMenuValid() && action.isForFriend()) {
      return [$gameParty.leader()];
    } else {
      _Scene_ItemBase_itemTargetActors.call(this);
    }
  };

  var _Scene_ItemBase_determineItem = Scene_ItemBase.prototype.determineItem;
  Scene_ItemBase.prototype.determineItem = function() {
    var action = new Game_Action(this.user());
    action.setItemObject(this.item());
    if ($gameParty.isSoloMenuValid() && action.isForFriend()) {
      if (this.canUse()) {
        this.useItem();
        this._itemWindow.refresh();
        if (this._soloStatusWindow) this._soloStatusWindow.refresh();
      } else {
        SoundManager.playBuzzer();
      }
      this._itemWindow.activate();
    } else {
      _Scene_ItemBase_determineItem.call(this);
    }
  };

  //-----------------------------------------------------------------------------
  // Scene_Item
  //

  var _Scene_Item_createCategoryWindow = Scene_Item.prototype.createCategoryWindow;
  Scene_Item.prototype.createCategoryWindow = function() {
    var enabled = this.isSoloStatusEnabled();
    if (enabled) {
      var wy = this._helpWindow.height;
      this._soloStatusWindow = new Window_SoloItemStatus(0, wy, Graphics.boxWidth);
      this.addWindow(this._soloStatusWindow);
    }
    _Scene_Item_createCategoryWindow.call(this);
    if (enabled) {
      this._categoryWindow.y += this._soloStatusWindow.height;
    }
  };

  Scene_Item.prototype.isSoloStatusEnabled = function() {
    return (sum = soloItemStatus.reduce(function(a, b) {
      return a + b;
    }) > 0);
  };

})();