设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1781|回复: 17
打印 上一主题 下一主题

[已经过期] 请问如何在旧存档中初始化后来追加的变量

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
帖子
813

开拓者

跳转到指定楼层
1
发表于 2017-7-15 12:51:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 jianyulei 于 2017-7-15 13:02 编辑

在Game_BattlerBase中增加了一个变量但是在读取旧档之后运行会空值报错,请问在游戏的事件中初始化变量的写法是什么?

Lv6.析梦学徒

老鹰

梦石
40
星屑
34725
在线时间
6740 小时
注册时间
2012-5-26
帖子
3259

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

2
发表于 2017-7-15 13:24:26 | 只看该作者
在你的脚本中读取这个变量之前的地方,加个空值判定
比如@b是新增的变量
修改前的方法是
def temp
  p @a + @b
end
这样会报错 @b为nil
改成
def temp
  init(@b) if @b == nil
  p @a + @b
end

点评

那你还是重开档吧,估计你也找不出全部的潜在的预先调用的地方  发表于 2017-7-15 21:01
新变量我只按照你的方法写了啊……  发表于 2017-7-15 18:37
我是说去掉对那个新增变量的attr_reader之类的方法…………  发表于 2017-7-15 17:04
attr_reader以前试过,某个地方会报错  发表于 2017-7-15 16:08
attr_reader 之类的呢?那些都是方法  发表于 2017-7-15 16:04

评分

参与人数 1星屑 +30 收起 理由
jianyulei + 30 忘记评分了……

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
19433
在线时间
3102 小时
注册时间
2013-1-11
帖子
1291
3
发表于 2017-7-15 13:53:11 | 只看该作者
$你的变量 = nil

点评

所有用的地方都赋值了一遍,也都P了全是0,但仍旧在那里会报错,看来只能重开档了……  发表于 2017-7-15 15:44
应该是你在Game_BattlerBase里面赋值了,但是他的子类,早早的就super了,你之后的赋值子类里没有,还是会报错  发表于 2017-7-15 14:36
游戏中即使赋值了0,也P出来不是NIL了,但一用到变量照样会报错,只有写在初始化里然后重开存档才有效  发表于 2017-7-15 14:25
@变量 = value if @变量 == nil  发表于 2017-7-15 14:12
我创建的是Game_BattlerBase里的@实例变量,主要是为了增加对象判定  发表于 2017-7-15 14:03
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 15:42

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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