Przewodnik po poleceniach Minecraft: Jak używać atrybutów i tagów do kontrolowania stanów jednostek i logiki
W Minecrafcie świat nie składa się tylko z klocków - jest również zbudowany z logiki. To jest dokładnie to, do czego są zbudowane polecenia /attribute i /tag. Dzięki nim możesz dostroić siłę, szybkość i zdrowie każdego stworzenia oraz kontrolować, jakie wydarzenia dzieją się z kim i kiedy. Te polecenia mogą wydawać się narzędziami działającymi w tle, ale są one podstawą każdego inteligentnego zadania, walki z bossem i niestandardowej mechaniki.
/atrybut
Polecenie /attribute zmienia sposób działania jednostki, dostosowując jej podstawowe statystyki. Nie są to tymczasowe efekty, takie jak mikstury – kiedy ustawiasz wartości podstawowe, wprowadzasz trwałe zmiany w podstawowych statystykach, takich jak prędkość ruchu czy zdrowie. Możesz sprawić, że boss będzie biegał szybciej w drugiej fazie, sprawi, że wieśniak będzie bardziej wytrzymały dla ochrony lub stworzysz szybkiego, słabego wroga, który spamuje ataki. Każdy atrybut wpływa na rzeczywiste zachowanie moba lub gracza.

Składnia:
/attribute <target> <attribute> get|base|modifier ...
Możesz uzyskać bieżące wartości, ustawić nowe wartości podstawowe lub dodać złożone modyfikatory. Najczęstszą z nich jest bezpośrednia zmiana podstawowej statystyki.
Oto szczegółowa tabela wszystkich dostępnych atrybutów w grze Minecraft:
|
Attribute ID |
Controls |
Default (player) |
|
minecraft:generic.max_health
|
Max health (2 = 1 heart)
|
20.0
|
|
minecraft:generic.movement_speed
|
Walk speed
|
0.1
|
|
minecraft:generic.attack_damage
|
Melee damage
|
1.0
|
|
minecraft:generic.armor
|
Armor points
|
0.0
|
|
minecraft:generic.armor_toughness
|
Strong hit resistance
|
0.0
|
|
minecraft:generic.knockback_resistance
|
Chance to resist knockback
|
0.0
|
|
minecraft:generic.attack_speed
|
Time between hits
|
4.0
|
|
minecraft:generic.follow_range
|
How far mobs detect targets
|
32.0
|
|
minecraft:generic.luck
|
Affects loot rolls
|
0.0
|
|
minecraft:generic.jump_strength
|
Only for horses
|
varies
|
|
minecraft:horse.jump_strength
|
Horse jump height
|
varies
|
|
minecraft:zombie.spawn_reinforcements
|
Reinforcement spawn chance
|
0.0
|
Na przykład, aby boss uderzył jak ciężarówka, musisz biegać:
/attribute @e[tag=boss] minecraft:generic.attack_damage base set 20

Aby zmusić Strażnika do szybszego poruszania się, gdy się zdenerwuje:
/attribute @e[tag=boss] minecraft:generic.movement_speed base set 0.3
Aby zwiększyć zdrowie gracza w zamian za nagrodę:
/attribute @p minecraft:generic.max_health zestaw podstawowy 40
Ta zmiana jest trwała, chyba że zostanie zresetowana ręcznie.
/tag
Tagi to proste etykiety, które można dołączyć do dowolnej encji. Nie robią niczego same w sobie, ale stają się niezwykle potężne, gdy używasz ich w warunkach. Możesz oznaczyć zombie jako "szefa", gracza jako "przeklętego" lub NPC jako "spoken_to", a następnie użyć tych tagów w /execute, /tp, /title lub dowolnej logice warunkowej. Tagi są całkowicie niewidoczne i pozostają, dopóki nie zostaną usunięte lub istota nie zniknie.
Składnia:
/tag <target> add|remove|list <tag_name>
Możesz używać tagów do oznaczania postępów, odblokowywania etapów, filtrowania mobów i definiowania ról w niestandardowej logice.
Oto opis działania poszczególnych działań związanych z tagiem:
|
Action |
Description |
Example |
|
add
|
Adds a tag to the target
|
/tag @e[type=zombie,limit=1] add boss
|
|
remove
|
Removes a tag
|
/tag @e[tag=boss] remove boss
|
|
list
|
Shows all tags on the target
|
/tag @s list
|
|
usage in selectors
|
Filters entities by tag
|
/execute as @e[tag=!done] run ...
|

