Guides / Commands & Data

การร่ายมนตร์แบบกำหนดเองโดยไม่ต้องใช้ม็อด: รูปแบบการร่ายมนตร์ที่ขับเคลื่อนด้วยข้อมูล

การร่ายมนตร์กลายเป็น 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

ตัวสร้างมนตร์และลวดลายกำหนดเอง →

More guides

Browse all →

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

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