Project1

标题: 关于自动换行脚本…… [打印本页]

作者: 喵呜喵5    时间: 2013-5-19 14:02
标题: 关于自动换行脚本……
本帖最后由 喵呜喵5 于 2013-5-25 20:08 编辑

图书馆有一个显示文字的自动换行脚本,使用了以后确实可以自动换行了,但是和其他显示选项、显示任务的脚本貌似有冲突……
http://rpg.blue/thread-224184-1-1.html


于是自己写了一个自动换行脚本,实际上只有几行而已,测试的时候也没有问题可以正常使用


但是因为我不会写脚本所以感觉有点不安……为什么人家写了那么长我几行就完成了……

所以求各位对脚本纠错一下看看这个脚本有没有什么严重的问题……可以的话,告诉我如何解决或者能给我一个更完善的自动换行脚本就更好了………………

RUBY 代码复制
  1. =begin
  2. ===============================================================================
  3. 自动换行 By喵呜喵5
  4. ===============================================================================
  5.  
  6. 【说明】
  7.  
  8. 显示文章的自动换行
  9. 咱不负责修正本脚本中出现的BUG,因为就算出现BUG我也不知道怎么修正……
  10. 修改了默认Window_Message中的
  11. process_normal_character(c, pos)
  12. 因此会与修改了相同内容的其他脚本不兼容
  13.  
  14. =end
  15.  
  16. #==============================================================================
  17. #  设定部分
  18. #==============================================================================
  19.  
  20. module M5AuMes
  21.   Switch = 0  #这里设置开关,开关开启则不使用自动换行
  22. end
  23.  
  24. #==============================================================================
  25. #  设定结束
  26. #==============================================================================
  27.  
  28. #==============================================================================
  29. #  脚本部分
  30. #==============================================================================
  31.  
  32. class Window_Message < Window_Base
  33.  
  34.   def process_normal_character(c, pos)
  35.     super
  36.     if (pos[:x] + 4 + self.contents.text_size(c).width) > self.contents.width && !$game_switches[M5AuMes::Switch]
  37.       process_new_line(c, pos)
  38.     end        
  39.     wait_for_one_character
  40.   end
  41.  
  42. end
  43.  
  44. #==============================================================================
  45. #  脚本结束
  46. #==============================================================================

作者: j433463    时间: 2013-5-19 14:18
原脚本主要是有对于控制符 \n \k \f 这类的处理,您自己若是没有用到这种控制符,而您又用得很顺没有出现错误,那就可以了,

不过,您的脚本没有使用限制,一旦您用这种方式,所有显示文字的地方都会自动分行,不能决定什么时候自动分行,什么时候不分,

那只要字数太长,就会被分成两行,那像是说明文字,战斗提示之类,要注意一下有没有因为这样显示变得不正常,若没有那OK啦。
作者: 喵呜喵5    时间: 2013-5-19 14:59
j433463 发表于 2013-5-19 14:18
原脚本主要是有对于控制符 \n \k \f 这类的处理,您自己若是没有用到这种控制符,而您又用得很顺没有出现错 ...

嗯……根据你说的加了一个开关,应该可以实现不同句对话间切换是否自动换行了,虽然同一句对话的自动换行和非自动换行切换看起来是实现不了的……

另外战斗提示信息似乎是在BattleLog里面所以不会被影响到的样子
不知道还有没有其他对话也是受Window_Message影响的……


作者: j433463    时间: 2013-5-19 15:12
恐怕有吧,光是默认中脚本用 $game_message.add() 的就不少,挂上的脚本也有可能用到。
作者: 易千芷    时间: 2013-8-25 22:36
感谢分享!!好像抱一抱楼主!!




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