Java版1.16.5 想要用原版制作出一个可以显示血条,能够更改血量的,最好还有技能的boss,找了好多教程都是基岩版的,求助大佬,如果有指令教程传送门就更好了
从有技能方面的角度来说 难度略大 这需要对execute,data一些指令的理解,但是单从显示boss血条,更改血量来说,无脑套指令就行
首先 为boss创建血量的第一步是/bossbar add <id> <name>
<id>随便你取,只要你能记得住, <name>则是血条上面的字
然后使用命令方块或者是数据包的function函数循环以下命令:
execute at <entity> run bossbar set <id> players @a[distance=..32]
execute store result bossbar <id> max run attribute <entity> generic.max_health get
execute store result bossbar <id> value run data get entity <entity> Health
execute unless entity <entity> run bossbar remove <id>
<entity>是你所指定的目标选择器的对象,可以是一个带有"3" tag的僵尸:@e[type=minecraft:zombie,tag=3]
其召唤方式是这样/summon minecraft:zombie ~ ~ ~ {Tags:["3"]}
如果你按照我上面的步骤做 实际上已经完成了显示这个带有tag:3的僵尸的boss血条的步骤 剩下的如果你想听可以继续问,这有点多
更改血量的方式 你是想直接就是 最大生命值? 还是在某一关键阶段突然改变血量?
首先 为boss创建血量的第一步是/bossbar add <id> <name>
<id>随便你取,只要你能记得住, <name>则是血条上面的字
然后使用命令方块或者是数据包的function函数循环以下命令:
execute at <entity> run bossbar set <id> players @a[distance=..32]
execute store result bossbar <id> max run attribute <entity> generic.max_health get
execute store result bossbar <id> value run data get entity <entity> Health
execute unless entity <entity> run bossbar remove <id>
<entity>是你所指定的目标选择器的对象,可以是一个带有"3" tag的僵尸:@e[type=minecraft:zombie,tag=3]
其召唤方式是这样/summon minecraft:zombie ~ ~ ~ {Tags:["3"]}
如果你按照我上面的步骤做 实际上已经完成了显示这个带有tag:3的僵尸的boss血条的步骤 剩下的如果你想听可以继续问,这有点多
更改血量的方式 你是想直接就是 最大生命值? 还是在某一关键阶段突然改变血量?
Shadowrat 发表于 2022-5-3 15:18
从有技能方面的角度来说 难度略大 这需要对execute,data一些指令的理解,但是单从显示boss血条,更改血量 ...
在第二条指令中execute store result bossbar <id> max run attribute <entity> generic.max_health get命令方块提示我说前面的指令只允许一个实体,但是提供的选择器允许多个实体,表示错误,会不会是目标范围太大了,我不太清楚。关于boss血量还是直接最大值吧,其他我感觉应该挺难的,所以技能啥的可能不需要了(因为它们应该很难)。希望解惑
本帖最后由 Shadowrat 于 2022-5-3 20:41 编辑
嗯,你加一个limit=1,这是限制对象只有一个的方法
然后如果要具体到对象的话
可以加个sort
例如@e[type=minecraft:zombie,tag=3,limit=1,sort=nearest] 这会让你选择离你最近的单个tag为“3”的僵尸
除此之外,sort还有furthest,random,arbitrary
分别是 最远的 随机 和 生成时间最长的
血量最大值特别好办,只要加个{Attributes:[{Name:"generic.max_Health",Base:40.0f}]} 即可,这使得僵尸的最大生命值为40
然而这还不够,因为你生成的最大生命值为40,但是其生命值为20,故还需要加一个{Health:40.0f}
故而,生命值为40的带有tag"3"的僵尸的生成命令为/summon minecraft:zombie ~ ~ ~ {Tags:["3"],Attributes:[{Name:"generic.max_Health",Base:40.0f}],Health:40.0f}这是针对1.16及以上版本的,在1.16之前的版本最大生命值的标签名为"generic.maxHealth"
所以说1.16是命令改革版本
辍蛋二号 发表于 2022-5-3 20:15
在第二条指令中execute store result bossbar max run attribute generic.max_health get命令方块提示 ...
嗯,你加一个limit=1,这是限制对象只有一个的方法
然后如果要具体到对象的话
可以加个sort
例如@e[type=minecraft:zombie,tag=3,limit=1,sort=nearest] 这会让你选择离你最近的单个tag为“3”的僵尸
除此之外,sort还有furthest,random,arbitrary
分别是 最远的 随机 和 生成时间最长的
血量最大值特别好办,只要加个{Attributes:[{Name:"generic.max_Health",Base:40.0f}]} 即可,这使得僵尸的最大生命值为40
然而这还不够,因为你生成的最大生命值为40,但是其生命值为20,故还需要加一个{Health:40.0f}
故而,生命值为40的带有tag"3"的僵尸的生成命令为/summon minecraft:zombie ~ ~ ~ {Tags:["3"],Attributes:[{Name:"generic.max_Health",Base:40.0f}],Health:40.0f}这是针对1.16及以上版本的,在1.16之前的版本最大生命值的标签名为"generic.maxHealth"
所以说1.16是命令改革版本
技能比较难,但是血条和血量变化用bossbar就可以做到了,具体的可以搜b站教程。我自己用的是tag的办法去锁定相应的生物。当然有些工具(比如说幻界)有简单的技能制作)https://mc.metamo.cn/