สูตรคราฟต์แบบกำหนดเอง: แบบมีรูปร่าง แบบไม่มีรูปร่าง และการใช้แท็กแทนการไล่ระบุไม้ทุกชนิด
สูตรคราฟต์แบบมีรูปร่างที่คราฟต์ไม่ได้มักเกิดจากคีย์ผิดพลาด บทความนี้อธิบายโครงสร้าง JSON สิ่งที่เกมตัดออกจากแพตเทิร์นให้อัตโนมัติ เคล็ดลับแท็กที่ย่อสิบสามสูตรให้เหลือสูตรเดียว และวิธีทดสอบ
สูตรคราฟต์เป็นหนึ่งในไฟล์ดาต้าแพ็กที่เขียนง่ายที่สุด และก็เป็นหนึ่งในไฟล์ที่พลาดแบบแนบเนียนได้ง่ายที่สุดเช่นกัน เพราะสูตรที่พังจะล้มเหลวแบบเงียบ ๆ — ตารางคราฟต์ก็แค่ไม่ทำงานเท่านั้น
แบบมีรูปร่าง (Shaped)
{
"type": "minecraft:crafting_shaped",
"pattern": [ "SSS", "S S", "SSS" ],
"key": { "S": "minecraft:stone" },
"result": { "id": "minecraft:furnace", "count": 1 }
}
สามกฎที่ทำให้สูตรส่วนใหญ่พัง:
- ทุกตัวอักษรใน
patternต้องมีอยู่ในkeyยกเว้นเว้นวรรค ซึ่งหมายถึงช่องว่าง - แพตเทิร์นเป็นแบบสัมพัทธ์ ไม่ใช่แบบสัมบูรณ์ เกมจะตัดแถวและคอลัมน์ว่างที่ขอบออกให้ ดังนั้นแพตเทิร์น 2×2 ที่เติมเว้นวรรคให้เป็น 3×3 ก็ยังคราฟต์ได้ทุกตำแหน่งในตาราง — แต่การเขียนเป็นสองแถวแถวละสองช่องจะชัดเจนกว่า
- ทุกแถวต้องมีความยาวเท่ากัน
["SS", "S"]ไม่ถูกต้อง
แบบไม่มีรูปร่าง (Shapeless)
{
"type": "minecraft:crafting_shapeless",
"ingredients": ["minecraft:stone", "minecraft:coal"],
"result": { "id": "minecraft:torch", "count": 4 }
}
ลำดับไม่สำคัญ ของซ้ำต้องระบุแยกทีละรายการ — ถ่านหินสองชิ้นก็คือสองรายการ
แท็กย่อทั้งตระกูลให้เหลือสูตรเดียว
แทนที่จะเขียนสิบสามสูตรสำหรับไม้ plank สิบสามชนิด:
"key": { "P": "#minecraft:planks" }
เครื่องหมาย # บ่งบอกว่าเป็นแท็กไอเท็ม #minecraft:planks, #minecraft:logs, #minecraft:wool, #minecraft:stone_crafting_materials และอีกมากมายมีอยู่แล้ว การกำหนดแท็กของคุณเองใช้ไฟล์เดียว:
data/<namespace>/tags/item/my_metals.json
{ "values": ["minecraft:iron_ingot", "minecraft:gold_ingot"] }
สังเกต tags/item/ — เอกพจน์ item, พหูพจน์ tags ความไม่สอดคล้องนี้มีอยู่จริง
ผลลัพธ์ที่มีคอมโพเนนต์
"result": {
"id": "minecraft:diamond_sword",
"count": 1,
"components": { "minecraft:custom_name": "Excalibur", "minecraft:enchantments": { "sharpness": 5 } }
}
นี่คือวิธีทำให้ไอเท็มกำหนดเองคราฟต์ได้โดยไม่ต้องใช้มอด
ประเภทสูตรอื่น ๆ
crafting_shaped และ crafting_shapeless เป็นเพียงสองในหลายประเภท ยังมี: smelting, blasting, smoking, campfire_cooking, stonecutting, smithing_transform และ smithing_trim ประเภทการปรุงอาหารใช้ cookingtime และ experience ส่วนการตัดหินใช้ส่วนผสมเดียวและจำนวนหนึ่ง
การทดสอบ
/reload แล้วลองใช้ตารางคราฟต์ ถ้าไม่มีอะไรเกิดขึ้น:
- ตรวจสอบล็อกของเกม (
latest.log) หลัง/reload— JSON ที่ผิดรูปแบบจะถูกรายงานที่นั่น ไม่ใช่ในแชท /recipe give @s <namespace>:<recipe>— ถ้าไอดีสูตรผิด คำสั่งนี้จะ error ซึ่งบอกคุณว่าไฟล์ไม่ถูกอ่านเลย- การปลดล็อกสูตรแยกจากตัวสูตรที่มีอยู่ สูตรจะทำงานในตารางคราฟต์แม้จะไม่ปรากฏในหนังสือสูตรเลยก็ตาม
สร้าง JSON ของสูตร เพรดิเคต และชุดไอเท็มด้วยคีย์และแท็กที่ตรวจสอบแล้วได้ที่ Datapack JSON Builders