当前位置:网站首页 > Java教程 > 正文

袭击农场教程java



通过转移袭击中心点使多个Raid能够同时生成且叠加,以此提高袭击农场的效率。展示视频和存档可见:

袭击生成条件:玩家身上存在不祥之兆效果,且周围的3x3x3区块内存在被占据的村民方块。(注:此处区块非传统意义上的区块,是一个由16x16x16个方块组成的正方形区域。16个区块纵向组成一个传统意义上的区块,下同。村民方块包括所有与村民相关的特殊方块,如钟、工作方块、床。)

袭击生成位置:一个袭击生成时,会查找玩家周围半径64格的球形区域内的所有被占据的村民方块,并将其坐标取平均值得到新袭击的中心点。若中心点周围半径96格的球形区域内存在其他袭击的中心点,则会取消此次生成。

袭击转移机制:袭击每gt均会检测其周围的3x3x3区块,若均不存在被占据的村民方块,则会转移其中心点。袭击将会检测其周围的5x5x5区块,并选择一个满足周围3x3x3区块存在被占据的村民方块条件的最近一个区块。若检测不到,则直接结束袭击。

袭击怪物的加入机制:一个袭击中心点周围半径96格的球形区域内相关怪物会加入此袭击(唤魔者、卫道士、掠夺者、劫掠兽)。一个怪物仅能同时加入一个袭击。若袭击中的怪物不在袭击中心半径112格的球形区域内,则会移除出此袭击。

不祥之兆的获得条件:杀死未加入袭击的带有旗帜的怪物,包括在前哨站生成的掠夺者,和被移除出袭击的怪物。

根据以上的原理,可以很容易设计出下面的方案:

其中红色框为玩家所在区块,绿色框为牵引模块,蓝色框为生成平台,紫色框为牵引村民,以橙色表示袭击的位置。

第一步,玩家杀死旗帜怪物生成一个袭击

第二步,活塞推动第一个牵引模块中的工作方块,将袭击中心点向右下角牵引

第三步,按相同方法继续牵引袭击中心点

第四步,最后一次牵引中心点至怪物生成平台

第五步,恢复三个牵引模块

第六步,由于上一个袭击已移出96格范围,玩家可以生成一个新的袭击。

以上便是一个袭击生成循环,其中牵引模块可使用活塞推动村民方块来实现。活塞推动时使村民失去对方块的占据,在一段时间后自动重新占据村民方块实现复位。

你以为这就完了?

每个村民都拥有一个当前活动状态,一般情况下此状态与MC时间相关,例如2000-7000时间段村民为工作状态。但是在一些情况下,村民会拥有特殊状态,例如周围存在僵尸等怪物时村民会进入恐慌状态,取代之前的正常活动状态,此时的村民无法正常工作。

不幸的是,位于袭击中的村民也会进入一种袭击状态,在这种状态下村民会进行寻找躲藏点等动作,但是不会正常检测工作方块。也就是,我们的牵引模块没法正常复位了。

所幸,经过持之以恒的研究(也就大半天),我找到了一种复位方法,那便是村民的恐慌状态。在一只村民周围存在僵尸时,每过3秒村民便会强制进入恐慌状态,并取代之前的所在状态。也就是,可以将村民的袭击状态转换为恐慌状态。

而村民从恐慌状态退出时,并不会恢复之前的袭击状态,而是根据当前时间恢复为正常的工作状态,从而可以正常检测村民方块,实现牵引模块的复位。

由于村民进入袭击状态是完全随机的(每gt有1/20几率进入),此处设计的牵引模块使用了16个村民使成功几率接近100%。

模块使用了漏斗时钟进行复位,周期为9个物品。这里也许还可以再优化提高一点效率嗯。

其余实现便没有什么难点了,生成平台使用水流分类劫掠兽,直接扔到虚空。生存建造时用活塞破2x2基岩即可。之后使用水电梯加上20m/s生物传送带,以最快速度把怪物运输到玩家挂机点。

最后再感谢一下大佬:CCS_Covenant

 

绿宝石糊墙预定~

  • 上一篇: java .net开发视频教程
  • 下一篇: weka java教程
  • 版权声明


    相关文章:

  • java .net开发视频教程2025-01-05 17:26:05
  • java变量连载教程2025-01-05 17:26:05
  • eclipse编写java教程2025-01-05 17:26:05
  • java的struct教程2025-01-05 17:26:05
  • java学习全套教程2025-01-05 17:26:05
  • weka java教程2025-01-05 17:26:05
  • Java实例 菜鸟教程2025-01-05 17:26:05
  • java点餐系统教程2025-01-05 17:26:05
  • java注释教程2025-01-05 17:26:05
  • java教程的步骤2025-01-05 17:26:05