屬性

出自Minecraft Wiki
跳到: 導覽搜尋
Information icon.svg
此特性為Java版基岩版獨有。

屬性(Attributes)生物和玩家身上的增益/減益特性系統。屬性也存在修飾符(Modifiers)中,用於調整屬性的強度。

屬性應用[編輯 | 編輯原始碼]

當應用到一個物品,一個物品的修飾符將增加或減少以修正相應的屬性[1][2] 屬性/修飾符可以在沒有第三方的情況下使用NBT添加數據標籤give和summon添加到物品或者生物。

下面的指令將給最近的玩家一把增加20(Heart.svg × 10)點額外傷害的鑽石劍,如果你把Operation由0改變到1,那麼會直接增加攻擊傷害。

/give @p diamond_sword{AttributeModifiers:[{AttributeName:"generic.attackDamage",Name:"generic.attackDamage",Amount:20,Operation:0,UUIDLeast:894654,UUIDMost:2872}]} 1

下面指令將召喚一個殭屍,當它距離玩家100格或更少時,它將跟隨玩家,而不是通常的35。

/summon zombie ~ ~ ~ {Attributes:[{Name:"generic.followRange",Base:100.0}]}

也可以指定槽位擁有一定屬性。

/give @p diamond_axe{AttributeModifiers:[{Slot:"mainhand",AttributeName:"generic.attackDamage",Name:"generic.attackDamage",Amount:20,Operation:0,UUIDLeast:1,UUIDMost:1}]} 1

槽位可以是:mainhand,offhand,head,legs,chest,feet。

屬性[編輯 | 編輯原始碼]

每個獨立的屬性都控制着一些性狀,這由這個屬性的Name(名字)決定。一個屬性通常都有一個Base(基礎值),有的時候會有一些Modifiers(修飾符)。屬性通常也有一個預設值(例如用於生成一個沒有定義過特別屬性的生物),以及一個自帶的規定值域。修飾符會修飾屬性的基礎值,但結果也是在規定值域內的。

除非另有說明,否則最小值和最大值均為包含值,或者等於1.7x10308

請注意,具有相同UUID並影響相同屬性的屬性修飾符將不會疊加;只有最近影響的玩家或生物的一個才會產生影響,且覆蓋之前的修飾符。

所有實體均包含的屬性項[編輯 | 編輯原始碼]

這些屬性均可在所有生物中找到,包括玩家這個實體

