收起

温馨提示

只有认证用户才能操作

为了享受完美体验,赶快去认证吧

认证
游戏技巧 > 话题详情
标记
教程
2673
4
举报
2015-01-08
8:39
未知_genghe 楼主
8 合金装备史蒂夫
帖子:126

刷怪箱可能会在以下地点出现,以以下几率随机出现一种:

  • 地牢

  • 生成僵尸(50%几率),骷髅(25%几率)或者蜘蛛(24%几率),在蜘蛛刷怪箱中生成蜘蛛骑士(1%几率)。每个地牢仅有一个刷怪箱。

  • 废弃矿井

  • 生成洞穴蜘蛛。一般位于水平的隧道中,并且被大量的蜘蛛网所包围。

  • 要塞

  • 生成蠹虫,位于末地传送门框架所在的房间。每个要塞仅有一个。

  • 下界要塞

  • 生成烈焰人。位于有楼梯引领上去的阳台上。

自然生成的刷怪箱不会生成被动性生物,以及爬行者、末影人。当然,如果使用地图编辑器或Mod修改刷怪箱,它就会生成几乎全部生物(除了巨人之外)。

在生存模式中没有任何手段能够把刷怪箱放在你的物品栏中,除非使用Mod或物品栏修改器,或使用“/give”指令。刷怪箱不会在创造模式中的物品选择栏中出现,但可以通过“选择方块”功能获得。如果刷怪箱通过这种方式放置,或者一个刷怪箱丢失了方块实体值,它就会生成猪。在之前可以使用 /give [用户名] 52:<实体数字ID> [数量] 0 指令给予生成特定生物的刷怪箱,之后请使用/give [用户名] 52 [数量] 0 {BlockEntityTag:{EntityId:"<实体字母ID>"}}

生成规律

刷怪箱会在其周围生成生物,但也要符合生物本身生成的要求。不同生物的要求不同。例如,主世界中的攻击性生物只能在黑暗中(亮度为7或以下),而家畜则必须在草上生成,亮度要求9或以上。不过,刷怪箱可以将生物生成在空中,这样会忽略掉生物对于地面的生成要求。

玩家距离刷怪箱16个方块内时,刷怪箱才会工作。当刷怪箱工作时,会以刷怪箱方块八个端点中x和z坐标最小的一点为中心的 8 × 3 × 8 (8方格长宽,3方格高,8方格深)的有效区域生成生物。生物可以在此区域符合生物生成要求的任意一处生成,即使刷怪箱周围不符合要求。若此区域全部符合生物生成的要求,则生物生成点不呈线性,且越靠近刷怪箱处生成几率越大。

刷怪箱会尝试在有效区域内生成共4个生物,每生成一次后会等待200-799刻(10-39.95秒,随机)再进行下一次生成。在等待时,刷怪箱笼子里的生物会越转越快。除了对地面的生成要求,生物的其它生成要求也必须要满足(如不能生成在固体方块中、正确的亮度范围),因此一个刷怪箱常常不能生成出4个生物。如果刷怪箱在有效区域内找不到任何符合要求的位置生成生物,则每一刻都会尝试一次。当刷怪箱成功生成至少一个生物后才会进入下一个生成周期。如果在生成阶段,刷怪箱周围17 × 9 × 17的空间存在至少6个生物,则刷怪箱内火焰会升腾(表示已经“生成”了新的生物),但实际上生成过程被跳过,进入下一个周期。不过,如果这个空间外的生物数量比这个空间内(就算超过了6个)更多,则刷怪箱也会继续无限地生成生物。

需要注意的是,生物生成点x、y、z坐标都是整数,不一定会与刷怪箱对齐。生物生成时,脚的高度会与刷怪箱在同一层,或者比刷怪箱高一层或低一层。但水平上可以在8 × 8平面中的任意一处。由于生物本身占有高度,因此在刷怪箱有效区域比8 × 3 × 8还要大一些。

刷怪箱的方块实体值可以修改为其它实体如矿车或船,做成装饰方块。但这样的刷怪箱在Minecraft 1.2.5以及之前的版本尝试生成时,游戏会崩溃。1.3.1已经无此问题。

