Guides / Commands & Data

/execute: Mengapa Urutan as/at Penting dan Cara Kerja store

Sebagian besar rantai perintah execute yang salah berasal dari kebingungan antara siapa yang menjalankan perintah dengan di mana perintah itu dijalankan. Berikut adalah apa yang diubah oleh setiap subperintah, dan urutan yang memperbaikinya.

/execute adalah satu perintah yang berpura-pura menjadi bahasa skrip. Hampir setiap kegagalan berakar pada dua subperintah yang terdengar melakukan hal yang sama tetapi sebenarnya tidak.

as mengubah SIAPA. at mengubah DI MANA.

  • as <target> — menukar pelaksana. @s sekarang berarti entitas itu. Posisi tidak bergerak.
  • at <target> — menukar posisi, rotasi, dan dimensi. Pelaksana tidak berubah.

Jadi ini tidak melakukan hal yang berguna:

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

Ini berjalan sekali per zombi, tetapi selalu di kaki Anda, jadi ini menempatkan satu blok berulang-ulang. Perbaikannya adalah keduanya:

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

at @s mengaitkan kembali ke zombi yang baru saja dipilih oleh as. as … at @s adalah pasangan paling umum dalam seluruh perintah, dan melupakan at @s adalah bug paling umum.

Urutan dari kiri ke kanan, dan bersifat kumulatif

Subperintah berjalan secara berurutan, masing-masing memodifikasi konteks yang dilihat oleh yang berikutnya:

execute as @a at @s positioned ^ ^ ^3 run particle flame
  1. as @a — satu kali per pemain
  2. at @s — bergerak ke pemain itu
  3. positioned ^ ^ ^3 — 3 blok di depan tempat mereka melihat

Tukar langkah 2 dan 3 dan offset kursor diukur dari rotasi Anda, bukan rotasi mereka.

Caret versus tilde

  • ~ ~ ~ — relatif terhadap posisi, sejajar dengan sumbu dunia
  • ^ ^ ^ — relatif terhadap arah hadap: kiri, atas, depan

Koordinat caret adalah mengapa positioned ^ ^ ^3 berarti "di depan" dan ~ ~ ~3 berarti "3 blok ke selatan". Mencampur kedua notasi dalam satu rangkap tiga koordinat adalah kesalahan sintaks.

store adalah nilai kembalian, bukan variabel

store menangkap apa yang dikembalikan oleh perintah — biasanya jumlah keberhasilan atau nilai hasil:

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

Dua hal yang sering salah dipahami orang:

  • result versus success. result adalah angka yang dihasilkan perintah; success adalah 1 atau 0 untuk apakah perintah itu berjalan. Menghitung entitas membutuhkan result.
  • store datang sebelum run, dan berlaku untuk perintah setelah run, bukan untuk rantai subperintah.

if versus unless short-circuits

if dan unless menyaring — rantai berhenti di sana ketika tes gagal. Beberapa klausa if adalah AND. Tidak ada OR; itu membutuhkan dua perintah terpisah atau predikat.

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

Bangun rantai satu subperintah pada satu waktu, dengan konteks yang ditampilkan di setiap langkah, di Advanced Command Builder — ini juga mencakup data, item, loot, schedule, particle, dan playsound dari formulir yang sama.

Perintah lanjutan — Execute dan Data →

More guides

Browse all →

Cari alat Minecraft lainnya?

Kumpulan generator, penampil, dan pengonversi yang berjalan di peramban — semuanya gratis.