本篇教程由作者设定未经允许禁止转载。

本文基于1.12,仅为作者本人分析所得,不保证100%准确,欢迎指正错误或提出建议。


名词链接:

    tick(mcmod)(mcwiki):默认20tick每秒,具体以游戏内tps(tick per second)为准。

    entropy:护盾熵


龙套机制:

    每100tick,如果开启了armorAutoFeed(头盔的属性,汉化为自动填充)并且玩家饥饿值少于20,则消耗500RF进行一次无消耗的进食。

    每tick,如果开启armorNV(夜视)并且所在位置亮度少于0.1,或者开启armorNVLock(锁定夜视),会给予夜视效果500tick(25s)。

    每20tick,如果身上有负面效果,则清空一次负面效果并消耗5000能量。(注:若手持匠魂的劈刀则不清空挖掘疲劳)。

    最大护盾点数(SHIELD_CAPACITY意为护盾容量):

        头:512 * (SHIELD_CAPACITY升级等级 + 1) * 0.15

        胸:512 * (SHIELD_CAPACITY升级等级 + 1) * 0.40

        腿:512 * (SHIELD_CAPACITY升级等级 + 1) * 0.30

        足:512 * (SHIELD_CAPACITY升级等级 + 1) * 0.15

    当玩家被攻击时的防御逻辑:

       注:逻辑为有序的,下文中“取消伤害”或“护盾失效”时则不再继续执行逻辑。

       如果伤害类型是ADMIN_KILL(Kill指令等),正常受伤。

       伤害数值:

           攻击者不是玩家:初始伤害。

寰宇支配之剑:300。

如果伤害不能被阻挡或能对创造造成伤害:二倍于初始伤害,entropy 增加3。

其他情况:初始伤害。

       受伤检测:

           伤害类型为火:取消伤害并且灭火。

           伤害类型为摔落:伤害小于armorJumpModifier(高跳升级) / 20时取消伤害

           伤害类型为窒息:伤害小于2并且有靴子时取消伤害

       伤害等于3.4028235E38f(JAVA中的单精度浮点数float的最大值,E38意为乘以十的38次方)时护盾失效

       本次伤害距离上次伤害少于4tick时取消伤害

      entropy 数值改为:原 entropy 数值 + (初始伤害 / 20),最大值100。

       护盾:

           从头盔到靴子计算:

              伤害 = 单件护盾值 / 最大总护盾 * 初始伤害

              优先消耗头盔中等于伤害的护盾值抵消该伤害,若头盔中护盾值不够,向下依次检测装备中的护盾值(胸甲→护腿→靴子)。

           如果护盾降低了,则给予20tick(1s)伤害冷却(原版)。

    当玩家死亡时:

       护盾值大于500时:

            生命值设置为10,取消死亡。

       护甲为双足飞龙/觉醒龙时:

            正常死亡。

       电量大于10MRF时:

            从护甲的能量中扣除10MRF,设置血量为1,取消死亡。

    每tick恢复一次护盾:

        待恢复护盾量 = 【((最大护盾值 – 当前护盾值)和(最大护盾值 / 60)间的最小值) * (1 - (entropy / 100))】和【储存能量 / 1000】的最小值。

        entropy 减去draconicShieldRecovery(配置文件中的护盾恢复系数,默认为4) * (1 + SHIELD_RECOVERY(护盾恢复)升级等级) * 4 / 100。

        每件护甲电量减少:(单件能量 / 单件最大能量)*(待恢复护盾 * draconicShieldRechargeCost(配置文件中的护盾恢复消耗,默认1000))。

        护盾恢复等于待恢复护盾量的点数。

 

鸣谢名单:

    Azazel(提出点子,修改描述)