HOME> 世界杯进球榜> [BE教程]附加包教程:41.附加包兼容性

[BE教程]附加包教程:41.附加包兼容性

2026-01-21 07:23:22

Cat_A***Cat_A***当前离线UID82897性别保密经验 EP铁粒 粒回帖0主题精华在线时间 小时注册时间2021-7-23最后登录1970-1-1查看:4074|回复:1

发表于 2023-12-3 11:58:42 来自手机|只看该作者|正序浏览|阅读模式 IP:天津 本帖最后由 Cat_Anchor 于 2023-12-10 12:31 编辑 前言上期,我们讲述了附加包与游戏本身的兼容性关系。这期,我们来看看为什么有些附加包就是不能一起运行——这种情况有时会非常严重。

我们下载了两个都可以在1.20版本工作的附加包并把它装到一个存档上,打开存档准备游玩。如果这两个附加包新增了各不相同的方块物品实体,那情况会很好;但如果它们修改了同一个实体,或者有同样命名空间ID的物品等,游戏就要出问题了。附加包的融合那么首先,游戏会看看这两个附加包分别添加了什么内容。如果它们互不相干,游戏会简单地把它们一起加载,这时游戏很正常。原版的方块是无法通过附加包修改的,因此不会出现方块方面的矛盾。

部分原版物品可以通过附加包修改,那么这时,游戏读取你安装的两个附加包的优先级顺序,并用高的那个修改的原版物品覆盖低的那个;实体也是一样。对于物品和实体,如果ID重复才会造成上述情况。对于战利品表等没有ID的文件,则文件名重复就会造成覆盖现象。

但是有很多附加包修改了玩家实体(行为包根目录/entities/player.json),有些附加包就是依靠这个文件才得以正常工作。高优先级的附加包把低优先级的附加包中的这个文件覆盖了,那么低优先级的附加包就无法正常工作。

可以总结出,以下文件会被上述方法直接覆盖:物品、(行为包和资源包的)实体、函数、战利品表、交易、动画、模型、动画控制器、生成规则、配方、粒子、渲染控制器、纹理和声音。

那么既然有这么多文件会被直接覆盖,为什么还是有很多附加包能一起工作呢?因为只有两个附加包都定义了相同的ID/路径时,才会发生覆盖。

还有一种特殊情况,有些文件会被“合并”,这些文件通常是“注册表”一类的,比如terrain_texture.json。一个附加包定义了纹理短名和纹理路径的对应关系,另一个附加包定义了不同短名的相同关系,那么它们就会被合并在一起。如果这些注册表会被覆盖,那附加包之间的兼容性就几乎会是零。

可以总结出,以下文件会按上述方法合并:语言文件、UI文件、flipbook_textures.json、item_textures.json、terrain_textures.json、blocks.json、sounds.json、music_definitions.json和sound_definitions.json。使附加包兼容说了这么多,如何使两个不兼容的附加包兼容?如果是带脚本的附加包,你很可能需要把脚本研究透彻,再修改出现矛盾的地方;对于普通玩家(尤其是我)来说成本过高。

但是如果附加包不带脚本,那就可以分为三类情况:修改同一原版资源、修改同一原版行为、ID冲突。

第一种情况,修改同一原版资源。比如一个附加包把石头的纹理改成了钻石块,另一个把石头的纹理改成了煤炭块,那么它们永远不可能兼容,因为石头的纹理只能有一个。如果你就是想看到这两个纹理同时出现,那就用terrain_textures.json中的纹理变种吧。"stone": { "textures": { //指定纹理短名“stone”对应的纹理路径 "variations": [ //指定纹理变种内容 { //一个纹理变种 "path": "textures/blocks/coal_block", //纹理的路径 "weight": 1 //煤炭块纹理出现的权重(概率),这里是1/(1+2)=33% }, { //另一个纹理变种 "path": "textures/blocks/diamond_block", //纹理的路径 "weight": 2 //钻石块纹理出现的权重(概率),这里是2/(1+2)=67% } ] }} //这样,石头的纹理就会随机替换为煤炭块或钻石块了。复制代码

第二种情况,修改同一原版行为。比如一个附加包让玩家跑得很快,另一个让玩家生命值很高。这时需要一定的知识,把两个附加包里修改过的组件放到一起,有时候这会很麻烦。

第三种情况,也是解决起来最简单的一种,ID冲突。这时只需要把一个附加包里冲突的那个ID全部查找替换为另一个你随便写的ID即可,大部分情况下,只要查找替换完全,附加包是可以工作的,不过要注意不仅替换文件里的代码,还要替换文件名。后记所以附加包之间的兼容性原则如下:

1.尽最大可能不使用作者列出的冲突的带脚本的附加包,联系作者适配可以解决问题;

2.修改同一原版资源、行为的附加包装在一起时,绝大多数情况下不会工作;

3.ID冲突的附加包装在一起时,附加包的功能可能会以某种奇怪的方式实现,或者不会工作;

4.虽然话是这么说,但为何不试试呢?附加包不兼容的问题其实也没那么大,万一,我是说,万一成功运行了呢?保留一点希望总是好的,对吧。第四十期 第四十一期 第四十二期分享到: QQ好友和群收藏3支持9帖子永久地址: 点击复制苦力怕论坛 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关

2、本站所有主题由该帖子作者发表,该帖子作者享有帖子相关版权

3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者的同意

4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任

5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责

6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意

7、Minecraft(我的世界)苦力怕论坛管理员和版主有权不事先通知发贴者而删除本文苦力怕论坛,感谢有您~回复使用道具举报

提升卡观察者

热水器哪个牌子好质量好又安全?5款主流热水器深度拆解

冬季取暖神器大比拼:康佳暖风机系列全面解析!