Przewodnik po poleceniach Minecraft: Jak korzystać z komponentu damage_resistant
Ta prosta mechanika pozwala tworzyć niezniszczalne relikwie, łupy odporne na lawę lub zbroję, która opiera się tylko niektórym atakom. Magia polega na prawidłowym używaniu SNBT i oznaczaniu typów obrażeń. Gdy już wiesz, jak z niego korzystać, będziesz mieć pełną kontrolę nad przetrwaniem przedmiotów i selektywną odpornością.

Co to jest damage_resistant komponent
Komponent damage_resistant sprawia, że przedmiot ignoruje określone typy obrażeń. Działa to na dwa sposoby. Po pierwsze, jeśli przedmiot zostanie upuszczony na ziemię (w formie bytu), staje się odporny na określone rodzaje obrażeń - takie jak ogień, eksplozje lub spadające kowadła. Po drugie, jeśli przedmiot jest wyposażony przez gracza lub moba, nie zostanie uszkodzony ani zdegradowany, gdy noszący go otrzyma obrażenia tego typu. To sprawia, że jest niezwykle przydatny do przechowywania narzędzi w trudnych warunkach lub projektowania sprzętu przygodowego, który wytrzyma tylko w określonych warunkach. Komponent używa jednego klucza: types, który jest tagiem odnoszącym się do jednego lub więcej typów obrażeń.
Jak sformatować strukturę SNBT
Komponent damage_resistant jest kompaktowy i wydajny. Potrzebuje tylko jednego typu klucza. Ten klucz określa, na jakie rodzaje obrażeń przedmiot jest odporny. Ale oto haczyk: Minecraft nie akceptuje tutaj surowych nazw typów obrażeń. Musisz użyć znacznika uszkodzenia, który jest specjalnym identyfikatorem zaczynającym się od .
Nie możesz napisać bezpośrednio "minecraft:lava" ani "minecraft:fall". Spowoduje to złamanie polecenia. Zamiast tego musisz napisać coś takiego:
typy:"#minecraft:is_fire"

Odnosi się to do tagu, który zawiera wiele typów obrażeń. Na przykład minecraft:is_fire zawiera lawę, bloki ognia i obrażenia oparte na płomieniach.
Oto pseudo-struktura wielokrotnego użytku:

Zastąp <item> dowolnym identyfikatorem elementu (np. netherite_sword, diamond_helmet), a <damage_type_tag> jedną z prawidłowych nazw tagów wymienionych poniżej.
Wbudowane znaczniki obrażeń w grze Minecraft
Oto waniliowe tagi dostępne w grze, których możesz używać bez konieczności posiadania pakietów danych:
- #minecraft:is_fire — obrażenia od ognia (lawa, ogień, ogniste pociski)
- #minecraft:is_projectile — strzały, trójzęby, śnieżki, ogniste kule
- #minecraft:is_fall — obrażenia od upadku (od upuszczenia)
- #minecraft:is_lightning — uderzenia piorunów
- #minecraft:is_explosion — TNT, pnącza, eksplozje łóżek, kotwice odrodzenia
- #minecraft:bypasses_shield — obrażenia, które ignorują tarcze
- #minecraft:ignores_invulnerability — obrażenia, które wpływają nawet na istoty niewrażliwe (np. obrażenia próżniowe)
- #minecraft:bypasses_armor — obrażenia przebijające pancerz
- #minecraft:in_fire — stojąc w bloku przeciwpożarowym
- #minecraft:not_drowning — wyklucza utonięcie (używane dla pewnej logiki)
Są one zdefiniowane przez sam Minecraft i mogą być używane w dowolnych typach:"#..." linia.

Gdzie znaleźć lub zdefiniować więcej tagów
Jeśli wbudowane tagi nie spełniają Twoich potrzeb, możesz zdefiniować własne tagi w pakiecie danych. Niestandardowe znaczniki typów uszkodzeń znajdują się w:
dane/<your_namespace>/tagi/damage_type/<tag_name>.json
Przykładowa zawartość dla lava_only.json:
{
"values": ["minecraft:lava"]
}
Następnie możesz odwołać się do niego w następujący sposób:
typy:"#your_namespacelava_only"
Daje to całkowitą elastyczność - możesz celować tylko w określone typy obrażeń, takie jak "minecraft:fall", "minecraft:cactus", "minecraft:anvil" itp., umieszczając je we własnym tagu.
Jak korzystać z tagów uszkodzeń
Pole typów akceptuje tylko odwołania do tagów. W związku z tym musisz:
1. Użyj istniejących tagów, takich jak #minecraft:is_fire lub #minecraft:in_fire
2. Utwórz własne tagi w pakiecie danych, takim jak #my_pack:fall_damage lub #custom:anvil_crush
Następnie użyj tych tagów w komponencie. Jeśli przedmiot zostanie uszkodzony, który nie jest uwzględniony w tym znaczniku, zachowuje się normalnie. Jest to świetne rozwiązanie do tworzenia selektywnej odporności zamiast całkowitej niezniszczalności.

Przykłady i zaawansowane zastosowanie
Wyobraź sobie, że budujesz loch wulkanu, w którym gracze mogą odzyskać łupy tylko wtedy, gdy nie spłoną w lawie. Za pomocą tego komponentu możesz odrodzić sprzęt nagrody i #minecraft:is_fire, aby przetrwał zagrożenia:
/give @p book[minecraft:damage_resistant={types:"#minecraft:is_fire"}]
Lub stwórz buty, które nigdy nie zużywają się od upadku, oznaczając je odpornością na obrażenia od upadku:
/give @p leather_boots[minecraft:damage_resistant={types:"#minecraft:is_fall"}]
Chcesz stworzyć zbroję, która chroni przed piorunami, ale nie przed niczym więcej? Oto hełm, który jest odporny tylko na uderzenia piorunów:
/give @p iron_helmet[minecraft:damage_resistant={types:"#minecraft:is_lightning"}]
Możesz także stworzyć tarcze, które pozostaną nieskazitelne podczas wybuchowych bitew:
/daj @p tarczę[minecraft:damage_resistant={types:"#minecraft:is_explosion"}]
A jeśli chodzi o magiczne scenariusze, oto złoty miecz, który ignoruje utratę wytrzymałości spowodowaną obrażeniami opartymi na miksturach lub magicznymi:
/give @p golden_sword[minecraft:damage_resistant={types:"#minecraft:is_magic"}]
Te przykłady pokazują, jak łatwo jest chronić sprzęt przed określonymi typami uszkodzeń za pomocą samej konsoli i wbudowanych znaczników. Nie jest wymagany pakiet danych.

Komponent damage_resistant może być mały, ale jest niezwykle wszechstronny. Połącz to z tagami, niestandardowymi typami obrażeń i projektem przygód, a otrzymasz narzędzia do budowania naprawdę niezniszczalnego sprzętu - dokładnie wtedy, gdy chcesz.
