烁灵 发表于 2024-6-13 15:27:25

【汉化】按键跳过对话

本帖最后由 烁灵 于 2024-6-20 17:45 编辑

视觉小说风格按键快速对话。

原地址: Phileas's Skipping Messages (MZ skip message / Fast Forward Message) | RPG Maker Forums (rpgmakerweb.com)

汉化脚本:命名为 Phileas_SkippingMessages.js
//=============================================================================
// Phileas_SkippingMessages.js
//=============================================================================
//
// 2022.September.3 Ver1.0.0 First Release
// 2023.July.25 Ver1.1.0 Added skip speed selection
//                     Added commands that allow to change the text skip key and skip speed during the game
// 2024.February.05 Ver1.2.0 Added mouse support

/*
Title: Phileas_SkippingMessages
Author: Phileas
Site: https://boosty.to/phileas
E-mail: olek.olegovich@gmail.com
Version: 1.2.0
First release: 2022.September.3
Last release: 2024.February.05
*/

/*ru
Название: Phileas_SkippingMessages
Автор: Phileas
Сайт: https://boosty.to/phileas
E-mail: olek.olegovich@gmail.com
Версия: 1.2.0
Первый релиз: 03.09.2022
Последний релиз: 05.02.2024
*/

/*:
* @target MZ
* @plugindesc 使用指定按键跳过对话
* 汉化 by 烁灵 更多插件请访问 www.hknmtt.com
* @author Phileas
*
* @param Default skip key
* @text 默认跳过键
* @type string
* @desc 按键名
* @default control
*
* @param Default skip speed
* @text 默认跳过速度
* @type select
* @option 慢
* @value Slow
* @option 快
* @value Fast
* @default Slow
*
* @command setSkipKey
* @text 设置跳过键
* @desc 设置跳过对话按键。
* @arg keyName
* @text 按键名
* @type string
* @default control
*
* @command setSkipSpeed
* @text 设置跳过速度
* @desc 设置文章跳过的速度。
* @arg skipSpeed
* @text 跳过速度
* @type combo
* @option 慢
* @value Slow
* @option 快
* @value Fast
* @default Slow
*
* @help
* 按键名如下:
*   9: "tab", // Tab
*   13: "ok", // Enter
*   16: "shift", // Shift
*   17: "control", // Ctrl
*   18: "control", // Alt
*   27: "escape", // Esc
*   32: "ok", // 空格
*   33: "pageup", // PageUp
*   34: "pagedown", // PageDown
*   37: "left", // ← 方向键
*   38: "up", // ↑ 方向键
*   39: "right", // → 方向键
*   40: "down", // ↓ 方向键
*   45: "escape", // Insert
*   81: "pageup", // Q
*   87: "pagedown", // W
*   88: "escape", // X
*   90: "ok", // Z
*   96: "escape", // 小键盘 0
*   98: "down", // 小键盘 2
*   100: "left", // 小键盘 4
*   102: "right", // 小键盘 6
*   104: "up", // 小键盘 8
*   120: "debug" // F9
*
* 可以设置跳过文章的速度: “慢” 或 “快”
*
* 本插件提供 2 个指令:
* 0) 设置跳过键
* 1) 设置跳过速度
*
* You can always write to the author if you need other features or even plugins.
* Boosty: https://boosty.to/phileas
* RPG Maker Web: https://forums.rpgmakerweb.com/index.php?members/phileas.176075/
* RPG Maker Union: https://rpgmakerunion.ru/id/phileas
* Email: olek.olegovich gmail.com
* Telegram: olekolegovich
*
*
* This plugin is released under MIT license.
* http://opensource.org/licenses/mit-license.php
*
* This means that you can freely use the plugin in non-commercial and commercial games and even edit it.
* But be sure to include me in the credits!
*/

