mysecretsummervacation2/www/js/plugins/CommonEventBeforeAfterMenu.js
2023-08-14 15:30:44 -05:00

75 lines
3.7 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);
};
}());