Project1

标题: 视觉小说 自动消息 [打印本页]

作者: xuhao1996    时间: 2022-8-1 00:52
标题: 视觉小说 自动消息
AltMenuScreen.js

//=============================================================================
// RPG Maker MZ - AutoMessage
//=============================================================================

/*:
* @target MZ
* @plugindesc 自动消息。
* @author 雪あすか
* @url https://twitter.com/askyq
*
*
* @help 它是一个自动读消息的插件。
*
* [如何使用]
*当指定编号的开关为 ON 时
*自动读消息。
*如果遇到选择项,就停在那里。
*
*
* 【利用規約】
* WTFPL
*
* 【更新履歴】
* 1.0 初版公開
*
*
* @param SwitchId
* @text 开关号码
* @desc 仅当指定编号的开关为 ON 时,才会自动发送消息。
* @type switch
* @default 0
*
* @param WaitMilliseconds
* @text 读取间隔毫秒
* @desc 指定等待的时间(以毫秒为单位)。 如果变量编号具有非零值,则忽略此设置。
* @type number
* @default 2500
*
* @param WaitMillisecondsVariableId
* @text 读取间隔毫秒-变量编号
* @desc 指定存储读取间隔(毫秒)的变量的编号。 这在值不是 0 时有效。
* @type variable
* @default 0
*/

(() => {
  const PLUGIN_NAME = 'AutoMessage';
  const params = PluginManager.parameters(PLUGIN_NAME);

  const switchId = parseInt(params.SwitchId);
  const waitMilliseconds = parseInt(params.WaitMilliseconds);
  const waitMillisecondsVariableId = parseInt(params.WaitMillisecondsVariableId);

  let isTimerFilled = false;
  let timerId = 0;

  const Window_Message_isTriggered = Window_Message.prototype.isTriggered;
  Window_Message.prototype.isTriggered = function() {
    const _isTimerFilled = isTimerFilled;
    isTimerFilled = false;
    return (
        Window_Message_isTriggered.call(this) ||
        _isTimerFilled
    );
  };

  const Window_Message_startPause = Window_Message.prototype.startPause;
  Window_Message.prototype.startPause = function() {
    Window_Message_startPause.call(this);
   
    if (switchId) {
      if ($gameSwitches.value(switchId)) {
        let time = waitMilliseconds;
        if (waitMillisecondsVariableId) {
          time = $gameVariables.value(waitMillisecondsVariableId);
        }
        timerId = setTimeout(function() {
          isTimerFilled = true;
          timerId = 0;
        }, time);
      }
    }
  };

  const Window_Message_startMessage = Window_Message.prototype.startMessage;
  Window_Message.prototype.startMessage = function() {
    if (timerId) {
      clearTimeout(timerId);
      timerId = 0;
    }

    Window_Message_startMessage.call(this);
  };
})();
作者: liu7liu    时间: 2022-8-8 22:39
有没有在事件中保存的功能?
作者: xuhao1996    时间: 2022-8-8 23:46
liu7liu 发表于 2022-8-8 22:39
有没有在事件中保存的功能?

看看这个插件        https://rpg.blue/forum.php?mod=v ... p;page=1#pid2955943
作者: deathname    时间: 2022-8-9 12:33
这个好啊,苦苦找了好久




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1