2 votes

Essayer de créer un système de secours si quelqu'un laisse accidentellement tomber un objet.

Je suis en train de créer une carte basée sur des kits, et je veux permettre aux gens de récupérer des objets s'ils les laissent tomber accidentellement. J'ai mis en place des scores qui s'activent lorsque quelqu'un laisse tomber un objet. Je suis capable de leur donner l'objet sans problème. Le problème se pose lorsque je veux réinitialiser le score. J'ai essayé de remettre à zéro le score de tous les joueurs pour ce score, mais pour une raison quelconque, il me donnait toujours trop ou trop peu. Actuellement, j'ai

/scoreboard players set @a[scores={backbow=1},nbt={Iventory:[{id:"minecraft_bow}] backbow 0

qui devrait mettre à 0 tous les joueurs avec un arc arrière (le score pour quand quelqu'un laisse tomber un arc) de 1 et un arc dans l'inventaire, mais cela ne fonctionne pas. Il n'y a aucun message d'erreur. Je suis complètement désemparé.

2voto

En utilisant ces commandes ( LES DEUX ! ) empêchera les joueurs de ramasser un objet qui a été déposé par un autre joueur, tout en permettant aux joueurs de ramasser les objets qu'ils ont déposés.

/execute as @e[type=minecraft:item] if data entity @s Thrower run data modify entity @s Owner.L set from entity @s Thrower.L
/execute as @e[type=minecraft:item] if data entity @s Owner run data modify entity @s Owner.M set from entity @s Thrower.M

En utilisant cette commande, le délai de ramassage des objets déposés est fixé à 0, de sorte que l'objet peut être ramassé immédiatement et que vous devez vraiment essayer de ne pas le ramasser :

/execute as @e[type=minecraft:item] if data entity @s Thrower run data modify entity @s PickupDelay set value 0

L'utilisation de ces trois commandes rendrait les objets vraiment difficiles à perdre accidentellement en les faisant tomber. Je recommande un bloc de commande répétitif et ensuite 2 blocs de commande en chaîne.

Si vous voulez être sûr que les objets ne se perdent pas vous pouvez alors créer un objectif de tableau de bord qui garde la trace des éléments suivants Owner -et les UUID des joueurs. Et ensuite téléporter tout objet déposé par un joueur vers le joueur qui l'a déposé.

C'est ainsi que l'on configure l'objectif du tableau d'affichage :

/scoreboard objectives add UUIDs dummy

Vous voudrez ensuite définir le score pour tous les objets et tous les joueurs :

/execute as @e[type=minecraft:item] if data entity @s Thrower store result score @s UUIDs run data get entity @s Thrower.M 0.0000000001
/execute as @a store result score @s UUIDs run data get entity @s UUIDMost 0.0000000001

Lorsque vous avez terminé, vous pouvez téléporter tous les objets lancés vers le joueur qui les a lancés :

/execute as @e[type=item] at @a if score @s UUIDs = @p UUIDs run tp ~ ~ ~

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