我的世界舊版刷怪塔詳解
我的世界MC中有很多怪物,在怪物死亡后會掉落一些物品,而這些物品大多是比較有用的,比如骷髏的箭,苦力怕的火藥。而有的懶人不想自己的親自殺怪,又想有很多那些物品,于是一種科技出現(xiàn)了:刷怪塔。這是一種讓怪物刷出在指定區(qū)域的建筑,并且通過一系列方式讓怪物自動死亡,這就可以讓玩家不必殺怪而獲得那些怪物的掉落物了。大家知道怎么刷怪塔的原理嗎,一起來看下面攻略。
第一節(jié):刷怪全能法則
1)難度級別不影響刷怪率
千真萬確,這一點已經(jīng)在代碼里驗證過。算法在生成怪物時并不調(diào)用難度參數(shù)。技術(shù)上而言,即使Peaceful難度也有著相同的刷怪率,盡管攻擊性怪物在生成后立刻被移除。
2)怪物可以在人造方塊上生成
鵝卵石,雙層臺階,羊毛這些方塊同石頭與泥土一樣可以生出怪物。然而怪物不會在玻璃或半層臺階上生成。對可以生成怪物的方塊來說,刷怪率也沒有差別。
3)刷怪現(xiàn)象存在于玩家周圍144×144格的范圍以內(nèi),24米以外
明確地說,刷怪發(fā)生于玩家周圍的144×144×128(長×寬×高)空間以內(nèi)。同時怪物只能在以玩家為中心,半徑為24m的球面之外生成。(游戲中一個方塊棱長1米,Alpha里的豎直空間只有128格)
示意圖:
怪物也不能再玩家初始地點24米以內(nèi)生成。
4)大型史萊姆能夠在peaceful難度下存在
史萊姆會在peaceful以外的所有難度生成。不過和其他攻擊性怪物不同的是,即使是大型史萊姆也不會在難度切換到peaceful時消失。如果在peaceful難度下殺掉大型史萊姆,它不會分裂成小史萊姆。史萊姆也能夠在任何亮度下生成,不過僅限于最下面的15格空間。
5)攻擊性怪物在亮度小于等于7級時生成。溫順的怪物只會在亮度大于等于9級的草地上生成。
方塊的亮度計算方式比較詭異。每個方塊本身的亮度和相鄰的4個方塊以及它上方的空氣方塊相比較,其中最亮的作為該方塊的亮度級別。這意味著即使是一個7級亮度的方塊,如果它相鄰方塊中有一個亮度為8級的話,攻擊性怪物也無法生成(補充:不知道為什么,這種情況只對泥土和半層臺階方塊有效)。
6)對指定的某個方塊而言,在它上面生成怪物的概率受到該方塊亮度(及周圍環(huán)境)的影響
每輪會隨機在0到7中選中一個數(shù)賦給變量R。如果方塊的亮度小于或等于R,在那一輪怪物就能夠在方塊上生成。所以亮度為0的漆黑洞穴比起亮度為4級的月光照亮的區(qū)域會高出75%的刷怪率。參考數(shù)據(jù):火炬亮度14級,火焰和日光為15級,月光是4級,而紅石火炬則是7級。離光源每隔一個方塊,亮度降低一級。
至于周圍環(huán)境對刷怪率的影響,詳見第三節(jié)。
7)在任意時刻,攻擊性怪物不超過200只,溫順的怪物不超過15只
一旦上限達到,除非有怪物死亡,消失,或者怪物所在的那塊地圖被釋放,否則不會生成新的怪物。
8)在一個空間里放置火炬不會影響別的空間里的刷怪率
當然,怪物數(shù)量達到上限時會出現(xiàn)例外。每個怪物在每一輪只有一次機會生成,如果由于火炬的原因而沒能成功生成的話,它也無法重新選擇生成地點,因此其他地方不會受到火炬的影響。換言之,用火炬把怪物聚集在一個區(qū)域的想法是不可行的。
9)史萊姆不遵循這些規(guī)律
史萊姆的生成機制有很多不同的地方。它的刷怪算法使用X,Y坐標代替X,Z來定位當前地圖,此外隨機生成機制也非常令人費解。不過別害怕,這個帖子里有個你可能感興趣的補丁。(打過補丁后史萊姆還是非常難以捉摸,只是分布更為廣泛而已)
第二節(jié):刷怪算法
刷怪算法一般每秒調(diào)用20次。每一輪執(zhí)行兩次,一次生成攻擊性怪物,一次生成溫順的怪物。
刷怪主循環(huán):
1)把當前所有的81個組塊放進一張偽隨機列表。(并不是真正的隨機,而是一串無法確定的特定順序)
2)如果列表非空,就從中取出一個組塊。
3)取一個隨機數(shù)來決定下面的行為。有十分之一的機會進入第4步,否則忽略該組塊回到第2步。
4)隨機選擇一種怪物(溫順的:豬,牛,雞,羊。攻擊性:蜘蛛,骷髏,僵尸,creeper,史萊姆)
5)在組塊里完全隨機地選擇一個地點L1
6)如果L1在巖石或其他實體內(nèi)部的話,就完全退出本次刷怪算法,忽略掉列表中剩下的組塊。
7)如果L1沒問題的話,它將作為一批怪物的生成地點。在L1周圍較分散地選取6個地點,記為L(i)。
刷怪子循環(huán)
8)檢查當前地點L(i)是否沒被占用,而且下面是能夠生成怪物的方塊,上方有空余空間。
9)如果檢查沒通過,則讀取下一個L(i)并回到第8步
10)檢查L(i)是不是在(所有)玩家24米以外。還要檢查是不是在初始地點24米以外。如果不是,則讀取下一個L(i)并回到第8步
11)準備好要生成的怪物(位置,朝向等)
12)LGT(i)表示L(i)處的亮度
13)(如果是生成攻擊性怪物)從0到7中隨機選一個數(shù)賦給變量R,如果LGT(i)≤R,就在L(i)處生成怪物。
13)(如果是生成溫順的怪物)如果LGT(i)>8,則在L(i)處生成怪物。
14)如果生成的怪物時蜘蛛的話,還會取一個隨機數(shù)決定是否再生成一只骷髏騎在蜘蛛背上,概率為百分之一。
15)讀取下一個L(i)并回到第8步。
16)處理完所有的L(i)以后,回到第2步。
17)返回。
(注:史萊姆有特別的生成規(guī)則,要考慮到海拔和亮度級別,這在第一節(jié)里提到過。)
第三節(jié):探討
假如你想造怪物收割機或是別的什么而需要使刷怪量最大化的話,就需要遵循一些規(guī)則。理想的刷怪場所例如凈化間,內(nèi)部空空如也,只有一層讓怪物出現(xiàn)的地板。在凈化間里刷怪速度很快,在幾秒內(nèi)就能達到200只的上限。
之所以這么高效,是因為幾乎完全避免了算法中第6步退出的情況,原因是在這些組塊中僅有0.8%的地方被實體方塊所占據(jù)。因此,大部分時間里所有的81個組塊都有刷怪的機會。
你也許會認為多層地板能進一步增加刷怪率,因為有更大的刷怪面積。雖然嚴格說來沒錯,但這么做也增加了觸發(fā)第6步退出的可能,從長遠看來弊遠大于利。
可能大部分人都沒法挖出144×144的深坑,所以最佳方案是找到一個低海拔洞穴盡可能多的區(qū)域。開放空間越大,刷怪率越高。即便沒有繪制出洞穴分布圖也有辦法找到合適的地方:可以四處探索,直到發(fā)現(xiàn)某處的怪物數(shù)量明顯偏高,那里就有可能一直出現(xiàn)很多怪物。
第四節(jié):神奇的刷怪塔
對于玩家所在的每個組塊而言,組塊的讀取順序都是獨一無二的,不過有一個例外。如果組塊(0,0)(即方塊0,0到15,15)在玩家周圍的81個組塊之中的話,該組塊總會第一個讀取。我們可以利用這個規(guī)律。不管地形如何,在讀取組塊(0,0)之前算法絕不會退出。這意味著組塊(0,0)比起其他的80個組塊而言有著最高的刷怪率,和凈化室一樣高。
為了說明這一點,我在組塊(0,0)里建造了一個19×19×64的刷怪塔,共有16層地板。幾分鐘以后塔里就聚集了約150只怪物,如果不是達到上限的話,可能會有更多。
(圖中的玻璃方塊其實是巖石,為了方便觀察用NBTForge修改成了玻璃的外觀)
- 新手指南 生存視頻 挖礦指南
- 進階攻略 電梯
- 合成世界 裝備 道具 藥劑
- 開服教程 蛤蟆吃開服教程
- 常見問題 JAVE路徑設(shè)置有誤 內(nèi)存錯誤000xx
網(wǎng)名 注:您的評論需要經(jīng)過審核才會顯示出來。提交評論
查看所有0條評論>>