在和平难度下,刷怪箱也会出现,但生物在生成后会立即消失(僵尸猪人、岩浆怪和恶魂根本不会生成)。这样在修筑刷怪塔的时候不会被它们烦扰。但生物存在的那一瞬间也足以推开玩家,或发出声音;对于骷髅,甚至会射出箭。

下面的表将会展示其本身一些更复杂的特性:

经过推测一个普通刷怪笼的最大生成数量

生物形态

需求空间

在8×8×4的空间内的生成比率(8×8×3才是刷怪箱生成实体的正确空间)

垂直
对齐


猪    8.9 × 8.9 × 2.9    2.531252%    


洞穴蜘蛛    8.7 × 8.7 × 2.5    1.531252%    


蠹虫    8.3 × 8.3 × 2.7    0.28125%    


僵尸

骷髅

烈焰人    8.6 x 8.6 x 3.8    1.125%    


蜘蛛    9.4 × 9.4 × 2.9    6.125%    

详细的生成算法

这份伪代码基于 Minecraft 1.4.2 反编译出的源文件:

<pre>
every spawn cycle (every randInt(200,799) ticks when a player is within
   17 blocks of the spawner),
loop 4 times {
       if there are 6 or more of the mob type in the 17x9x17 area around the spawner,
          skip this spawn cycle
       calculate spawnerX = X coordinate of center of spawner - 0.5
       calculate spawnerY = Y coordinate of center of spawner - 0.5
       calculate spawnerZ = Z coordinate of center of spawner - 0.5
       calculate x coordinate of mob = spawnerX + (randDouble() - randDouble()) * 4,
           randDouble being a random number between 0 and 1
       calculate y coordinate of mob = spawnerY + a random integer between -1 and 1
       calculate z coordinate of mob = spawnerZ + (randDouble() - randDouble()) * 4,
           randDouble being a random number between 0 and 1
       if all of the conditions specific to the mob type are met, spawn the mob {
         chicken, cow, horse, mooshroom, pig, sheep, villager, wolf:
               block below spawning block is grass
               spawning block has a light level of 9 or higher

         ocelot:
               pass a 2/3 random test
               block below spawning block is grass or leaves
               on layer 63 or higher

         creeper, enderman, skeleton, spider, cave spider, zombie:
               light level 7 or less

         blaze:
               light level 11 or less

         silverfish:
               light level 11 or less, or on Stone blocks
               no players within 5 blocks

         slime:
               difficulty is not set to peaceful or slime size is small
               either:
                       spawn block y coordinate is less than 40
                       the chunk containing the spawn block is a slime chunk (1 in 10 chance)
                       pass a 1 in 10 random test
               or:
                       swamp biome, layer 51 through 69, light level 7 or less
         
         ghast:
               pass a 1 in 20 random test
         
         squid:
               must not collide with any other entities
               must be in layer 46-62
         
         giant:
               light level 7 or less
               light level 8 or more
               (since these conditions can't be true simultaneously, giant spawners don't work)
         
         all except squid and slimes:
               must not collide with any blocks or other entities
               must not collide with water or lava
       }
}
if all 4 mobs failed to spawn, repeat on the next tick

这份伪代码基于 Minecraft 1.7.10 反编译出的源文件:

if (there is a player within the range of activatingRangeFromPlayer)
{
   if (spawner delay == -1)
   {
       reset spawner delay
   }

   if (spawner delay > 0)
   {
       decrement spawner delay by 1
       cancel this spawn
   }

   loop for the number of entities we should spawn
   {
       if (the number of entityTypeName in a 2*spawnRange+1 centered cube > maxNearbyEntities) {
           reset spawner delay
           exit loop
       }

       X = Spawner.x + random(spawnRange*2)-spawnRange;
       Y = Spawner.y + random(3)-1;
       Z = Spawner.z + random(spawnRange*2)-spawnRange;

       if (entity can spawn at (X,Y,Z))
       {
           Spawn entityTypeName at (X,Y,Z)
           Play Sound Effect
           Spawn Particles
       }
   }

   if (at least one entity was spawned)
   {
       reset spawner delay
   }
}

Default values:
   activatingRangeFromPlayer = 16
   spawner delay = 20
   maxNearbyEntities = 6
   spawn range = 4
   entityTypeName = Pig

