We are currently performing an upgrade to our software. This upgrade will bring MediaWiki from version 1.31 to 1.33. While the upgrade is being performed on your wiki it will be in read-only mode. For more information check here.

屬性

出自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 加入了屬性。


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