= 创作分享 =
编程开发
有关袭击加强的思路及讨论
Biggest_Xuan

有关袭击加强的思路及讨论

Biggest_Xuan 于 2022-12-25 16:58 ( 1年前 ) [复制链接] [只看楼主] [打印]
1015 0
本帖最后由 QQ酱29797 于 2022-12-26 11:58 编辑

本文基于 CC BY 发表,本文开发环境 1.16.5 Forge,Java 8。
本文基于袭击正常打法和正常模组环境下,请勿与袭击塔或各种神仙武器比较。
袭击在原版中强度还是算比较高的,但放在整合包中,又显得如此力不从心,因此本文基于这一点提供一些强化袭击的方案。
仅仅对面板数值的强化显得毫无意义,因此本文将从以下方面加强袭击:
  • 任意玩家死亡算作袭击失败。
  • 袭击仅能在主世界发起。
  • 袭击的波数从原先的7+1波提升至固定15波。
  • 袭击进行时所有实现了ITickableTileEntity接口的方块实体停止工作。
  • 所有袭击者在袭击的时候免疫摔落、魔法、爆炸和其他袭击者的伤害。
  • 袭击生成时所有袭击者分散开。

1.玩家死亡时袭击失败
这一点比较好实现,LivingDeathEvent即可实现,需要注意的是,在死亡的时候获取袭击记得判断是否为空。
当玩家死亡的时候使用Raid#stop即可停止袭击。
但这是停止袭击,而不是袭击失败。袭击状态是private的,因此我们需要将其改为public的。
后文还有其他要用到的,这里就一起修改访问权限了。

2.袭击仅能在主世界发起:
这个也比较简单,在PlayerTickEvent判断玩家这里有不有袭击,有的话是不是主世界,不是停止即可。

3.拓展袭击波数
原版的袭击默认情况最高7波,当不祥之兆等级大于等于1会额外增加一波,因此最多是8波。
从原版的生成袭击者的方法来看,是从一个int[]数组中获取值,然后加上附加数量,但是这个数组只有八个,也就是索引最多到7,直接获取会越界。
根据以上分析,我们需要重写其生成时候的方法了,同时将原有的不祥之兆大于1级时的额外波数取消掉。
首先,拓展袭击波数:
然后来干预袭击生成者的数量,从第9波开始,每波数量为第8波数量加上i-8波的数量(i为当前波数)

同样的,getPotentialBonusSpawns方法与上面类似,注意不要太多了,不然会变成神仙打架。

另外一点,袭击如果40分钟没有分出胜负将自动停止,因此我们需要把这个机制去掉:

4.所有tick的方块实体停机
这个在袭击中还是比较重要的,对于植物魔法等模组,存在范围攻击、静止生物、生命恢复的功能花。
当world tick方块实体的时候,判断这个方块实体在不在袭击范围内,如果在的话将它放到不加载的Set中。
同时,袭击结束后得从不加载的Set中删除,并重新放到加载集合中。
注意,星辉魔法的仪式基座(效应放大器)会存在一些问题,建议将其排除在外,通过其他手段禁用。

5.让袭击者在袭击期间免疫杂项伤害:
这个也很简单,LivingDamageEvent事件就可以解决了,首先判断是否在袭击里面,然后判断伤害源就行,在这里就不多赘述了。

6.让袭击生成袭击者的时候随机生成
这个点相较于上面的来说复杂一点,因为需要考虑各种情况。
原有的袭击生成是选定一个点,然后在这里生成袭击者,因此我们要根据这个点和袭击中心点来获取一个随机的坐标。
同时这个坐标需要合法,不能卡在方块里,或者直接从天上掉下来。
首先,根据x和z坐标来获取这个位置的最上面一个方块。(因为我们不让袭击在其他维度发起,也不需要考虑下界顶层了)

然后我们根据六个int值,获取其中的随机值:

接下来我们根据生成点,袭击中心点来获取实际的生成坐标,分为以下四个阶段:
  • 对整个范围生成,尝试生成3次。
  • 如果找不到1生成点,将缩小一半范围,尝试生成3次。
  • 如果找不到2生成点,将选定随机村民,并生成在村民的位置上。
  • 如果受到其他模组干预,第三点生成失败,返回空值,袭击停止。

获取到了随机坐标后,我们修改加入袭击的方法,从而改变其生成的坐标。
将其后半段重写即可,同时我们可以略微修改部分参数。

好了,这也只是我突发奇想随便想想的思路,如果有更好的点子不妨分享出来。


点评

谢谢大轩~  发表于 2022-12-25 20:12
发表于 2022-12-25 16:58:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

回复 | 举报

该帖共收到 1 条回复!
百科目前不允许匿名发帖哦~ 请先 [ 登陆 ][ 注册 ] 吧~

本版积分规则

发新帖
  • 回复
  • 点评
  • 评分

[ MC百科(mcmod.cn) 除另有声明,所有开放公共编辑的内容均使用 BY-NC-SA 3.0 协议 ]

Minecraft百科CC协议
快速回复 返回顶部 返回列表