Project1

标题: 关于“自带字体”脚本的问题 [打印本页]

作者: David_Exmachina    时间: 2016-7-12 17:25
标题: 关于“自带字体”脚本的问题
本帖最后由 David_Exmachina 于 2016-7-12 17:35 编辑

我使用了“自带字体”脚本,内容如下:
  1. dir = Win32API.new('kernel32','GetSystemDirectory','p,l','l')
  2. dir_str = " " * 256
  3. dir.call(dir_str,255)
  4. dir_str = dir_str.split('system')[0]

  5. font_name = "fzcqjw.ttf"
  6. font_chn_name = "方正粗倩简体"

  7. if FileTest.exist?(font_name)
  8.   copy = Win32API.new('kernel32',"CopyFileA",'p,p,l','')
  9.   copy.call(font_name, "#{dir_str}Fonts/#{font_name}",0)
  10.   font = Win32API.new('gdi32','AddFontResourceA','p','l')
  11.   sendmsg = Win32API.new('user32','SendMessageA','l,l,l,l','l')
  12.   unless Font.exist?(font_chn_name)
  13.     font.call(font_name)
  14.     sendmsg.call(65535,29,0,0)
  15.     retry
  16.   end
  17. end
复制代码
这是由“亿万星辰”编写的比较老的脚本,功能就是使用游戏文件夹里面自带的字体。

我插入后运行了一下,第1次被卡住,第2次能够正常运行。
但是运行了几次后又发生了“NilClass”。
我不知道这个错误是什么意思,我根本就没见过。
经过几次修改,我发现代码“retry”是发生错误的原因。
于是我就重新复制原脚本,去掉了“retry”,结果脚本就无效了。
虽然我具备一定编写脚本的能力,但是一看到“Win32API”就会懵逼。
所以我希望一些大神们能够进行一些修改,让它能正常运行。
O(∩_∩)O谢谢~~~

作者: RyanBern    时间: 2016-7-12 18:59
简单看了一下,这个脚本的作用是自动安装字体。我不清楚为什么会出现这样的错误,但是楼主可以试试不使用这个脚本,也可以达到同样的效果。

首先找到Main这个脚本,里面应该有一个
  1. Font.default_name = ["黑体"]
复制代码

这个就是系统默认字体,你可以把它改成你想要的字体。

如果没有这一句的话,加在begin后面就行。

这样设置的话,如果系统里面安装了这个字体,那么游戏中就会显示出来,因此你的字体需要手动安装一下,具体的方式就是右键点击字体文件,选择【安装】即可。
作者: David_Exmachina    时间: 2016-7-12 19:39
RyanBern 发表于 2016-7-12 18:59
简单看了一下,这个脚本的作用是自动安装字体。我不清楚为什么会出现这样的错误,但是楼主可以试试不使用这 ...

我觉得这样让玩家这么麻烦得安装字体不太好,
而且我怕某些电脑(如:国外的电脑)可能无法安装某些字体。【红豆泥(⊙_⊙)?
就是因为如此,我才会使用这个脚本。<( ̄︶ ̄)>
作者: David_Exmachina    时间: 2016-7-19 11:09
没人吗?(T_T)
作者: 英顺的马甲    时间: 2016-7-19 16:20
可以考虑考虑使用这个脑残物
https://rpg.blue/thread-377723-1-1.html
作者: hys111111    时间: 2016-7-19 20:01
我测试了几次,都没发现报错啊。




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