การร่ายมนตร์แบบกำหนดเองโดยไม่ต้องใช้ม็อด: รูปแบบการร่ายมนตร์ที่ขับเคลื่อนด้วยข้อมูล
การร่ายมนตร์กลายเป็น JSON ของดาต้าแพ็ค ทำให้การร่ายมนตร์แบบกำหนดเองไม่จำเป็นต้องใช้ม็อด นี่คือรูปแบบไฟล์ ส่วนประกอบของเอฟเฟกต์ที่ทำงานจริง และวิธีทำให้สามารถหาได้
การร่ายมนตร์เคยถูกฮาร์ดโค้ดไว้ แต่ตอนนี้เป็นข้อมูลดาต้าแพ็ค ซึ่งหมายความว่าการร่ายมนตร์แบบกำหนดเองอย่างแท้จริง — ชื่อใหม่ เอฟเฟกต์ใหม่ เส้นโค้งต้นทุนใหม่ — เป็นไฟล์ JSON
ที่อยู่ของมัน
data/<namespace>/enchantment/lightning_strike.json
enchantment/ แบบเอกพจน์ เช่นเดียวกับหมวดหมู่ดาต้าแพ็คอื่นๆ ตั้งแต่การเปลี่ยนชื่อ
ไฟล์ขั้นต่ำ
{
"description": { "translate": "enchantment.my_pack.lightning_strike" },
"supported_items": "#minecraft:enchantable/sword",
"weight": 2,
"max_level": 3,
"min_cost": { "base": 10, "per_level_above_first": 10 },
"max_cost": { "base": 50, "per_level_above_first": 10 },
"anvil_cost": 4,
"slots": ["mainhand"]
}
แค่นั้นก็ให้การร่ายมนตร์จริงที่ปรากฏบนโต๊ะและแสดงบนไอเทมได้แล้ว แต่ยังไม่ทำอะไรเลย — พฤติกรรมแยกต่างหาก
weightคือความหายากที่โต๊ะร่ายมนตร์ (Enchanting Table) ของวานิลลาใช้ 10 สำหรับทั่วไป และ 1 สำหรับหายากมาก เป็นค่าสัมพัทธ์ ไม่ใช่เปอร์เซ็นต์slotsตัดสินใจว่าการร่ายมนตร์จะทำงานที่ไหน:mainhand,offhand,armor,headและอื่นๆ หากละเว้น การร่ายมนตร์จะไม่ถูกนำไปใช้เลยsupported_itemsใช้แท็กไอเทมหรือรายการ แท็ก#minecraft:enchantable/*มีอยู่แล้วสำหรับกลุ่มที่เหมาะสม
ทำให้มันทำงาน
effects แนบพฤติกรรม:
"effects": {
"minecraft:post_attack": [{
"effect": { "type": "minecraft:run_function", "function": "my_pack:strike" },
"requirements": { "condition": "minecraft:random_chance", "chance": 0.25 }
}]
}
run_function คือทางออกฉุกเฉิน — สิ่งใดก็ตามที่ฟังก์ชันทำได้ การร่ายมนตร์ก็ทำได้ ประเภทเอฟเฟกต์ในตัวครอบคลุมความเสียหาย การตีกระดอน (Knockback) ความทนทาน การดรอปไอเทม และคุณสมบัติโดยไม่จำเป็นต้องใช้ฟังก์ชันเลย และมีราคาถูกกว่า
requirements ใช้เงื่อนไขใดก็ได้ ดังนั้นการกำหนดเงื่อนไขตามประเภทของเป้ายิง (Target) สภาพอากาศ หรือโอกาสสุ่มจึงเป็น JSON เพียงบล็อกเดียว
การตั้งชื่อ
description เป็นส่วนประกอบข้อความ ดังนั้นชื่อที่ฮาร์ดโค้ดจึงใช้ได้:
"description": { "text": "Lightning Strike", "color": "gold" }
แต่คีย์ translate บวกกับไฟล์ภาษาในชุดทรัพยากรคือสิ่งที่ทำให้ผู้เล่นในภาษาอื่นอ่านได้อย่างถูกต้อง — ด้วยเหตุผลเดียวกันกับที่เว็บไซต์นี้ใช้คำศัพท์ในเกมจากการแปลของ Mojang เอง
ทำให้สามารถหาได้
มีสามเส้นทาง และโดยปกติคุณต้องการมากกว่าหนึ่ง:
- โต๊ะร่ายมนตร์ (Enchanting Table) — อัตโนมัติเมื่อตั้งค่า
weightและเส้นโค้งต้นทุนแล้ว - ตารางของดรอป (Loot tables) —
enchant_randomlyโดยมีการร่ายมนตร์ของคุณอยู่ในรายการ หรือenchant_with_levelsหากควรแข่งขันด้านต้นทุน - ชาวบ้านซื้อขาย (Villager trades) — หนังสือร่ายมนตร์ (Enchanted Book) ที่มีการร่ายมนตร์ของคุณอยู่ในไอเทมของการซื้อขาย
การเพิ่มลงใน #minecraft:in_enchanting_table คือสิ่งที่ทำให้โต๊ะเสนอการร่ายมนตร์นั้นเลย แท็กนี้ง่ายที่จะลืมและทำให้เกิดการร่ายมนตร์ที่มีอยู่แต่ไม่เคยปรากฏ
สร้าง JSON การร่ายมนตร์และคู่ของมันสำหรับขอบเกราะ (armor-trim) พร้อมกับตั้งค่าแท็กและช่องใน Custom Enchantment & Trim Builder