|
本帖最后由 烁灵 于 2024-6-20 17:45 编辑
视觉小说风格按键快速对话。
原地址:[MZ] Phileas's Skipping Messages (MZ skip message / Fast Forward Message) | RPG Maker Forums (rpgmakerweb.com)
汉化脚本:命名为 Phileas_SkippingMessages.js
- //=============================================================================
- // Phileas_SkippingMessages.js
- //=============================================================================
- // [Update History]
- // 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
- *
- * [License]
- * 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
- *
- * [License]
- * Этот плагин распространяется по лицензии 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);
- };
- }());
复制代码
|
|