qweshen
譬如回复玩家一半的生命值,对某个怪物造成当前生命值百分之20的伤害之类的

芒辉
对于纯净版似乎没有这种指令噢!楼主可以尝试添加插件/模组来实现 ,也可以变相实现(药水)噢

mxdyzmx
可以考虑使用区域效果云实现,具体的可以查询wiki每级的恢复速度,制作记分板延迟后kill掉

Qiushixz
例如,如果你想回复玩家一半的生命值(假设玩家的最大生命值为 20( × 10) ),你可以使用这个命令:/effect give @p minecraft:instant_health 1 4
这个命令会给玩家施加1游戏刻(0.05秒)的瞬间治疗V效果,恢复 10( × 5) 生命值。2
如果你想对某个怪物造成当前生命值百分之20的伤害(假设怪物是非亡灵生物),你可以使用这个命令:/execute store result score @e[type=minecraft:zombie_pigman,limit=1] health run data get entity @e[type=minecraft:zombie_pigman,limit=1] Health
这个命令会获取距离最近的僵尸猪灵的当前生命值,并存储到一个名为 health 的计分板中。
然后你可以使用这个命令:/execute store result score @s damage run scoreboard players operation @s damage = @e[type=minecraft:zombie_pigman,limit=1] health
这个命令会将 health 计分板中的值赋给一个名为 damage 的计分板。
接着你可以使用这个命令:/scoreboard players operation @s damage *= 0.2 damage
这个命令会将 damage 计分板中的值乘以0.2,得到当前生命值百分之20的数值。
最后你可以使用这个命令:/effect give @e[type=minecraft:zombie_pigman,limit=1] minecraft:instant_damage 1 @s damage
这个命令会给距离最近的僵尸猪灵施加1游戏刻(0.05秒)的瞬间伤害效果,并根据 damage 计分板中的数值来确定效果等级。

qweshen
mxdyzmx 发表于 2023-7-1 15:01
可以考虑使用区域效果云实现,具体的可以查询wiki每级的恢复速度,制作记分板延迟后kill掉 ...

似乎这是唯一的方法了