Este es un pequeño truco que he necesitado hacer para el primer mapa que estoy haciendo. La idea original es de Killercreeper55, pero la he modificado para mis propias necesidades.
El uso es bastante simple: Solamente necesitas poner un bloque cincelado y ponerte encima, intentas ponerte lo mejor que puedas en el centro y aparece un láser teniendo como centro ese bloque. Para quitarlo lo único que hace falta es quitar el bloque, por lo que podría usarse para poner trampas láser en mapas de una forma sencilla y que el propio jugador sea capaz de desactivarlo, o incluso darle el bloque para que pueda usarlo a su favor (Habría que cambiar para que dañe a todas las entidades en vez de solamente al jugador).
Comando Blanco: /execute @e[name=LaserX] ~ ~ ~ detect ~ ~ ~ minecraft:stonebrick 3 /particle reddust ~ ~ ~ 3 0 0 0 300
Comando Naranja: /execute @e[name=LaserX] ~-9 ~-1 ~ /effect @p[dx=19,dy=1] 7 1 1
Comando Amarillo: /execute @e[name=LaserX] ~ ~ ~ detect ~ ~ ~ air -1 /kill @e[name=LaserX,r=0]
Comando Azul: /execute @p ~ ~ ~ detect ~ ~-1 ~ minecraft:stonebrick 3 /testfor @p
Comando Magenta: /execute @p ~ ~ ~ /testfor @e[name=LaserX,dy=-1]
Comando Verde: /execute @p ~ ~ ~ /summon Silverfish ~ ~-0.5 ~ {CustomName:LaserX, NoAI:True, ActiveEffects:[{Id:11,Amplifier:5,Duration:10000000},{Id:14,Amplifier:1,Duration:10000000}]}
El mecanismo está divido en dos partes: La superior se encarga de que el bloque funciona y el inferior de crear el bloque. El comando Blanco se encarga de buscar todos los bloques cincelados que tengan en su interior el mob editado con nombre "LaserX" y crea partículas de reddust en una linea recta en el eje X. Conjuntamente, el comando naranja también busca a LaserX pero daña a todos los jugadores que se encuentren dentro de su rango en el eje X(aquí he puesto 9 bloques a cada lado) y con dos de altura, pareciendo que lo que daña son las partículas del láser cuando toca la hitbox del jugador.
Luego para crear el bloque, el comando naranja se encarga de detectar que el jugador se encuentra sobre un bloque cincelado y el magenta de que hay un LaserX en su interior(pero le he puesto una negación, de forma que detecta cuando no lo hay). Luego inserto las dos señales en una puerta AND y hago que active el comando verde, que se encarga de crear a LaserX debajo del jugador, es decir, en el interior del bloque cincelado. Por último, el comando amarillo se encarga de matar a todos los LaserX que se encuentren en un bloque se aire, por lo que mueren cuando rompes el bloque en el que se encuentran.
Aún soy novato en esto de los command blocks y he empezado a aprender ayer sobre eso, por lo que no he logrado que sea totalmente exacto y perfecto xD. Me habría gustado hacer que no sea necesario que el jugador se posicione lo mejor que pueda en el centro del bloque para que el láser no esté movido, pero no he encontrado forma de hacerlo.
Linkback: https://minecraftmin.net/index.php?topic=11665.0