原本弩无法通过附魔提高伤害,通过修改箭的NBT可以提高伤害但敌我不分,像这样:data modify entity @e[type=minecraft:arrow,limit=1] damage set value 190
问:如何检测(execute as)箭的主人(Owner)是否带有某个tag然后run修改nbt
版本:1.20
如果有其他可以使单个弩提高伤害(像附魔力量的弓一样)的办法也可以提出来,谢谢大家!
问:如何检测(execute as)箭的主人(Owner)是否带有某个tag然后run修改nbt
版本:1.20
如果有其他可以使单个弩提高伤害(像附魔力量的弓一样)的办法也可以提出来,谢谢大家!
本帖最后由 Muggle2077 于 2023-8-26 19:16 编辑
拥有 foo 标签的射箭者能射出伤害为 10.0d 的箭。
复制代码
拥有 foo 标签的射箭者能射出伤害为 10.0d 的箭。
- scoreboard objectives add foo dummy
- execute as @e[type=arrow,tag=!modified] run function foo:bar
- # function foo:bar
- tag @s add modified
- execute on origin if entity @s[tag=foo] run scoreboard players set #bar foo 1
- execute if score #bar foo matches 1 run data modify entity @s damage set value 10.0d
- scoreboard players reset #bar foo
Muggle2077 发表于 2023-8-26 19:14
拥有 foo 标签的射箭者将射出 damage 为 10.0d 的箭。
初始化
能问一下这个#bar是什么吗?如果多个实体射箭时应用这个方法信息会不会串(共用)
更改游戏代码
试试这个?
复制代码
- execute as @e[type=minecraft:arrow] at @s if data entity @s Owner[{Tags:["你的tag"]}] run data modify entity @s damage set value 190
whcwdsj 发表于 2023-8-26 20:28
能问一下这个#bar是什么吗?如果多个实体射箭时应用这个方法信息会不会串(共用) ...
玩家和实体都可以在记分板上有分数。事实上,只要是个名字就可以有分数。
#bar 就是一个名字,我随便起的。以 # 开头的名字在任何情况下都不会在侧边栏显示。
当同时存在多只箭时,多只箭会按照选择器选择的顺序依次执行函数 foo:bar。
我试了一下,不管用