Niestandardowe zaklęcia bez modów: format zaklęć oparty na danych
Zaklęcia stały się plikami JSON w datapackach, więc niestandardowe zaklęcie nie wymaga już modów. Oto struktura pliku, komponenty efektów, które faktycznie coś robią, oraz sposób, w jaki można je zdobyć.
Zaklęcia były kiedyś zakodowane na stałe. Teraz są danymi w datapackach, co oznacza, że prawdziwie niestandardowe zaklęcie — nowa nazwa, nowy efekt, nowa krzywa kosztów — to plik JSON.
Gdzie się znajduje
data/<namespace>/enchantment/lightning_strike.json
Pojedynczy enchantment/, jak każda inna kategoria datapacków od czasu zmiany nazwy.
Minimalny plik
{
"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"]
}
Tyle wystarczy, aby uzyskać prawdziwe zaklęcie, które pojawia się na stole i na przedmiocie. Jeszcze nic nie robi — zachowanie jest oddzielne.
weightto rzadkość na Stole do zaklinania. W wersji waniliowej 10 oznacza pospolite, 1 bardzo rzadkie. Jest to wartość względna, nie procentowa.slotsdecyduje, gdzie zaklęcie jest aktywne:mainhand,offhand,armor,headi tak dalej. Pomiń to, a zaklęcie nigdy nie zostanie zastosowane.supported_itemsprzyjmuje tag przedmiotu lub listę. Tagi#minecraft:enchantable/*już istnieją dla sensownych grup.
Sprawianie, że coś robi
effects dołącza zachowanie:
"effects": {
"minecraft:post_attack": [{
"effect": { "type": "minecraft:run_function", "function": "my_pack:strike" },
"requirements": { "condition": "minecraft:random_chance", "chance": 0.25 }
}]
}
run_function to awaryjne wyjście — wszystko, co może zrobić funkcja, może zrobić zaklęcie. Wbudowane typy efektów obejmują obrażenia, Odrzut, wytrzymałość, upuszczanie przedmiotów i atrybuty, bez potrzeby używania funkcji, i są tańsze.
requirements przyjmuje dowolny predykat, więc warunkowanie na typie celu, pogodzie lub losowej szansie to jeden blok JSON.
Nazywanie go
description to komponent tekstowy, więc zakodowana na stałe nazwa działa:
"description": { "text": "Lightning Strike", "color": "gold" }
ale klucz translate plus plik językowy w paczce zasobów sprawia, że jest on poprawnie czytany przez graczy w innych językach — z tego samego powodu ta strona pobiera terminy z gry z własnych tłumaczeń Mojang.
Uczynienie go możliwym do zdobycia
Trzy drogi, a zazwyczaj chcesz więcej niż jedną:
- Stół do zaklinania — automatycznie po ustawieniu
weighti krzywej kosztów. - Tabele łupów —
enchant_randomlyz twoim zaklęciem na liście, lubenchant_with_levels, jeśli ma konkurować pod względem kosztów. - Osadnik handluje — Zaklęta książka z twoim zaklęciem w przedmiocie handlu.
Dodanie go do #minecraft:in_enchanting_table sprawia, że stół w ogóle je oferuje; łatwo zapomnieć o tagu, co powoduje, że zaklęcie istnieje, ale nigdy się nie pojawia.
Stwórz JSON zaklęcia i jego odpowiednik do ozdób zbroi, z ustawionymi tagami i slotami, w Kreatorze Niestandardowych Zaklęć i Ozdób.