/*:ru
* @target MZ
* @plugindesc Плагин позволяет пропускать сообщения нажатием любой клавиши
* @author Phileas
*
* @param Default skip key
* @text Клавиша пропуска по умолчанию
* @type string
* @desc String identifier of the key
* @default control
*
* @param Default skip speed
* @text Скорость пропуска по умолчанию
* @desc Slow - медленно, Fast - быстро.
* @type combo
* @option Slow
* @option Fast
* @default Slow
*
* @command setSkipKey
* @text Установить клавишу пропуска
* @desc Назначает новую клавишу пропуска сообщений.
* @arg keyName
* @text Название клавиши
* @type string
* @default control
*
* @command setSkipSpeed
* @text Установить скорость пропуска
* @desc Назначает новую скорость пропуска сообщений.
* @arg skipSpeed
* @text Скорость пропуска
* @type combo
* @option Slow
* @option Fast
* @default Slow
*
* @help
* Чтобы назначить клавишу клавиатуры, используйте её уникальный строковый идентификатор. Если вы не переопределили их, то они выглядят так:
*   9: "tab", // tab
*   13: "ok", // enter
*   16: "shift", // shift
*   17: "control", // control
*   18: "control", // alt
*   27: "escape", // escape
*   32: "ok", // space
*   33: "pageup", // pageup
*   34: "pagedown", // pagedown
*   37: "left", // left arrow
*   38: "up", // up arrow
*   39: "right", // right arrow
*   40: "down", // down arrow
*   45: "escape", // insert
*   81: "pageup", // Q
*   87: "pagedown", // W
*   88: "escape", // X
*   90: "ok", // Z
*   96: "escape", // numpad 0
*   98: "down", // numpad 2
*   100: "left", // numpad 4
*   102: "right", // numpad 6
*   104: "up", // numpad 8
*   120: "debug" // F9
*
* Вы также можете выбрать скорость пропуска текста: медленную или быструю.
*
* Плагин предоставляет 2 команды, их аргументы дублируют параметры:
* 0) Установить клавишу пропуска - назначает новую клавишу пропуска сообщений.
* 1) Установить скорость пропуска - назначает новую скорость пропуска сообщений.
*
* Вы всегда можете написать автору, если вам нужны другие функции или даже плагины.
* Boosty: https://boosty.to/phileas
* RPG Maker Web: https://forums.rpgmakerweb.com/index.php?members/phileas.176075/
* RPG Maker Union: https://rpgmakerunion.ru/id/phileas
* Email: olek.olegovich gmail.com
* Телеграм: olekolegovich
*
*
* Этот плагин распространяется по лицензии MIT.
* http://opensource.org/licenses/mit-license.php
*
* Это означает, что вы можете свободно использовать плагин в некоммерческих и коммерческих играх и даже редактировать его.
* Но обязательно укажите меня в титрах!
*/

(function() {

//--------MY CODE:
    var parameters = PluginManager.parameters("Phileas_SkippingMessages");
    var skipKeyName = String(parameters["Default skip key"] || "control");
    var isFastMode = parameters["Default skip speed"] == "Fast";
    var skipFlag = false;
   
    PluginManager.registerCommand("Phileas_SkippingMessages", "setSkipKey", setSkipKey);
    PluginManager.registerCommand("Phileas_SkippingMessages", "setSkipSpeed", setSkipSpeed);
   
    setSkipOnCancel();
   
    function setSkipKey(params) {
      let keyName = params['keyName'];
      skipKeyName = keyName;
      setSkipOnCancel();
    }
   
    function setSkipSpeed(params) {
      let skipSpeed = params['skipSpeed'];
      isFastMode = skipSpeed == "Fast";
    }
   
    function setSkipOnCancel() {
      if (skipKeyName !== "escape") {
            document.removeEventListener("mousedown", skippingMouseDownHandler);
            document.removeEventListener("mouseup", skippingMouseUpHandler);
            return;
      }
      
      document.addEventListener("mousedown", skippingMouseDownHandler);
      document.addEventListener("mouseup", skippingMouseUpHandler);
    }
   
    function skippingMouseDownHandler(event) {
      if (event.button == 2) {
            skipFlag = true;
      }
    };
   
    function skippingMouseUpHandler(event) {
      if (event.button == 2) {
            skipFlag = false;
      }
    };
   
    function isSkipKeyPressed() {
      return Input.isPressed(skipKeyName)
            || skipKeyName === "ok" && TouchInput.isLongPressed()
            || skipFlag;
    }

//--------CHANGED CORE:

    const Original_isTriggered = Window_Message.prototype.isTriggered;
    Window_Message.prototype.isTriggered = function() {
      if (isSkipKeyPressed()) {
            this._pauseSkip = isFastMode;
            return true;
      }

      return Original_isTriggered.call(this);
    };
}());




页: [1]
查看完整版本: 【汉化】按键跳过对话