Guides / Commands & Data

/execute: por qué el orden de as/at importa y cómo funciona store

La mayoría de las cadenas de execute rotas provienen de confundir quién ejecuta el comando con dónde se ejecuta. Aquí te explicamos qué cambia cada subcomando y el orden que lo soluciona.

/execute es un comando que simula ser un lenguaje de scripting. Casi todos los errores se remontan a dos subcomandos que suenan como si hicieran lo mismo, pero no es así.

as cambia QUIÉN. at cambia DÓNDE.

  • as <target> — intercambia el ejecutor. @s ahora se refiere a esa entidad. La posición no se mueve.
  • at <target> — intercambia la posición, rotación y dimensión. El ejecutor no cambia.

Así que esto no hace nada útil:

execute as @e[type=zombie] run setblock ~ ~ ~ stone

Se ejecuta una vez por zombi, pero siempre a tus pies, por lo que coloca un bloque una y otra vez. La solución es usar ambos:

execute as @e[type=zombie] at @s run setblock ~ ~ ~ stone

at @s se reancla al zombi que as acaba de seleccionar. as … at @s es la combinación más común en todo el comando, y olvidar at @s es el error más común.

El orden es de izquierda a derecha y es acumulativo

Los subcomandos se ejecutan en secuencia, cada uno modificando el contexto que ve el siguiente:

execute as @a at @s positioned ^ ^ ^3 run particle flame
  1. as @a — una pasada por cada Jugador
  2. at @s — se mueve a ese Jugador
  3. positioned ^ ^ ^3 — 3 bloques delante de donde están mirando

Si se intercambian los pasos 2 y 3, el desplazamiento del cursor se mide desde tu rotación en lugar de la suya.

Caret versus tilde

  • ~ ~ ~ — relativo a la posición, alineado con los ejes del mundo
  • ^ ^ ^ — relativo a la orientación: izquierda, arriba, adelante

Las coordenadas de caret son la razón por la que positioned ^ ^ ^3 significa "delante de" y ~ ~ ~3 significa "3 bloques al sur". Mezclar las dos notaciones en una tripleta de coordenadas es un error de sintaxis.

store es un valor de retorno, no una variable

store captura lo que el comando devuelve — usualmente un conteo de éxito o un valor de resultado:

execute store result score @s Count run data get entity @s Inventory

Dos cosas que la gente suele confundir:

  • result versus success. result es el número que produce el comando; success es 1 o 0 dependiendo de si se ejecutó. Contar entidades requiere result.
  • store va antes de run, y se aplica al comando después de run, no a la cadena de subcomandos.

if versus unless de cortocircuito

if y unless filtran — la cadena se detiene allí cuando la prueba falla. Múltiples cláusulas if son un AND. No hay OR; eso requiere dos comandos separados o un predicado.

execute as @a if entity @s[gamemode=survival] if score @s Lives matches 1.. run ...

Construye la cadena un subcomando a la vez, con el contexto mostrado en cada paso, en el Constructor de Comandos Avanzado — también cubre datos, ítems, botín, programación, partículas y sonidos (playsound) desde el mismo formulario.

Constructor de comandos avanzados — Execute y Data →

More guides

Browse all →

¿Buscas más herramientas de Minecraft?

Un conjunto de generadores, visores y conversores que funcionan en el navegador — todos gratis.