11 votos

¿Existe una forma de establecer un "Límite del Modo Aventura" en Minecraft?

¿Existe una forma de establecer un "Límite del Modo Aventura" en Minecraft?

Estoy tratando de crear esta aldea donde los jugadores pueden desovar, y luego salir a explorar el mundo y construir y hacer cosas normales de Minecraft. No quiero que destruyan esta aldea, así que quiero que estén en modo aventura cuando estén en la aldea y luego cambiarlos a supervivencia cuando se vayan, y viceversa. Cuando regresan a la aldea, se cambian de nuevo al modo aventura.

En otras palabras, quiero establecer un "Límite de Modo Aventura" para proteger los edificios. Estoy trabajando sin mods. Espero que haya una forma sencilla de utilizar los bloques de comandos.

0 votos

¿Por qué no utilizar simplemente la protección de los despojos? Ponlo en el radio que quieras, pon el punto de spawn del mundo en el centro de la aldea, y no hagas que ninguno de los jugadores opere.

6voto

MrLemon Puntos 13223

Mientras que @BassetHound ha dado una solución agradable y fácil, me gustaría proporcionar una solución más poderosa y robusta, en caso de que el área protegida no se describa adecuadamente por una esfera de radio R. Por ejemplo, su servidor podría tener una carretera principal que está fuera de los límites, pero los jugadores se animan a construir casas junto a ella, o catacumbas debajo.

Para ello, estableceremos un objetivo de marcador, que cambiará en función de la ubicación del jugador, permitiéndonos definir el área protegida con múltiples comandos diferentes, permitiendo así formas arbitrarias.

Comience por establecer el objetivo mismo, llamémoslo inTown :

scoreboard objectives add inTown dummy

Ahora, crea un reloj de relleno y ejecuta los siguientes comandos

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

Cada uno de ellos definirá un área de (Xn,Yn,Zn) a (Xn+dXn,Yn+dYn,Zn+dZn) como parte de tu ciudad, y establece la puntuación de los jugadores en esa zona en 1. Si un jugador no está en ninguna de estas zonas, su puntuación permanecerá en 0.

Por supuesto, también puede utilizar otros argumentos del selector de destino para definir su área.

Ahora, añade dos comandos al final de tu reloj para configurar los modos de juego correctamente:

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

Añadir el m garantiza que los modos de juego sólo se activan cuando son apropiados. Los jugadores en modo espectador o creativo no se ven afectados. Justo antes de cambiar el modo de juego, podrías utilizar los mismos selectores de objetivo que en el caso anterior para informar a tus jugadores del cambio utilizando el botón tellraw o title comandos.

5voto

user118844 Puntos 41

Una manera fácil de hacer esto sería establecer un bloque de comando y un reloj extremadamente rápido en el centro de la aldea que está perpetuamente estableciendo el modo de juego de todos los jugadores dentro de un cierto radio (r) del bloque de comando a la aventura:

/gamemode 2 @a[r=??]

Sustituye "el" por el radio del pueblo.

El problema radica en poner el modo de juego de los jugadores en supervivencia cuando salen de la aldea. Lo que podría funcionar es establecer un bloque de comandos diferente en un reloj más lento que establezca el modo de juego de cualquiera que esté dentro o ligeramente fuera de la aldea a supervivencia. Cuando ese bloque de comandos se active y un jugador esté dentro de la aldea, el bloque de comandos del modo aventura debería restablecer inmediatamente el modo de juego del jugador a aventura. Pero si el jugador saliera de la aldea, el bloque de comandos de supervivencia podría alcanzar al jugador sin interferencia del bloque de comandos de aventura (si es que eso tiene algún sentido). Aquí está ese comando:

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

Sustituye ??+7 por el radio del pueblo más siete, y ?? por el radio del pueblo.

Eso debería servir. Ambos comandos tendrían que ejecutarse en las mismas coordenadas X y Z. Los jugadores de la aldea obtendrían el modo de supervivencia durante una fracción de segundo, pero no el tiempo suficiente para hacer nada.

Hazme saber si eso ayuda.

0 votos

Por lo que recuerdo, es exactamente eso. Aunque no entiendo lo del +7 para el radio.

1 votos

@SimeKappa Pondrá el modo de juego de cualquiera dentro de la aldea y de siete bloques fuera de la aldea en supervivencia. Como el bloque de comandos de aventura es más rápido, volverá a poner en aventura a los jugadores que estén dentro y sólo dentro de la aldea, pero no a los jugadores que estén a siete manzanas fuera de la aldea, dejándoles salir al mundo en supervivencia.

1 votos

Imagino que se puede evitar el problema de la "supervivencia durante una fracción de segundo" con un marcador. Pero entonces, puedes hacer cualquier cosa con un marcador, así que no es terriblemente sorprendente.

1voto

Wim Ombelets Puntos 73

Una versión fácil sería esta:

/gamemode survival @a[gamemode=adventure,distance=10..]
/gamemode adventure @a[gamemode=survival,distance=..10]

Ponga esto en un reloj, por ejemplo un tic-tac función ( archivo ), un bloque de comandos repetitivo y un bloque de comandos en cadena detrás de él, etc.

Esto pone a todos los jugadores en modo Aventura que estén a 10 manzanas o menos y a todos los que estén fuera de ese radio en modo Supervivencia. El gamemode La restricción en el selector evita que los jugadores se pongan en el mismo modo de juego una y otra vez, lo que retrasaría el juego.

Es probable que quiera restringirlo de alguna manera, por ejemplo team .

0voto

JBurace Puntos 150

Otra forma de hacerlo sería utilizar el efecto de estado Fatiga minera.

Aquí tienes un comando que puedes utilizar:

/effect @a[r=???+6] 4 2 255

y ponerlo en un bloque de comando repetitivo.

Este comando les dará la fatiga minera 255 mientras estén en el radio especificado para que no puedan romper los bloques mientras estén en el rango.

El +6 del final es para que no puedan romper los bloques cuando salgan de la aldea e intenten romper desde fuera.

JugonesTop.com

Jugonestop es una comunidad para amantes del gaming. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X