(Répéter) exécuter @a[score_NotHoldingItem=0,r=2] ~ ~ ~ /scoreboard joueurs ajouter @e[type=XPOrb] 1 xp (ajouter le score aux xp à portée de 2 blocs du joueur tenant une bouteille)
r=2
sélectionnera les joueurs situés dans un rayon de deux blocs du bloc de commande (ou de tout autre bloc qui exécute la commande) pour l'exécuter. Vous devez déplacer le r=2
au deuxième sélecteur afin d'ajouter le score à XPOrbs dans un rayon de 2 blocs d'un joueur détenant la bouteille :
<count>
vient aussi avant <objective>
en scoreboard players add
de la syntaxe :
execute @a[score_NotHoldingItem=0] ~ ~ ~ /scoreboard players add @e[type=XPOrb,r=2] xp 1
(Répéter) exécuter @e [score_xp=4] ~ ~ ~ donner @p [score_NotHoldingItem=0] Minecraft:experience_bottle
Cela s'exécutera même s'il n'y a qu'un seul orbe XP près du joueur. Si vous voulez qu'il ne s'active que lorsqu'il y a au moins 3 orbes d'XP, alors vous devrez configurer un compte.
Créez un objectif fictif appelé par exemple "NearbyXp" ( /scoreboard objectives add NearbyXp dummy
) puis ajoutez les commandes suivantes à votre horloge, avant cette commande give :
scoreboard players set @a[score_NearbyXp_min=1] NearbyXp 0
execute @e[type=XPOrb] ~ ~ ~ scoreboard players add @a[score_NotHoldingItem=0,r=2] 1 NearbyXp
Cela rend toutes les orbes XP ajouter 1 NearbyXp
aux joueurs détenant des bouteilles dans un rayon de 2 blocs autour d'eux. Par exemple, si 7 orbes d'XP se trouvent près de vous, elles ajouteront chacune 1 à votre XP. NearbyXp
en le fixant à 7.
Ensuite, sur vos commandes telles que celle-ci où vous donnez la bouteille d'expérience, vous devez changer le sélecteur de joueur en @p[score_NotHoldingItem=0,score_NearbyXp_min=3]
pour que seuls les joueurs ayant 3 orbes d'XP autour d'eux obtiennent la bouteille.
Après avoir fait cela, vous devriez également être en mesure de vous débarrasser de toute commande liée à la xp
car cela permettra de détecter si les joueurs ont 3 orbes d'XP autour d'eux.
tuer @e [score_xp_min=4,c=3]
Cette commande doit être exécutée depuis le joueur si vous voulez retirer les 3 orbes d'XP les plus proches du joueur, plutôt que les 3 plus proches du bloc de commande.
clear @p[score_NotHoldingItem=0] Minecraft:glass_bottle 1
Cela efface toutes les bouteilles en verre dont la valeur des données est 1, plutôt qu'une seule bouteille en verre comme je suppose que vous le voulez ici.
Pour garantir que l'ordre d'exécution des commandes reste le même, vous ne devriez utiliser qu'un seul bloc de commandes répétées et les autres chaînes.
Vos commandes à la fin devraient ressembler à quelque chose comme :
scoreboard players set @a NotHoldingItem 1
scoreboard players set @a NotHoldingItem 0 {SelectedItem:{id:minecraft:glass_bottle}}
scoreboard players set @a[score_NearbyXp_min=1] NearbyXp 0
execute @e[type=XPOrb] ~ ~ ~ scoreboard players add @a[score_NotHoldingItem=0,r=2] NearbyXp 1
give @p[score_NotHoldingItem=0,score_NearbyXp_min=3] minecraft:experience_bottle
execute @a[score_NotHoldingItem=0,score_NearbyXp_min=3] ~ ~ ~ kill @e[type=XPOrb,c=3]
clear @a[score_NotHoldingItem=0,score_NearbyXp_min=3] minecraft:glass_bottle 0 1
Seul le premier doit être répété, les autres doivent être des chaînes qui se suivent, comme ceci :
Prenez note que :
- Les orbes d'XP varient en valeur, donc quelqu'un pourrait mettre en bouteille 3 expérience ou 7431 expérience et obtenir la même bouteille.
- Il est difficile de se tenir à moins de deux blocs de plusieurs orbes d'XP sans en ramasser, je recommande d'augmenter le nombre de ces orbes.
r=2
a r=5
0 votes
Voulez-vous que le joueur n'obtienne la bouteille que s'il y a 3 orbes d'XP ou plus à proximité ?