MC Toolkit

Hướng dẫn / Lệnh & dữ liệu

Phù phép tùy chỉnh không cần mod: định dạng phù phép dựa trên dữ liệu

Phù phép giờ đây là JSON datapack, nên một phù phép tùy chỉnh không cần mod. Đây là cấu trúc tệp, các thành phần hiệu ứng thực sự có tác dụng, và cách để có được nó.

Phù phép trước đây được mã hóa cứng. Giờ chúng là dữ liệu datapack, nghĩa là một phù phép tùy chỉnh thực sự — tên mới, hiệu ứng mới, đường cong chi phí mới — chỉ là một tệp JSON.

Nơi lưu trữ

data/<namespace>/enchantment/lightning_strike.json

Số ít enchantment/, giống như mọi danh mục datapack khác kể từ lần đổi tên.

Tệp tối thiểu

{
  "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"]
}

Chừng đó đã tạo ra một phù phép thực sự được tải và hiển thị trên vật phẩm. Nó chưa làm gì cả — hành vi là phần riêng — và bàn phù phép sẽ không đề xuất nó cho đến khi nó được gắn thẻ (bên dưới).

  • weight là độ hiếm tại bàn phù phép. Bản gốc dùng 10 cho phổ biến, 1 cho rất hiếm. Đây là giá trị tương đối, không phải phần trăm.
  • slots quyết định nơi phù phép hoạt động: mainhand, offhand, armor, head, v.v. Đây là trường bắt buộc: bỏ qua nó và tệp sẽ không tải được.
  • supported_items nhận một thẻ vật phẩm hoặc một danh sách. Các thẻ #minecraft:enchantable/* đã có sẵn cho những nhóm hợp lý — melee_weapon, sharp_weapon, mining, armor v.v. Không có enchantable/sword; một thẻ không tồn tại sẽ làm tệp bị lỗi.

Làm cho nó có tác dụng

effects gắn hành vi:

"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 cần biết phù phép thuộc về ai (enchanted) và hiệu ứng tác động lên ai (affected) — cả hai đều bắt buộc. run_function là lối thoát — bất cứ điều gì một hàm có thể làm, phù phép cũng có thể làm. Các loại hiệu ứng tích hợp sẵn bao gồm sát thương, đánh bật lùi, độ bền, vật phẩm rơi và thuộc tính mà không cần hàm nào cả, và chúng rẻ hơn.

requirements nhận bất kỳ vị từ nào, nên việc giới hạn theo loại của mục tiêu, thời tiết, hoặc một xác suất ngẫu nhiên chỉ là một khối JSON.

Đặt tên cho nó

description là một thành phần văn bản, nên một tên mã hóa cứng vẫn hoạt động:

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

nhưng một khóa translate cộng với tệp ngôn ngữ trong resource pack mới là thứ khiến nó hiển thị đúng cho người chơi ở các ngôn ngữ khác — cùng lý do trang này lấy thuật ngữ trò chơi từ chính bản dịch của Mojang.

Làm cho nó có thể đạt được

Ba con đường, và bạn thường muốn nhiều hơn một:

  • Bàn phù phép — một khi weight và đường cong chi phí được đặt và phù phép nằm trong #minecraft:in_enchanting_table.
  • Bảng chiến lợi phẩm — enchant_randomly với phù phép của bạn được liệt kê, hoặc enchant_with_levels nếu nó nên cạnh tranh về chi phí.
  • Dân làng trao đổi — một Sách được phù phép với phù phép của bạn trong vật phẩm trao đổi.

Thêm nó vào #minecraft:in_enchanting_table là thứ khiến bàn phù phép đề xuất nó; thẻ này dễ bị quên và tạo ra một phù phép tồn tại nhưng không bao giờ xuất hiện.

Tạo tệp JSON phù phép và bản đối chiếu armor-trim của nó, với các thẻ và ô được đặt, trong Custom Enchantment & Trim Builder.

Trình tạo phù phép và trang trí giáp →

Hướng dẫn khác

Xem tất cả →