5 votes

Essayer de marquer une flèche lancée avec un arc spécifique ? [1.14.4]

Ce que j'essaie de faire, c'est de marquer une flèche lancée par un arc appelé "TP Bow" afin que le joueur qui a tiré la flèche se téléporte à l'endroit où la flèche a atterri, puis de détruire cette flèche, mais j'ai des difficultés à marquer l'arc. Lorsque j'utilise la commande /tag @e[type=Minecraft:arrow] list, il me dit que cette flèche n'a pas de tags.

J'ai essayé cette commande mais ça ne marche pas.

execute at @e[type=minecraft:arrow] if entity @p[nbt={SelectedItem:{id:"minecraft:bow",tag:{display:{Name:"{\"text\":\"TP Bow\"}"}}}}] run tag @s add tparrow

Comment faire pour que ça marche ?

2voto

BunnyMerz Points 1286

Le problème avec votre commande est que vous demandez au bloc de commande qui l'exécute de se baliser lui-même si une flèche [Execute] est activée. Sur arrow] a le joueur le plus proche avec un certain arc [@p[nbt...], ce qui échoue puisqu'un bloc de commande ne peut même pas être marqué.

Pour résoudre ce problème, vous devez le changer en :

/execute as @e[type=minecraft:arrow] at @s run execute if entity @p[nbt={SelectedItem:{id:"minecraft:bow",tag:{display:{Name:"{\"text\":\"TP Bow\"}"}}}}] run tag @s add tparrow

De cette façon, il s'exécutera en tant que et à la flèche, en la marquant elle-même

Cependant, si vous comptez l'utiliser en multijoueur, il y a quelques bugs. Premièrement, si un joueur utilise un arc normal, et qu'un autre joueur ou même le même sélectionne, plus tard, l'arc avec le bon nom, il sera marqué et téléporté. Deuxièmement, si vous le tirez près d'un ami, selon la façon dont vous avez programmé le reste, il pourrait finir par le téléporter.

Voici une chaîne de commandes pour prévenir ces bugs mais avant, créez ce tableau de bord

/scoreboard objectives add Bow minecraft.used:minecraft.bow

Voici la chaîne :

/execute as @a[scores={Bow=1},nbt={SelectedItem:{id:"minecraft:bow",tag:{display:{Name:"{\"text\":\"TP Bow\"}"}}}}] at @s run tag @e[type=minecraft:arrow,distance=0..2,sort=nearest,limit=1] add tparrow

/execute as @e[type=minecraft:arrow,tag=tparrow] at @s run tag @p[distance=0..2,scores={Bow=1}] add tpplayer

/execute as @e[type=minecraft:arrow,tag=tparrow,nbt={inGround:1b}] at @s run tp @p[tag=tpplayer] ~ ~ ~

/execute as @e[type=minecraft:arrow,tag=tparrow,nbt={inGround:1b}] at @s run tag @a[distance=0..1] remove tpplayer

/execute as @e[type=minecraft:arrow,tag=tparrow,nbt={inGround:1b}] at @s run kill @s

/scoreboard players set @a Bow 0

Le premier bloc de commande doit être une "Répétition" et le reste doit être une "Chaîne", tous connectés.

Si vous souhaitez uniquement marquer la flèche tout en corrigeant ces bugs : créez le tableau d'affichage et utilisez les 1ère, 2ème et dernière commandes de la chaîne.

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X