pure-full-lily/js/plugins/DisableMessageAdvance.js
2025-09-16 10:12:44 -05:00

57 lines
2.5 KiB
JavaScript

/*:
* @target MZ
* @plugindesc 一時的にメッセージ送り入力を禁止/許可する v1.0
* @author IvI
*
* @command Disable
* @text メッセージ送り禁止
* @desc メッセージ送りの入力を無効化します。
*
* @command Enable
* @text メッセージ送り許可
* @desc メッセージ送りの入力を再び有効にします。
*
* @help
* 【使い方】
* 1. plugins フォルダに入れてプラグインマネージャで「ON」。
* 2. イベントコマンド「プラグインコマンド」から
* ・「メッセージ送り禁止」 … 以降、入力を受け付けません
* ・「メッセージ送り許可」 … 再び入力を受け付けます
*
* 【ポイント】
* ●メッセージウィンドウが閉じている間もフラグは保持されます。
* ●自動送り(\.^, \| などのウェイト制御)はそのまま機能します。
* ●スイッチや変数を介さず、イベント内で直感的に ON/OFF 可能です。
*/
(() => {
// -----------------------------------------------------------------------
// 内部フラグ(ゲーム全体で共有)
// -----------------------------------------------------------------------
const Game_System_initialize = Game_System.prototype.initialize;
Game_System.prototype.initialize = function() {
Game_System_initialize.call(this);
this._disableMessageAdvance = false; // false = 許可 / true = 禁止
};
// -----------------------------------------------------------------------
// プラグインコマンド
// -----------------------------------------------------------------------
PluginManager.registerCommand(document.currentScript.src.match(/([^/]+)\.js$/)[1], "Disable", () => {
$gameSystem._disableMessageAdvance = true;
});
PluginManager.registerCommand(document.currentScript.src.match(/([^/]+)\.js$/)[1], "Enable", () => {
$gameSystem._disableMessageAdvance = false;
});
// -----------------------------------------------------------------------
// メッセージウィンドウ:入力判定をフック
// -----------------------------------------------------------------------
const _Window_Message_isTriggered = Window_Message.prototype.isTriggered;
Window_Message.prototype.isTriggered = function() {
// 禁止フラグが立っている間は常に false を返す
if ($gameSystem._disableMessageAdvance) return false;
return _Window_Message_isTriggered.call(this);
};
})();