幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1958|回复: 5

[已解决] 求助-关于游戏中的变量在脚本中的判断(小白问题)

[复制链接]

16

主题

36

帖子

1063

积分

⑥精研

积分
1063
发表于 2010-6-22 18:04:52 | 显示全部楼层 |阅读模式
我刚弄到个把游戏中所有文本自动变为繁体的脚本。
目前的设想是,在开始新游戏时询问要简体还是繁体,选择繁体的话就把变量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
但是总是提示[]方法无效,该怎么做才是对的呢?麻烦帮我看下,谢谢!
回复

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2010-6-22 18:10:31 | 显示全部楼层
那是因为初始化的时候

$game_XXXXX都还没有初始化。。。而你在没有初始化的情况下就用 $game_XXX
这时候这些变量都是nil。。。要是不报错那就见鬼了。。。这个东西自定义一个开关

比如 $secondsen = false 放在 脚本的最前端。。。操作方法  事件脚本来改变$secondsen
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

15

主题

271

帖子

2198

积分

⑥精研

我要疯狂积累活跃度!

积分
2198
QQ
发表于 2010-6-22 20:11:57 | 显示全部楼层
比如 $secondsen = false 伪娘。。。LZ照做吧,没必要用变量,简单的判断开关更准确有效。
紫月光流奈河畔, 孤影独行笑苍天。 酆都倒比人间好, 从此慕鬼不羡仙!
回复 支持 反对

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2010-6-22 20:33:32 | 显示全部楼层
汗。。。我都说了 开关没有初始化呢,是不能用的。。。
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

15

主题

271

帖子

2198

积分

⑥精研

我要疯狂积累活跃度!

积分
2198
QQ
发表于 2010-6-22 21:14:49 | 显示全部楼层
最简单解决方法。。。用华丽的图片标题脚本,然后在开场动画之后再用开关判断不久OK了。。。
紫月光流奈河畔, 孤影独行笑苍天。 酆都倒比人间好, 从此慕鬼不羡仙!
回复 支持 反对

使用道具 举报

16

主题

36

帖子

1063

积分

⑥精研

积分
1063
 楼主| 发表于 2010-6-23 08:28:48 | 显示全部楼层
都好难的样子…………

…………可不可以用读取ini文件的方法来解决?
ini文件中再加一行charset,等于0就简体,等于1就繁体…………
完蛋了,这些东西我还从来没去涉及过…………又得从头学了……
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-5-2 15:04 , Processed in 0.026804 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表