Guides / Commands & Data

/attribute: wartość bazowa kontra modyfikatory i dlaczego ciągle się resetują

Ustawienie wartości bazowej jest trwałe, a modyfikatora nie – chyba że wybierzesz niewłaściwą operację. Trzy operacje, kolejność nakładania i pułapka slotów.

/attribute wygląda jak jedno polecenie z trzema podpoleceniami. W rzeczywistości są to dwa różne systemy, które akurat mają tę samą nazwę, a ich pomieszanie jest powodem, dla którego wartości ciągle wracają do poprzedniego stanu.

Wartość bazowa kontra modyfikator

/attribute @s minecraft:max_health base set 40
/attribute @s minecraft:max_health modifier add my_buff 20 add_value
  • base set nadpisuje własną wartość jednostki. Utrzymuje się po ponownym załadowaniu i nie jest usuwana przez nic poza innym base set.
  • modifier add nakłada tymczasową korektę. Ma identyfikator i można ją usunąć za pomocą tego identyfikatora.

Jeśli Twoja zmiana znika po ponownym zalogowaniu, użyłeś modyfikatora i coś go usunęło. Jeśli Twoja zmiana nie chce zniknąć, użyłeś base set i potrzebujesz base reset.

Trzy operacje i kolejność ich stosowania

OperacjaDziałanieStosowana
add_valuewartość + njako pierwsza
add_multiplied_basewartość + (wartość bazowa × n)jako druga
add_multiplied_totalsuma bieżąca × (1 + n)jako ostatnia

Kolejność jest stała i ma znaczenie. Zaczynając od wartości bazowej 20, następnie add_value 10 i add_multiplied_total 0.5:

20 → 30 → 45          not  20 → 30 → 30 + 10 = 40

add_multiplied_base zawsze mnoży oryginalną wartość bazową, a nie sumę bieżącą — dlatego dwie z nich sumują się addytywnie, a nie składają.

Identyfikatory modyfikatorów są teraz przestrzeniami nazw

Starsze wersje używały UUID. Nowoczesne wersje używają identyfikatora z przestrzenią nazw:

/attribute @s minecraft:attack_damage modifier add my_pack:rage 5 add_value

Dodanie drugiego modyfikatora z tym samym identyfikatorem zastępuje pierwszy, zamiast go sumować. Jest to zamierzony sposób odświeżania wzmocnienia — nie musisz go najpierw usuwać.

Modyfikatory ekwipunku znajdują się na przedmiocie, a nie na jednostce

Bonus do obrażeń zaczarowanego miecza to komponent przedmiotu attribute_modifiers, i działa tylko wtedy, gdy przedmiot znajduje się w odpowiednim slocie:

/give @s diamond_sword[attribute_modifiers=[{type:"attack_damage",amount:5,
  operation:"add_value",slot:"mainhand",id:"my:bonus"}]]

slot jest wymagane i jest częstym błędem. Pominięcie go sprawia, że modyfikator działa we wszystkich slotach, więc miecz w ekwipunku wzmacnia Cię, gdy tam leży.

Prawidłowe sloty: mainhand, offhand, head, chest, legs, feet, armor, body, any.

Odczytywanie wartości

/attribute @s minecraft:max_health get

zwraca wartość bazową, a nie efektywną sumę. Aby uzyskać sumę wraz z modyfikatorami, użyj execute store result na tablicy wyników i odczytaj ją.

Zbuduj dowolny z tych elementów — w tym formę komponentu przedmiotu z ustawionym slotem — w Kreatorze Komend Jednostek i Walki.

Kreator komend bytów i walki →

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.