屬性(Attributes)是生物的增益/減益特性系統。屬性也存在修飾符(Modifiers),用於調整屬性的強度。
屬性[]
每個獨立的屬性都控制著生物的一些能力,例如攻擊傷害和速度等。一個屬性都有它們對應的名稱(Name)、基礎值(Base)和值域,有時屬性也帶會有一些修飾符(Modifiers)用於修飾基礎值。當屬性沒有被特殊定義時,屬性將以預設值(Default Value)作為基礎值計算。
修飾符[]
修飾符會修飾一個屬性的基礎值。在使用某項屬性時,系統會使用這項屬性的基礎值與所有這項屬性的修飾符進行計算,得出最終屬性值,但修飾後的最終屬性值不能仍然越過該屬性最大值/最小值的限制。就像屬性一樣,修飾符也具有名稱(Name),並具有標識它們的UUID。修飾符的名稱與它的具體效果無關,而由它的運算模式(Operation)和修飾值(Amount)決定。如果兩個修飾符具有相同的UUID,並作用於一個屬性上,那麼後加入的修飾符會替代先加入的修飾符,而不是相疊加。
運算模式[]
一個修飾符的運算模式(Operation)決定它修飾基礎值時的行為。共有三種運算模式:
- 增量操作(Op0)
該模式直接在基礎值上進行加減法操作。
例:用{Amount:2,Operation:0}
和{Amount:4,Operation:0}
同時修飾基礎值為3的某個屬性,那麼修飾過程就是3+(2+4)=9
。
- 倍率操作(Op1)
該模式將在增量操作後執行,對增量操作後的值進行倍率上的修改。如果修飾值設定為1,則修飾後的值會被增加一倍;如果設定為0,則不進行修改。
例:用{Amount:3,Operation:1}
和{Amount:6,Operation:1}
修飾某屬性,且經過增量操作後的屬性值為9,那麼這個修飾過程就是9×(1+3+6)=90
。
- 最終倍乘操作(Op2)
該模式將會在其他所有修飾操作完成後,將修飾後的值乘以指定數字,得到最終屬性值。由於這是最終的操作,因此多個最終倍乘之間相互獨立,分別進行各自的乘法操作,而不是修飾值相加後進行乘法操作。
例:用{Amount:2,Operation:2}
和{Amount:4,Operation:2}
修飾某屬性,經過其他所有操作後的屬性值為90,那麼這個修飾過程就是90×(1+2)×(1+4)=1350
。
下面從數學角度解釋修飾符的作用,為了方便起見,簡記Base為屬性的基礎值,Op0為所有增量操作修飾值的總和,Op1為所有倍率操作修飾值的總和,Op2為所有最終倍乘修飾值+1後的乘積[1],則最終屬性值為(Base+Op0)×(1+Op1)×Op2
。
應用[]
當屬性修飾符應用到一個物品或生物時,它可以將擁有者的某項屬性進行修正。[2][3]
下面的指令將給予指令執行者一把增加20( × 10)點額外傷害的鑽石劍:
/give @s diamond_sword{AttributeModifiers:[{AttributeName:"generic.attack_damage",Name:"generic.attack_damage",Amount:20,Operation:0,UUID:[I;1498693494,1027158888,1898994005,860320107]}]}
下面指令將召喚一個殭屍,當玩家接近它100格時就會被它發現,而不是通常的35格:
/summon zombie ~ ~ ~ {Attributes:[{Name:"generic.follow_range",Base:100.0}]}
使用指令時也可以指定物品在指定欄位才可以發揮修飾作用。下面的指令會給予執行者一把增加20( × 10)點額外傷害的鑽石斧,但它只有放於慣用手時才生效:
/give @s diamond_axe{AttributeModifiers:[{Slot:"mainhand",AttributeName:"generic.attack_damage",Name:"generic.attack_damage",Amount:20,Operation:0,UUID:[I;1498693494,1027158888,1898994005,860320107]}]}
歷史[]
關於「屬性」的歷史,請見各版本頁面。
關於「屬性」的歷史,請見各版本頁面。
關於「屬性」的歷史,請見各版本頁面。
關於「屬性」的歷史,請見各版本頁面。
關於「屬性」的歷史,請見各版本頁面。
關於「屬性」的歷史,請見各版本頁面。
關於「屬性」的歷史,請見各版本頁面。
關於「屬性」的歷史,請見各版本頁面。
關於「屬性」的歷史,請見各版本頁面。
關於「屬性」的歷史,請見各版本頁面。
關於「屬性」的歷史,請見各版本頁面。
關於「屬性」的歷史,請見各版本頁面。
關於「屬性」的歷史,請見各版本頁面。
關於「屬性」的歷史,請見各版本頁面。
關於「屬性」的歷史,請見各版本頁面。
關於「屬性」的歷史,請見各版本頁面。
關於「屬性」的歷史,請見各版本頁面。
關於「屬性」的歷史,請見各版本頁面。
關於「屬性」的歷史,請見各版本頁面。
關於「屬性」的歷史,請見各版本頁面。
參考[]
語言