IgnorantSky
本帖最后由 sky_flying 于 2021-7-1 11:46 编辑

原本应该是攻击或被攻击的每点伤害会加入soulall中再被写入bossbar显示
但是每次攻击后bossbar和soulall的数据跳了一下就重新归零
求原因
指令如下:




  1. bossbar add soul_value "\u00A7l灵魂值"
  2. bossbar set soul_value color white
  3. bossbar set soul_value max 10
  4. bossbar set soul_value style notched_10
  5. bossbar set soul_value visible true
  6. scoreboard objectives add soulall dummy
  7. scoreboard objectives add soulhurt custom:minecraft.damage_dealt
  8. scoreboard objectives add soulhurted custom:minecraft.damage_taken
  9. scoreboard objectives add pass10 dummy
  10. scoreboard players set $ pass10 10
复制代码
(初始设置)
  1. execute as @a[scores={soulhurt=1..}] at @s run scoreboard players operation @s soulall += @s soulhurt
  2. execute as @a[scores={soulhurted=1..}] at @s run scoreboard players operation @s soulall += @s soulhurted
  3. execute as @a at @s run scoreboard players operation @s soulall /= $ pass10
  4. execute as @a at @s store result bossbar minecraft:soul_value value at @s run scoreboard players get @s soulall
  5. scoreboard players set @a[scores={soulall=11..}] soulall 10
  6. execute as @a[scores={soulhurt=1..}] at @s run scoreboard players set @s soulhurt 1
  7. execute as @a[scores={soulhurted=1..}] at @s run scoreboard players set @s soulhurted 1
复制代码

(循环触发)






鱼宝放心飞
首先,bossbar 并不能像记分板那样做到一人一个数值,而是全部玩家共用同一个,所以请先检查是否处于单人游戏模式。


其次,我不是很能理解第 3 行
execute as @a at @s run scoreboard players operation @s soulall /= $ pass10
还有第 5 至 7 行
scoreboard players set @a[scores={soulall=11..}] soulall 10
execute as @a[scores={soulhurt=1..}] at @s run scoreboard players set @s soulhurt 1
execute as @a[scores={soulhurted=1..}] at @s run scoreboard players set @s soulhurted 1
的作用。


理论上,只需要将 soulhurt 和 soulhurted 加到 soulall,然后将 soulall 存到 bossbar,最后重置 soulhurt 和 soulhurted 即可。
不知道我有没有理解错题意。

Dahesor
本帖最后由 Dahesor 于 2021-7-1 13:48 编辑

单纯的逻辑问题:
  1. execute as @a at @s run scoreboard players operation @s soulall /= $ pass10
复制代码
你应该是想要把soulall的值缩小10倍,但是这条命令会无限制地在每一次的循环中运行,soulall每次都被除10,最终使其归零。

这就是为什么你的boosbar会闪一下的原因


其次,你的这个只适用于单人模式,原因楼上说了。



IgnorantSky
Dahesor 发表于 2021-7-1 13:33
单纯的逻辑问题:
你应该是想要把soulall的值缩小10倍,但是这条命令会无限制地在每一次的循环中运行,soul ...

是单人 那么在单人的情况下我该怎么把数值缩小呢?

鱼宝放心飞
sky_flying 发表于 2021-7-1 14:10
是单人 那么在单人的情况下我该怎么把数值缩小呢?

只要你把 bossbar 的最大值改成 100 就不用缩小了。
或者你把你的要求具体表述一遍,我们帮你重写命令。

IgnorantSky
鱼宝放心飞 发表于 2021-7-1 14:14
只要你把 bossbar 的最大值改成 100 就不用缩小了。
或者你把你的要求具体表述一遍,我们帮你重写命令。 ...

让玩家伤害/受的伤害的数值(血量数值而非custom条件记分板记录的10倍数值)都会被加入soulall记分板中,仅此而已