- 注册时间
- 2006-7-23
- 最后登录
- 2019-7-1
⑥精研
- 积分
- 1063
|
我刚弄到个把游戏中所有文本自动变为繁体的脚本。
目前的设想是,在开始新游戏时询问要简体还是繁体,选择繁体的话就把变量50的值改为1,否则就为0
这点很好做到。但是在脚本中该如何判断呢?改为繁体的脚本如下:
#------------------------------------------------------------------------------
# 本脚本来自www.66RPG.com,功能是将整个游戏中draw_text的简体字全部变为繁体字
# 作者:66RPG技术区版大:灼眼的夏娜
#------------------------------------------------------------------------------
module Conv
def self.c(str)
m2w = Win32API.new("kernel32","MultiByteToWideChar",'ilpipi','i')
w2m = Win32API.new("kernel32","WideCharToMultiByte",'ilpipipp','i')
lcms = Win32API.new("kernel32","LCMapString",'llpipi','i')
len = m2w.call(65001,0,str,-1,nil,0)
buf = "\0"*(len*2)
m2w.call(65001,0,str,-1,buf,len)
len = w2m.call(0,0,buf,-1,nil,0,nil,nil)
ret = "\0"*len
w2m.call(0,0,buf,-1,ret,len,nil,nil)
len = m2w.call(936,0,ret,-1,nil,0)
buf01 = "\0"*(len*2+1)
lcms.call(0x0804,0x04000000,ret,-1,buf01,len*2)
len = m2w.call(0,0,buf01,-1,nil,0)
buf = "\0" * (len*2)
m2w.call(0,0,buf01,-1,buf,len)
len = w2m.call(65001,0,buf,-1,nil,0,nil,nil)
ret = "\0" * (len-1)
w2m.call(65001,0,buf,-1,ret,len-1,nil,nil)
return ret
end
end
class Bitmap
unless $I_LOVE_RMXP_6RWORDCONV
alias dx draw_text
def draw_text(p1, p2, p3 = 0, p4 = 3, p5 = nil, p6 = 0)
case p1
when Rect
str = Conv.c(p2)
dx(p1, str, p3)
else
str = Conv.c(p5)
dx(p1, p2, p3, p4, str, p6)
end
end
$I_LOVE_RMXP_6RWORDCONV = true
end
end
我本来是想在这个脚本前面添加语句进行判断:
if $game_variables[50] ==1
但是总是提示[]方法无效,该怎么做才是对的呢?麻烦帮我看下,谢谢! |
|