Existe-t-il un moyen de définir une «limite de mode d'aventure» dans Minecraft?

Existe-t-il un moyen de définir une «limite de mode d'aventure» dans Minecraft?

J'essaie de créer ce village où les joueurs peuvent engendrer, puis entrepris d'explorer le monde et de construire et de faire du matériel minecraft normal. Je ne veux pas qu'ils détruisent ce village, alors je veux qu'ils soient en mode aventure quand ils sont dans le village, puis les transmettent à la survie quand ils partent, et vice versa. Quand ils retournent au village, ils sont retournés au mode aventure.

En d'autres termes, je souhaite définir une «limite de mode d'aventure» pour protéger les bâtiments. Je travaille sans mods. J'espère qu'il existe un moyen simple d'utiliser des blocs de commandes. Aidez-nous! Je serai reconnaissant!

Un moyen facile de le faire serait de configurer un bloc de commande et une horloge extrêmement rapide au milieu du village qui définit constamment le mode de jeu de tous les joueurs dans un certain rayon (r) du bloc de commande à l'aventure:

/gamemode 2 @a[r=??]

Remplacer ?? Avec le rayon du village.

Le problème réside dans la mise en jeu de la jouissance des joueurs lorsqu'ils sortent du village. Ce qui pourrait fonctionner est la mise en place d'un bloc de commande différent sur une horloge plus lente qui définit le gamemode de n'importe qui dans ou légèrement en dehors du village à la survie. Lorsque ce bloc de commande s'active et qu'un joueur est à l'intérieur du village, le bloc de commande du mode Aventure doit immédiatement réinitialiser le retour du joueur à l'aventure. Mais si le joueur devait quitter le village, le bloc de commande de survie pourrait atteindre le joueur sans interférence du bloc de commande d'aventure (si cela a du sens). Voici cette commande:

/gamemode s @a[rm=??, r=??+7]

Remplacer + 7 par le rayon du village plus sept et ?? Avec le rayon du village.

Cela devrait faire l'affaire. Les deux commandes devraient être exécutées dans les mêmes coordonnées X et Z. Les joueurs du village obtiendraient un mode de survie pendant une fraction de seconde, mais pas assez longtemps pour faire n'importe quoi.

Faites-moi savoir si cela vous a été utile.

Alors que @BassetHound a donné une solution agréable et facile, je voudrais fournir une solution plus puissante et robuste, dans le cas où la zone protégée n'est pas correctement décrite par une sphère de rayon R. Par exemple, votre serveur pourrait avoir une route principale C'est hors limites, mais les joueurs sont encouragés à construire des maisons à côté, ou des catacombes en dessous.

Pour ce faire, nous allons configurer un objectif de tableau de bord, qui sera modifié en fonction de l'emplacement du joueur, ce qui nous permettra de définir la zone protégée avec plusieurs commandes différentes, permettant ainsi des formes arbitraires.

Commencez par configurer l'objectif lui-même, appelons-le en inTown :

 scoreboard objectives add inTown dummy 

Maintenant, créez une horloge de remplissage et exécutez les commandes suivantes

 scoreboard players set @a inTown 0 scoreboard players set @a[score_inTown=0,x=X1,y=Y1,z=Z1,dx=dX1,dy=dY1,dz=dZ1] inTown 1 scoreboard players set @a[score_inTown=0,x=X",y=Y2,z=Z2,dx=dX2,dy=dY2,dz=dZ2] inTown 1 ... scoreboard players set @a[score_inTown=0,x=XN,y=YN,z=ZN,dx=dXN,dy=dYN,dz=dZN] inTown 1 

Chacun d'entre eux définira une zone de (Xn,Yn,Zn) à (Xn+dXn,Yn+dYn,Zn+dZn) dans le cadre de votre ville et fixer le score pour les joueurs dans cette zone à 1. Si un joueur N'est dans aucun de ces domaines, son score restera à 0 à la place.

Bien sûr, vous pouvez utiliser d'autres arguments de sélection de cible pour définir votre zone ainsi.

Maintenant, ajoutez deux commandes à la fin de votre horloge pour configurer correctement les gamemodes:

 gamemode 0 @a[score_inTown=0,m=2] gamemode 2 @a[score_inTown_min=1,m=0] 

L'ajout du m selector garantit que les gamemodes ne sont définis que le cas échéant. Les joueurs en mode spectateur ou créatif ne sont pas affectés. Juste avant de changer le gamemode, vous pouvez utiliser les mêmes sélecteurs de cible que ci-dessus pour informer vos joueurs de la modification en utilisant les commandes tellraw ou title .

Une autre façon de le faire serait d'utiliser la fatigue minière.

Vous pouvez utiliser cette commande / effet @a [r = ??? + 6] 4 2 255 et le mettre sur une impulsion répétitive.

Cette commande leur donnera une fatigue minière 255 aussi longtemps qu'ils sont dans le rayon spécifié afin qu'ils ne puissent pas casser les blocs tant qu'ils sont dans la gamme.

Le +6 sur la fin est de sorte qu'ils ne peuvent pas briser les blocs lorsqu'ils sortent du village et essaient de se séparer de là.