whcwdsj
原本弩无法通过附魔提高伤害,通过修改箭的NBT可以提高伤害但敌我不分,像这样:data modify entity @e[type=minecraft:arrow,limit=1] damage set value 190
问:如何检测(execute as)箭的主人(Owner)是否带有某个tag然后run修改nbt
版本:1.20

如果有其他可以使单个弩提高伤害(像附魔力量的弓一样)的办法也可以提出来,谢谢大家!

Muggle2077
本帖最后由 Muggle2077 于 2023-8-26 19:16 编辑

拥有 foo 标签的射箭者能射出伤害为 10.0d 的箭。

  1. scoreboard objectives add foo dummy
  2. execute as @e[type=arrow,tag=!modified] run function foo:bar

  3. # function foo:bar
  4. tag @s add modified
  5. execute on origin if entity @s[tag=foo] run scoreboard players set #bar foo 1
  6. execute if score #bar foo matches 1 run data modify entity @s damage set value 10.0d
  7. scoreboard players reset #bar foo
复制代码


whcwdsj
Muggle2077 发表于 2023-8-26 19:14
拥有 foo 标签的射箭者将射出 damage 为 10.0d 的箭。

初始化

能问一下这个#bar是什么吗?如果多个实体射箭时应用这个方法信息会不会串(共用)

炎鱼zero..
更改游戏代码

whcwdsj

所以怎么做呢?

PRC_Enderman
试试这个?
  1. execute as @e[type=minecraft:arrow] at @s if data entity @s Owner[{Tags:["你的tag"]}] run data modify entity @s damage set value 190
复制代码

Muggle2077
whcwdsj 发表于 2023-8-26 20:28
能问一下这个#bar是什么吗?如果多个实体射箭时应用这个方法信息会不会串(共用) ...

玩家和实体都可以在记分板上有分数。事实上,只要是个名字就可以有分数。

#bar 就是一个名字,我随便起的。以 # 开头的名字在任何情况下都不会在侧边栏显示。

当同时存在多只箭时,多只箭会按照选择器选择的顺序依次执行函数 foo:bar

whcwdsj

我试了一下,不管用

第一页 上一页 下一页 最后一页