Actualizado:
1. Preparación (una vez)
/team add caller "Vigilante"
/team join caller Steve
/scoreboard objectives add walk minecraft.custom:minecraft.walk_one_cm
/scoreboard objectives add run minecraft.custom:minecraft.sprint_one_cm
/scoreboard objectives add phase dummy
walk y run cuentan solas la distancia caminada y corrida. phase recuerda si ahora se puede mover. Consulta el comando team.
2. Botón de luz roja
/scoreboard players reset @a walk
/scoreboard players reset @a run
/scoreboard players set #game phase 1
/title @a title {"text":"LUZ ROJA","color":"red"}
Un bloque de impulso seguido de bloques en cadena, conectado a un botón. Reiniciar primero las puntuaciones hace que solo cuente el movimiento posterior al aviso.
3. Devolver a quien se mueve (iterativo)
/execute if score #game phase matches 1 as @a[team=!caller,scores={walk=1..}] run tp @s 0 64 0
/execute if score #game phase matches 1 as @a[team=!caller,scores={run=1..}] run tp @s 0 64 0
Pon los dos en bloques iterativos en Siempre activo. Cualquiera que camine o corra aunque sea un centímetro tras el aviso vuelve a la salida en 0 64 0. Cambia la posición según tu recorrido.
4. Botón de luz verde
/scoreboard players set #game phase 0
/title @a actionbar {"text":"LUZ VERDE","color":"green"}
Quien vigila lo pulsa al volver a girarse. Mientras phase sea 0, moverse no tiene peligro.
5. Comprobación de meta
/execute as @a[team=!caller,x=0,y=64,z=40,dx=4,dy=3,dz=2] run tellraw @a [{"selector":"@s"},{"text":" ¡ha llegado a la meta!","color":"gold"}]
Consulta selectores de objetivo para las zonas.
6. Jugar sin vigilante
/scoreboard objectives add dtimer dummy
# bloque iterativo
scoreboard players add #game dtimer 1
# en cadena 1
execute if score #game dtimer matches 100 run title @a title {"text":"¡Luz roja!","color":"red"}
# en cadena 2
execute if score #game dtimer matches 110 run scoreboard players reset @a walk
# en cadena 3
execute if score #game dtimer matches 110 run scoreboard players reset @a run
# en cadena 4
execute if score #game dtimer matches 110 run scoreboard players set #game phase 1
# en cadena 5
execute if score #game dtimer matches 170.. run scoreboard players set #game phase 0
# en cadena 6
execute if score #game dtimer matches 170.. run scoreboard players set #game dtimer 0
A 20 ticks por segundo, los jugadores se mueven durante cinco segundos y luego ven ¡Luz roja!. Las comprobaciones empiezan medio segundo después para que les dé tiempo a parar, y tres segundos más tarde pueden volver a moverse. Usa el comando random para variar los tiempos.
Solución de problemas
- Pillado estando quieto: el reinicio tiene que ejecutarse antes de poner phase en 1.
- No pilla a quien va agachado: añade también
minecraft.custom:minecraft.crouch_one_cm. - Bedrock: no hay estadísticas de distancia, así que este método no funciona.
- Mirar alrededor: girar la cámara no suma distancia, así que no tiene peligro.
- Sin vigilante: cambia la fase con un temporizador usando el comando schedule.
Comprueba tu comando
El Command Error Doctor (en inglés) revisa en tu navegador los errores de sintaxis más comunes.