已注销_v1pj44 发表于 2024-7-1 21:39:12

这个的版本是什么,为什么我导入后没有贴图

lone_小狼 发表于 2024-7-2 00:29:22

本帖最后由 lone_小狼 于 2024-7-2 09:38 编辑

炫酷大鸭子 发表于 2024-7-1 21:39
这个的版本是什么,为什么我导入后没有贴图

啊?不应该啊,我测试时用的是1.20.81.1

理论来说应该是兼容1.20以上全版本的
请问是什么东西显示不出来??
最好有截图

已注销_v1pj44 发表于 2024-7-2 11:33:32

lone_小狼 发表于 2024-7-2 00:29
啊?不应该啊,我测试时用的是1.20.81.1

理论来说应该是兼容1.20以上全版本的


出来了,原来是资源包也要加上

AUNIGAMMA 发表于 2024-7-3 12:07:04

66666666666

YanRan233 发表于 2024-7-3 14:33:44

感谢分享

HKzz 发表于 2024-7-5 19:15:27

不能下载

我是帅哥966999 发表于 2024-7-6 00:08:53

感谢分享

人狠话不多 发表于 2024-7-6 01:02:44

奥然后背叛而[急求啊二甲苯[EIA容纳被推荐1

Cat_Anchor 发表于 2024-7-14 22:33:57

本帖最后由 Cat_Anchor 于 2024-7-17 22:17 编辑

当时我在下面回复了一大堆,考虑到阅读体验,我会把它折叠起来,想吃瓜的请展开查阅。

后来我协助了这个附加包的作者修复bug,花了三天整出来很多新bug,不过也修复了一些bug,如原帖3.0版本旁的备注。不得不说,这些bug看起来简单修起来难。
另外,发布的版本其实是3.0.3版本,因为我制作了很多废案,把版本号从2.8刷到了2.9,最后到了3.0.1这样的程度。3.0.3版本还是我压下来的,这样好看。

以上,2024/7/17 22:17:05



附加包很好玩,可以看出一些功能的实现很有创意,不过我发现了一个稍微有点大的问题和一些很小的bug——其实都不是很大啦,如下:

1.在给方块使用minecraft:material_instances组件时,会指定渲染方法(也就是render_method字段),这个渲染方法在一个minecraft:material_instances组件里必须是一样的,就是说,不能出现一个minecraft:material_instances组件中既有opaque又有blend的情况。既然这里使用了blend,说明有渲染半透明材料的需求,所以要把opaque换成blend;

2.在/行为包根目录/blocks/cobble.json这个定义了一个方块的文件中,有一条命令“setblock ~~-1~ cobblestone 0 keep”无法解析,因为这是旧版语法。附加包中命令的语法是根据清单文件中min_engine_version的值决定的,因此这里应该是新版语法,去掉“0 ”变成“setblock ~~-1~ cobblestone keep”;

3.按照设定,储液罐是可以合并为任意形状的大储液罐的,如果把水泵用“球——单”输液管连接到一个大储液罐的底部,那么连接的这部分储液罐方块满了之后,就不会继续向上输送液体了。我不确定这是不是bug,如果这是一个固有设定,本条无效。

以上是三个小bug,下面是我的一些建议:

1.关于水泵,我认为它可能存在一个比较严重的设计问题,因为它抽取液体时,那些液体被转化成了固体方块,虽然这样可能会更容易实现这个功能,但现实里的水泵可不会这样。这也有点影响其他原版特性了,比如在下界遇到熔岩海,可以用几个水泵轻松走过去而不受伤害,这样炽足兽就几乎没有它存在的意义了。我的建议是要么重做这个系统,要么修改被锁定液体的属性,让它尽可能与原来的液体一致,比如修改成没有判定箱的方块,这样玩家就不能用这个快速跨越熔岩海了(然而还是可以钻空子);修改成半透明渲染并引用原版纹理,这样看起来更真实;玩家位于被锁定的熔岩中时对其施加伤害,这样几乎杜绝了快速跨越熔岩海的问题;

2.之前有个愚人节快照叫“One Block At a Time”,这其实是MC设计玩法时需要遵循的原则之一,即——玩家不能同时修改多个方块,所以原版MC永远不会出现可以大范围破坏方块的工具。当然,设计附加包可以不遵循这个原则,不过为了平衡,还是需要从其他方面把破坏方块的成本找回来。每个方块都有它的硬度,这个属性和挖掘情况(如在水下的影响、急迫状态效果的影响等)影响着挖掘时间,而现在,它需要通过另一个方面体现出来,不过这确实很难,也相当不好处理;

3.传送带会传输除玩家以外的所有实体,也就是说,即使往传送带上射箭、投掷三叉戟,箭和三叉戟也会被传输。有时候,它还会改变末影珍珠、雪球、风弹等投掷物的运动轨迹。可能有些玩家就会制作基于这个特性的机器,这是一方面的影响。另外一方面,有些附加包添加的实体是功能性的,比如现在的“更多箱子”附加包,大多数是在箱子方块处生成一个实体。如果把这种箱子放在传送带上,那么这个容器实体也会被传送,可能会导致一些意外情况。对此,一个解决办法是使用“family=!inanimate”选择器反选所有不属于inanimate族的实体。正规制作的附加包一般会给功能性实体添加这个族,所以不会出现上述意外;但同时,原版的箭、三叉戟等等也有这个族,它们也不能被传输了;

4.水平传送带的美中不足之处是它不会把实体传送到这个方块之外,它不像原版的水流会把生物完全推出自身,这就需要一个“向下的传送带”。我的附加包中的向下的传送带(叫“下滑槽”)的作用是给附近的实体缓降效果,这样它们被运输下来时不会受到伤害,我认为这是下滑槽的真正意义。如果水平传送带像原版水流一样运作,那么这个向下的传送带就只有“缓降”这一个意义了。然而实际上,现在的这个附加包里,水平传送带的运作方式还是不同于水流,而在我测试时,向下的传送带总是会卡住一些生物。我的解决方法是既然利用重力,那就完全利用它,不要用teleport(tp)命令了。说直白一点,就是注册一个方块状态控制它是否有碰撞箱,生物走上它时将它传送到方块中心,关掉碰撞箱,给个缓降,然后它自然会下落,方块在一段时间后恢复碰撞箱。如果水平传送带其实可以像水流一样把生物推下方块,那么本条无效;

5.向上的传送带会直接把实体传送到方块内部,这样生物可能会窒息。短程没什么问题,但是很长的向上传送带会让生物窒息,所以让这个方块不再窒息生物会是好的决定;

6.这一条非常主观,因此可以忽略。水平传送带的摆放逻辑,在我第一次放下时,是不符合我的预期的。摆放之后,它会把实体传送到我这里来,而不是把实体从我这里传送走;它传输的方向总是面向我,让我觉得奇怪。不过这有很大的主观色彩,大部分玩家适应几次就习惯了;

7.这一条也很主观,因此可以忽略。单向输液管的摆放逻辑也有些奇怪。细心的玩家可以发现,楼梯这种方块的朝向根据玩家的朝向决定,而原木类方块的朝向根据放置的方块面决定。在方块特征(Block Traits)中,前者是minecraft:placement_direction,后者是minecraft:placement_position。我认为管道的逻辑应该是minecraft:placement_position,即根据方块面放置管道,因为我更喜欢水平看着管道连接,而不是沿着管道那条线摆放;

8.从这条开始,就是代码(数据)层面的东西了,它并不直接影响游戏。首先,我注意到有些方块用1.16.100格式版本,有些则是1.20.0。后来我发现这个附加包是有前身的,那1.16.100的方块应该是前身的内容,所以我建议把它们全部提升到1.20.0的格式版本。不过不提升也没关系,只是我看着有点难受;

9.那些文件的缩进——有点乱……好吧,实际上是非常乱。有些缩进还在空格中混杂着制表符,也许其他人看不到,但我这里连续多个空格会显示为点,制表符会显示为水平的线,所以看得很清楚。可以看出旧版的写法被手动替换成了新版的,比如minecraft:destroy_time,还有menu_category,它们前面都是制表符,而其他地方则是空格。缩进大小也不固定,有时候4格,有时候2格,还有3格、1格的,总之不太美观。事件系统有独特的结构,让我感觉像标准的JSON却不是,大概只有熟悉之后才能看懂;

10.对于方块和物品的命名,可以看出是“自己能看懂”的原则。旧版方块,比如磁铁,ID是“citie”,直接用了拼音;而有些ID则有共同点。单向输液管是sendtank,球形输液管是globaltank,水泵是takeintank,总之离不开一个词——tank。这个词本义是“贮存液体的箱、罐、槽”,后来嘛……你猜它为什么读着像“坦克”?因为后来它有了坦克的意思,历史教材上说坦克因为形似水柜(tank)而得名;

以上是十条建议,下面是那个稍微有点大的bug:

他们已经废弃了物品事件,也就是说现在minecraft:on_use、minecraft:on_use_on之类的触发器组件都消失了,不能用了。不过仍然可以通过回退格式版本来使用它们,但唯独minecraft:on_use_on不行,他们好像在1.21.10.20完全移除了minecraft:on_use_on,不能再通过任何方式使用这个组件了。这个组件显然在这个附加包中占据相当重要的地位,简直是激光钻头这种物品的“命根子”,这一点开发者肯定很清楚。如果要在高版本实现这个功能,那就要用脚本自定义新的组件,然后用minecraft:custom_components这个组件引用这些新组件。更何况物品的minecraft:custom_components还可能有致命漏洞,导致它无法使用……说简单点,就是如果坚持不用脚本(SAPI)而且不删减内容的话,这个附加包支持的版本最多到1.21.0,支持的版本范围就是1.20.0到1.21.0,不能写“1.20+”了。这是个大问题,他们向来维护后向兼容,现在却完全移除minecraft:on_use_on,导致所有用到这个组件的旧版附加包全都不能用了。总之,影响很大,但我希望我判断错了,或者他们重新在旧版本加回来这个组件。

TLDR(太长不看):
三个bug:1.render_method不能混用;2.命令语法要用对;3.满载储液罐不向上输液体。
十条建议:1.水泵锁定液体的设计不好;2.适当遵循一次一方块原则;3.传送带传输哪些实体需斟酌;4.水平传送带工作原理可改进;5.向上传送带可改成不窒息生物;6.水平传送带摆放方向可调整;7.单向输液管的方向依据可调整;8.格式版本混杂且有些太低;9.数据缩进很乱;10.给方块设置ID需要慎重。
一个问题:他们在1.21.10.20彻底移除了minecraft:on_use_on物品组件,因此如果不用脚本不删功能,附加包支持的版本应该是1.20.0到1.21.0。

最后,(叠甲 ~_~)这些建议仅供参考,我在这里写的不一定正确,可能会有错字、错拼和语法问题,也许逻辑不清楚,请多多包涵。

lone_小狼 发表于 2024-7-14 23:54:46

Cat_Anchor 发表于 2024-7-14 22:33
附加包很好玩,可以看出一些功能的实现很有创意,不过我发现了一个稍微有点大的问题和一些很小的bug——其 ...

十分感谢您的回复
终于有人可以和我讨论addon了!
#bug
1,渲染是出于无奈,改成blend不会报错,但会导致材质消失。就是里面的液体能显示,管子显示不出来
2,这个我不确定,我记得每个方块json开头都有一个最低版本,指令在执行时会调用该版本的指令集,(应该是1.16,可能我记错了)。所以理论上可以执行
3,确实不是bug,属于技术力不够,我没办法让信息在方块间传递。好像gamgtest可以做的,可它太不稳定,不符合我的开发理念
#小建议
1,看到过岩浆海时,我心想:d(ŐдŐ๑)
开发时我也想过做成原版类似的,可是。。。如果你抽岩浆时不小心掉了下去,该怎么上去呢?(技术力不够,做不到可以让玩家在里面游泳)
2,这个可能有办法,就是把工具的触发设置为破坏方块,这样挖方块就需要时间了,不过可能于事无补。比如可以挖黑曜石旁边的火把
3,family?这个可以!
4,关掉碰装箱?!woc!!你知不知道我当时苦思冥想了一个上午都想不出来更好的办法!
5,摊牌了,这个没做是因为懒,我当时被传输带一坨拉库的bug搞的魂不附体。(内心,反正它传的很快,死不了,不做了!)
6,7,摆放方向?怎么说呢?萝卜青菜,各有所爱。 我个人偏好这种方式。问题是我没法统计偏好哪种方式的玩家多,就直接按我自己的意愿来了
8,把1.16改到1.20?这个是因为版本一该,很多组建都要跟着改,又会有一堆大大小小的bug,所以就没改
9,缩进?这也是我当时最头疼的东西,因为我还不知道有“格式化文档”这个功能
10,命名?别说了,我英语全班倒数,能用英文名已经是极限了

on_use?感谢提醒!测试时的还没出1.21,完全不知道有这回事
办法倒是有,就是把物品on_use的事件,转移到方块的on_hit上(激光钻头估计没救了)可这么做的维护成本很高,比如扳手本来可以旋转任何一个有相应tag的方块,而现在要给每个方块都加一个旋转功能

感谢您的提醒,也感谢您可以耐心看完我的回复
最后问一个无关紧要的事:
行为包里有一个模组说明,开头有一个佛像,你那边可以正常显示吗?
页: 1[2]34
查看完整版本: [1.20+]多功能方块v2.7|磁铁|水管|水泵|储液罐|熔炉自动加热