Project1

标题: 【插件】文字对话自动换行MZ版 [打印本页]

作者: if216    时间: 2021-7-13 18:44
标题: 【插件】文字对话自动换行MZ版
本帖最后由 if216 于 2021-7-14 21:48 编辑




MZ都出了一年多了吧?我回来一看,这个还没有……论坛里有人要,于是就花十分钟在MV插件的基础上试出来了……
原本想抛砖引玉,结果又花了一袋烟的功夫解决了一些bug。现在应该可以用了。
后续有什么问题,回帖吧,不承诺解决。

这小插件当做给小朋友们的暑假礼物了。

用它吧,不丢人。


更新日志:
1.解决连点断片的问题
2.名字显示没问题,有问题把它放到插件最底部试试
3.解决第二行开始和第一行不对齐的问题
4.加入字间距以便调节


自动换行MZ.zip

1.38 KB, 下载次数: 371

售价: 1 星屑  [记录]


作者: 210892663    时间: 2021-7-13 19:57
你给我代码我也不会用啊,还不如直接给插件
作者: if216    时间: 2021-7-13 21:46
210892663 发表于 2021-7-13 19:57
你给我代码我也不会用啊,还不如直接给插件

你需要另存为 xxx.js ,就是插件了
作者: shenyi216    时间: 2021-7-14 02:20
本帖最后由 shenyi216 于 2021-7-14 06:14 编辑

前几天我还在论坛里呼唤没想到真的就写出来了~
先谢谢大佬了!先买了下班了去试试,遇到bug会发上来的,大佬没时间的话大家也可以集思广益一下

更新:
下班试了下大佬的代码,目前发现的bug是姓名框不显示,貌似也被换行了

Screen Shot 2021-07-13 at 5.55.02 PM.png (588.42 KB, 下载次数: 2)

Screen Shot 2021-07-13 at 5.55.02 PM.png

作者: if216    时间: 2021-7-14 08:33
shenyi216 发表于 2021-7-14 02:20
前几天我还在论坛里呼唤没想到真的就写出来了~
先谢谢大佬了!先买了下班了去试试,遇到bug会发上 ...

文字特殊处理可能都有问题,并且连点鼠标会造成断句,这个。。。先让子弹飞一会儿。。。
作者: uningian    时间: 2021-7-18 06:21
加载插件造成游戏卡死,不加载就没事,不知道怎么回事
作者: if216    时间: 2021-7-18 08:34
本帖最后由 if216 于 2021-7-18 08:35 编辑
uningian 发表于 2021-7-18 06:21
加载插件造成游戏卡死,不加载就没事,不知道怎么回事


卡死的时候有没有报啥错?按f12,然后选console,如果有红字可以截屏给我看看。可能和什么其他插件冲突了。

也可以适当关闭其他插件,多运行几次,用排除法筛选出,到底和哪个插件有冲突。
作者: moranzyb    时间: 2021-7-18 11:32
想它很久了,终于能用了,感谢大佬!!!
作者: uningian    时间: 2021-7-18 18:23
本帖最后由 uningian 于 2021-7-18 18:33 编辑
if216 发表于 2021-7-18 08:34
卡死的时候有没有报啥错?按f12,然后选console,如果有红字可以截屏给我看看。可能和什么其他插件冲突了 ...


笨方法排查,对话框的名字框不能有名字,有名字就卡死,反之就好了


不知道什么问题,卡死后,按F12没有反应。只是游戏卡死,电脑运行正常
作者: 走出300加    时间: 2021-7-18 20:03
感觉MZ是有些奇奇怪怪的问题,有个游戏地图上就没什么东西,但巨卡。
作者: 明智光秀    时间: 2021-7-20 22:06
最有用的插件之一了,自定义分辨率下写对话都不知道该在哪里换行,完全依赖换行插件,感谢
作者: 小怪兽奇奇侠    时间: 2021-7-21 09:58
对插件的保护意识和产权意识很强
作者: wxh811211    时间: 2021-7-27 16:26
支持好东西!支持楼主!
作者: adam_moonlit    时间: 2021-7-27 17:15
本帖最后由 adam_moonlit 于 2021-7-27 17:21 编辑

请问一个字就换行一般是什么问题?使用的插件如下

