MC原版生命值显示

闲来无事,也是为了搞点视频做打卡任务。把之前用命令方块做的生命值显示给压缩了一下,压缩成了单命令方块的。

把代码复制到一个命令方块里再激活,就能把实现生命值显示的整个模块给生成出来。

先上图看看

原理并不太难,两个命令方块关于血量,两个关于发光效果。

当玩家对着特定实体时,从其nbt获取血量并输出,同时给予其发光效果。当玩家视线移开时,输出空白消息清屏,并取消发光效果。

下面分别是那四个命令方块里的代码。

代码1:

execute as @a at @s anchored eyes positioned ^ ^ ^2 run execute if entity @e[type=!minecraft:player,type=!minecraft:item,sort=nearest,limit=1,distance=..1.5,nbt={DeathTime:0s}] run title @s actionbar ["生命值: ",{"nbt":"Health","entity":"@e[type=!minecraft:player,type=!minecraft:item,sort=nearest,limit=1,distance=..1.5],nbt={DeathTime:0s}"}]

代码2:

execute as @a at @s anchored eyes positioned ^ ^ ^2 run execute unless entity @e[type=!minecraft:player,type=!minecraft:item,sort=nearest,limit=1,distance=..1.5] run title @s actionbar ""

代码3:

execute as @a at @s anchored eyes positioned ^ ^ ^2 run execute as @e[type=!minecraft:player,type=!minecraft:item,sort=nearest,limit=1,distance=..1.5] if entity @s run effect give @s minecraft:glowing 1 0 true

代码4:

execute as @a at @s anchored eyes positioned ^ ^ ^2 run execute unless entity @e[type=!minecraft:player,type=!minecraft:item,sort=nearest,limit=1,distance=..1.5] run effect clear @e[type=!minecraft:player,type=!minecraft:item,sort=nearest,limit=1,distance=..10] minecraft:glowing

下面是单命令方块版本,注意方向,主体是在单个命令方块的旁边生成,而不是以单命令方块为中心。

单命令方块代码:

/summon falling_block ~ ~1 ~ {Time:1,BlockState:{Name:redstone_block},Passengers:[
{id:armor_stand,Health:0,Passengers:[
{id:falling_block,Time:1,BlockState:{Name:activator_rail},Passengers:[
{id:command_block_minecart,Command:'data merge block ~ ~-2 ~ {auto:0}'},
{id:command_block_minecart,Command:'gamerule commandBlockOutput false'},
{id:command_block_minecart,Command:'fill ~1 ~-2 ~2 ~-1 ~-2 ~4 minecraft:polished_andesite'},
{id:command_block_minecart,Command:'fill ~1 ~-1 ~2 ~-1 ~3 ~4 minecraft:black_stained_glass'},
{id:command_block_minecart,Command:"setblock ~ ~2 ~3 minecraft:repeating_command_block[conditional=false,facing=down]{Command:'
execute as @a at @s anchored eyes positioned ^ ^ ^2 run execute if entity @e[type=!minecraft:player,type=!minecraft:item,sort=nearest,limit=1,distance=..1.5,nbt={DeathTime:0s}] run title @s actionbar [\"生命值: \",{\"nbt\":\"Health\",\"entity\":\"@e[type=!minecraft:player,type=!minecraft:item,sort=nearest,limit=1,distance=..1.5],nbt={DeathTime:0s}\"}]
'}"},
{id:command_block_minecart,Command:"setblock ~ ~1 ~3 minecraft:chain_command_block[conditional=false,facing=down]{auto:1,Command:'
execute as @a at @s anchored eyes positioned ^ ^ ^2 run execute unless entity @e[type=!minecraft:player,type=!minecraft:item,sort=nearest,limit=1,distance=..1.5] run title @s actionbar \"\"
'}"},
{id:command_block_minecart,Command:"setblock ~ ~0 ~3 minecraft:chain_command_block[conditional=false,facing=down]{auto:1,Command:'
execute as @a at @s anchored eyes positioned ^ ^ ^2 run execute as @e[type=!minecraft:player,type=!minecraft:item,sort=nearest,limit=1,distance=..1.5] if entity @s run effect give @s minecraft:glowing 1 0 true
'}"},
{id:command_block_minecart,Command:"setblock ~ ~-1 ~3 minecraft:chain_command_block[conditional=false,facing=down]{auto:1,Command:'
execute as @a at @s anchored eyes positioned ^ ^ ^2 run execute unless entity @e[type=!minecraft:player,type=!minecraft:item,sort=nearest,limit=1,distance=..1.5] run effect clear @e[type=!minecraft:player,type=!minecraft:item,sort=nearest,limit=1,distance=..10] minecraft:glowing
',}"},
{id:command_block_minecart,Command:"setblock ~ ~3 ~3 minecraft:redstone_lamp"},
{id:command_block_minecart,Command:"setblock ~ ~4 ~3 minecraft:lever[face=floor,facing=east]"},
{id:command_block_minecart,Command:'tellraw @p [
{"text":"欢迎使用原版生命值显示\\n","color":"aqua"},
{"text":"| 作者:","color":"yellow"},
{"text":"CC2001\\n","color":"dark_purple","hoverEvent":{"action":"show_text","value":"我的其他ID:CC、C20C01"}},
{"text":"| CC的B站空间:","color":"yellow"},
{"text":"传送门","color":"green","clickEvent":{"action":"open_url","value":"https://space.bilibili.com/22168654"}}
]'},
{id:command_block_minecart,Command:'setblock ~ ~1 ~ command_block{auto:1,Command:"fill ~ ~ ~ ~ ~-2 ~ air"}'},
{id:command_block_minecart,Command:'kill @e[type=command_block_minecart,distance=..1]'}]}]}]}

测试版本为JE1.18,其他版本不知道能不能用。

获取命令方块的指令:/give @a command_block

看不懂的地方可以去查查wiki,里面有很多命令的讲解,当然也可以问我。会不会就另说了




性感CC - 在线找打
------ 我是分割线 ------