查看: 2972|回复: 7

[已经解决] 如何才能让$变量加入存档不随游戏退出而被清除

[复制链接]
梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
回帖
659

开拓者

发表于 2019-5-21 22:22:51 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 jianyulei 于 2019-5-21 22:55 编辑

每次重开游戏所有的自定变量都会被清除,存档只会保存公共变量和实例,但我想问一下有没有办法让这些自定义变量一直被储存在游戏存档中?
梦石
10
星屑
39550
在线时间
1919 小时
注册时间
2010-11-14
回帖
3214

R考场第七期纪念奖

发表于 2019-5-22 00:08:03 | 显示全部楼层
给你一个简单的方法。
在脚本编辑器里,将你要随存档保存的变量设置为$game_system(其他$game对象也是可以的)的成员变量。
打个比方,在Game_System里加一行attr_accessor :my_vars
之后在游戏中就可以用事件脚本$game_system.my_vars来读写这个你要存的变量了。

如果你想存多个,给你提供一个简单的思路。
在游戏运行初将$game_system.my_vars初始化为哈希
$game_system.my_vars = {}
之后所有你要存取的数据,就按照哈希的规则来进行就好。
例如$game_system.my_vars[:var1] = var

评分

参与人数 2星屑 +50 赞 +1 收起 理由
VIPArcher + 50 我很赞同
jianyulei + 1 认可答案

查看全部评分

用头画头像,用脚写脚本
回复

使用道具 举报

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

开拓者

 楼主| 发表于 2019-5-22 14:30:45 | 显示全部楼层
KB.Driver 发表于 2019-5-22 00:08
给你一个简单的方法。
在脚本编辑器里,将你要随存档保存的变量设置为$game_system(其他$game对象也是可以 ...

但这样一来其实就和用$game_variables一样呢,之所以不用实例就是因为它们的名字太长了,在一些有文本量限制的地方写不了多少东西,另外我发现这游戏的变量有容量限制,一个变量里存的东西太多了会乱码.
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2019-5-22 15:11:56 | 显示全部楼层
本帖最后由 soulsaga 于 2019-5-22 15:55 编辑
jianyulei 发表于 2019-5-22 14:30
但这样一来其实就和用$game_variables一样呢,之所以不用实例就是因为它们的名字太长了,在一些有文本量限 ...


大大你定义个短命方法返回变量即可..
要用时写这个短名方法调用就可以省很多位置了..
[pre lang="ruby"]def v
   return $game_variables
end[/pre]

点评

这个句子就是可以使用V[N]的方法呢  发表于 2019-5-22 23:13
其实最好按照VA伤害公式的格式,用V[n]来代表。也就是在全局环境令V = $game_variables  发表于 2019-5-22 21:46
用了后真的就省很多位置了,我感觉我会用上瘾将很多东西都缩写  发表于 2019-5-22 18:01

评分

参与人数 1赞 +1 收起 理由
jianyulei + 1 精品文章

查看全部评分

回复

使用道具 举报

梦石
0
星屑
9716
在线时间
2775 小时
注册时间
2008-9-5
回帖
3458

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

发表于 2019-5-22 15:13:00 | 显示全部楼层
你可以照这个方法在任意一个会被储存的数据类里加个数组或者哈希表变量,
存档时,将你自己的$变量塞进去,读档的时候再读出来就好了,
PS:数组的话你需要记好储存的顺序,在读档的时候按顺序读。

评分

参与人数 2星屑 +50 赞 +1 收起 理由
VIPArcher + 50 塞糖
jianyulei + 1 塞糖

查看全部评分

回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部