捕获3.JPG (125.42 KB, 下载次数: 5)

捕获3.JPG

作者: if216    时间: 2021-7-28 14:19
adam_moonlit 发表于 2021-7-27 17:15
请问一个字就换行一般是什么问题?使用的插件如下

肯定和 visumz_1_messagecore 冲突的,他的代码加密了,无法做出修补。我这个也很一般,权衡使用。
作者: 41workroom    时间: 2022-7-16 18:43
666大佬NB
作者: zhaojiabin    时间: 2022-7-18 09:56
你好,我用了这个插件发现无法进入游戏,报错
作者: kyoaan    时间: 2022-11-14 18:37
好像和TextPicture.js冲突了,不管放在TextPicture.js之前还是之后,会造成文字变图片失效
作者: 13272303956    时间: 2023-2-7 15:44
谢谢大佬了。
作者: garfeng    时间: 2023-3-12 14:55
本帖最后由 garfeng 于 2023-3-12 15:14 编辑

稍微改了下

JAVASCRIPT 代码复制
  1. //=========================================================
  2. // 自动换行MZ
  3. //=========================================================
  4.  
  5. /*:
  6. * @plugindesc 这个花十分钟在MV插件的基础上改出来的
  7. * @author LCK & garfeng
  8. * @versionId 0.3
  9. *
  10. * @param alwaysFast
  11. * @desc 总是快速显示文字
  12. * @type boolean
  13. * @default false
  14. *
  15. *@help
  16. * 1. 在使用到该插件的作品中注明作者LCK(if216)
  17. * 2. 满足1的情况下,允许免费使用、商用该插件
  18. * 3. 不允许在除论坛原贴以外的地方发布该插件[url]https://rpg.blue/forum.php?mod=viewthread&tid=486345&page=1&extra=#pid2925358[/url]
  19. * 4. 可以自由修改,如要发布修改版,只能发布在我论坛原贴
  20. * 5. 以上使用条款,请原样保留在你的插件里
  21. */
  22.  
  23. (function() {
  24.     var parameters = PluginManager.parameters('自动换行MZ');
  25.     var alwaysFast =  parameters["alwaysFast"] == "true" || false;
  26.  
  27.     Window_Message.prototype.processCharacter = function(textState) {
  28.         const c = textState.text[textState.index++];
  29.  
  30.         if (c.charCodeAt(0) < 0x20) {
  31.             this.flushTextState(textState);
  32.             this.processControlCharacter(textState, c);
  33.         } else {
  34.             // 处理字符前,检测文本总宽度
  35.             const width = this.textWidth(textState.buffer + c);
  36.             const x = textState.x;
  37.  
  38.             const padding = this.padding + this.itemPadding();
  39.  
  40.             if( this.width - x - padding * 2 > width) {
  41.                 textState.buffer += c;
  42.             } else {
  43.                 this.flushTextState(textState);
  44.  
  45.                 // 超限则换行
  46.                 textState.index --;
  47.                 this.processNewLine(textState);
  48.  
  49.             }
  50.         }
  51.     };
  52.  
  53.     // 帮助窗口(物品、武器描述窗口)也需要自动换行
  54.     Window_Help.prototype.processCharacter = Window_Message.prototype.processCharacter;
  55.  
  56.     // 可选,是否总是快速显示文本
  57.     const Window_Message_prototype_clearFlags = Window_Message.prototype.clearFlags;
  58.     Window_Message.prototype.clearFlags = function() {
  59.         Window_Message_prototype_clearFlags.apply(this, arguments);
  60.         this._showFast = alwaysFast;
  61.     };
  62.  
  63. })();

作者: xuechen19940302    时间: 2023-3-31 22:28
大佬我有问题想要请教!看见你的文字导入功能,连名称也可以导入!想请问是怎么做到的啊!
我每次用mz自带的大段文字导入功能,姓名栏总是不能导入,只能手动输入。
作者: hanzhx    时间: 2024-1-17 21:48
好厉害,下来试试看。多谢分享。
作者: suesue12    时间: 2024-1-24 19:09
感谢分享!
我使用了这个但效果变成一行就一个字了,请问这个怎么解决呢?(间距0或者更多都显示不正常)





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