[星际公民]4.0Preview实弹伤害计算(附计算代码)


3楼猫 发布时间:2025-01-19 15:22:48 作者:白上小姐的猫 Language

本文章基于发表于3.23的帖子改编,可能出现错误,欢迎各位勘误。


首先要理解实弹伤害必须理解以下几个参数


    1.护盾实弹抗性,只要实弹打到护盾上就会必须接受的减伤,能量武器也有。

    抗性与电源分配直接关联,根据电源分配的百分比,由于CIG机制没做完导致现在使用了旧系统的33%电量,也就是比如默认的33.3%*系数25%=8.3%抗性


    2.实弹护盾吸收,这公式最沟槽的地方就在这里,你的实弹在穿过护盾时会被护盾吸收,在护盾满时为30%,理论上应该和护盾盾量的百分比呈线性关系,也就是在结算抗性之后,100伤害的实弹会有30被护盾吸收,而随着护盾减少被吸收的实弹伤害会越来越少,也就是其实很难通过实弹武器也就是低伤害的实弹武器来破盾。

    顺便一提这个是可调节参数,也就是说外星人的100%吸收实弹的护盾是可以实现的。


    3.船体抗性

    由于装甲系统没出,所以所有船船体都有一个实弹抗性比如德雷克就有离谱的58%,而圣盾仅有50%,这就是uee出价最低的承包商👍🏻。

    其中有些抽象逼,比如c8和速伦的0%就暂且不表。


    实弹结算伤害=初始伤害-抗性减伤-护盾吸收减伤-船体减伤,需要注意的是护盾吸收减伤是个动态数值,所以我直接摆烂写了个公式计算。

    也就是说,最惨的情况下,一个伤害100的实弹,需要经过8.3%的抗性减伤,30%的吸收,50%的船体减伤,最后结算只有32的伤害,真是哈哈了。


    以下是代码,丢到Python里自己设置参数即可运行


    # Adjust the parameters

    shield_hp = 50000 //护盾血量

    hull_hp = 80000 //船体血量

    bullet_damage = 284 //单发伤害

    shield_reduction = 0.083

    hull_reduction = 0.50

    absorption_ratio = 0.30

    # Calculate damage per bullet until hull HP reaches zero

    bullets_count = 0

    while hull_hp > 0:

    bullets_count += 1

    # Step 1: Calculate damage after shield reduction

    reduced_damage = bullet_damage * (1 - shield_reduction)

    # Step 2: Calculate shield absorbed damage

    shield_absorbed_damage = reduced_damage * (shield_hp / 50000) * absorption_ratio

    # Step 3: Calculate damage to hull

    damage_to_hull = (reduced_damage - shield_absorbed_damage) * (1 - hull_reduction)

    # Step 4: Update shield and hull HP

    shield_hp -= shield_absorbed_damage

    hull_hp -= damage_to_hull

    bullets_count


    当然,可以直接通过33%估算。


    © 2022 3楼猫 下载APP 站点地图 广告合作:asmrly666@gmail.com