MC百科社群

标题: [MCreator]如何创建一个变量? [打印本页]

作者: Wze1234    时间: 2023-6-7 23:49
标题: [MCreator]如何创建一个变量?
芝士原标题:[MCreator]如何创建一个数值,让其在游戏关闭时也不会重置为初始值,且在Forge注册物品前即可被读取?
因为太长(135字节)所以放不上去...
如图,我把一个MIT协议的Mod代码抄下来,并且尝试篡改其数值部分,让它可以按照外来的数值进行更改(这里看不到变量是因为已经移除掉了那些不起作用的内容(先凑活着用.jpg))

这是全局变量功能的五种类型,SESSION会在关闭时重置,剩下的前两种要world另两种要player,不像是在启动游戏时就管用的样子...
目前知道的唯一肯定能解决问题的办法是用FileManager插件创建配置文件,但我不知道怎么用((


作者: InkSoul    时间: 2023-6-9 17:17
Forge好像自带配置API,翻一翻?
可以参考一下Unbreakabler。

作者: InkSoul    时间: 2023-6-9 17:19
此外就是,一个值除非被写入文件系统当中,否则其值都是储存在运行内存中的,运行结束后值就会丢失。
除了写配置文件没有别的方法。
作者: Wze1234    时间: 2023-6-10 23:20
InkSoul 发表于 2023-6-9 17:19
此外就是,一个值除非被写入文件系统当中,否则其值都是储存在运行内存中的,运行结束后值就会丢失。
除了 ...

就是说要找一个"载体",类似于玩家NBT什么的,把变量的值存储下来
Forge那些功能在哪里有说明书么
作者: InkSoul    时间: 2023-6-10 23:26
本帖最后由 InkSoul 于 2023-6-10 23:33 编辑
Wze1234 发表于 2023-6-10 23:20
就是说要找一个"载体",类似于玩家NBT什么的,把变量的值存储下来
Forge那些功能在哪里有说明书么 ...

可以看看原版末影箱的实现,末影箱就是在玩家实体上附加nbt的。
作者: InkSoul    时间: 2023-6-10 23:36
不过物品槽上限这种对逻辑常量的东西最好还是写配置文件里(不然可能会出现数据不同步被踢服务器【单人也会这样】),或者用记分板(虽然低效/低兼容性但的确能用)。
作者: Wze1234    时间: 2023-6-10 23:43
InkSoul 发表于 2023-6-10 23:36
不过物品槽上限这种对逻辑常量的东西最好还是写配置文件里(不然可能会出现数据不同步被踢服务器【单人也会 ...

不过玩家NBT或者计分板好像都要加载了存档以后才能用吧
作者: InkSoul    时间: 2023-6-10 23:46
本帖最后由 InkSoul 于 2023-6-10 23:50 编辑
Wze1234 发表于 2023-6-10 23:43
不过玩家NBT或者计分板好像都要加载了存档以后才能用吧

但这个就是需要服务端和客户端同步啊(因为改的是Registries)
服务端负责检测与逻辑执行,客户端执行渲染与操作请求。如果服务端检测到数据异常就会直接踢人。
准确说是两端都需要……

作者: Wze1234    时间: 2023-6-11 00:04
InkSoul 发表于 2023-6-10 23:46
但这个就是需要服务端和客户端同步啊(因为改的是Registries)
服务端负责检测与逻辑执行,客户端执行渲染 ...

也就是说这段是在进入存档时才运行的么,那看来我想的有问题...还以为是进入主界面之前那段时间就处理完了




欢迎光临 MC百科社群 (https://bbs.mcmod.cn/) MC百科|最大的MineCraft中文模组百科