找回密码
 注册用户
查看: 115|回复: 0

[RMMZ] 【汉化】按键跳过对话

[复制链接]

81

主题

6

回帖

1254

积分

资深会员

积分
1254
发表于 2024-6-13 15:27:25 | 显示全部楼层 |阅读模式
本帖最后由 烁灵 于 2024-6-20 17:45 编辑

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

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

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

  9. /*
  10. Title: Phileas_SkippingMessages
  11. Author: Phileas
  12. Site: https://boosty.to/phileas
  13. E-mail: olek.olegovich@gmail.com
  14. Version: 1.2.0
  15. First release: 2022.September.3
  16. Last release: 2024.February.05
  17. */

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

  27. /*:
  28. * @target MZ
  29. * @plugindesc 使用指定按键跳过对话
  30. * 汉化 by 烁灵 更多插件请访问 www.hknmtt.com
  31. * @author Phileas
  32. *
  33. * @param Default skip key
  34. * @text 默认跳过键
  35. * @type string
  36. * @desc 按键名
  37. * @default control
  38. *
  39. * @param Default skip speed
  40. * @text 默认跳过速度
  41. * @type select
  42. * @option 慢
  43. * @value Slow
  44. * @option 快
  45. * @value Fast
  46. * @default Slow
  47. *
  48. * @command setSkipKey
  49. * @text 设置跳过键
  50. * @desc 设置跳过对话按键。
  51. * @arg keyName
  52. * @text 按键名
  53. * @type string
  54. * @default control
  55. *
  56. * @command setSkipSpeed
  57. * @text 设置跳过速度
  58. * @desc 设置文章跳过的速度。
  59. * @arg skipSpeed
  60. * @text 跳过速度
  61. * @type combo
  62. * @option 慢
  63. * @value Slow
  64. * @option 快
  65. * @value Fast
  66. * @default Slow
  67. *
  68. * @help
  69. * 按键名如下:
  70. *     9: "tab", // Tab
  71. *     13: "ok", // Enter
  72. *     16: "shift", // Shift
  73. *     17: "control", // Ctrl
  74. *     18: "control", // Alt
  75. *     27: "escape", // Esc
  76. *     32: "ok", // 空格
  77. *     33: "pageup", // PageUp
  78. *     34: "pagedown", // PageDown
  79. *     37: "left", // ← 方向键
  80. *     38: "up", // ↑ 方向键
  81. *     39: "right", // → 方向键
  82. *     40: "down", // ↓ 方向键
  83. *     45: "escape", // Insert
  84. *     81: "pageup", // Q
  85. *     87: "pagedown", // W
  86. *     88: "escape", // X
  87. *     90: "ok", // Z
  88. *     96: "escape", // 小键盘 0
  89. *     98: "down", // 小键盘 2
  90. *     100: "left", // 小键盘 4
  91. *     102: "right", // 小键盘 6
  92. *     104: "up", // 小键盘 8
  93. *     120: "debug" // F9
  94. *
  95. * 可以设置跳过文章的速度: “慢” 或 “快”
  96. *
  97. * 本插件提供 2 个指令:
  98. * 0) 设置跳过键
  99. * 1) 设置跳过速度
  100. *
  101. * You can always write to the author if you need other features or even plugins.
  102. * Boosty: https://boosty.to/phileas
  103. * RPG Maker Web: https://forums.rpgmakerweb.com/index.php?members/phileas.176075/
  104. * RPG Maker Union: https://rpgmakerunion.ru/id/phileas
  105. * Email: olek.olegovich gmail.com
  106. * Telegram: olekolegovich
  107. *
  108. * [License]
  109. * This plugin is released under MIT license.
  110. * http://opensource.org/licenses/mit-license.php
  111. *
  112. * This means that you can freely use the plugin in non-commercial and commercial games and even edit it.
  113. * But be sure to include me in the credits!
  114. */

  115. /*:ru
  116. * @target MZ
  117. * @plugindesc Плагин позволяет пропускать сообщения нажатием любой клавиши
  118. * @author Phileas
  119. *
  120. * @param Default skip key
  121. * @text Клавиша пропуска по умолчанию
  122. * @type string
  123. * @desc String identifier of the key
  124. * @default control
  125. *
  126. * @param Default skip speed
  127. * @text Скорость пропуска по умолчанию
  128. * @desc Slow - медленно, Fast - быстро.
  129. * @type combo
  130. * @option Slow
  131. * @option Fast
  132. * @default Slow
  133. *
  134. * @command setSkipKey
  135. * @text Установить клавишу пропуска
  136. * @desc Назначает новую клавишу пропуска сообщений.
  137. * @arg keyName
  138. * @text Название клавиши
  139. * @type string
  140. * @default control
  141. *
  142. * @command setSkipSpeed
  143. * @text Установить скорость пропуска
  144. * @desc Назначает новую скорость пропуска сообщений.
  145. * @arg skipSpeed
  146. * @text Скорость пропуска
  147. * @type combo
  148. * @option Slow
  149. * @option Fast
  150. * @default Slow
  151. *
  152. * @help
  153. * Чтобы назначить клавишу клавиатуры, используйте её уникальный строковый идентификатор. Если вы не переопределили их, то они выглядят так:
  154. *     9: "tab", // tab
  155. *     13: "ok", // enter
  156. *     16: "shift", // shift
  157. *     17: "control", // control
  158. *     18: "control", // alt
  159. *     27: "escape", // escape
  160. *     32: "ok", // space
  161. *     33: "pageup", // pageup
  162. *     34: "pagedown", // pagedown
  163. *     37: "left", // left arrow
  164. *     38: "up", // up arrow
  165. *     39: "right", // right arrow
  166. *     40: "down", // down arrow
  167. *     45: "escape", // insert
  168. *     81: "pageup", // Q
  169. *     87: "pagedown", // W
  170. *     88: "escape", // X
  171. *     90: "ok", // Z
  172. *     96: "escape", // numpad 0
  173. *     98: "down", // numpad 2
  174. *     100: "left", // numpad 4
  175. *     102: "right", // numpad 6
  176. *     104: "up", // numpad 8
  177. *     120: "debug" // F9
  178. *
  179. * Вы также можете выбрать скорость пропуска текста: медленную или быструю.
  180. *
  181. * Плагин предоставляет 2 команды, их аргументы дублируют параметры:
  182. * 0) Установить клавишу пропуска - назначает новую клавишу пропуска сообщений.
  183. * 1) Установить скорость пропуска - назначает новую скорость пропуска сообщений.
  184. *
  185. * Вы всегда можете написать автору, если вам нужны другие функции или даже плагины.
  186. * Boosty: https://boosty.to/phileas
  187. * RPG Maker Web: https://forums.rpgmakerweb.com/index.php?members/phileas.176075/
  188. * RPG Maker Union: https://rpgmakerunion.ru/id/phileas
  189. * Email: olek.olegovich gmail.com
  190. * Телеграм: olekolegovich
  191. *
  192. * [License]
  193. * Этот плагин распространяется по лицензии MIT.
  194. * http://opensource.org/licenses/mit-license.php
  195. *
  196. * Это означает, что вы можете свободно использовать плагин в некоммерческих и коммерческих играх и даже редактировать его.
  197. * Но обязательно укажите меня в титрах!
  198. */

  199. (function() {

  200. //--------MY CODE:
  201.     var parameters = PluginManager.parameters("Phileas_SkippingMessages");
  202.     var skipKeyName = String(parameters["Default skip key"] || "control");
  203.     var isFastMode = parameters["Default skip speed"] == "Fast";
  204.     var skipFlag = false;
  205.    
  206.     PluginManager.registerCommand("Phileas_SkippingMessages", "setSkipKey", setSkipKey);
  207.     PluginManager.registerCommand("Phileas_SkippingMessages", "setSkipSpeed", setSkipSpeed);
  208.    
  209.     setSkipOnCancel();
  210.    
  211.     function setSkipKey(params) {
  212.         let keyName = params['keyName'];
  213.         skipKeyName = keyName;
  214.         setSkipOnCancel();
  215.     }
  216.    
  217.     function setSkipSpeed(params) {
  218.         let skipSpeed = params['skipSpeed'];
  219.         isFastMode = skipSpeed == "Fast";
  220.     }
  221.    
  222.     function setSkipOnCancel() {
  223.         if (skipKeyName !== "escape") {
  224.             document.removeEventListener("mousedown", skippingMouseDownHandler);
  225.             document.removeEventListener("mouseup", skippingMouseUpHandler);
  226.             return;
  227.         }
  228.         
  229.         document.addEventListener("mousedown", skippingMouseDownHandler);
  230.         document.addEventListener("mouseup", skippingMouseUpHandler);
  231.     }
  232.    
  233.     function skippingMouseDownHandler(event) {
  234.         if (event.button == 2) {
  235.             skipFlag = true;
  236.         }
  237.     };
  238.    
  239.     function skippingMouseUpHandler(event) {
  240.         if (event.button == 2) {
  241.             skipFlag = false;
  242.         }
  243.     };
  244.    
  245.     function isSkipKeyPressed() {
  246.         return Input.isPressed(skipKeyName)
  247.             || skipKeyName === "ok" && TouchInput.isLongPressed()
  248.             || skipFlag;
  249.     }

  250. //--------CHANGED CORE:

  251.     const Original_isTriggered = Window_Message.prototype.isTriggered;
  252.     Window_Message.prototype.isTriggered = function() {
  253.         if (isSkipKeyPressed()) {
  254.             this._pauseSkip = isFastMode;
  255.             return true;
  256.         }

  257.         return Original_isTriggered.call(this);
  258.     };
  259. }());
复制代码





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册用户

本版积分规则

Archiver|QQ群: 48625831|爱上RPG|哈库纳玛塔塔 |网站地图

GMT+8, 2024-7-17 03:42 , Processed in 0.068653 second(s), 18 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表