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

Project1

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

[已经解决] 请教一个关于变量储存的问题

[复制链接]

Lv5.捕梦者 (版主)

遠航の猫咪

梦石
3
星屑
22517
在线时间
2338 小时
注册时间
2005-10-15
帖子
1160

开拓者

1
发表于 2021-8-10 19:10:14 | 显示全部楼层
本帖最后由 SailCat 于 2021-8-13 11:00 编辑

我再写详细一点:
1. 独立开关用做独立变量,
将Game_SelfSwitches的第20行
RUBY 代码复制
  1. return @data[key] == true ? true : false

改成
RUBY 代码复制
  1. return @data[key] || false


2. 精灵数据的存储
首先,建立一个空地图,这个地图不需要任何图块,只用来存储数据及占位用,假设这个地图的编号为200。
然后,在地图上粘贴空事件,每个空事件对应一个精灵(因为独立开关需要依附地图事件而存在)——此步可选,取决于精灵是不是需要行走图等,如果需要行走图,就这样做,如果精灵只是一堆数据,并没有图像,可以跳过这一步。
再次,插入一个插件脚本,内容如下:
RUBY 代码复制
  1. class Interpreter
  2.   def plugin_buff_pixie(id, key, value = nil)
  3.     $game_self_switches[[200, id, key]] ||= 0
  4.     $game_self_switches[[200, id, key]] += (value || 0)
  5.   end
  6. end


3. 每当需要强化精灵时,用事件脚本调用:
plugin_buff_pixie(精灵的ID,强化的类型,强化值),如 plugin_buff_pixie(1, :str, 7) 即为将1号精灵的str值增加7
需要获取精灵的强化能力,则调用plugin_buff_pixie(精灵的ID,强化的类型),如plugin_buff_pixie(1, :str) 即为获取1号精灵的str值,未经设置过的值都是0。

2和3两步其实不是必须的,只是实现一个事件脚本中的插件命令,目的是为了简化操作,方便书写,你也可以每次都用$game_self_switches开头的生代码,但那样会很烦。

这个做法和硬改Game_System的好处相比就是:由于套了独立开关的默认壳子,旧存档100%兼容(这一个好处就足够了)

评分

参与人数 2星屑 +50 +1 收起 理由
RyanBern + 50 认可答案
939034448 + 1 谢谢大佬

查看全部评分

SailCat (小猫子·要开心一点) 共上站 24 次,发表过 11 篇文章 上 次 在: [2006年01月28日11:41:18 星期六] 从 [162.105.120.91] 到本站一游。
回复

使用道具 举报

Lv5.捕梦者 (版主)

遠航の猫咪

梦石
3
星屑
22517
在线时间
2338 小时
注册时间
2005-10-15
帖子
1160

开拓者

2
发表于 2021-8-12 23:07:09 | 显示全部楼层
独立开关当独立变量了解一下?改一行脚本就可以

点评

独立变量的个数没有上限,只和事件数量有关。你可以开一个地图,用1-999号事件存储1-999号精灵的数据。每个精灵使用E-I的六个独立开关号即可。  发表于 2021-8-13 10:42

评分

参与人数 1+1 收起 理由
939034448 + 1 还有这事儿!不过我需要几千个位置也可以吗.

查看全部评分

SailCat (小猫子·要开心一点) 共上站 24 次,发表过 11 篇文章 上 次 在: [2006年01月28日11:41:18 星期六] 从 [162.105.120.91] 到本站一游。
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-14 11:53

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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