Outcomes (default):
   A player must be within a 16 block centered sphere
   There must not be more than 6 pigs within a 9x9x9 centered cube
   The pig must be able to spawn at the chosen location (must not be inside a block, meet lighting conditions etc.)
   If all mobs fail to spawn, it will try again on the very next tick.

你知道吗

  • 自1.3.1之后,采集刷怪箱可以像采矿一样得到经验球。

  • 不使用Mod的情况下直接放置刷怪箱是无法选择要生成的生物的(只会生成猪),因为缺失了方块实体值。

  • 刷怪箱能够在附近的洞穴里生成怪物,只要是在它8×8×3的范围内,即使是在刷怪箱露天的情况下。

  • 刷怪箱内的生物模型也像其它生物一样有着它自己的ID号码,但它只能在一些特定的角度看到,且自 Beta1.8 版本以后就不再能看到了。

  • 因为刷怪箱拥有方块实体值,所以它不能被活塞所推动。

  • 刷怪箱在接近地表的地方出现而被沙子掩埋是完全可能的,它生成的怪物会在沙石下的缝隙中生成。

  • 和其它的透明方块不同,把火把放在刷怪箱上是可以的。

  • 两个刷怪箱天然地生成在一起是完全可能的。

  • 自 1.2.5 后,刷怪箱可以在创造模式中通过“选择方块”按键得到。而通过这种方式放置的刷怪箱只会在附近有草的情况下生成猪。

  • 仅仅在刷怪箱上插火把有时并不能完全“封印”刷怪箱。在周围的墙上再多加几支火把更安全。

  • 在快照14w28b里,玩家手持刷怪蛋右击刷怪笼,可改变其刷出生物类型。

  • 生物生成

  • 当玩家在一个刷怪箱没有空间生成生物的地方采矿时,生物有时会生成在你刚刚采矿而生成的空间里。玩家在没有使刷怪箱失效的情况下采集苔石时因此要格外小心。据推测,这种情况会发生,是因为刷怪箱在电光石火间,得到了一个在刚刚的方块所占用空间刷新的机会。

  • 一个刷怪箱会一次生成1个,2个,3个甚至4个生物。[1]

  • 如果游戏难度是“和平”,则刷怪箱会生成生物,但生物会立即被删除。生物在被删除前偶尔会发出声音。

  • 如果刷怪箱的附近有较多目标生物(大概是7)时,刷怪箱会停止工作。因此,怪物磨床需要立即杀死生物或者是让生物远离刷怪箱(比如使用水)

刷怪箱内的缩小化生物

  • 当玩家不在判定范围内时,刷怪箱内的生物会停止旋转,刷怪箱也会停止火焰颗粒效果。

  • 当刷怪箱将要生成生物时,刷怪箱内的缩小生物会旋转得更快。它所能旋转的最小和最大速度都已被设定。

  • 修改刷怪箱

  • 如果一个刷怪箱被修改,用来生成恶魂、巨人、鱿鱼、铁傀儡、村民、末影人或末影龙,生物在刷怪箱内的模型将会缩小。但是它们不能很好地相适应于笼子,因为它们的比例系数和其它生物一样。

  • 自12w32a之后,刷怪箱可以被修改为穿戴着特定盔甲或武器的僵尸、骷髅与僵尸猪人。


技术党一枚提供配置插件自定义客户端,加1299164807


打赏

打赏人数0钻石+0理由

只看楼主
打赏楼主
阔绰的打赏了钻石  1  颗
  • 1
  • 2
  • 3
  • 4
  • 5
麦块有你更精彩 66666666666 交个朋友吧 土豪,不解释 愿HIM与你同在
确定
评论
宇泽i
9 钻石无忧史蒂夫
帖子:67

又来发帖了,赞

1楼
2015-01-08 08:52
回复
未知_genghe 楼主
8 合金装备史蒂夫
帖子:126

额,没事闲的,所以来发帖

2楼
2015-01-08 08:57
回复

技术党一枚提供配置插件自定义客户端,加1299164807


长吊偶吧
6 深入矿洞史蒂夫
帖子:1

经验


4楼
2015-01-19 08:35
回复
撸别人的树。让别人无树可撸.
下载排行
欢迎加入麦块社区
已奖励您
30经验值3钻石
要继续支持麦块喔
请收下3