Project1

标题: 【小脚本】显示文章的自动换行 [打印本页]

作者: iisnow    时间: 2012-3-2 13:53
标题: 【小脚本】显示文章的自动换行
你是否会遇到,因为游戏给别人玩的时候,别人没有安装字体,
然后显示文章的时候会让别人看到莫名其妙的换行,或者会超出框框呢?

在评测游戏的时候,经常遇到这种情况啊……╮(╯▽╰)╭
VA现在单行可以无限输入了,上方的换行提示也只有针对默认字体……
或者输入文字的时候,变大变小什么的,换行又麻烦了不少吧……

VX版早就有自动换行的设定的脚本了……
我就来个VA版吧……


  1. class Window_Base
  2.   
  3.   alias :iisnow_convert_escape_characters :convert_escape_characters
  4.   def convert_escape_characters(text)
  5.     result = iisnow_convert_escape_characters(text)
  6.     result.gsub!(/\ek/)          { "\k" }
  7.     result
  8.   end

  9.   def process_character(c, text, pos)
  10.     case c
  11.     when "\r"  
  12.       return
  13.     when "\n"  
  14.       process_new_line(text, pos) if !@auto_n
  15.     when "\k"
  16.       @auto_n = false
  17.     when "\f"   
  18.       process_new_page(text, pos)
  19.     when "\e"   
  20.       process_escape_character(obtain_escape_code(text), text, pos)
  21.     else      
  22.       process_normal_character(c,text,pos)
  23.     end
  24.   end
  25.   
  26.   def process_normal_character(c,text,pos)
  27.     @auto_n = true
  28.     text_width = text_size(c).width
  29.     if real_width - pos[:x] > text_width
  30.       draw_text(pos[:x], pos[:y], text_width * 2, pos[:height], c)
  31.       pos[:x] += text_width
  32.     else
  33.       process_new_line(text,pos)
  34.       process_normal_character(c,text,pos)
  35.     end
  36.   end
  37.   
  38.   def real_width
  39.     return self.width - 2 * standard_padding
  40.   end
  41.   
  42. end

  43. class Window_Message
  44.   
  45.   def process_normal_character(c,text,pos)
  46.     super
  47.     wait_for_one_character
  48.   end

  49. end
复制代码


用法:
1.强制无视换行,但是想要手动换行,就需要在句末加上\k:

2.其他随意了……

示范:
←比如这样,运行起来就是:

←普通字体

←换个字体

←(这个是@cxpagy喜欢的字体)修改默认大小

←变大变小

总之呢就是这样了……不过有不足的地方:
比如自动换行后会出现翻页的情况,然后一些属性就重置了,比如颜色啊,大小啊,什么的就回原了
这个我以后改改吧


作者: 荷包PIG蛋    时间: 2012-3-2 16:43
不错,虽然用不上但还是支持一下
作者: 越前リョーマ    时间: 2012-3-2 17:37
有点不解……为什么必须要打符号才能强制换行 = =
作者: 迷蓝の海    时间: 2012-3-2 17:46
感觉这个脚本很有爱啊。话说那第二个字体好可爱啊~
作者: iisnow    时间: 2012-3-2 17:48
越前リョーマ 发表于 2012-3-2 17:37
有点不解……为什么必须要打符号才能强制换行 = =

是这样的,为了强制换行后能连上后面的文字,那么输入时的换行需要去除,但是究竟会不会出现强制换行后出现连贯问题,我不清楚,就默认为全部去除,而加入末尾标识来手动换行
作者: 905423717    时间: 2012-3-2 18:16
好东西,(我不会告诉你我复制了)。
作者: 梦回碧落    时间: 2012-3-2 20:51
XXX:
以上也可以自动显示?
作者: bbh    时间: 2012-3-2 20:55
评分就会内部错误是要闹那出啊!
作者: 289307768    时间: 2012-11-17 13:23
冒昧的问一下……VA怎么换字体额.
作者: tjjlb    时间: 2012-11-17 14:24
第二个字体好可爱。。。我喜欢
作者: j433463    时间: 2012-11-20 18:29
本帖最后由 j433463 于 2012-11-20 19:17 编辑

以前 rm 版本我就为这个换行问题感到困扰,因为文章内容一确定就会自动加上换行,
一个不小心改了内容,可能对话显示时就出现一行没满半途中段换行,太怄人了,
这个脚本命中红心啊!

不过,这个好像连事件脚本的都有影响啊!像是任务系统脚本,描述与追加描述都排成一行了..


{:2_279:}
作者: 折戬沉沙    时间: 2012-11-25 21:29
建议将‘K’换成不常用字符……
作者: knlau    时间: 2013-2-16 02:12
谢谢分享
作者: 何夕    时间: 2013-8-6 17:12
多谢lz,我收了
作者: 戰國武士    时间: 2013-8-21 23:10
讚喔
不然輸入對話要一直換行+弄新對話好麻煩阿
作者: 易千芷    时间: 2013-8-25 18:29
救命...这个脚本好像和对话音效脚本不兼容
作者: 萧十一郎    时间: 2013-9-30 22:12
很好。复制了!不过话说,怎么换字体?
作者: hno3000    时间: 2013-11-25 23:28
直接加入脚本以后,会报错,貌似不能和其他脚本兼容……
作者: Able2099    时间: 2014-2-19 23:21
很有用的脚本啊,卤族是好淫
作者: taroxd    时间: 2015-3-8 08:31
折戬沉沙 发表于 2012-11-25 21:29
建议将‘K’换成不常用字符……


主要是因为 "\k" 就是 "k" 吧……
建议换一个转义符
作者: UFONO1    时间: 2015-6-23 20:13
我只想说:要是早点找到这个脚本就好了
作者: bettycyy    时间: 2016-4-19 19:00
可是我用的文字是英汉互译,然后k字母就被吞了,编程盲求助,怎么设成其他字符?
作者: xatm093    时间: 2016-5-4 21:59
这个脚本不错,我拿来用了。感觉方便了很多。
作者: 太御    时间: 2017-7-1 19:31
厉害啊,技术新手路过
作者: 阿尔卑斯    时间: 2021-7-11 11:15
VX版的在哪。好像挖坟了
作者: D_Lohy    时间: 2022-1-2 18:50
289307768 发表于 2012-11-17 13:23
冒昧的问一下……VA怎么换字体额.


Font.default_name = ["黑体"]
塞在Main里面
用其他的字体名改黑体
如果启动后runtime error了或没有效果
就在工程的根目录建fonts文件夹
把要改的字体塞在里面XD
作者: D_Lohy    时间: 2022-1-2 18:53
XD虽然可能不能得到回答
但是请问/r/n/f/e是什么




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