Guides / Commands & Data

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.

  • weight to rzadkość na Stole do zaklinania. W wersji waniliowej 10 oznacza pospolite, 1 bardzo rzadkie. Jest to wartość względna, nie procentowa.
  • slots decyduje, gdzie zaklęcie jest aktywne: mainhand, offhand, armor, head i tak dalej. Pomiń to, a zaklęcie nigdy nie zostanie zastosowane.
  • supported_items przyjmuje 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 weight i krzywej kosztów.
  • Tabele łupówenchant_randomly z twoim zaklęciem na liście, lub enchant_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.

Własne zaklęcia i zdobienia →

More guides

Browse all →

Szukasz innych narzędzi do Minecrafta?

Zestaw generatorów, podglądów i konwerterów działających w przeglądarce — wszystkie za darmo.