本帖最后由 幽灵的祖先 于 2021-1-9 21:54 编辑 
如题,如何检测一个僵尸的血量
情景:将一个僵尸血量设置为100,速度为0,然后当它的血量降为30≤时把它的速度调为1.
(血量降为30是一个检测型的命令方块,触发完成后会连几个其他命令方块,所以不要两个命令合二为一)
如题,如何检测一个僵尸的血量
情景:将一个僵尸血量设置为100,速度为0,然后当它的血量降为30≤时把它的速度调为1.
(血量降为30是一个检测型的命令方块,触发完成后会连几个其他命令方块,所以不要两个命令合二为一)
游戏版本?
先执行
/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 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
在玩家头顶显示分数就完成了,血量将在头顶显示。
(我没听懂检查是什么)
只需要用到非常简单的计分板指令:
/scoreboard objectives add health
创建一个名字为“”的计分板,计分类型为血量。
再输入/scoreboard objectives setdisplay belowName
在玩家头顶显示分数就完成了,血量将在头顶显示。
(我没听懂检查是什么)
新建一个指定僵尸的计分板,通过检测计分板数值实现
天使大护法 发表于 2021-1-10 09:44
显示血量方法介绍
只需要用到非常简单的计分板指令:
你这个只能给玩家用
(试图捡漏)
health记分板只会记录玩家生命值,不会记录实体生命值,因此不可行。
话说僵尸是只有一个还是可能有多个?看你这么问我觉得只有一个,因为如果检测和执行命令分开的话,是无法知道检测到的是哪个的。。。
话说为啥要把检测和执行分开?是连锁条件激活保持开启不香吗?
策略是建立dummy记分板,然后在这个记分板上记录僵尸生命值,后通过分数检测判断血量,并执行命令。
(执行一次)建立记分板
复制代码
(游戏内循环执行)获取血量并记录至记分板
复制代码
通过exe if检测血量。如果只有一个僵尸,可以通过如下方式检测
复制代码
如果僵尸有多个,那么是无法分辨检测通过的是哪个僵尸。此时应放弃将检测与执行分开的策略,在每个命令前添加execute,或者使用函数。
复制代码
health记分板只会记录玩家生命值,不会记录实体生命值,因此不可行。
话说僵尸是只有一个还是可能有多个?看你这么问我觉得只有一个,因为如果检测和执行命令分开的话,是无法知道检测到的是哪个的。。。
话说为啥要把检测和执行分开?是连锁条件激活保持开启不香吗?
策略是建立dummy记分板,然后在这个记分板上记录僵尸生命值,后通过分数检测判断血量,并执行命令。
(执行一次)建立记分板
- scoreboard objectives add zombie_health dummy
(游戏内循环执行)获取血量并记录至记分板
- execute as @e[type=zombie] store result score @s zombie_health run data get entity @s Health
通过exe if检测血量。如果只有一个僵尸,可以通过如下方式检测
- execute if entity @e[type=zombie,scores={zombie_health=..30}]
如果僵尸有多个,那么是无法分辨检测通过的是哪个僵尸。此时应放弃将检测与执行分开的策略,在每个命令前添加execute,或者使用函数。
- execute as @e[type=zombie,scores={zombie_health=..30}] at @s run <命令1>
 
- execute as @e[type=zombie,scores={zombie_health=..30}] at @s run <命令2>
 
- ...
装一个血量检测