MC Toolkit

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

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

มนตร์กลายเป็นข้อมูล datapack JSON ดังนั้นมนตร์กำหนดเองจึงไม่ต้องใช้มอด นี่คือรูปร่างไฟล์ คอมโพเนนต์เอฟเฟกต์ที่ทำงานได้จริง และวิธีทำให้ได้มา

มนตร์เคยถูกฮาร์ดโค้ดไว้ ตอนนี้มันเป็นข้อมูล datapack ซึ่งหมายความว่ามนตร์กำหนดเองจริง ๆ — ชื่อใหม่ เอฟเฟกต์ใหม่ เส้นโค้งราคาใหม่ — คือไฟล์ JSON

อยู่ที่ไหน

data/<namespace>/enchantment/lightning_strike.json

เอกพจน์ enchantment/ เหมือนกับหมวดหมู่ datapack อื่น ๆ ทั้งหมดตั้งแต่การเปลี่ยนชื่อ

ไฟล์ขั้นต่ำ

{
  "description": { "translate": "enchantment.my_pack.lightning_strike" },
  "supported_items": "#minecraft:enchantable/melee_weapon",
  "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 คือความหายากที่โต๊ะร่ายมนตร์ วานิลลาใช้ 10 สำหรับธรรมดา 1 สำหรับหายากมาก มันเป็นค่าสัมพัทธ์ ไม่ใช่เปอร์เซ็นต์
  • slots ตัดสินใจว่ามนตร์ทำงานที่ไหน: mainhand, offhand, armor, head และอื่น ๆ มันจำเป็น: ละเว้นแล้วไฟล์จะโหลดไม่สำเร็จ
  • supported_items รับแท็กไอเทมหรือรายการ แท็ก #minecraft:enchantable/* มีอยู่แล้วสำหรับกลุ่มที่สมเหตุสมผล — melee_weapon, sharp_weapon, mining, armor และอื่น ๆ ไม่มี enchantable/sword; แท็กที่ไม่มีอยู่จะทำให้ไฟล์ล้มเหลว

ทำให้มันทำอะไรบางอย่าง

effects แนบพฤติกรรม:

"effects": {
  "minecraft:post_attack": [{
    "enchanted": "attacker",
    "affected": "victim",
    "effect": { "type": "minecraft:run_function", "function": "my_pack:strike" },
    "requirements": { "condition": "minecraft:random_chance", "chance": 0.25 }
  }]
}

post_attack ต้องรู้ว่ามนตร์เป็นของใคร (enchanted) และเอฟเฟกต์ตกกับใคร (affected) — ทั้งคู่จำเป็น run_function คือทางออกฉุกเฉิน — อะไรก็ตามที่ฟังก์ชันทำได้ มนตร์ก็ทำได้ ประเภทเอฟเฟกต์ในตัวครอบคลุมความเสียหาย การตีกระดอน ความทนทาน ไอเทมดรอป และแอตทริบิวต์โดยไม่ต้องใช้ฟังก์ชันเลย และมันถูกกว่า

requirements รับเพรดิเคตใด ๆ ดังนั้นการกั้นด้วยประเภทของเป้าหมาย สภาพอากาศ หรือโอกาสสุ่มก็เป็น JSON บล็อกเดียว

ตั้งชื่อมัน

description เป็นคอมโพเนนต์ข้อความ ดังนั้นชื่อฮาร์ดโค้ดก็ใช้ได้:

"description": { "text": "Lightning Strike", "color": "gold" }

แต่คีย์ translate บวกไฟล์ภาษใน resource pack คือสิ่งที่ทำให้มันอ่านถูกต้องสำหรับผู้เล่นในภาษาอื่น — เหตุผลเดียวกับที่ไซต์นี้ใช้คำศัพท์เกมจากคำแปลของ Mojang เอง

ทำให้ได้มา

สามเส้นทาง และปกติคุณอยากได้มากกว่าหนึ่ง:

  • โต๊ะร่ายมนตร์ — เมื่อตั้ง weight และเส้นโค้งราคาแล้ว และมนตร์อยู่ใน #minecraft:in_enchanting_table
  • ตารางดรอป — enchant_randomly พร้อมมนตร์ของคุณในรายการ หรือ enchant_with_levels ถ้ามันควรแข่งขันด้านราคา
  • ชาวบ้านซื้อขาย — หนังสือร่ายมนตร์ที่มีมนตร์ของคุณในไอเทมของการซื้อขาย

การเพิ่มมันใน #minecraft:in_enchanting_table คือสิ่งที่ทำให้โต๊ะเสนอมันเลย; แท็กนี้ลืมง่ายและสร้างมนตร์ที่มีอยู่แต่ไม่เคยปรากฏ

สร้าง JSON มนตร์และคู่หู armor-trim ของมัน พร้อมแท็กและสล็อตที่ตั้งไว้ ใน Custom Enchantment & Trim Builder

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

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

ดูทั้งหมด →