모드 없이 만드는 커스텀 마법 부여: 데이터 기반 마법 부여 형식
마법 부여가 데이터팩 JSON이 되면서, 커스텀 마법 부여에 모드가 필요 없어졌습니다. 파일 구조와 실제로 작동하는 효과 구성 요소, 그리고 획득 가능하게 만드는 방법을 알아봅니다.
마법 부여는 예전에는 하드코딩되어 있었습니다. 이제는 데이터팩 데이터이므로, 진정한 커스텀 마법 부여 — 새로운 이름, 새로운 효과, 새로운 비용 곡선 — 는 JSON 파일 하나입니다.
파일 위치
data/<namespace>/enchantment/lightning_strike.json
이름이 바뀐 이후 다른 모든 데이터팩 범주와 마찬가지로 단수형 enchantment/입니다.
최소 파일
{
"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 키와 리소스 팩의 언어 파일이 있어야 다른 언어의 플레이어에게 올바르게 읽힙니다 — 이 사이트가 게임 용어를 Mojang 자체 번역에서 가져오는 것과 같은 이유입니다.
획득 가능하게 만들기
세 가지 경로가 있으며, 보통 하나 이상을 원할 것입니다:
- 마법 부여대 —
weight과 비용 곡선이 설정되고 마법 부여가#minecraft:in_enchanting_table에 들어가야 합니다. - 전리품 표 — 마법 부여를 나열한
enchant_randomly, 또는 비용으로 경쟁해야 한다면enchant_with_levels. - 주민이 교환함 — 거래 아이템에 마법 부여가 들어간 마법이 부여된 책.
#minecraft:in_enchanting_table에 추가하는 것이 마법 부여대가 그것을 제안하게 만드는 방법입니다; 태그는 잊기 쉬우며, 존재하지만 절대 나타나지 않는 마법 부여를 만들어냅니다.
태그와 슬롯이 설정된 마법 부여 JSON과 그 방어구 장식 대응물을 커스텀 마법 부여 및 장식 빌더에서 만들어 보세요.