本篇教程由作者设定未经允许禁止转载。
本文基于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(提出点子,修改描述)