/attribute: base value laban sa mga modifier, at kung bakit patuloy na nagre-reset ang sa iyo
Ang pagtatakda ng base value ay permanente at ang pagtatakda ng modifier ay hindi — maliban kung maling operation ang napili mo. Ang tatlong operation, ang pagkakasunod-sunod ng stacking, at ang slot trap.
/attribute looks like one command with three subcommands. It is really two different systems that happen to share a name, and mixing them up is why values keep snapping back.
base laban sa modifier
/attribute @s minecraft:max_health base set 40
/attribute @s minecraft:max_health modifier add my_buff 20 add_value
base setmuling isinusulat ang sariling value ng entity. Ito ay nananatili sa mga pag-reload at
hindi naaalis ng kahit ano maliban sa isa pang base set.
modifier addnagpapatong ng pansamantalang pagsasaayos sa itaas. Mayroon itong id, at maaari itong
maalis gamit ang id na iyon.
Kung mawala ang iyong binago sa pag-relog, gumamit ka ng modifier at may nagbura nito. Kung hindi maalis ang binago mo, gumamit ka ng base set and need base reset.
Ang tatlong operation, at ang pagkakasunod-sunod ng paglalapat ng mga ito
| Operation | Ginagawa | Inilapat |
|---|---|---|
add_value | value + n | una |
add_multiplied_base | value + (base × n) | pangalawa |
add_multiplied_total | running total × (1 + n) | huli |
Nakatakda ang pagkakasunod-sunod at mahalaga ito. Simula sa base 20, pagkatapos add_value 10 and add_multiplied_total 0.5:
20 → 30 → 45 not 20 → 30 → 30 + 10 = 40
add_multiplied_base always multiplies the orihinal na base, hindi ang running total — kung kaya't ang dalawa sa mga ito ay nag-iipon nang additive sa halip na compounding.
Naka-namespace na ngayon ang mga modifier id
Gumamit ang mga lumang bersyon ng UUID. Ang mga modernong bersyon ay gumagamit ng namespaced id:
/attribute @s minecraft:attack_damage modifier add my_pack:rage 5 add_value
Ang pagdaragdag ng pangalawang modifier na may parehong id ay pumapalit sa nauna sa halip na mag-stack. Iyon ang nilalayong paraan upang i-refresh ang isang buff — hindi mo kailangang alisin muna ito.
Ang mga modifier ng equipment ay nasa item, hindi sa entity
Ang bonus sa damage ng isang enchanted sword ay isang attribute_modifiers item component, at nalalapat lamang ito habang ang item ay nasa tamang slot:
/give @s diamond_sword[attribute_modifiers=[{type:"attack_damage",amount:5,
operation:"add_value",slot:"mainhand",id:"my:bonus"}]]
slot is required and is the usual mistake. Alisin ito at malalapat ang modifier sa bawat slot, kaya ang isang espada sa iyong imbentaryo ay magbibigay ng buff sa iyo habang nakalagay lang doon.
Mga valid na slot: mainhand, offhand, head, chest, legs, feet, armor, body, any.
Pagbasa muli ng isang value
/attribute @s minecraft:max_health get
ay nagbabalik ng base, hindi ang kabuuang epektibo. Upang makuha ang kabuuan kasama ang mga modifier, gamitin ang execute store result on a scoreboard and read that.
Bumuo ng alinman sa mga ito — kabilang ang anyo ng item-component na may nakatakdang slot — sa Entity & Combat Command Builder.