ultimate-angel-zerachiel/www/js/plugins/CommonEventBeforeAfterMenu.js
2024-01-17 11:38:37 -06:00

78 lines
3.6 KiB
JavaScript

//=============================================================================
// CommonEventBeforeAfterMenu.js
//=============================================================================
/*:
* @plugindesc メニューを開く直前、または閉じた直後に、指定したコモンイベントを実行します。
* @author 奏ねこま(おとぶきねこま)
*
* @param Common Event ID (before Menu)
* @desc メニューを開く直前に実行するコモンイベントのIDを指定してください。
* @default 0
*
* @param Common Event ID (after Menu)
* @desc メニューを閉じた直後に実行するコモンイベントのIDを指定してください。
* @default 0
*
* @help
* *このプラグインには、プラグインコマンドはありません。
*
* [ 利用規約 ] ................................................................
* ・本プラグインの利用は、RPGツクールMV/RPGMakerMVの正規ユーザーに限られます。
* ・商用、非商用、有償、無償、一般向け、成人向けを問わず、利用可能です。
* ・利用の際、連絡や報告は必要ありません。また、製作者名の記載等も不要です。
* ・プラグインを導入した作品に同梱する形以外での再配布、転載はご遠慮ください。
* ・不具合対応以外のサポートやリクエストは、基本的に受け付けておりません。
* ・本プラグインにより生じたいかなる問題についても、一切の責任を負いかねます。
* [ 改訂履歴 ] ................................................................
* Version 1.03 2017/04/24 ウェイトを含んだコモンイベントを実行すると、
* イベント後にメニューが開かない問題を修正
* Version 1.02 2017/02/13 メニュー後コモンイベントが、マップ以外への
* シーン遷移時にも実行予約されていた問題を修正
* Version 1.01 2017/01/05 メニュー後コモンイベントIDを0に設定しても
* コモンイベントの予約が実行されていた問題を修正
* Version 1.00 2016/07/21 初版
* -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
* Web Site: http://makonet.sakura.ne.jp/rpg_tkool/
* Twitter : https://twitter.com/koma_neko
* Copylight (c) 2017 Nekoma Otobuki
*/
(function () {
"use strict";
const _PNAME = "CommonEventBeforeAfterMenu";
const _PARAMETERS = PluginManager.parameters(_PNAME);
const _COMMON_EVENT_ID_BM =
+_PARAMETERS["Common Event ID (before Menu)"] || 0;
const _COMMON_EVENT_ID_AM = +_PARAMETERS["Common Event ID (after Menu)"] || 0;
function _(f) {
return (f[_PNAME] = f[_PNAME] || {});
}
var _Scene_Map_isMenuCalled = Scene_Map.prototype.isMenuCalled;
Scene_Map.prototype.isMenuCalled = function () {
return _Scene_Map_isMenuCalled.call(this) || _(this).reserveCallMenu;
};
var _Scene_Map_callMenu = Scene_Map.prototype.callMenu;
Scene_Map.prototype.callMenu = function () {
if (_COMMON_EVENT_ID_BM && !_(this).reserveCallMenu) {
_(this).reserveCallMenu = true;
$gameTemp.reserveCommonEvent(_COMMON_EVENT_ID_BM);
} else {
_(this).reserveCallMenu = false;
_Scene_Map_callMenu.call(this);
}
};
var _Scene_Menu_terminate = Scene_Menu.prototype.terminate;
Scene_Menu.prototype.terminate = function () {
if (_COMMON_EVENT_ID_AM && SceneManager.isNextScene(Scene_Map)) {
$gameTemp.reserveCommonEvent(_COMMON_EVENT_ID_AM);
}
_Scene_Menu_terminate.call(this);
};
})();