Na przykład, gdy gracz zakończy zagadkę, oznacz go:
/tag @p add finished_riddle
Później teleportuj tylko tych, którzy go rozwiązali:
/tp @a[tag=finished_riddle] 100 64 100
Lub oznacz moba jako aktywowanego podczas fazy bossa:
/tag @e[type=wither,limit=1] add enraged
Następnie zagraj ryk tylko raz:
/execute as @e[tag=enraged] run playsound minecraft:entity.ender_dragon.growl ...
Tagów można używać jako przełączników, pamięci, warunków i wyzwalaczy dialogowych. Są one jednym z najważniejszych narzędzi w logice każdego twórcy map.
Atrybut a tag
Oba polecenia działają najlepiej razem. /attribute zmienia sposób, w jaki rzeczy się zachowują - jak szybko, jak silne, ile zdrowia. /tag śledzi, co się z nimi stało lub jaką rolę odgrywają. Inteligentna walka z bossem może rozpocząć się od tagu "faza1", a następnie zamienić się na "fazę 2", gdy zdrowie jest niskie, i jednocześnie zwiększyć prędkość i obrażenia dzięki atrybutom.
Oto krótkie porównanie:
|
Command |
Type of control |
Persistent |
Affects gameplay |
Best for |
|
/attribute
|
Stats and performance
|
Yes
|
Yes
|
Custom behavior, strength, balance
|
|
/tag
|
Logic and event tracking
|
Yes
|
Indirectly
|
Progress, conditions, filters
|
Są one szczególnie silne w połączeniu z /execute, /scoreboard, /trigger, /function i wszystkimi poleceniami kinowymi, takimi jak /title i /playanimation.
Przełącznik fazy szefa za pomocą atrybutów i tagów
Stwórzmy walkę z bossem, w której wróg zmienia zachowanie, gdy jego zdrowie spadnie poniżej pewnego punktu. W pierwszej fazie boss porusza się powoli i zadaje niewielkie obrażenia. W drugiej fazie wpada w szał - szybciej, silniej, bardziej agresywnie. Kontrolujesz to za pomocą /attribute, aby zwiększyć statystyki i /tag, aby oznaczyć bieżącą fazę, aby aktywowała się tylko raz. Ten system sprawia, że boss wydaje się dynamiczny i responsywny, mimo że wszystko jest oskryptowane za pomocą poleceń.

Walka rozpoczyna się od wezwania bossa w ten sposób:
/summon zombie ~ ~ ~ {Tags:["boss","phase1"]}
Dajesz mu spokojną prędkość ruchu i lekkie obrażenia:
/attribute @e[tag=boss,limit=1] minecraft:generic.movement_speed base set 0.1

/attribute @e[tag=boss] minecraft:generic.attack_damage base set 4
Teraz zaczyna się walka. Za pomocą tego sprawdzenia umieszcza się powtarzający się blok poleceń:
/execute as @e[tag=boss,scores={Health=..10}] unless entity @e[tag=phase2] run function boss:enter_phase2
To czeka, aż zdrowie bossa spadnie do 10 lub mniej i upewni się, że faza tagu 2 jeszcze nie istnieje.
W funkcji boss:enter_phase2 należy umieścić:
/tag @s add phase2
/tag @s remove phase1
/attribute @s minecraft:generic.movement_speed base set 0.25
/attribute @s minecraft:generic.attack_damage base set 10
/title @a title {"text":"The boss is enraged!","color":"dark_red"}
/playsound minecraft:entity.wither.spawn hostile @a ~ ~ ~ 1 1

Teraz boss staje się szybszy i silniejszy, na ekranie ostrzeżenie, a na arenie słychać dźwięki. Ze względu na tag nie może się to powtórzyć — polecenie jest blokowane przez chyba entity @e[tag=phase2].
Ta logika sprawia, że szef czuje się żywy i reaktywny. Możesz łatwo dodać jeszcze więcej faz, powtarzając ten sam pomysł z różnymi progami i tagami - faza3, final_form, oszołomiony itp. W razie potrzeby dodano prędkość ruchu, max_health i odporność na odrzucenie, aby skalować poziom trudności.
Ta sama sztuczka działa również w przypadku łamigłówek. Możesz oznaczyć gracza, gdy podniesie przedmiot i użyć tego tagu, aby odblokować komnatę, uruchomić pułapki lub zmienić zachowanie mobów, które napotka później. Te polecenia nie są widoczne na ekranie, ale są logicznym mózgiem stojącym za wszystkim, co dynamiczne. Chcesz połączyć to z przerywnikiem filmowym dla kamery lub użyć atrybutów, aby potwór z łamigłówki był bardzo powolny, ale niebezpieczny? Zbudujmy to dalej!
Polecenia /attribute i /tag są niewidocznym szkieletem inteligentnych systemów Minecraft. Jeśli chcesz tworzyć dynamiczne postacie, wieloetapowe bitwy, rozgałęziające się zadania lub po prostu naprawdę czystą logikę w swoim świecie, są to narzędzia, których będziesz używać wielokrotnie. Atrybuty pozwalają kontrolować, jak coś się zachowuje, a tagi pozwalają kontrolować, kiedy i dlaczego. Użyj ich, aby ożywić swoje moby i wydarzenia z precyzją i logiką ukrytą tuż pod powierzchnią.
