/execute: bakit mahalaga ang pagkakasunod ng as/at at paano talaga gumagana ang store
Karamihan sa mga sirang execute chain ay dahil sa pagkalito kung sino ang nagpapatakbo ng utos at kung saan ito tumatakbo. Narito kung ano ang binabago ng bawat subcommand, at ang pagkakasunod-sunod na nag-aayos dito.
/execute is one command pretending to be a scripting language. Almost every failure traces to two subcommands that sound like they do the same thing and do not.
binabago ng as kung SINO. binabago ng at kung SAAN.
as <target>— pinapalitan ang tagapagpatupad.@snow means that entity. **The position does
hindi gagalaw.**
at <target>— pinapalitan ang posisyon, pag-ikot, at dimensyon. **Ang tagapagpatupad ay hindi
nagbabago.**
Kaya wala itong kapaki-pakinabang na ginagawa:
execute as @e[type=zombie] run setblock ~ ~ ~ stone
Tumatakbo ito nang minsan bawat zombie, ngunit palagi sa iyong paa, kaya naglalagay ito ng isang bloke nang paulit-ulit. Ang ayos ay pareho:
execute as @e[type=zombie] at @s run setblock ~ ~ ~ stone
at @s re-anchors to the zombie that as just selected. as … at @s is the single most common pairing in the whole command, at ang paglimot sa at @s is the single most common bug.
Ang pagkakasunod-sunod ay kaliwa pakanan, at ito ay nagpapatung-patong
Tumatakbo ang mga subcommand nang sunod-sunod, kung saan binabago ng bawat isa ang kontekstong nakikita ng susunod:
execute as @a at @s positioned ^ ^ ^3 run particle flame
as @a— one pass per playerat @s— move to that playerpositioned ^ ^ ^3— 3 blocks in front of where they are nakatingin
Pagpalitin ang hakbang 2 at 3 at ang caret offset ay masusukat mula sa iyong pag-ikot sa halip na sa kanila.
Caret laban sa tilde
~ ~ ~— relative to posisyon, nakahanay sa mga axis ng mundo^ ^ ^— relative to nakaharap: kaliwa, pataas, pasulong
Ang mga coordinate ng caret ang dahilan kung bakit positioned ^ ^ ^3 means "in front of" and ~ ~ ~3 means "3 blocks south". Mixing the two notations in one coordinate triple is a syntax error.
ang store ay isang return value, hindi isang variable
store captures what the command nagbabalik — karaniwang bilang ng tagumpay o halaga ng resulta:
execute store result score @s Count run data get entity @s Inventory
Dalawang bagay na pinagkakamalian ng mga tao:
resultversussuccess.resultis the number the command produces;success
ay 1 o 0 kung tumakbo ba ito. Ang pagbilang ng mga entity ay nangangailangan ng result.
storegoes beforerun, at nalalapat ito sa utos pagkatapos ngrun, not to the
subcommand chain.
mga short-circuit ng if laban sa unless
if and unless filter — the chain stops there when the test fails. Multiple if clauses are an AND. There is no OR; that needs two separate commands or a predicate.
execute as @a if entity @s[gamemode=survival] if score @s Lives matches 1.. run ...
Buuin ang chain nang paisa-isang subcommand, kasama ang kontekstong ipinapakita sa bawat hakbang, sa Advanced Command Builder — sakop din nito ang data, item, loot, schedule, particle at playsound mula sa parehong form.