教程:村庄机制
本文所说的村庄机制是指“村庄与掠夺”更新之后的村庄机制。
如果你想要利用铁傀儡建一个刷铁机,又或者你想要有更多的村民来交易,那么你来对地方了。
定义[编辑 | 编辑源代码]
Java版[编辑 | 编辑源代码]
一个位置被认定为位于村庄区域,当且仅当以该位置所在子区块为中心3×3×3子区块范围内存在至少1个已被村民认领的带有village
标签的兴趣点,包括床、钟以及工作站点方块。
基岩版[编辑 | 编辑源代码]
一个村庄具备以下几个要素:村民、大小、人口(村民数量)、人口上限(最多村民数量,基于床的数量)、兴趣点、猫、铁傀儡。
游戏存档中的所有村庄都由村庄管理器管理。
兴趣点[编辑 | 编辑源代码]
兴趣点,即POI(Point of Interst),是构建村民行为的基础。目前兴趣点一共有三类:
- 床
- 会合点(钟)
- 工作方块(讲台等)
一个兴趣点里面存的信息包括但不限于:
- 坐标
- 类型
- 它所属的村庄
- 它所属者的数量
- 它的所属者的数量上限
至少需要一张床和一个村民才能形成村庄。如果一个村庄里至少有两个村民,那么这个村庄将试图把人口数量保持在床数量的100%。
村庄会合点是指被村民认可的钟(附近一般会有张被认领了的床)所在的地方(不一定在村庄附近)。当钟被认可时,钟的上方会出现绿色的粒子效果。一旦钟被认可了,它就会被认定为会合点。如果玩家在村庄中,流浪商人将会在村庄会合点生成。当村庄会合点(即钟)被破坏或毁坏时,村庄列表中的第一个村民会发出愤怒粒子。
村民可以通过认领它找到的第一个无人认领的工作站点方块来获得职业和工作。无论这个工作站点方块是否为人为放置、是否可到达甚至是否可见,都可以被检测到,只要它在范围内并且未被认领,该村民就可以准备认领这个工作站点。当一个工作站点方块被破坏或毁坏时,其所有者会发出愤怒粒子并失去工作。
村庄管理器[编辑 | 编辑源代码]
村庄管理器管理着村庄的运行,管理兴趣点的状态,村庄状态的更新,铁傀儡的刷新,袭击的产生等。一个维度有且仅有一个村庄管理器。
村庄更新是由村庄管理器调用的,每个游戏刻村庄管理器会遍历当前维度的每一个村庄并依次执行各类更新。
其中,村民和兴趣点的绑定为一张列表,列表中从上到下依次排列了村民的顺序。未绑定列表每种上限都是32个,多出来的不会被绑定。
已绑定列表中每个村民都有三个槽,第一个是床,第二个是钟,第三个是工作方块,没绑定的就会空出来。
绑定过程就是遍历每个村民的每个槽,如果这个槽是空的而且未绑定列表里面正好有该兴趣点的缓存就尝试进行二者的绑定。
按照上述顺序,当村庄会合点(即钟)被破坏或毁坏时,村庄列表中的第一个村民会发出恼怒粒子。
当玩家使用床和村民建造一个人工村庄时,村庄列表中检索到的第一个兴趣点就会成为村庄中心。兴趣点检索的顺序根据列表,依次为村庄中第一个村民的床、钟、工作方块,然后为第二个村民,以此类推。
对于后面的所有兴趣点,如果它们在当前村庄范围内,则无事发生;但是如果它们在村庄范围外,村庄范围就会进行最小代价的扩张。此时村庄中心将不再位于村庄列表中检索到的第一个兴趣点,而是以原来的村庄范围为基础,向着村庄范围外的兴趣点扩张后的新范围的中心。
然而,目前版本村庄管理器存在漏洞,在某些情况下,部分设备(例如手机端)每次进入存档会导致村民的顺序被颠倒,因此可能会导致村庄中心的改变。
大小[编辑 | 编辑源代码]
村庄大小最小是65×25×65的正方形,最小村庄中心一般是村庄内某个被游戏认定的兴趣点方块的中心。
房屋[编辑 | 编辑源代码]
“房屋”是指被认领的床。被认领了的床是指至少一个村民认领了的床,但如果床被固体方块阻挡,村民很难找到合适的路到达床的位置,会导致村民认领床失败,此时村民和床的上面都会出现愤怒粒子(或者会导致村民失去床的所有权,但失去所有权的村民和其他村民都可能会再次重新认领它)。
一旦村民认领了床,被认领了的床就相当于一个房屋且村民会记住被认领了的床的位置(即使在地下)。到了晚上,村民将会返回它们的房屋(即床)。无法到达床的村民将会失去对床的使用权,此时其他村民可以认领它。如果该床被其他村民认领,那么先前的床主就会忘记该床的位置,并寻找其他未被认领的床。
工作站点[编辑 | 编辑源代码]
自然生成的村民是没有职业的,它们将会寻找无人认领的工作站点方块。但也可能生成不会工作的傻子村民。
自然生成的村庄包括两类主要建筑:房屋(包含床的建筑物)和工作场地(包含工作站点方块的建筑物)。在工作站点建筑物中是没有村民生成的。如果自然生成的村庄只有工作站点建筑物的话,村庄将不会生成村民,并且这个村庄将不会被认为是村庄。
早上,有职业的村民将会前往工作站点方块的位置。而没有职业的村民、傻子村民以及幼年村民是没有工作地点的。就像被认领的床,一旦村民选择了它的工作站点方块,它就会记住工作站点方块的位置。村民会在上午工作(在工作站点方块处),下午在会合点讨论。
工作站方块列表如下:
职业 | 工作站点方块 |
---|---|
盔甲匠 | ![]() |
屠夫 | ![]() |
制图师 | ![]() |
牧师 | ![]() |
农民 | ![]() |
渔夫 | ![]() |
制箭师 | ![]() |
皮匠 | ![]() |
图书管理员 | ![]() |
石匠 | ![]() |
牧羊人 | ![]() |
工具匠 | ![]() |
武器匠 | ![]() |
运输村民[编辑 | 编辑源代码]
有几种方式可以运输村民。如果你打算创建一个新的村庄,这对你可能非常有用。
矿车运输[编辑 | 编辑源代码]
首选建造一条从村庄到目的地的铁轨(建议使用动力铁轨),然后把村民一个一个地推上矿车,并把矿车推到目的地,摧毁矿车(或使用激活铁轨)。
水道运输[编辑 | 编辑源代码]
从村庄到目的地之间创造一条水道,并且在路上没有出口(如建造2×2的水道),然后拿两桶水,使用水把村民推远一些,然后使用第二桶水继续,跑回去收集第一桶水,如此往复。需要的资源要少一些,但可能很慢(而且耗费玩家的精力)。
随着水域更新对水动力的修改,下面是一个很有效的方法:倒下一桶水,让它流过同一层的几格。在最后一个流水方块下放置一个冰方块并在上方放个压力板或告示牌。重复此过程,直到到达目的地。当在地下或光线充足的地方,这种方法效果最佳。否则,你需要建一个封闭区域以确保村民在运输过程中的安全。另外,如果你需要向上运输它们,你可以用灵魂沙创建一个向上的气泡柱并将村民抬到目的地。
船运输[编辑 | 编辑源代码]
Java版1.9开始,一些生物可以进入船,并且玩家也进入相同的船和操作它(此时生物坐在船后面)。这样玩家就可以使用船在水上运输村民,当然也可以在陆地上运输(尽管很慢)。对于向上移动船的话,你可以使用活塞把它往上推一格或使用气泡柱向上运输多层,或者将水放置在所需要到的高度的方块上面,顺着水流往上开船。同时,你也可以选择光速船
钟和床[编辑 | 编辑源代码]
如果要一次移动大量村民,你可以先破坏掉村庄里所有的床,然后在你需要的地方放一张新的床。放置完成后,敲响钟,村民们便会聚集到最近的床处。再沿目的地方向放置另一张床,破坏上一张床,然后再敲响钟,村民们便会聚集到你刚刚所放的床处。重复以上操作,直至到达目的地。如果有两个玩家合作,此方法将较容易实现。
使用下界传送门[编辑 | 编辑源代码]
大多数实体(包括村民)都可以通过下界传送门。值得注意的是,如果下界传送门已经在下界构建了,这种策略会带来更多的复杂性。在目的地创建一个下界传送门并通过该传送门进入下界,然后立刻返回主世界。接着前往最近的村庄(它必须在第一个传送门的1024格内)并在那里建立另一个传送门。你可以使用矿车或手动将村民推进传送门以把它们运送到下界(如果传送门底部陷入地下,推进村民会更容易)。再次进入传送门并将村民推出下界传送门,然后等待大约30秒。在村民经历“冷却”后,它们可以通过传送门推回,并应从你建的第一个传送门回到主世界。
到达目的地后,它们可能会意外地重新进入传送门,因此最好通过使用栅栏围住传送门以阻隔传送门。
繁殖和最大人口[编辑 | 编辑源代码]
村民可以自主地繁殖,但至少应该有两个可以彼此接触到的成年村民。如果你从别的村子里抓来了一个村民、或者治疗了一个僵尸村民、又或者村子里没有了村民(或仅剩下一个村民),那么你想要找来更多的村民。以下是仅有的几种方式:
如果有足够的食物让它自己和另一个村民“有意愿”,村民可能会进入繁殖模式(村民头上会出现红色的心型粒子)。它们会根据它们的食物数量进入繁殖模式,而不是人口上限(根据床的数量),但只有有多余的床让它们繁殖出的幼年村民认领才能繁殖出幼年村民。如果到达了人口上限它们的繁殖就会被阻止,且它们头上会出现愤怒粒子(与红色心型粒子一起),此时会消耗村民背包里的一部分食物。就像牲畜一样,当两个村民处于繁殖模式并且能够看到对方时,它们会互相靠近并对视几秒钟,接着就会在它们的旁边生成一个幼年村民。繁殖村民不会掉落经验,且这个新生成的村民的穿着依赖于村庄所在的生物群系。变成成年村民后,如果有一个有效的,无人认领的工作站点方块,它就会获得一个职业。
意愿[编辑 | 编辑源代码]
村民只有在“有意愿”的状态下才能进行繁殖。
通过与村民交易可以再次让它们变成有意愿。在第一次完成一个新的交易组合时,村民会变得“有意愿”,或者完成下一次旧的交易组合后,有20%的概率会使它们变得有意愿。然而,这并不会导致它们立即寻找一个伴侣。
另外,也可以通过在它们的物品栏中加入3个面包,12个胡萝卜、12个马铃薯或12个甜菜根来使它们变得有意愿。农民村民偶尔会把它们收获的农作物扔给其他村民,让它们捡起来,以获得足够的食物来让它们变得“有意愿”。
如果村庄里有村民死亡,那么在该村民被杀死后的3600游戏刻(3分)
繁殖需要足够的床(需要村民能够认领并到达),可以利用活板门将村民与床进行隔离,并分离出幼年村民。繁殖村民不需要工作站点方块。
无限繁殖[编辑 | 编辑源代码]
游戏中有一个漏洞可以使村民无限繁殖而不受人口上限影响。
村民们需要在围绕村庄中心的一个球体(球体半径=村庄半径)范围内产生繁殖意愿。但是村庄仅计算围绕村庄中心的一个长方体范围内的村民数量(宽度与长度=村庄直径,高度永远为9)。因此无论村民产生意愿的范围有多大,村庄本身的范围的高度只有9格高。所以有一些区域不算在村庄范围内却能使村民产生意愿。
你可以利用这个漏洞,在地面上建造2个床、1个钟、2个工作站点,将2个(或更多)村民移至6格深的坑里,并在地面上放1个村民。那么地下的村民将会无限繁殖,因为村民的数量始终达不到上限。
治愈僵尸村民[编辑 | 编辑源代码]
当僵尸村民获得虚弱效果时,玩家可以通过对其使用金苹果来治愈它们。玩家通常可以通过酿造虚弱药水来使僵尸村民获得虚弱效果,但在禁止下界的服务器中,你可以通过女巫来让僵尸村民获得虚弱效果。女巫有时候会扔出喷溅型虚弱药水,你可以利用这点稍下功夫。
在你对僵尸村民使用了喷溅型虚弱药水和金苹果后,僵尸村民会发出响亮的嘶嘶声和产生橙色的漩涡状粒子,并开始剧烈颤动。它们需要2-5分钟的时间才能完成转换成普通村民,所以最好困住它们以确保它们不会在阳光下燃烧或伤害附近的村民。把僵尸村民关在铁栏杆或带有床的9×9×9的空间内,治愈速度可提升4%。
5%的僵尸会以僵尸村民的形式生成,因此找到两个需要治愈的僵尸村民应该不会花费太多时间。此外,当村民被僵尸及其变种击杀时,它们有概率(简单难度为0%,普通难度为50%,困难难度为100%)成为僵尸村民而不是被杀死。僵尸村民是开辟人工村庄的好方法,因为与村民不同,僵尸村民会长距离的跟随玩家,然后,当它们到达目的地时,你就可以治愈它们了。
假如你想在纯生存中生成丛林、沼泽村民,只要在对应的生物群系中找到对应的僵尸村民并治愈,就可以达成这个目标。而且,利用这点,你可以自己建造丛林、沼泽村庄。
声望[编辑 | 编辑源代码]
玩家的声望起始为0,并根据以下的行为在-30到10之间变化:
行为 | 声望变化 |
---|---|
治疗僵尸村民 | +5 |
村民升级级别 | +1 |
声望为负时在村庄每经过12000游戏刻(10分) | +1 |
声望为正时在村庄每经过120000游戏刻(100分) | -1 |
攻击成年村民 | -1 |
杀死村民 | -2 |
攻击幼年村民 | -3 |
杀死村庄的铁傀儡 | -5 |
当玩家对村民有行动时,该村民周围产生的粒子将表示玩家的声望变化。玩家的声望不会因死亡而重置,玩家也无法改变其他玩家的声望。声望会被每个村庄独立保存,一个玩家的声望有可能在一个村庄中很高但在另一个村庄中则很低。另外,由于每个村庄都保存了玩家的声望,如果整个村庄被破坏(具体为所有村民全部被杀死或所有床或钟被破坏),任何累积在该村庄的声望都会被消除(无论正面还是反面)。
当玩家的声望为-15或更低时,这个村庄自然生成的铁傀儡会对该玩家产生敌意,直到该玩家的声望增加到-15以上。但是,玩家搭建生成的铁傀儡会对玩家一直保持被动状态。
村庄防御[编辑 | 编辑源代码]
本教程的此部分十分重要,尤其是当你居住在一个村庄中时。
注:在Java版1.14后,村庄的防御能力有所改观,但它们在没有额外防御措施的情况下仍然极为脆弱。
如上文所述,如果你想让你的村庄持久存在下去,采取一定的防御措施是必要的。这项工作费时费力,却可以带给你丰厚的回报:适当的防御措施能在各种复杂情况下保护好村庄与村民,使它们长期存在。你要做的第一件事便是将尽可能多的村民锁在它们的房屋里(确保房屋内照明良好)。这是为了在建造下一阶段的防御工事(这是最耗时的一步)时保护村民。确保至少两名村民(其中一名最好是农民)处在房屋的庇护之下。
接下来的一步是围绕村庄建立一堵墙。在工程开始前,你可能需要为其准备足够的石料。确保你的墙至少比地表高出四个方块。这样骷髅无法从墙外射击村庄内的目标,僵尸也无法利用稍高的地形跳入墙内。使用栅栏门作为村庄的出入口(村民无法开关栅栏门,僵尸也无法击破栅栏门)。 这一步的首要目的是阻止大多数怪物进入村庄,且必须尽快完成。因此,不建议将每一个村庄建筑都囊括进墙内(尤其是那些位于高原或低处的建筑物)。
墙建成以后,大部分的工作就完成了。接下来,你需要确保墙内没有对村民构成威胁的地点。这包括会使村民受困的河湖(注:铁傀儡同样容易被困在水中并沉下去)、坑洞、四格以上的落差(会导致摔落伤害),以及致命的熔岩湖。这么做的目的是防止村民意外受伤或在被困时成为僵尸和灾厄村民们的盘中餐。接下来检查墙内是否存在钟,如果没有,你可以搜索墙外的村庄建筑,村庄内至少有一个钟(工具匠村民可以卖给你,尽管很贵)。钟是铁傀儡生成的地点,因此其位置需要妥善规划。确保墙内存在20张以上的床来使铁傀儡能被生成。当然,你还需要将墙内的每一处照得灯火通明。虽然光照可以遏止大部分怪物的生成,但在诸如僵尸围城的事件期间,怪物能够生成在墙内,因此铁傀儡仍然是必要的。一切就绪以后,便可以邀请村民们出屋呼吸新鲜空气了。
如果你不想收集太多方块造墙,下面这个方法将完全不会耗费你的材料,甚至你还会获得材料。
你可以在村庄地下挖一个三格深的空间(至少三格深,否则村民将不会繁殖),并对它的长、宽进行拓展。拓展完后,在里面放上床,你需要的工作方块。你可以在里面插上火把,或者直接把顶部天花板换成玻璃,让阳光照进来(这样你就不用放火把,或者只放很少)。但不管怎样一定不要让里面刷怪!这种方法的优点在于省时省材,并且当你的地下空间大小不足时,你随时可以再进行拓展(但要小心挖到天然矿洞,里面的僵尸可能会毁了你的村民)。但这种方法并不美观,因为它并不像个村庄。
恭喜,你的村庄现在安全了!虽然村庄毁灭的风险仍然存在,但在你的努力下,它已小到可忽略不计。在多人游戏中,你可能还需要提防怀有恶意的破坏者。让铁傀儡送它们上天或是建一个服务器监狱都是不错的选择。
你还可以增设一些额外的防御工事,例如瞭望塔和红石陷阱。不过,这些几乎只会在袭击期间起作用(并且你的城墙已经足以将灾厄村民大军拒之门外了)。
猫[编辑 | 编辑源代码]
在一个村庄中生成的猫数量取决于该村庄床的数量。
Java版[编辑 | 编辑源代码]
未驯服的猫会在至少有1个村民和4张床的村庄中生成。每4张有效床生成1只猫,最多可生成10只猫。
在一个拥有5张已被使用的床的村庄中,猫会每隔1200游戏刻(60秒)生成。生成时,会随机选择一位玩家(包含旁观者),在X轴或Z轴正负8-32格中基于玩家的位置,随机选择一个位置,距离村庄2区块内的猫少于5只时就会在选定的位置生成1只猫。
非满月期间,猫在生成时会随机挑选除黑猫外的10种外观(由#default_spawns
标签控制);满月期间,猫在生成时会随机挑选所有11种外观(由#full_moon_spawns
标签控制)。
基岩版[编辑 | 编辑源代码]
村庄会周期性生成未驯服的猫以满足每4张床1只猫的配额,最多达到5只。只有被村民认领的床才会纳入计算。所有村庄边界以内的猫都会被计入,包括幼年猫、从村庄以外进入的猫甚至被玩家驯服的猫。如果猫的数量不够配额,村庄内就会尝试以村庄中心为中心的16×6×16方块内生成一只猫。
猫在村庄生成时,有25%概率是幼年猫;满月期间在村庄生成时,有50%概率是黑猫。
铁傀儡[编辑 | 编辑源代码]
铁傀儡总会在自然生成的村庄的会合点
僵尸围城[编辑 | 编辑源代码]
在晚上,有一定概率会发生僵尸围城。这时,大量的僵尸在村庄附近生成,攻击村民所到之处。在困难难度下,攻城的僵尸可能会破坏掉门并进入村民的房屋(在其他难度下它们也会尝试破坏门,但不会成功)。
僵尸不会在距离你128格之外的地方生成,所以当你距离地面很高时你会很安全。你也可以让你的房子变成“僵尸防御模式”,只需要挖去一个门前的地板方块就行。这样,门和它所在的地板方块就和墙一样了。这是因为僵尸只能破坏门的上半部分,这样它们将永远无法通过这扇门。
袭击[编辑 | 编辑源代码]
当一个玩家带着不祥之兆效果进入村庄时,不祥之兆效果会转变为袭击之兆。如果玩家在获得袭击之兆30秒内未离开村庄,那么袭击将开始。袭击是指灾厄村民(卫道士、唤魔者、掠夺者、劫掠兽)和女巫结队入侵村庄的行为。在进入村庄之前,你可以通过喝奶来避免袭击。但是,你也可以在村庄被袭击时保卫村庄,当成功保卫村庄时,你就会获得村庄英雄效果。玩家在与村民交易时价格会大大降低,在Java版中,村民还会根据自己的职业随机赠送“礼物”。
外部链接[编辑 | 编辑源代码]
- 村庄信息模组 by trunkz(仅1.3.2-1.12.2) - 这个模组为你提供了更多关于村庄的直观的信息。它在你的调试模式(按下F3后的模式)中增加了几行新的信息,如果你的周围有一个村庄,它可以显示那个村庄的大小、当前村民数量和最大村民数量、村庄中门的数量等信息。
- Imgur画廊 by Derrick - 一个简单的,更加紧凑的村庄设计,并且可以有更多的村民。这种设计可以在11×10的范围内使村民达到35个。
导航[编辑 | 编辑源代码]
|