Délimiation zone en mode aventure 1.19.2

JaydnLive

Aventurier
15 Août 2023
4
0
1
30
Bonjour,

je cherche à délimiter des zones dans ma map en mode aventure et j'ai trouvé ces deux commandes sur internet, mais ça spam dans mon chat le changement de mode et me change au final en mode survie quand je retourne dans le périmètre. Comment faire pour changer cela ? ( je suis en 1.19.2 et j'ai essayé des techniques de plus vielles version et ça ne marchait pas )


execute if entity @e[distance=..20] run gamemode adventure @e[gamemode=survival,distance=..20]

execute if entity @e[distance=22..25] run gamemode survival @e[gamemode=adventure,distance=22..25]

Merci à vous !
 

ShE3py

Enbogueuse
Support
26 Septembre 2015
4 139
163
464
247
21
Mìlhüsa
Bonsoir,

@e sélectionne toutes les entités, or tu as besoin d'uniquement les joueurs donc @a sera plus rapide.

C'est généralement une mauvaise idée de sélectionner deux fois, préfère utiliser @s :
Code:
/execute as @a[gamemode=survival,distance=..20] run gamemode adventure @s
/execute as @a[gamemode=adventure,distance=22..25] run gamemode survival @s

Car ce que tu as c'est plus un
Code:
POUR CHAQUE ENTITÉ e
    POUR CHAQUE ENTITÉ e’
        CHANGER GAMEMODE DE e’
    FIN POUR
FIN POUR
Donc pour n entités, tu avais n² fois le message.

Cordialement,
ShE3py
 

JaydnLive

Aventurier
15 Août 2023
4
0
1
30
Merci pour ta réponse,

j'ai tenté le coup mais rien ne s'est passé malheureusement. Le game mode ne s'est pas changé du tout
 

Nuts101

Architecte en herbe
4 Juin 2018
98
1
20
120
Salut, quand tu utilises distance=x..y c'est bien d'avoir un point de départ précis ( ça peut être une entity invisible) comme par exemple :
/execute as @a[gamemode=survival,x=X,y=Y,z=Z,distance=..20] run gamemode adventure @s
/execute as @a[gamemode=adventure,x=X,y=Y,z=Z,distance=22..25] run gamemode survival @s