找回密码
 初始化身份识别芯片
搜索
查看: 13|回复: 0

氵贴)一个有关弹性结构恢复机制的船插的想法和实际情况。

[复制链接]

战列舰长

发表于 1 小时前 | 显示全部楼层 |阅读模式
本帖最后由 AAASTG 于 2026-10-9 04:37 编辑

突然有了这个想法,所以拜托AI写了个船插。
大致效果: 结构值提升300%,护甲降低到原有的12%。受到200以上的单次结构伤害时,将本次伤害降低20%,将降低后的伤害值的60%记录并储存到""应急恢复池""中,最多储存相当于舰船结构值上限100%的数值,在舰船超过2s没有受到伤害后,以每秒相当于舰船结构值上限的10%的速度从""应急恢复池""中返还结构值"

在我的设想中,假设这艘舰船的结构值是1万,在经历了一段缠斗以后,对方给他造成了4000点的伤害,恢复池积累2400点。这个时候这艘舰船开启护盾来抵挡所有伤害。随后恢复池开始恢复结构到8400点。以此类推。可以看到尽管恢复池正常运作,但这艘舰船的结构值总体而言是在缓慢下降的,且理论上该舰船不可能只通过回复池机制将自身的结构回复满。但是在我测试中的这个插件则没有像我想象的那样运作,有好几次恢复池的积累容量和该舰船剩余的结构值加起来都超过上限了。导致恢复池里积累的伤害量根本用不完。
ds大肥鱼是这么解释的:你让我检查代码之间关系,我仔细看了,问题确实出在恢复池积累的计算逻辑上,但和你想的"计算错误"不太一样——它是一个单位错配的问题。
一、代码实际在算什么
看这两行:

float baseDamage = damage.getDamage();
float actualDamage = baseDamage * (1f - DAMAGE_REDUCTION);
recoveryPool += actualDamage * RECOVERY_STORE_RATIO;
恢复池增加的是:
恢复池增量 = 插件减免后的伤害 × 存储比例
而舰船实际损失的结构值,是插件减免后的伤害再经过护甲过滤之后的值:
实际结构值损失 = 插件减免后的伤害 × 护甲穿透系数
二、为什么恢复池会超过实际损失
关键在于护甲穿透系数 < 1。即使护甲已经降到 12%,护甲仍然会吸收一部分伤害,尤其是对伤害数值较低的命中。
远行星号里护甲吸收公式大致是:护甲吸收比例 ≈ 护甲值 / (护甲值 + 伤害)
设某战列舰基础护甲 1500,降到 12% 后是 180,200点伤害经减免后是160点,护甲吸收68.6,实际损失结构值91.4,但恢复池积累却是96。
在 200 伤害这一档,恢复池增量比实际结构损失还多 5%。
这是因为:
• 插件减免后的伤害是 160
• 护甲吸收掉 68.6
• 实际只扣了 91.4 结构值
• 但恢复池按 160 × 0.6 = 96 来存
每挨一次小伤害,恢复池就多存 4.6 点"虚账"。 战斗时间一长,这些虚账不断累积,就会超过你实际损失的结构值总量。
三、这解释了你观察到的所有现象
1. 恢复池越积越多:每次受伤都在按"插件减免后的伤害"存池,而不是按"实际结构值损失"存池
2. 结构值下降但恢复池用不完:结构值损失是真实扣的,恢复池里却有一堆"护甲帮你挡掉但插件照样记账"的虚数
3. 恢复池 + 剩余结构值 > 上限:虚账累积到一定程度后,恢复池本身就可能超过 maxHull - 当前结构值
护甲 12% 并没有解决这个问题,因为问题不是护甲太厚,而是恢复池的记账口径和实际扣血口径不一致。
四、为什么你之前改护甲没有效果
你把护甲从 100% 降到 12%,确实让护甲吸收比例大幅下降了,但没有降到零。而恢复池的存储逻辑没有考虑护甲吸收的部分,所以:
• 护甲吸收 100% 时,恢复池可能比实际损失多 100% 以上
• 护甲吸收 12% 时,恢复池可能比实际损失多 5%~10%
• 只要护甲不为零,恢复池就会持续多存
降低护甲只是把这个偏差从"离谱"压到"可感知",没有根治。

哎,好困,还是去睡觉吧。。。。。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?初始化身份识别芯片

×
*滑块验证:

本版积分规则

Archiver|手机版|小黑屋|远行星号中文论坛

GMT+8, 2026-10-9 05:48

Powered by Discuz! X3.5

© 2001-2077 Tencent Cloud | Durian Software Studio | IP地址位置数据由纯真CZ88提供支持

快速回复 返回顶部 返回列表