MC Toolkit

คู่มือ / คำสั่งและข้อมูล

/execute: ทำไมลำดับของ as/at ถึงสำคัญ และ store ทำงานอย่างไร

execute chain ที่ผิดพลาดส่วนใหญ่มาจากการสับสนระหว่าง "ใคร" เป็นผู้รันคำสั่ง กับ "ที่ไหน" ที่คำสั่งรัน นี่คือสิ่งที่แต่ละ subcommand เปลี่ยนแปลง และลำดับที่ถูกต้อง

/execute เป็นคำสั่งเดียวที่แกล้งทำเป็นภาษาสคริปต์ ความล้มเหลวเกือบทั้งหมดเกิดจากสอง subcommand ที่ฟังดูเหมือนทำสิ่งเดียวกันแต่ไม่ใช่

as เปลี่ยน "ใคร" (WHO) at เปลี่ยน "ที่ไหน" (WHERE)

  • as <target> — สลับผู้รันคำสั่ง @s ตอนนี้หมายถึงเอนทิตีนั้น ตำแหน่งไม่เคลื่อนที่
  • at <target> — สลับตำแหน่ง การหมุน และมิติ ผู้รันคำสั่งไม่เปลี่ยนแปลง

ดังนั้นสิ่งนี้จึงไม่มีประโยชน์:

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

มันรันหนึ่งครั้งต่อซอมบี้ แต่จะอยู่ที่เท้า ของคุณ เสมอ ดังนั้นมันจึงวางบล็อกซ้ำไปซ้ำมา การแก้ไขคือใช้ทั้งสอง:

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

at @s ยึดตำแหน่งใหม่กับซอมบี้ที่ as เพิ่งเลือก as … at @s เป็นการจับคู่ที่พบบ่อยที่สุดในคำสั่งทั้งหมด และการลืม at @s เป็นข้อผิดพลาดที่พบบ่อยที่สุด

ลำดับคือจากซ้ายไปขวา และมันจะสะสม

Subcommand จะทำงานตามลำดับ โดยแต่ละอันจะปรับเปลี่ยนบริบทที่อันถัดไปเห็น:

execute as @a at @s positioned ^ ^ ^3 run particle flame
  1. as @a — หนึ่งรอบต่อผู้เล่น
  2. at @s — ย้ายไปยังผู้เล่นนั้น
  3. positioned ^ ^ ^3 — 3 บล็อกข้างหน้าจากตำแหน่งที่พวกเขากำลัง มองอยู่

สลับขั้นตอนที่ 2 และ 3 และการชดเชยด้วยเครื่องหมาย caret จะวัดจากการหมุนของคุณแทนที่จะเป็นการหมุนของพวกเขา

Caret เทียบกับ Tilde

  • ~ ~ ~ — สัมพันธ์กับ ตำแหน่ง จัดแนวตามแกนโลก
  • ^ ^ ^ — สัมพันธ์กับ ทิศทางที่หันหน้า: ซ้าย, บน, หน้า

พิกัด Caret เป็นเหตุผลที่ positioned ^ ^ ^3 หมายถึง "ข้างหน้า" และ ~ ~ ~3 หมายถึง "3 บล็อกไปทางใต้" การผสมสัญลักษณ์ทั้งสองในพิกัดสามตัวเดียวกันเป็นข้อผิดพลาดทางไวยากรณ์

store คือค่าที่ส่งคืน ไม่ใช่ตัวแปร

store จับค่าที่คำสั่ง ส่งคืน — โดยปกติคือจำนวนความสำเร็จหรือค่าผลลัพธ์:

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

สองสิ่งที่คนมักเข้าใจผิด:

  • result เทียบกับ success result คือตัวเลขที่คำสั่งสร้างขึ้น; success คือ 1 หรือ 0 ว่าคำสั่งรันหรือไม่ การนับเอนทิตีต้องใช้ result
  • store มาก่อน run และใช้กับคำสั่งหลัง run ไม่ใช่กับ subcommand chain

if เทียบกับ unless short-circuits

if และ unless ทำหน้าที่กรอง — chain จะหยุดลงเมื่อการทดสอบล้มเหลว if หลาย clause คือ AND ไม่มี OR; ต้องใช้สองคำสั่งแยกกันหรือ predicate

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

สร้าง chain ทีละ subcommand โดยมีบริบทแสดงในแต่ละขั้นตอน ใน Advanced Command Builder — ซึ่งครอบคลุม data, item, loot, schedule, particle และ playsound จากฟอร์มเดียวกันด้วย

ตัวสร้างคำสั่งขั้นสูง — Execute และ Data →

คู่มือเพิ่มเติม

ดูทั้งหมด →

หัวผู้เล่นแบบกำหนดเองจัดเก็บ URL ที่อยู่ใน JSON แบบ base64 ไม่ใช่รูปภาพ

คอมโพเนนต์โปรไฟล์จะเก็บ base64 ของ {textures:{SKIN:{url:…}}} นี่คือเหตุผลที่รูปลักษณ์ของหัวผู้เล่นจะถูกกำหนดตายตัว ณ เวลาที่สร้าง และเป็นเหตุผลที่ฐานข้อมูลสามารถมีรายการได้หลายหมื่นรายการ

2026-08-01คำสั่งและข้อมูล

ชื่อผู้ใช้ Minecraft มีได้ 1-16 ตัวอักษรจากสามสิ่งนี้เท่านั้น และ UUID มีสองรูปแบบ

ตัวอักษร, ตัวเลข, ขีดล่าง ไม่มีขีดกลาง, ไม่มีจุด, ไม่มีช่องว่าง และ UUID สามารถใช้ได้ทั้งแบบมีหรือไม่มีขีดกลาง ซึ่งเป็นเหตุผลว่าทำไมการค้นหาหนึ่งถึงล้มเหลวในขณะที่อีกอันที่เหมือนกันกลับใช้งานได้

2026-08-01คำสั่งและข้อมูล

Predicate ที่มีเงื่อนไขเดียวจะไม่มี wrapper ซึ่งเป็นการเปลี่ยนรูปทรงที่แท้จริง

เงื่อนไขเดียวคือตัว object เอง ส่วนสองเงื่อนไขขึ้นไปจะถูกห่อด้วย all_of หรือ any_of พร้อมกับประเภทเงื่อนไขทั้งแปด และเหตุผลที่การกลับด้านเป็น wrapper ไม่ใช่ flag

2026-08-01คำสั่งและข้อมูล

กำลังหาเครื่องมือ Minecraft อื่นอยู่ไหม

ชุดเครื่องมือสร้าง ดู และแปลงไฟล์ที่ทำงานในเบราว์เซอร์ ฟรีทั้งหมด