本文章介紹附魔的機制。
附魔基礎
當把一件可附魔的物品放上附魔台時,可用的附魔等級將會依據以下公式隨機生成。附魔等級由附近書櫃的數量(最多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個書櫃即可達到最大附魔等級,所以書櫃的排列有很多種方法。一種最簡單的方法是用一層書櫃圍著附魔台繞上一圈:
另外一種方法則是做一個「圖書角」,書櫃放兩層。這種方法使用了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%),然後四捨五入至整數,得到最終的等級調節值。
偽代碼
// Returns a uniformly distributed random integer between 0 and n - 1, inclusive function randomInt(n); // returns a uniformly distributed random real (fractional) number between 0 (inclusive) and 1 (exclusive) function randomFloat(); // Generate a random number between 1 and 1+(enchantability/2), with a triangular distribution enchantability_2 = enchantability / 2; int rand_enchantability = 1 + randomInt(enchantability_2 / 2 + 1) + randomInt(enchantability_2 / 2 + 1); // Choose the enchantment level int k = chosen_enchantment_level + rand_enchantability; // A random bonus, between .85 and 1.15 float rand_bonus_percent = (randomFloat() + randomFloat() - 1) * 0.15; // Finally, we calculate the level int final_level = (int)(k * (1 + rand_bonus_percent) + 0.5);
Source:[1]
第二步 - 尋找可能的附魔
一把附有幾個附魔的劍。(在正式版 1.3 後,鋒利 V 無法附到鑽石劍上。)
現在,以等級調節值為基礎,遊戲會先列出所有可應用於目標物品的附魔類型及其威力(候選表),以便之後的挑選。
附魔等級表中列出了每一種附魔類型的可用等級及其威力。對於每一級威力的每種附魔,都有與其規定的等級調節值範圍。當等級調節值符合某級威力某個附魔的等級調節值範圍時,這個附魔進入候選表;如果等級調節值同時包含於同一個附魔不同級別威力的等級調節值範圍內時,較高等級的附魔進入候選表。例如,劍的「鋒利 I」和「鋒利 II」附魔的等級調節值範圍分別為 1 - 21 和 12 - 32 ,則當等級調節值為10時,「鋒利 I」進入候選列表;當等級調節值為15時,「鋒利 II」則會進入候選列表。Enchantview Mod 可以查看將要附魔的物品能附上什麼附魔。
第三步 - 從候選表中選擇附魔
現在它有了該物品的附魔候選表,遊戲會從它們之中選擇一些會最後應用到的附魔。
最終附上的附魔至少會有一個,第一個附魔會從「權重」名單中被挑選出來——權重越高的附魔,選中的機會越高。
| P(附魔)=(附魔權重)/(∑i=1可能的附魔的數量〖附魔權重i〗) |
|---|
| 盔甲附魔 | 權重 |
|---|---|
| 保護 | 10 |
| 火焰保護 | 5 |
| 輕盈 | 5 |
| 爆炸保護 | 2 |
| 投射物保護 | 5 |
| 水下呼吸 | 2 |
| 親水性 | 2 |
| 劍附魔 | 權重 |
| 鋒利 | 10 |
| 不死剋星 | 5 |
| 節肢剋星 | 5 |
| 擊退 | 5 |
| 燃燒 | 2 |
| 掠奪 | 2 |
| 工具附魔 | 權重 |
| 效率 | 10 |
| 絲綢之觸 | 1 |
| 耐久 | 5 |
| 幸運 | 2 |
| 弓附魔 | 權重 |
| 力量 | 10 |
| 擊退 | 2 |
| 火焰 | 2 |
| 無限 | 1 |
第一個附魔被選中後,根據以下算法來判斷是否得到更多附魔:
- 將等級調節值除以2,並四捨五入。(這不影響附魔候選表,因為候選表在第二步已經確定。)
- 以 P=(修改後的等級調節值+1)/50 的機率決定是否選擇額外的附魔。
- 選擇額外的附魔後,刪除表中任何與先前選擇附魔相衝的附魔。
- 從剩下的附魔候選表中挑選一個附魔(像之前一樣,以權重為基準)並將其加入到該物品。
- 重複第一步。
相衝的附魔
一些附魔會與其他附魔相衝,因此不能附到同一物品上,有效地減低玩家擁有過強武器/盔甲的可能性。
附魔相衝的規則是:
- 每個附魔與本身相衝。(所以你不能得到有兩個相同附魔的的工具。)
- 所有保護類附魔相互衝突,所以一個物品只能有一個。(在程式代碼中,輕盈是一種保護類附魔,但它不與其他保護類附魔發生衝突。)
- 所有傷害類附魔(鋒利、不死剋星和節肢剋星)相互衝突。
- 「絲綢之觸」和「幸運」也會互相衝突。(在透過使用物品修改器得到的同時擁有「幸運」與「絲綢之觸」附魔的鎬中,「絲綢之觸」會失效,因為「絲綢之觸」根本就不能採到方塊的掉落資源,只能夠得到方塊本身。)
鑽石工具所有可能附魔列表。
附魔模擬器
附魔系統的測試與模擬系統:http://github.com/Zazcallabah/mce/downloads
附魔可能性圖表
正式版 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 原始碼