Guides / Commands & Data

/execute: as/at sırasının önemi ve store'un çalışma şekli

Çoğu hatalı execute zinciri, komutu kimin çalıştırdığı ile nerede çalıştırdığını karıştırmaktan kaynaklanır. İşte her alt komutun neyi değiştirdiği ve bunu düzelten sıra.

/execute, tek bir komut gibi görünen bir betik dilidir. Neredeyse her hata, aynı şeyi yapıyor gibi görünen ama yapmayan iki alt komuttan kaynaklanır.

as KİMİ değiştirir. at NEREYİ değiştirir.

  • as <target> — yürütücüyü değiştirir. @s artık o varlık anlamına gelir. Konum değişmez.
  • at <target> — konumu, dönüşü ve boyutu değiştirir. Yürütücü değişmez.

Yani bu hiçbir işe yaramaz:

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

Her zombi için bir kez çalışır, ancak her zaman sizin ayaklarınızın dibinde, bu yüzden aynı bloğu tekrar tekrar yerleştirir. Çözüm ikisini birden kullanmaktır:

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

at @s, as tarafından seçilen zombiye yeniden sabitlenir. as … at @s, tüm komuttaki en yaygın eşleşmedir ve at @s'yi unutmak en yaygın hatadır.

Sıra soldan sağadır ve birikir

Alt komutlar sırayla çalışır, her biri bir sonrakinin gördüğü bağlamı değiştirir:

execute as @a at @s positioned ^ ^ ^3 run particle flame
  1. as @a — oyuncu başına bir geçiş
  2. at @s — o oyuncuya hareket et
  3. positioned ^ ^ ^3 — baktıkları yerin 3 blok önüne
  1. ve 3. adımları değiştirirseniz, şapka işareti ofseti onların dönüşü yerine sizin dönüşünüzden ölçülür.

Şapka işareti (caret) ve tilde

  • ~ ~ ~konuma göre, dünya eksenlerine hizalı
  • ^ ^ ^bakış yönüne göre: sol, yukarı, ileri

Şapka işareti koordinatları, positioned ^ ^ ^3'in "önünde" ve ~ ~ ~3'un "3 blok güneyde" anlamına gelmesinin nedenidir. İki gösterimi tek bir koordinat üçlüsünde karıştırmak bir sözdizimi hatasıdır.

store bir dönüş değeridir, değişken değil

store, komutun döndürdüğü şeyi yakalar — genellikle bir başarı sayısı veya bir sonuç değeri:

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

İnsanların yanlış anladığı iki şey:

  • result ile success arasındaki fark. result, komutun ürettiği sayıdır; success ise çalışıp çalışmadığına dair 1 veya 0'dır. Varlıkları saymak için result gerekir.
  • store, run'den önce gelir ve run'den sonraki komuta uygulanır, alt komut zincirine değil.

if ve unless kısa devre yapar

if ve unless filtreler — test başarısız olduğunda zincir orada durur. Birden fazla if maddesi bir VE'dir (AND). VEYA (OR) yoktur; bunun için iki ayrı komut veya bir koşul gerekir.

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

Zinciri, her adımda gösterilen bağlamla birlikte, Gelişmiş Komut Oluşturucu içinde alt komut alt komut oluşturun — aynı formdan veri, eşya, ganimet, zamanlama, parçacık ve ses çalmayı da kapsar.

Gelişmiş komutlar — Execute ve Data →

More guides

Browse all →

Başka Minecraft aracı mı arıyorsunuz?

Tarayıcıda çalışan üreteç, görüntüleyici ve dönüştürücü seti — hepsi ücretsiz.