คำสั่งไม่ทำงาน แก้ยังไง
เกมบอกอยู่แล้วว่าติดตรงไหน แค่บอกเป็นภาษาอังกฤษและสั้นมากจนดูเหมือนไม่ได้บอกอะไร หน้านี้แปลข้อความที่เจอบ่อยและบอกว่าแต่ละแบบมักมาจากอะไร
เช็คสามอย่างนี้ก่อน
ปัญหาส่วนใหญ่จบตรงนี้ ก่อนจะไปไล่ดูไวยากรณ์ทีละตัวอักษร
- เปิด cheats แล้วหรือยัง — ถ้ายัง คำสั่งเกือบทั้งหมดจะใช้ไม่ได้เลย ดูวิธีเปิด
- เอดิชันตรงกันไหม — คำสั่งจากคู่มือ Java ส่วนใหญ่ใช้บน Bedrock ไม่ได้ตรงๆ และกลับกัน
- เวอร์ชันตรงกันไหม — ไวยากรณ์ของไอเทมเปลี่ยนไปสองครั้งใหญ่ คำสั่งจากคลิปเก่าจึงใช้ไม่ได้แม้จะเป็น Java เหมือนกัน อ่านรายละเอียด
ข้อความที่เกมขึ้นให้ แปลว่าอะไร
| ข้อความ | แปลว่า | มักมาจาก |
|---|---|---|
Unknown or incomplete command |
ไม่รู้จักคำสั่งนี้ หรือพิมพ์ยังไม่ครบ | สะกดชื่อคำสั่งผิด หรือคำสั่งนั้นไม่มีในเอดิชันนี้ |
Expected whitespace to end one argument |
ตรงนี้ควรจบพารามิเตอร์แล้ว แต่ยังมีตัวอักษรต่อ | ลืมเว้นวรรค หรือมีวงเล็บ/เครื่องหมายคำพูดเกินมาหนึ่งตัว |
Incorrect argument for command |
ค่าที่ใส่ผิดชนิด | ใส่ตัวอักษรในช่องที่ต้องการตัวเลข หรือใส่รหัสไอเทมที่ไม่มีจริง |
No entity was found |
ไม่มีเป้าหมายไหนตรงกับที่ระบุ | เงื่อนไขในวงเล็บเหลี่ยมแคบเกินไป หรือไม่มีม็อบชนิดนั้นอยู่ใกล้ |
You do not have permission to use this command |
ไม่มีสิทธิ์ใช้คำสั่งนี้ | ยังไม่ได้เปิด cheats หรือไม่ได้เป็น operator บนเซิร์ฟเวอร์ |
That position is not loaded |
พื้นที่ตรงนั้นยังไม่ได้ถูกโหลด | พิกัดอยู่ไกลเกินไปจากผู้เล่นทุกคน |
รันผ่านแต่ไม่มีอะไรเกิดขึ้น
กรณีนี้ยากกว่า เพราะเกมไม่ได้บอกอะไรเลย แปลว่าคำสั่งถูกไวยากรณ์ แต่ไปทำงานกับ "ไม่มีใคร" หรือ "ผิดที่"
| น่าจะเป็นเพราะ | วิธีพิสูจน์ |
|---|---|
| ตัวเลือกเป้าหมายไม่โดนใคร | เปลี่ยนคำสั่งเป็น say ชั่วคราวโดยใช้เป้าหมายเดิม ถ้าเงียบแปลว่าเป้าหมายไม่มีจริง |
| พิกัดอ้างอิงผิดจุด | ลองใส่พิกัดตัวเลขตายตัวแทน ~ ถ้าใช้ได้แสดงว่าปัญหาอยู่ที่จุดอ้างอิง |
| คอมมานด์บล็อกยังไม่ได้ทำงานเลย | ใส่ say ทดสอบ ไว้ในบล็อกก่อน ถ้าไม่มีข้อความขึ้น แปลว่าปัญหาอยู่ที่การตั้งค่าบล็อก ไม่ใช่ที่คำสั่ง |
| เงื่อนไข if ไม่เป็นจริง | ถอดส่วน if ออกชั่วคราว ถ้าคำสั่งทำงาน แปลว่าเงื่อนไขคือตัวปัญหา |
วิธีไล่หาสาเหตุอย่างเป็นระบบ
แทนที่จะจ้องคำสั่งยาวๆ ทั้งบรรทัด ให้ตัดออกทีละส่วนจนกว่าจะเหลือส่วนที่สั้นที่สุดที่ยังพัง วิธีนี้หาต้นเหตุได้เร็วกว่ามาก
- ลองคำสั่งแบบสั้นที่สุดก่อน เช่น /give @s minecraft:stone 1 ถ้าอันนี้ยังไม่ผ่าน ปัญหาไม่ได้อยู่ที่ตัวเลือกขั้นสูง
- ใส่ส่วนที่ตัดออกกลับเข้าไปทีละส่วน แล้วรันทุกครั้ง
- ส่วนที่ใส่กลับแล้วพังทันที คือส่วนที่มีปัญหา
- เอาส่วนนั้นมาสร้างใหม่ด้วยเครื่องมือของเรา แล้วเทียบกับที่พิมพ์เอง
ในแชทของ Java คำสั่งจะเปลี่ยนสีขณะพิมพ์ ส่วนที่กลายเป็นสีแดงคือจุดที่เกมอ่านไม่เข้าใจ ใช้เป็นตัวชี้ตำแหน่งได้เลยโดยไม่ต้องกด Enter
ยังแก้ไม่ได้
ถ้าคำสั่งที่เครื่องมือของเราสร้างให้ใช้ไม่ได้จริงในเกม นั่นคือข้อผิดพลาดของเรา ไม่ใช่ของคุณ ช่วยแจ้งเข้ามาพร้อมบอกเอดิชันกับเวอร์ชันที่ใช้ เราจะได้ตามแก้ได้ตรงจุด
คู่มืออื่นที่น่าอ่านต่อ
- พื้นฐานคำสั่ง Minecraft — เริ่มจากศูนย์: เปิด cheats ยังไง พิมพ์คำสั่งที่ไหนได้บ้าง และรู้จักตัวเลือกเป้าหมายกับพิกัดแบบพอใช้งานได้
- ตัวเลือกเป้าหมายแบบละเอียด — เจาะลึกเงื่อนไขในวงเล็บเหลี่ยม ตั้งแต่ type และ distance ไปจนถึง limit กับ sort และวิธีเช็คว่าทำไมคำสั่งไม่โดนใครเลย
- พิกัด: ตัวเลข, ~ และ ^ — ทำไม ~ กับ ^ ถึงผสมกันไม่ได้ ทำไมบล็อกไปโผล่ผิดที่ และวิธีเลือกใช้พิกัดแต่ละแบบให้ถูกงาน
- คอมมานด์บล็อก — เอาคำสั่งที่สร้างไว้ไปรันอัตโนมัติ ทั้งแบบกดครั้งเดียว แบบวนซ้ำ และแบบต่อกันเป็นลูกโซ่
- ทำไมคำสั่ง give ของเวอร์ชันเก่าใช้ไม่ได้ — NBT แบบเก่า, component แบบ 1.20.5 และ component แบบ 1.21.5 ต่างกันตรงไหน เทียบให้ดูจากคำสั่งที่สร้างจริง
- ระบบคะแนน scoreboard เบื้องต้น — สร้าง objective ให้เกมนับคะแนนเอง หรือนับเองจากคอมมานด์บล็อก แล้วเอาคะแนนไปใช้เป็นเงื่อนไขของคำสั่งอื่น
- คำสั่ง execute — คำสั่งที่ทรงพลังที่สุดใน Minecraft อธิบายทีละส่วน ว่า as กับ at ต่างกันยังไง และทำไมสลับลำดับแล้วผลเปลี่ยน