모드 없이 나만의 마법 부여: 데이터 기반 마법 부여 형식
마법 부여가 데이터팩 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는 마법 부여대에서의 희귀도입니다. 바닐라에서는 일반적인 경우 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와 비용 곡선이 설정되면 자동으로 가능합니다. - 전리품 테이블 — 마법 부여가 나열된
enchant_randomly또는 비용 경쟁을 해야 한다면enchant_with_levels. - 주민이 교환함 (Villager trades) — 거래 아이템에 마법이 부여된 책 (Enchanted Book)이 포함된 마법이 부여된 책 (Enchanted Book).
#minecraft:in_enchanting_table에 추가해야 마법 부여대가 이를 제공합니다. 이 태그는 잊어버리기 쉬우며, 존재하지만 절대 나타나지 않는 마법 부여를 생성합니다.
커스텀 마법 부여 및 장식 빌더에서 태그와 슬롯이 설정된 마법 부여 JSON과 그 방어 (Armor) 장식 대응물을 만드세요.