屬性名稱 概述 預設值 最小值 最大值
generic.maxHealth 這個生物的最大生命值;亦或這個生物通過回復最多可以恢復至的極限。你需要運用[Health:#]nbt改變生物的當前生命值。 20 0.0 2048.0
generic.followRange 這個生物追蹤玩家或者其他生物的最大範圍,以方塊數為單位。目標離開這個區域意味着它們將停止追蹤。目前大多數生物這個值為16,而殭屍則有40。 32 0.0 2048.0
generic.knockbackResistance 這個生物的抗擊退效果(包括攻擊的擊退、爆炸和彈射物衝擊)的程度,1.0代表完全抵抗。 0.0 0.0 1.0
generic.movementSpeed 在某種不明度量標準下這個生物的速度。以格/秒為單位的生物最大速度略高於此值的43倍,但可能會受到各種條件的影響,例如:騎馬(如果是馬),疾跑,逃跑(如果是被動生物),攻擊(如果是一個終界使者或殭屍豬人),被皮帶牽引,受速度或緩速藥水影響,為幼年殭屍或者是一個女巫和喝藥水。可以使用以下等式計算每秒格數的速度,其中x是movementSpeed屬性y = 43.178x-0.02141
生物 generic.movementSpeed 格/秒

玩家
0.1 4.3m/s

玩家
跑步
0.15 6.5m/s

0.1125~0.3375的隨機值 4.85m/s~14.55m/s的隨機值

駱馬
0.175 7.5m/s


哞菇

雪人
0.2 8.6m/s

殭屍村民

烈焰使者


屍殼

殭屍

殭屍豬人
0.23 9.9m/s

苦力怕

北極熊

鐵魔像

流髑

終界蟎

女巫
,

蠹魚

骷髏


凋零骷髏
0.25 10.8m/s

終界使者

遠古深海守衛

洞穴蜘蛛

兔子

殺手兔

山貓

蜘蛛

0.3 12.9m/s

衛道士
0.35 15.1m/s

岩漿立方怪

史萊姆
0.4 17.2m/s

村民

巨人

深海守衛

喚魔者
0.5 21.6m/s

凋零怪
0.6 25.9m/s

終界龍

蝙蝠

地獄幽靈

界伏蚌

魷魚

惱鬼
0.7 30.2m/s
0.7* 0.0 1024.0
generic.attackDamage 普通攻擊造成的傷害,一點表示半個心形標誌。此屬性在被動生物和傀儡中未找到。 1.0 0.0 2048.0
generic.armor 盔甲的防禦點數。 0.0 0.0 30.0
generic.armorToughness 盔甲強度 0.0 0.0 20.0

玩家的額外屬性[編輯 | 編輯原始碼]

這些屬性只出現在玩家中。

屬性名稱 概述 預設值 最小值 最大值
generic.attackSpeed 決定攻擊力度的填充速度,值代表每秒可以進行全力攻擊的次數。 4.0 0.0 1024.0
generic.luck 影響戰利品表使用的qualitybonus_rolls(例如當打開儲物箱、儲物箱礦車,釣魚和殺怪)。 0.0 -1024.0 1024.0
generic.attackReach 玩家的攻擊距離 3.0 0.0 6.0
generic.reachDistance 玩家的觸及半徑 5.0 0.0 256.0

的額外屬性[編輯 | 編輯原始碼]

這些屬性只出現在馬中。

屬性名稱 概述 預設值 最小值 最大值
horse.jumpStrength 在某種不明度量標準下馬的彈跳力。 0.7* 0.0 2.0

鸚鵡的額外屬性[編輯 | 編輯原始碼]

這些屬性只出現在鸚鵡中。

屬性名稱 概述 預設值 最小值 最大值
generic.flyingSpeed 在某種不明度量標準下鸚鵡的飛行速度。 0.4* 0.0 1024.0

殭屍的額外屬性[編輯 | 編輯原始碼]

這些屬性只出現在殭屍或殭屍豬人中。

屬性名稱 概述 預設值 最小值 最大值
zombie.spawnReinforcements 殭屍在一次攻擊中在周圍生成另一個殭屍的可能性。即使是殭屍豬人也會生成殭屍。 0.0 0.0 1.0

一些未知屬性的特性[編輯 | 編輯原始碼]

當遊戲找到一些非屬性關鍵字的屬性,這些特性將適用。當遊戲發現無法識別的屬性時,將應用這些特性於它。(請注意:執行此操作的代碼行導致Minecraft崩潰。)

屬性名稱 概述 預設值 最小值 最大值
任何非常規名字的屬性 未知。 0.0 0 1.7x10308

修飾符[編輯 | 編輯原始碼]

修飾符會修飾一個屬性的基礎值,從結果看是增減它們。需要注意的是,修飾後的值也滿足規定值域。像屬性一樣修飾符也擁有一個Name(名稱),不過這個名字不會定義這個修飾符的效果;取而代之,一個修飾符的效果是由Operation(運算模式)決定的。一個修飾符同時帶有一個Amount(數額)來決定改變的程度,另外還有一個UUID。(全稱:Universally Unique IDentifier).

運算模式[編輯 | 編輯原始碼]

修改的Operation(運算模式)決定這個屬性被修飾的模式,大概的說明為:直接加減Amount,乘以Amount,乘以Amount+1;Operation可選值有三個: 0、1 或者2. 這個值將會決定修飾符對屬性的基礎數值的計算方式.

若該值為0:將X的增量設為Amount的值,例如:{Amount:2,Operation:0}和{Amount:4,Operation:0}與基礎值3的結果是:9 (3 + 2 + 4 = 9)。

若該值為1:將Y的增量設為X×Amount的值; 例如:修飾符屬性:{Amount:2,Operation:1}和{Amount:4,Operation:1}與基礎值3的結果是21(3 *(1 + 2 + 4)= 21)。

若該值為2:則計算Y = Y × (1 + Amount的值) (等同於將Y的增量設為 Y × Amount的值)Minecraft會先設 X = Base, 然後執行所有Operation的值為0的修飾符, 緊接着設 Y = X, 之後再執行所有Operation值為1的修飾符, 最後才執行所有Operation的值為2的修飾符。例如:{Amount:2,Operation:2}和{Amount:4,Operation:2}與3的基礎值結果是45(3 *(1 + 2)*(1 + 4)= 45)。[3]

數學行為如下:Operation0:按數量增加X,操作1:增加Y×X *數量,Operation2:Y = Y *(1 +數量)(相當於增量Y減去Y *數量)。 遊戲首先設定X = Base,然後執行所有Operation 0修飾符,然後設定Y = X,然後執行所有Operation 1修飾符,最後執行所有Operation 2修飾符。

已知修飾符[編輯 | 編輯原始碼]

像前文所述一樣,一個修飾符可擁有任何一個Name(名字)且這不能影響這個修飾符的效果。下面是一些已知的修飾符的名字以及用於常規Minecraft的值(如果你在定製的地圖中找到了這一欄,請不要修改它,因為地圖設計者可能已經定製了這些東西)。需要注意的是一些UUID頻繁出現,同時其他的有表現為固定字符串代碼:這些UUID已經被採用了,請不要在本列表中添加這個修飾符不包含的UUID,這意味着每次這個修飾符創立時都是不同的。

修飾符名稱 概述與已知值 已知效果
隨機生成所附帶的修飾符(Random spawn bonus) 由生成而產生,值呈高斯分佈於0.0至0.05*。在殭屍的抗擊退能力上,另一個成高斯分佈於0.0至0.05*也會產生。 generic.followRange (Operation 1; 所有生物), Knockback Resistance抗擊退能力 (Operation 0; 僅村民殭屍)
工具的修飾符(Tool modifier) 由工具決定 generic.attackDamage (Operation 0; 所有工具; UUID CB3F55D3-645C-4F38-A497-9C13A33DB5CF)
武器的修飾符(Weapon modifier) 由武器決定 generic.attackDamage (Operation 0; 所有武器; UUID CB3F55D3-645C-4F38-A497-9C13A33DB5CF (與工具的修飾符的UUID相同))
疾跑速度(Sprinting speed boost) 固定值為0.3*,應用於包括玩家在內的所有在跑動中的生物 generic.movementSpeed (Operation 2; 所有活躍的實體; UUID 662A6B8D-DA3E-4C1C-8813-96EA6097278D)
逃離速度(Sprinting speed boost) 固定值為2,應用於所有逃離中的被動的生物 generic.movementSpeed (Operation 2; 所有被動生物; UUID E199AD21-BA8A-4C53-8D13-6182D5C69D3A)
攻擊衝刺(Attacking speed boost) 應用於終界使者的固定值為6.2*;應用於殭屍豬人的固定值為0.45*。僅在攻擊時出現。 generic.movementSpeed (Operation 0; 終界使者 - UUID 020E0DFB-87AE-4653-9556-831010E291A0, 殭屍豬人 - UUID 49455A49-7EC5-45BA-B886-3B90B23A1718)
非成熟體速度(Baby speed boost) 固定值為0.5,僅出現於殭屍或者殭屍村民中。 generic.movementSpeed (Operation 1; 小型殭屍; UUID B9766B59-9566-4402-BC1F-2EE2A276D836)
飲用藥水速度削減(Drinking speed penalty) 固定值為-0.25,應用於正在喝藥水的女巫中。 generic.movementSpeed (Operation 0; 女巫; UUID 5CD17E52-A79A-43D3-A529-90FDE04B181E)
在殭屍隨機生成中附帶的修飾符(Random zombie-spawn bonus) 由生成而產生,是一個在0.0到1.5之間的偽隨機數。 generic.followRange (Operation 2; 殭屍)
生成精英殭屍時所附帶的修飾符(Leader zombie bonus) 有很小的概率在生成一個殭屍時出現。值為一個0.5至0.75之間的偽隨機數並應用於殭屍連帶生成新殭屍的可能性,或者是一個1.0至4.0至案件的偽隨機數並應用於generic.maxHealth。 zombie.spawnReinforcements (Operation 0; 殭屍), generic.maxHealth (Operation 2; Zombies)
生成了新殭屍的殭屍的代價(Zombie reinforcement caller charge) 固定值為-0.05*當一個殭屍將其他殭屍作為援軍生成於周圍時產生。 zombie.spawnReinforcements (Operation 0; 殭屍)
被殭屍作為援軍生成的新殭屍的代價(Zombie reinforcement callee charge) 固定值為-0.05*當一個殭屍作為援軍被其他殭屍生成於周圍時產生。 zombie.spawnReinforcements (Operation 0; 殭屍)
potion.moveSpeed potion.moveSpeed # (#代表藥水的等級) 固定值為0.2*,應用於有速度效果時,可由藥水等級增倍。 generic.movementSpeed (Operation 2; 所有活躍的實體; UUID 91AEAA56-376B-4498-935B-2F7F68070635)
potion.moveSlowdown potion.moveSlowdown # (#代表藥水的等級) 固定值為-0.15*,應用於有緩慢效果時,可由藥水等級增倍。 generic.movementSpeed (Operation 2; 所有活躍的實體; UUID 7107DE5E-7CE8-4030-940E-514C1F160890)
potion.damageBoost potion.damageBoost # (#代表藥水的等級) 固定值為3,應用於有力量效果時,可由藥水等級增倍。 generic.attackDamage (Operation 2; 所有活躍的實體; UUID 648D7064-6A60-4F59-8ABE-C2C23A6DD7A9)
potion.weakness potion.weakness # (#代表藥水的等級) 固定值為2,應用於有虛弱效果時,可由藥水等級增倍。 generic.attackDamage (Operation 0; All living entities; UUID 22653B89-116E-49DC-9B6B-9971489B5BE5)
potion.healthBoost potion.healthBoost # (#代表藥水的等級) 固定值為4,應用於有生命值提升效果時,可由藥水等級增倍。 generic.maxHealth (Operation 0; 所有活躍的實體; UUID 5D6F0BA2-1186-46AC-B896-C61C5CEE99CC)
effect.luck effect.luck# (#代表藥水的等級) 固定值為1,乘以效果的等級。 generic.luck(Operation 0; 所有活躍的實體; UUID 03C3C89D-7037-4B42-869F-B146BCB64D2E)
effect.unluck effect.unluck # (#代表藥水的等級) 固定值為-1,乘以效果的等級。 generic.luck(Operation 0; 所有活躍的實體; UUID CC5AF142-2BD2-4215-B636-2605AED11727)
未知修飾符 未知; 在終端讀取伺服器所傳送的屬性數據時出現。 可變

歷史[編輯 | 編輯原始碼]

Java版
1.6.1 13w16a 加入了屬性。
1.7.2 13w36a 屬性/修飾符可以在沒有第三方的情況下使用NBT添加數據標籤give和summon添加到物品或者生物。
1.9 15w34b 加入了攻擊速度屬性。
15w36d 加入了盔甲屬性。
15w44b 加入了幸運值屬性。
1.9.1-pre1 加入了盔甲強度屬性。
攜帶版(Alpha)
0.12.1 build 1 加入了屬性。


參考資料[編輯 | 編輯原始碼]