幽灵的祖先
本帖最后由 幽灵的祖先 于 2021-1-9 21:54 编辑

如题,如何检测一个僵尸的血量
情景:将一个僵尸血量设置为100,速度为0,然后当它的血量降为30≤时把它的速度调为1.
(血量降为30是一个检测型的命令方块,触发完成后会连几个其他命令方块,所以不要两个命令合二为一)

Y制杖杖
游戏版本?

Y制杖杖
先执行
/scoreboard objectives add health dummy
然后循环执行
/execute as @e[type=zombie] store result score @s health run data get entity @s Health
/execute as @e[scores={health=..30}] run <血量在30以下的僵尸将执行这个指令>
记得给僵尸加一些别的条件不然普通的僵尸也会执行

小白杯
楼上正解 数学完美解答题过程

天使大护法
显示血量方法介绍

只需要用到非常简单的计分板指令:

/scoreboard objectives add health

创建一个名字为“”的计分板,计分类型为血量。

再输入/scoreboard objectives setdisplay belowName

在玩家头顶显示分数就完成了,血量将在头顶显示。

(我没听懂检查是什么)

尸先peng
新建一个指定僵尸的计分板,通过检测计分板数值实现

Y制杖杖
天使大护法 发表于 2021-1-10 09:44
显示血量方法介绍

只需要用到非常简单的计分板指令:

你这个只能给玩家用

Chelover_C60
(试图捡漏)
health记分板只会记录玩家生命值,不会记录实体生命值,因此不可行。
话说僵尸是只有一个还是可能有多个?看你这么问我觉得只有一个,因为如果检测和执行命令分开的话,是无法知道检测到的是哪个的。。。
话说为啥要把检测和执行分开?是连锁条件激活保持开启不香吗?


策略是建立dummy记分板,然后在这个记分板上记录僵尸生命值,后通过分数检测判断血量,并执行命令。
(执行一次)建立记分板
  1. scoreboard objectives add zombie_health dummy
复制代码

(游戏内循环执行)获取血量并记录至记分板
  1. execute as @e[type=zombie] store result score @s zombie_health run data get entity @s Health
复制代码

通过exe if检测血量。如果只有一个僵尸,可以通过如下方式检测
  1. execute if entity @e[type=zombie,scores={zombie_health=..30}]
复制代码

如果僵尸有多个,那么是无法分辨检测通过的是哪个僵尸。此时应放弃将检测与执行分开的策略,在每个命令前添加execute,或者使用函数。
  1. execute as @e[type=zombie,scores={zombie_health=..30}] at @s run <命令1>
  2. execute as @e[type=zombie,scores={zombie_health=..30}] at @s run <命令2>
  3. ...
复制代码

星辰234
装一个血量检测