本文章介紹附魔的機制。
附魔基礎
當把一件可附魔的物品放上附魔台時,可用的附魔等級將會依據以下公式隨機生成。附魔等級由附近書櫃的數量(最多15個)及附魔等級在附魔列表中所在的行數決定。
以下是可用附魔等級的計算步驟:
- 可用附魔等級基數(base) = (1..8 + (b/2) + 0..b)
其中b 是附近書櫃的數量(≤15),「x..y」表示在[x,y]閉區間內產生一個隨機數。產生基數後,遊戲會根據附魔等級所在的行數,進行第二步計算:
- 第一行等級 = max (base / 3, 1)
- 第二行等級 = (base × 2) / 3 + 1
- 第三行等級 = max (base, b × 2)
在正式版 1.3 前,可用附魔等級基數計算公式為 base = (1..5 + (b/2) + 0..b) ,並乘以「行列因數」(第一行為1⁄3,第二行為2⁄3,第三行為1)得到。最小的附魔等級與附魔台周圍有效書櫃數目的一半相同。
在正式版 1.1 前,上式的「(b/2)」項曾是「0..(b/2)」,這使得附魔等級隨機性變大,刷出高等級附魔選項會耗費大量時間。同時,可用附魔等級的最低級固定在1,不會受書櫃數目的影響。
| 書櫃數目 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 最小等級(第一行) | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 2 |
| 最大等級(第三行) | 8 | 9 | 11 | 12 | 14 | 15 | 17 | 18 | 20 | 21 | 23 | 24 | 26 | 27 | 29 | 30 |
在創造模式中,附魔不需要經驗等級。
書櫃的放置
附魔台附近的書櫃可以提高可用的附魔等級。在預覽版12w22a中,若附魔台周圍沒有不貼緊附魔台的書櫃,則可用附魔等級最高只會到8級。 有效的書櫃必須距離附魔台2個方塊遠,且必須與附魔台處於同一或高1個方塊的高度。書櫃和附魔台之間的空間必須是空氣(火把與雪也不允許),而該「之間」則是如下圖所示(空格代表空氣,而不影響):
| 俯視: | 或 | ||
|---|---|---|---|
| 側視: | 或 |
由於只需要15個書櫃即可達到最大附魔等級,所以書櫃的排列有很多種方法。
方法1
一種最簡單的方法是用一層書櫃圍著附魔台繞上一圈:
方法2
另外一種方法則是做一個「圖書角」。這種方法使用了16個書櫃,比需要的還要多。
| 第一層 | 第二層 | ||||||||||||||||||||||||||||||||||||
|
|
|
方法3
另外一個「圖書角」,書櫃放兩層。這種方法使用了16個書櫃,比需要的還要多。
如果需要限制最大附魔等級,一種簡單的方法就是往附魔台與書櫃之間的空間中插火把停用部分書櫃。把火把拿下可以重新恢復最大的附魔等級。
另外要注意的是,要檢查附魔區域的環境,並保證書櫃與附魔台之間的絕對空隙。例如在覆雪生態域中,雪可以把所有書櫃都無效化。因此,除非你希望得到較小的附魔等級,則在附魔前要進行仔細的檢查和清理。
附魔是如何選擇出來的
「附魔等級」是某一附魔所需的經驗級別(在按鈕上的綠色數字)。
「附魔威力」是某一特定附魔的力量。例如,「鋒利IV」有4點威力。
附魔的挑選有三個步驟。
第一步 - 對附魔等級加入調節值
首先遊戲會把兩個調節值加入到被選的附魔等級中。每個調節值會被限制在一定的範圍內,數字接近範圍中央的會比靠近兩端的更常見。
第一調節值是基於附魔對象的「附魔能力」,這取決於該物品的材料和類型(見下表)。遊戲會在0至附魔能力的一半(實際上,遊戲會先將附魔能力除以4,四捨五入為整數後再乘以2)之間隨機挑選一個數字,然後將這個數字和1加到附魔等級裡。此時,弓的附魔能力是1。然後,這個隨機數會經過三角形分布處理,使得最終結果靠近附魔能力一半的機率遠大於靠近極值的機率。
| 修改後的附魔等級 = 附魔等級 + 隨機值(0, 附魔能力 / 4 * 2) + 1 (每步計算完畢後四捨五入) |
|---|
| 材料 | 對應盔甲的附魔能力 | 對應劍/工具的附魔能力 |
|---|---|---|
| 木 | 不可用 | 15 |
| 皮革 | 15 | 不可用 |
| 石 | 不可用 | 5 |
| 鐵 | 9 | 14 |
| 鏈(鏈甲) | 12 | 不可用 |
| 鑽石 | 10 | 10 |
| 金 | 25 | 22 |
接著,Minecraft會在0.85和1.15之間挑選一個值,並再次經過三角形分布處理。修改後的附魔等級會乘以這個值(因此它可以增加或減少最多15%),然後四捨五入至整數,得到最終的等級調節值。
偽代碼
// 返回一个区间为[0,n-1)的随机整数 function randomInt(n); // 返回一个区间为[0,1)的一个随机实数 function randomFloat(); // 利用三角随机分布,生成一个区间为[1,1+(附魔能力/2))的随机数 enchantability_2 = enchantability / 2; int rand_enchantability = 1 + randomInt(enchantability_2 / 2 + 1) + randomInt(enchantability_2 / 2 + 1); // 选择附魔能级 int k = chosen_enchantment_level + rand_enchantability; // 0.85至1.15之间的附魔奖励 float rand_bonus_percent = (randomFloat() + randomFloat() - 1) * 0.15 + 1; // 最终计算得到等级 int final_level = (int)(k * (1 + rand_bonus_percent) + 0.5);
來源:[1]
第二步 - 尋找可能的附魔
一把附有幾個附魔的劍。(在正式版 1.3 後,鋒利 V 無法附到鑽石劍上。)
現在,以等級調節值為基礎,遊戲會先列出所有可應用於目標物品的附魔類型及其威力(候選表),以便之後的挑選。
附魔等級表中列出了每一種附魔類型的可用等級及其威力。對於每一級威力的每種附魔,都有與其規定的等級調節值範圍。當等級調節值符合某級威力某個附魔的等級調節值範圍時,這個附魔進入候選表;如果等級調節值同時包含於同一個附魔不同級別威力的等級調節值範圍內時,較高等級的附魔進入候選表。例如,劍的「鋒利 I」和「鋒利 II」附魔的等級調節值範圍分別為 1 - 21 和 12 - 32 ,則當等級調節值為10時,「鋒利 I」進入候選列表;當等級調節值為15時,「鋒利 II」則會進入候選列表。Enchantview Mod 可以查看將要附魔的物品能附上什麼附魔。
第三步 - 從候選表中選擇附魔
現在它有了該物品的附魔候選表,遊戲會從它們之中選擇一些會最後應用到的附魔。
最終附上的附魔至少會有一個,第一個附魔會從「權重」名單中被挑選出來——權重越高的附魔,選中的機會越高。
| P(附魔)=(附魔權重)/(∑i=1可能的附魔的數量〖附魔權重i〗) |
|---|
| 盔甲附魔 | 權重 | 寶藏型 |
|---|---|---|
| 保護 | 10 | 否 |
| 輕盈 | 5 | 否 |
| 火焰保護 | 5 | 否 |
| 投射物保護 | 5 | 否 |
| 親水性 | 2 | 否 |
| 爆炸保護 | 2 | 否 |
| 水下呼吸 | 2 | 否 |
| 深海漫遊 | 2 | 否 |
| 冰霜行者 | 2 | 是 |
| 尖刺 | 1 | 否 |
| 綁定詛咒 | 1 | 是 |
| 劍附魔 | 權重 | 寶藏型 |
| 鋒利 | 10 | 否 |
| 節肢剋星 | 5 | 否 |
| 擊退 | 5 | 否 |
| 不死剋星 | 5 | 否 |
| 燃燒 | 2 | 否 |
| 掠奪 | 2 | 否 |
| 工具 | 權重 | 寶藏型 |
| 效率 | 10 | 否 |
| 耐久 | 5 | 否 |
| 幸運 | 2 | 否 |
| 絲綢之觸 | 1 | 否 |
| 弓附魔 | 權重 | 寶藏型 |
| 力量 | 10 | 否 |
| 火焰 | 2 | 否 |
| 衝擊 | 2 | 否 |
| 無限 | 1 | 否 |
| 釣竿附魔 | 權重 | 寶藏型 |
| 海洋的祝福 | 2 | 否 |
| 魚餌 | 2 | 否 |
| 能附在「任何物品」的附魔 | 權重 | 寶藏型 |
| 修補 | 2 | 是 |
| 消失詛咒 | 1 | 是 |
第一個附魔被選中後,根據以下算法來判斷是否得到更多附魔:
- 將等級調節值除以2,並四捨五入。(這不影響附魔候選表,因為候選表在第二步已經確定。)
- 以 P=(修改後的等級調節值+1)/50 的機率決定是否選擇額外的附魔。
- 選擇額外的附魔後,刪除表中任何與先前選擇附魔相衝的附魔。
- 從剩下的附魔候選表中挑選一個附魔(像之前一樣,以權重為基準)並將其加入到該物品。
- 重複第一步。
相衝的附魔
一些附魔會與其他附魔相衝,因此不能附到同一物品上,有效地減低玩家擁有過強武器/盔甲的可能性。
附魔相衝的規則是:
- 每個附魔與本身相衝。(所以你不能得到有兩個相同附魔的工具。)
- 所有保護類附魔相互衝突,所以一個物品只能有一個。(在程式代碼中,輕盈是一種保護類附魔,但它不與其他保護類附魔發生衝突。)
- 所有傷害類附魔(鋒利、不死剋星和節肢剋星)相互衝突。
- 「絲綢之觸」和「幸運」也會互相衝突。(在透過使用物品修改器得到的同時擁有「幸運」與「絲綢之觸」附魔的鎬中,「幸運」會失效,因為「絲綢之觸」的存在導致根本就不能採到方塊的掉落資源,只能夠得到方塊本身。)
- 「深海漫遊『』和「冰霜行者」也會互相衝突。
- 「修補」和「無限」也會互相衝突。
[僅電腦版]
以鑽石鎬30級的附魔為例
第一步
首先計算附魔調節值,鑽石無論劍/工具/盔甲的附魔能力都為10,則10/4=2.5,四捨五入得3,再3*2=6,則系統會在0~6範圍內隨機取一個值,再+1,即為修改後的附魔等級,範圍在31~37
接著乘以0.85~1.15間的一個隨機值,得到最終的等級調節值,範圍為26.35~42.55,四捨五入得26~43,
而你得到的等級調節值是範圍內的一個值(由於兩次三角算法所以靠近中間值35的機率比靠近極值大),這個值將會影響附魔候選表和是否獲得更多附魔。
第二步
以此為基準透過附魔等級表來選擇入選附魔
| 工具附魔 | 修改後的附魔等級 | ||||
|---|---|---|---|---|---|
| I | II | III | IV | V | |
| 效率 | 1–51 | 11–61 | 21–71 | 31–81 | 41–91 |
| 絲綢之觸 | 15–65 | — | — | — | — |
| 耐久 | 5–55 | 13–63 | 21–71 | — | — |
| 幸運 | 15–65 | 24–74 | 33–83 | — | — |
從表中查出有可能的附魔(括號內為對應附魔等級範圍)為:效率III(21-71),效率IV(31-81),效率V(41-91),絲綢之觸(15-65),耐久III(21-71),幸運II(24-74),幸運III(33-83)
即附魔等級調節值與對應出現在候選表中的附魔為(特別的,鋒利V是30級鑽石附魔唯一無法得到的附魔,因為其最低等級需要45)
| 附魔等級調節值 | 26-30 | 31-32 | 33-40 | 41-43 |
|---|---|---|---|---|
| 效率 | III | IV | IV | V |
| 幸運 | II | II | III | III |
| 耐久 | III | III | III | III |
| 絲綢之觸 | I | I | I | I |
第三步
決定在候選表的四個附魔中具體附魔哪一個,就需要計算各附魔權重,查表知效率為10,絲綢之觸為1,耐久為5,幸運為2 則各個附魔(與威力無關)的機率為,效率10/(10+1+5+2)=5/9,絲綢之觸1/18,耐久5/18,幸運1/9
如此便得到了第一個附魔
判斷是否得到更多附魔
等級調節值除以2,得到值範圍13~21.5,四捨五入得13~22
注意候選表已經不再受等級調節值影響,即如有第二個附魔為耐久則依舊必然為耐久III。
獲得第二個附魔的機率為P=(修改後的等級調節值+1)/50,機率範圍為28%~46%。
接下來候選表中刪掉已獲得附魔和衝突的——工具中只有絲綢之觸和幸運衝突,再次透過權重計算接下來獲得的附魔機率,並得到第二個附魔。
等級調節值再次除以2,得到值範圍6.5~11,四捨五入得7~11 獲得第三個附魔的機率範圍為16%~24%。
再重複刪掉候選表中已有和衝突的附魔,如此時候選表只剩幸運和絲綢之觸,則獲得幸運的機率為2/3,絲綢之觸機率為1/3,其他情況則只剩下一個候選附魔,必然獲得該附魔。 而因此鎬最多獲得三個附魔,之後即使得到第四個附魔機會,也會因候選表中沒有附魔而無效(而劍是有可能獲得五個附魔的,雖然機率極低)。
如此便得到了最終的附魔鑽石鎬。
附魔模擬器
附魔系統的測試與模擬系統:http://github.com/Zazcallabah/mce/downloads
線上版附魔機率計算器:1.8版本:http://www.minecraftenchantmentcalculator.com/rev6/ 1.7版本:http://www.minecraftenchantmentcalculator.com/rev5/
附魔可能性圖表
正式版 1.3 中各種附魔的可能性圖表:http://0xcafebabe.com/2012/05/minecraft-1-3-probabilities/
快照 12w22a 前的附魔可能性圖表:http://0xcafebabe.com/2012/01/minecraft-1-0-probabilities/
鑽石工具所有可能附魔列表。
參考
- ↑ Minecraft 1.3.2 原始碼