Les paramètres des command blocks fonctionnent pas comme tu crois.
Explication qui pourra sûrement servir à d'autres :
Type de command block (à gauche) :
- Impulse : la commande est exécutée à chaque "impulsion". C'est-à-dire qu'à chaque fois que tu envoies un signal de redstone, la commande est exécutée. Si tu désactives "Needs redstone", le command block lit plus les impulsions et il fait plus rien du tout après avoir exécuté la commande quand tu as rentré celle-ci.
- Chain : La commande du command block est exécutée à chaque fois que celui d'avant est activé. Si t'en mets plein les uns à la suite des autres, ça fait une chaîne de command blocks. Avec ça, tu peux par exemple mettre plusieurs command blocks sur la même horloge de redstone ou les faire toujours s'exécuter en même temps.
- Repeat : Le command block spamme la commande tant qu'il est actif.
Conditionnalité (au milieu) :
Aussi loin que je sache, ça sert que pour le type Chain.
- Conditionnel : Le command block n'exécute sa commande que si celui qui le précède a pu exécuter sa propre commande correctement. Par exemple, si le command block précédent contient la commande "/kill @e[type=zombie]" mais que y'a aucun zombie parce qu'on est en difficulté paisible, la commande aura échoué et le ton command block (le suivant) n'exécutera pas sa commande.
- Inconditionnel : Quelque soit le résultat de l'exécution de la commande du command block précédent, ton command block va exécuter sa commande juste après. Dans l'exemple d'avant, quand le command block d'avant va échouer à exécuter "/kill @e[type=zombie]", le tien (le suivant) va quand même exécuter sa commande.
Besoin de redstone (à droite) :
- Needs redstone : Le command block n'est actif que si il est alimenté. Pour les command blocks de type chain et repeat, ça veut dire que même si ils devraient s'activer par un autre moyen (respectivement l'activation du command block d'avant, et l'horloge du jeu qui s'active tous les 1 tick), le mode Needs redstone fera qu'il se passera rien sans qu'ils soient alimentés. Si tu mets "/say blabla" dans un command block repeat en mode Needs redstone et que tu mets un levier dessus, le command block spammera le tchat uniquement quand le levier est activé. Quand le levier est désactivé, rien ne se passe.
- Always active : Aucune contrainte d'être alimenté pour ce command block. (Choisir ce paramètre n'a de sens que pour un command block de type Repeat ou Chain)
Du coup, pour résoudre ton problème, t'as pas choisi les bons paramètres. Toi t'as fait
Impulse +
Always active, ce qui fait que la commande s'exécute une seule fois et puis c'est tout. Ce dont t'aurais besoin, c'est d'un command block qui spamme jusqu'à ce qu'il réussisse à exécuter sa commande et qu'il l'exécute plus jamais. Cependant, ce mode n'existe pas, donc tu dois bricoler. Tu peux par exemple mettre ta commande "/summon" dans un command block
Repeat, et mettre par dessus un command block
Chain conditionnel qui va empêcher ton command block
Repeat de s'activer à nouveau. Puisque le
Chain est en
Conditionnel, il va s'activer que quand le
Repeat réussira à exécuter ta commande, c'est-à-dire quand il aura trouvé un joueur dans la zone et qu'il fera apparaître le garde. Pour arrêter le command block
Repeat, je vois 2 possibilités simples :
- Mettre un tag au joueur qui vient de rentrer dans la zone et faire que le command block Repeat ne fasse attention que aux joueurs qui n'ont pas le tag en question. Dans ce cas, chaque nouveau joueur fera apparaître le garde.
- Mettre le command block Repeat en mode Needs redstone, l'alimenter avec un bloc de redstone, et remplacer le bloc de redstone par de la laine (ou n'importe quoi d'autre). Dans ce cas-ci, le command block Repeat ne s'activera plus jamais après la première fois, sauf si tu remets le bloc de redstone (possiblement avec un 3ème command block).
Et pour empêcher le mécanisme de s'activer pendant que tu construis, tu peux ajouter un filtre pour que seuls les joueurs en mode survie ou aventure (en fonction de ce que t'as choisi pour ta map aventure) soient pris en compte par ta commande. Y'a un paramètre dans le sélecteur pour ça :
Code:
/execute as @a[x=,y=,z=,distance=10,gamemode=adventure] run summon...
Ou tu peux faire en sorte que la commande ne prenne en compte tous les modes sauf créatif :
Code:
/execute as @a[x=,y=,z=,distance=10,gamemode=!creative] run summon...