魔咒是如何選擇出來(lái)的
“魔咒等級(jí)”是某一魔咒所需的經(jīng)驗(yàn)級(jí)別(在按鈕上的綠色數(shù)字)。
“魔咒威力”是某一特定魔咒的力量。例如,“鋒利IV”有4點(diǎn)威力。
魔咒的挑選有三個(gè)步驟。
第一步-對(duì)附魔等級(jí)加入調(diào)節(jié)值
首先游戲會(huì)把兩個(gè)調(diào)節(jié)值加入到被選的附魔等級(jí)中。每個(gè)調(diào)節(jié)值會(huì)被限制在一定的范圍內(nèi),數(shù)字接近范圍中央的會(huì)比靠近兩端的更常見。
第一調(diào)節(jié)值是基于附魔對(duì)象的“附魔能力”,這取決于該物品的材料和類型(見下表)。游戲會(huì)在0至附魔能力的一半(實(shí)際上,游戲會(huì)先將附魔能力除以4,四舍五入為整數(shù)后再乘以2)之間隨機(jī)挑選一個(gè)數(shù)字,然后將這個(gè)數(shù)字和1加到附魔等級(jí)里。此時(shí),弓的附魔能力是1。然后,這個(gè)隨機(jī)數(shù)會(huì)經(jīng)過(guò)三角形分布處理,使得最終結(jié)果靠近附魔能力一半的幾率遠(yuǎn)大于靠近極值的幾率。
修改后的附魔等級(jí)= 附魔等級(jí)+ 隨機(jī)值(0, 附魔能力/ 4 * 2) + 1
(每步計(jì)算完畢后四舍五入)
材料 | 對(duì)應(yīng)盔甲的附魔能力 | 對(duì)應(yīng)劍/工具的附魔能力 |
木 | 不可用 | 15 |
皮革 | 15 | 不可用 |
石 | 不可用 | 5 |
鐵 | 9 | 14 |
鏈(鏈甲) | 12 | 不可用 |
鉆石 | 10 | 10 |
金 | 25 | 22 |
接著,Minecraft會(huì)在0.85和1.15之間挑選一個(gè)值,并再次經(jīng)過(guò)三角形分布處理。修改后的附魔等級(jí)會(huì)乘以這個(gè)值(因此它可以增加或減少最多15%),然后四舍五入至整數(shù),得到最終的等級(jí)調(diào)節(jié)值。
偽代碼
// 返回一個(gè)區(qū)間為[0,n-1)的隨機(jī)整數(shù)
function randomInt(n);
// 返回一個(gè)區(qū)間為[0,1)的一個(gè)隨機(jī)實(shí)數(shù)
function randomFloat();
// 利用三角隨機(jī)分布,生成一個(gè)區(qū)間為[1,1+(附魔能力/2))的隨機(jī)數(shù)
enchantability_2 = enchantability / 2;
int rand_enchantability = 1 + randomInt(enchantability_2 / 2 + 1) + randomInt(enchantability_2 / 2 + 1);
// 選擇附魔能級(jí)
int k = chosen_enchantment_level + rand_enchantability;
// 0.85至1.15之間的附魔獎(jiǎng)勵(lì)
float rand_bonus_percent = (randomFloat() + randomFloat() - 1) * 0.15 + 1;
// 最終計(jì)算得到等級(jí)
int final_level = (int)(k * (1 + rand_bonus_percent) + 0.5);
第二步-尋找可能的魔咒
現(xiàn)在,以等級(jí)調(diào)節(jié)值為基礎(chǔ),游戲會(huì)先列出所有可應(yīng)用于目標(biāo)物品的附魔類型及其威力(候選表),以便之后的挑選。
魔咒等級(jí)表中列出了每一種魔咒類型的可用等級(jí)及其威力。對(duì)于每一級(jí)威力的每種魔咒,都有與其規(guī)定的等級(jí)調(diào)節(jié)值范圍。當(dāng)?shù)燃?jí)調(diào)節(jié)值符合某級(jí)威力某個(gè)魔咒的等級(jí)調(diào)節(jié)值范圍時(shí),這個(gè)魔咒進(jìn)入候選表;如果等級(jí)調(diào)節(jié)值同時(shí)包含于同一個(gè)魔咒不同級(jí)別威力的等級(jí)調(diào)節(jié)值范圍內(nèi)時(shí),較高等級(jí)的魔咒進(jìn)入候選表。例如,劍的“鋒利I”和“鋒利II”魔咒的等級(jí)調(diào)節(jié)值范圍分別為1 - 21 和12 - 32 ,則當(dāng)?shù)燃?jí)調(diào)節(jié)值為10時(shí),“鋒利I”進(jìn)入候選列表;當(dāng)?shù)燃?jí)調(diào)節(jié)值為15時(shí),“鋒利II”則會(huì)進(jìn)入候選列表。Enchantview Mod 可以查看將要附魔的物品能附上什么魔咒。
一把附有幾個(gè)魔咒的劍。(在正式版1.3 后,鋒利V 無(wú)法附到鉆石劍上。)
第三步-從候選表中選擇魔咒
現(xiàn)在它有了該物品的附魔候選表,游戲會(huì)從它們之中選擇一些會(huì)最后應(yīng)用到的附魔。
最終附上的魔咒至少會(huì)有一個(gè),第一個(gè)魔咒會(huì)從“權(quán)重”名單中被挑選出來(lái)——權(quán)重越高的魔咒,選中的機(jī)會(huì)越高。
P(魔咒)=(魔咒權(quán)重)/(∑i=1可能的魔咒的數(shù)量〖魔咒權(quán)重i〗)
盔甲魔咒 | 權(quán)重 |
保護(hù) | 10 |
火焰保護(hù) | 5 |
摔落保護(hù) | 5 |
爆炸保護(hù) | 2 |
彈射物保護(hù) | 5 |
水下呼吸 | 2 |
水下速掘 | 2 |
劍魔咒 | 權(quán)重 |
鋒利 | 10 |
亡靈殺手 | 5 |
節(jié)肢殺手 | 5 |
擊退 | 5 |
火焰附加 | 2 |
搶奪 | 2 |
工具魔咒 | 權(quán)重 |
效率 | 10 |
精準(zhǔn)采集 | 1 |
耐久 | 5 |
時(shí)運(yùn) | 2 |
弓魔咒 | 權(quán)重 |
力量 | 10 |
擊退 | 2 |
火矢 | 2 |
無(wú)限 | 1 |
第一個(gè)魔咒被選中后,根據(jù)以下算法來(lái)判斷是否得到更多魔咒:
1、將等級(jí)調(diào)節(jié)值除以2,并四舍五入。(這不影響魔咒候選表,因?yàn)楹蜻x表在第二步已經(jīng)確定。)
2、以P=(修改后的等級(jí)調(diào)節(jié)值+1)/50 的幾率決定是否選擇額外的魔咒。
3、選擇額外的魔咒后,刪除表中任何與先前選擇附魔相沖的魔咒。
4、從剩下的魔咒候選表中挑選一個(gè)魔咒(像之前一樣,以權(quán)重為基準(zhǔn))并將其加入到該物品。
5、重復(fù)第一步。
相沖的魔咒
一些魔咒會(huì)與其他魔咒相沖,因此不能附到同一物品上,有效地減低玩家擁有過(guò)強(qiáng)武器/盔甲的可能性。
魔咒相沖的規(guī)則是:
每個(gè)魔咒與本身相沖。(所以你不能得到有兩個(gè)相同魔咒的的工具。)
所有保護(hù)類魔咒相互沖突,所以一個(gè)物品只能有一個(gè)。(在程序代碼中,摔落保護(hù)是一種保護(hù)類魔咒,但它不與其他保護(hù)類魔咒發(fā)生沖突。)
所有傷害類魔咒(鋒利、亡靈殺手和節(jié)肢殺手)相互沖突。
“精準(zhǔn)采集”和“時(shí)運(yùn)”也會(huì)互相沖突。(在通過(guò)使用物品修改器得到的同時(shí)擁有“時(shí)運(yùn)”與“精準(zhǔn)采集”魔咒的鎬中,“時(shí)運(yùn)”會(huì)失效,因?yàn)椤熬珳?zhǔn)采集”的存在導(dǎo)致根本就不能采到方塊的掉落資源,只能夠得到方塊本身。)
以鉆石鎬30級(jí)的附魔為例
第一步
首先計(jì)算附魔調(diào)節(jié)值,鉆石無(wú)論劍/工具/盔甲的附魔能力都為10,則10/4=2.5,四舍五入得3,再3*2=6,則系統(tǒng)會(huì)在0~6范圍內(nèi)隨機(jī)取一個(gè)值,再+1,即為修改后的附魔等級(jí),范圍在31~37
接著乘以0.85~1.15間的一個(gè)隨機(jī)值,得到最終的等級(jí)調(diào)節(jié)值,范圍為26.35~42.55,四舍五入得26~43,
而你得到的等級(jí)調(diào)節(jié)值是范圍內(nèi)的一個(gè)值(由于兩次三角算法所以靠近中間值35的概率比靠近極值大),這個(gè)值將會(huì)影響魔咒候選表和是否獲得更多魔咒。
第二步
工具魔咒 | 修改后的附魔等級(jí) | ||||
I | II | III | IV | V | |
效率 | 1–51 | 11–61 | 21–71 | 31–81 | 41–91 |
精準(zhǔn)采集 | 15–65 | — | — | — | — |
耐久 | 5–55 | 13–63 | 21–71 | — | — |
時(shí)運(yùn) | 15–65 | 24–74 | 33–83 | — | — |
以此為基準(zhǔn)通過(guò)魔咒等級(jí)表來(lái)選擇入選魔咒
從表中查出有可能的魔咒(括號(hào)內(nèi)為對(duì)應(yīng)魔咒等級(jí)范圍)為:效率III(21-71),效率IV(31-81),效率V(41-91),精準(zhǔn)采集(15-65),耐久III(21-71),時(shí)運(yùn)II(24-74),時(shí)運(yùn)III(33-83)
即附魔等級(jí)調(diào)節(jié)值與對(duì)應(yīng)出現(xiàn)在候選表中的魔咒為(特別的,鋒利V是30級(jí)鉆石附魔唯一無(wú)法得到的魔咒,因?yàn)槠渥畹偷燃?jí)需要45)
附魔等級(jí)調(diào)節(jié)值 | 26-30 | 31-32 | 33-40 | 41-43 |
效率 | III | IV | IV | V |
時(shí)運(yùn) | II | II | III | III |
耐久 | III | III | III | III |
精準(zhǔn)采集 | I | I | I | I |
第三步
決定在候選表的四個(gè)魔咒中具體附魔哪一個(gè),就需要計(jì)算各魔咒權(quán)重,查表知效率為10,精準(zhǔn)采集為1,耐久為5,時(shí)運(yùn)為2 則各個(gè)附魔(與威力無(wú)關(guān))的概率為,效率10/(10+1+5+2)=5/9,精準(zhǔn)采集1/18,耐久5/18,時(shí)運(yùn)1/9
如此便得到了第一個(gè)附魔
判斷是否得到更多魔咒
等級(jí)調(diào)節(jié)值除以2,得到值范圍13~21.5,四舍五入得13~22
注意候選表已經(jīng)不再受等級(jí)調(diào)節(jié)值影響,即如有第二個(gè)魔咒為耐久則依舊必然為耐久III。
獲得第二個(gè)魔咒的概率為P=(修改后的等級(jí)調(diào)節(jié)值+1)/50,概率范圍為28%~46%。
接下來(lái)候選表中刪掉已獲得附魔和沖突的——工具中只有精準(zhǔn)采集和時(shí)運(yùn)沖突,再次通過(guò)權(quán)重計(jì)算接下來(lái)獲得的魔咒概率,并得到第二個(gè)魔咒。
等級(jí)調(diào)節(jié)值再次除以2,得到值范圍6.5~11,四舍五入得7~11 獲得第三個(gè)魔咒的概率范圍為16%~24%。
再重復(fù)刪掉候選表中已有和沖突的附魔,如此時(shí)候選表只剩時(shí)運(yùn)和精準(zhǔn)采集,則獲得時(shí)運(yùn)的概率為2/3,精準(zhǔn)采集概率為1/3,其他情況則只剩下一個(gè)候選魔咒,必然獲得該魔咒。而因此鎬最多獲得三個(gè)魔咒,之后即使得到第四個(gè)附魔機(jī)會(huì),也會(huì)因候選表中沒(méi)有魔咒而無(wú)效(而劍是有可能獲得五個(gè)魔咒的,雖然概率極低)。
如此便得到了最終的附魔鉆石鎬。
附魔可能性圖表
鉆石工具所有可能附魔列表。
瀏覽量:72022-07-19
瀏覽量:12021-05-31
瀏覽量:02021-05-29
瀏覽量:02021-05-17
瀏覽量:02021-04-23
瀏覽量:02019-10-13