Guides / Commands & Data

/execute: por que a ordem de as/at importa e como store realmente funciona

A maioria das cadeias de execute quebradas vem da confusão entre quem executa o comando e onde ele é executado. Aqui está o que cada subcomando muda e a ordem que corrige isso.

/execute é um comando que se disfarça de linguagem de script. Quase todas as falhas se devem a dois subcomandos que parecem fazer a mesma coisa, mas não fazem.

as muda QUEM. at muda ONDE.

  • as <target> — troca o executor. @s agora significa aquela entidade. **A posição

não muda.**

  • at <target> — troca a posição, rotação e dimensão. **O executor não

muda.**

Então, isso não faz nada útil:

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

Ele é executado uma vez por Zumbi, mas sempre aos seus pés, então ele coloca um bloco repetidamente. A correção é usar ambos:

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

at @s se ancora novamente ao Zumbi que as acabou de selecionar. as … at @s é o par mais comum em todo o comando, e esquecer at @s é o bug mais comum.

A ordem é da esquerda para a direita e é cumulativa

Os subcomandos são executados em sequência, cada um modificando o contexto que o próximo vê:

execute as @a at @s positioned ^ ^ ^3 run particle flame
  1. as @a — uma passagem por Jogador
  2. at @s — move para aquele Jogador
  3. positioned ^ ^ ^3 — 3 blocos à frente de onde eles estão olhando

Troque os passos 2 e 3 e o deslocamento do acento circunflexo será medido a partir da sua rotação em vez da deles.

Acento circunflexo versus til

  • ~ ~ ~ — relativo à posição, alinhado aos eixos do mundo
  • ^ ^ ^ — relativo ao olhar: esquerda, cima, frente

As coordenadas com acento circunflexo são o motivo pelo qual positioned ^ ^ ^3 significa "à frente" e ~ ~ ~3 significa "3 blocos ao sul". Misturar as duas notações em uma tripla de coordenadas é um erro de sintaxe.

store é um valor de retorno, não uma variável

store captura o que o comando retorna — geralmente uma contagem de sucesso ou um valor de resultado:

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

Duas coisas que as pessoas erram:

  • result versus success. result é o número que o comando produz; success

é 1 ou 0 para indicar se ele foi executado. Contar entidades requer result.

  • store vem antes de run, e se aplica ao comando após run, não à

cadeia de subcomandos.

if versus unless de curto-circuito

if e unless filtram — a cadeia para ali quando o teste falha. Múltiplas cláusulas if são um AND. Não há OR; isso requer dois comandos separados ou um predicado.

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

Construa a cadeia um subcomando por vez, com o contexto mostrado em cada etapa, no Advanced Command Builder — ele também cobre dados, itens, saques, agendamento, partículas e playsound do mesmo formulário.

Construtor de comandos avançados — Execute e Data →

More guides

Browse all →

Procurando mais ferramentas de Minecraft?

Um conjunto de geradores, visualizadores e conversores que rodam no navegador — tudo grátis.