作者zxcvforz (塔欧兹)
看板Minecraft
标题[闲聊] 暗房生怪
时间Tue Aug 28 02:32:18 2012
说到暗房生怪,最常见也最简单的大概是高塔掉落法吧,
也就是四个 8x8 的平台安排在十字形水道旁,统一把怪从中间摔落。
这个网路上很多,板上应该也有教学。
另一种较美观但是需要数倍工程的是把暗房盖在地底,
然後用水电梯把怪送上地面,最後通常用水淹或岩浆刀,
不过也是可以再往上送到高处後用摔落法,只是这样不如一开始就用高塔。
反盖塔的问题就是蜘蛛容易卡住通道,不过其实也是有办法对应的。
由於最新的测试版已经发现在砍生怪砖经验房的效率,
所以未来势必是要改成盖暗房式的经验房(前提是不改)。
说到暗房生怪,就必须先理解 Minecraft 里生怪,以及「消怪」的规则。
http://www.minecraftwiki.net/wiki/File:Mob_spawning_ranges.png
这张 wiki 图说明最清楚。首先是会发现所有距离的计算都是球体,
并非立方体,这在设计暗房时是非常重要的,容後再述。
再来就是可以发现:(注:Minecraft 里 1 格方块就是 1 公尺。)
< 16m - 生怪砖启动
< 24m - 不会自然生怪
> 32m - 怪不会动,且 30 秒後有机率消失(每 1/20 秒有 1/800 机率)
> 128m - 怪一生出来立即消失
再来就是一个非常重要的规则:自然生怪时,除了乌贼以外,
没有怪能生在有水覆盖的格子里。
所以任何暗房生怪法必然需要把冲怪的水流和生怪的平台分开来,
不像生怪砖房,直接整个房间冲水就通畅无比。
可是怪又不会自己跳水,该怎麽办?
(注:1.3.2实际观察结果是会自己跳水,跳得可踊跃了。)
可以在平台边缘贴告示牌或活门,怪会以为平台比实际要大而走过去掉入水流;
原本也有人用梯子,但是梯子会卡怪(有厚度)所以现在几乎都用告示牌。
把告示牌贴满生怪平台的四周,怪在乱走时就有机率会掉入水流。
(感谢板友 rinkai 指正。)
这里就出现关键了:怪在「乱走时」才会掉入水流。
再看一下前面列出的距离,当怪离玩家超过 32 格时不会动。
所以暗房生怪一个很重要的观念是:「做太大效益反而可能变差。」
为什麽?因为超过 32 格时,大部分的怪都是生出来发呆到消失,
白白浪费 30-40 秒的时间占住区域生怪限额,导致暗房的效益降低。
那麽多大的暗房最好呢?请看此图:
http://i.imgur.com/oTLLf.jpg
(注:由於距离计算是球体,所以把构造反过来就可以当成掉落塔用了。)
图中蓝虚线和棕色虚线之间的范围,就是怪生出来之後会自由行动的范围。
棕线线以内不会生怪,蓝色线以外怪不会动。
(注:这张图是地底式;做高空掉落塔的话,淡绿色生怪区会延伸碰到蓝线。)
图中可以看到,在距离玩家 25 层的最短生怪距离当做生怪区域的话,
那麽第 26 层就是生怪平台(灰色格),这层最宽是离玩家 18 格远。
也就是说总共 37x37 的面积,是暗房生怪最大可用面积。
当然图中也看得出来我们可以做双层的塔,第一层地板 37x37 在第 26 层高,
第二层地板在 29 层高处,但是面积只会剩下 29x29.
第三层地板必须在 32 层高处,但是面积小到不值得做。
反过来看,做成高空掉落塔的话,变成是第 24 层处是地板,面积可达 41x41。
第二层地板在第 27 层处,面积有 33x33。
只要超出以掉落坑为中心,41x41 范围的生怪平台都是浪费!
(水电梯的地底型更小,只有 37x37。)
这里要注明一下,实际上超过玩家 32 格远的怪并不是生出来就发呆,
而是「有机率」生出来後一、两秒内朝随机方向移动随机一小段距离。
不过由於这机率偏低(实际测试观察),所以基本上是不值得做的。
观察法:超平坦世界,玩家离地面 130 格,在第 95 格高盖平台,
发现绝大多数的怪都是出生後就原地不动(会转方向但不会移动)。
十只只有一、两只会移动一小段距离。
写到这里,就必须提到,这些结论都是以「怪物必须自行移动掉落」为前提。
其实还有许多种生怪房的设计是不需要怪物自行移动的!
例如用红石钟摆机关,每 N 秒放水冲一次平台把怪冲下来,
又或是用活塞每 N 秒把怪推下来一次,这些都不需要怪物移动,
所以可以有效利用第 32 格到第 128 格之间的空间。
不过就算真的在第 120 格远盖了生怪房,怪掉下来也死掉拿不到经验;
如果分段把怪推下来,没设计好搞不好到达第 32 层之前就消失了。
别忘了超过 32 格的怪在存活 30 秒後就每 1/20 秒有 1/800 机率消失,
所以要在 30 秒内把怪送入 32 格范围,否则就会开始有怪消失。
(不过这点通常可以在垂直通道底下放悬空水流接怪就是了。)
那麽多大的塔最好呢?
首先,任何暗房一定要优先占用第 25~31 格的这段空间来生怪,
因为这些怪保证能够送到你面前给你杀,也是距离你最近的空间。
再来,一个 8x8x120 的塔不如一个 20x20x20 的塔,
因为一只怪花 20 秒到你面前,不如两只怪各花 10 秒到你面前。
最後,大塔不代表就没用,只是要配红石把怪强制送入运输通道。
至於到底该做多大,实际上并没有定论。这要看周遭的其他生怪空间而定。
当你的生怪房是唯一能够生怪的地方,那麽只要别做得太小,
效益都不会很差,一般常见的十字形塔用 8x8 平台一、两层就很够了,
怪掉下来你滑鼠按得够不够快比较重要。
(是的,生怪生再多再快,还是受限於击杀的速度。)
但是当你周遭有其他生怪空间时,例如你盖在接近地表,
而地底下有一大堆未探索的空洞,甚至是还有两、三个生满六只怪的生怪砖时,
这些怪都会减少你生怪房的有效上限,导致效益大幅降低。
(其实就算地底全点亮,还是会有区块生史莱姆稍微降低效益的。
别忘了史莱姆就算生在 32 格外,也会存活至少 30 秒後才消失,
等於暂时性降低你生怪房可生的怪物数量。)
效益最高的塔永远会是终界安德曼塔,因为可以 100% 控制住生怪位置。
再来就是高空塔,这比不上安德曼塔的原因单纯是会掺蜘蛛进去,
而蜘蛛血量较少,其他怪摔到濒死的话蜘蛛则是必死或满血(爬墙下来)。
用半砖卡掉蜘蛛的话又会减少可生怪的位置,所以效益会稍微低一点点。
最差的就是在地面直接盖的掉落塔,不过只要周围的地底有彻底探索点亮,
效益仍然是非常好的。
所以在盖超大型超多层超复杂红石的经验塔之前,
可以考虑试试最简单的十字形配四个 8x8 平台的简易摔落塔,
只要在生怪 1 分钟後你没办法杀得比怪掉下来还快,
那再提升生怪速度也都是白费,因为你的击杀速度就卡在这里了。
反过来说,除非你的经验房常让你杀完一只怪在那边等下只怪出现,
否则完全没有扩建的必要,因为你已经没办法再提升经验值进帐速度了。
附录 - Minecraft 生怪程式流程
每 1/20 秒查看一次玩家中心 15x15 区块范围内的怪物数量。
如果数量已达上限,停止生怪,否则继续:
在 15x15 区块的每一个区块,执行:
随机抽一个座标,若此处方块不是空气,或者有障碍物,
(障碍物=告示牌、水、活门等),则跳往下一个区块,
否则在此区块执行:
以此座标为原点,在相同高度的 41x41 平面范围内,
抽最多 12 个位置,生最多 4 只怪。(幽灵最多 1 只。)
抽第一个位置时也会随机决定这组怪是什麽种类。
每抽一个位置,该位置脚下必须是实心方块,
且周围状况符合该怪种生怪条件(亮度、空间)。
for each game tick: check 15x15 chunk mob amount
if amount < limit then:
for each chunk in 15x15 chunks:
get random originBlock in chunk
if originBlock.hasSpace then:
mob_type = random
mob_spawned=0; attempts=0;
repeat while mob_spawned<4 and attempts<12 {
get random (x,z) within 41x41 of originBlock
if (x,z).canSpwan(mob_type) then {
(x,z).spawnMob(mob_type)
mob_spawned++;
}
attempt++;
}
十几年没写程式了,连类程式码都写不好啦 orz
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.241.141.194
※ 编辑: zxcvforz 来自: 111.241.141.194 (08/28 02:36)
1F:推 rusa:实心方块..怪怪的 现在上半砖也会生啊 08/28 03:42
2F:推 scropio1190:我觉得在盖好之前就会被摔到ban lol 08/28 06:55
3F:推 jeffffliu:我想要在现实打地狱猪人 08/28 07:44
4F:推 InfinitySA:现在最好的暗房是推落式 大型水流塔之类的效率没以前 08/28 08:58
5F:→ InfinitySA:好了 08/28 08:58
6F:→ InfinitySA:比如可以参考烧蛋某西瓜作的终界塔 XDD 08/28 08:59
7F:→ zxcvforz:游戏初期一定是做水流塔的,推落式花太多资源 08/28 09:44
8F:推 jeffffliu:现在怪物到底会不会走到看板上? 08/28 10:43
9F:推 blacknil:实用! 08/28 12:03
10F:推 rinkai:"最早以前是用活门"这个不太对,当开始用坠落式的时候就已 08/28 12:43
11F:→ rinkai:经在用牌子了,活板门比较晚出 08/28 12:44
※ 编辑: zxcvforz 来自: 114.25.60.98 (08/28 14:16)
12F:推 jeffffliu:初期找生怪砖(被殴打 [那也要找的到 08/28 14:23
13F:→ jimcheer:烧蛋的生怪砖都生不太出来 久久才生一次 其他都难产 08/28 15:04
14F:推 InfinitySA:因为太多人挂塔了 怪数量达到server总上限 08/28 15:28
15F:→ gh0987:记得1.2.3之後 怪物会认梯子跟告示牌的样子? 08/28 16:18
16F:→ Nuaaukw:告示牌上写着:「苦力帕请往左/骨弓请往右」 (咦?) 08/28 16:24
17F:推 jeffffliu:然後接着骨弓看到下一个告示排:「请射Creeper」 08/28 16:24
18F:→ Nuaaukw:苦力帕酱看到的是「要忍住!不能输!」 (够了你) 08/28 16:29
19F:推 rinkai:啊啊不过要说的就是如果用活板门比较省成本,放置容易而且 08/28 16:40
20F:→ rinkai:进行维修时可以开关站立,比较方便 08/28 16:41
21F:→ rinkai:我觉得用告示牌是最浪费的方法,而且很难放= = 08/28 16:42
22F:→ rinkai:生物的AI改了不少,这对怪物塔的设计差很多... 08/28 16:43
23F:推 jeffffliu:怪物AI改之前 活板门效率比较差 因为因为它有体积看板没 08/28 17:04
24F:→ InfinitySA:现在连活塞设备都一堆要改了 w 08/28 17:06
25F:→ rusa:活塞真的要动很多地方XD 08/29 03:33
26F:推 loveblud:建了两个生怪塔都不生怪 因为地下矿坑太大 QQ 後来就放弃 08/30 00:59
27F:→ loveblud:去找生怪砖了 08/30 00:59
28F:推 norton159:我居然看得懂那堆程式码(艹 ) 09/05 21:14