是幸存者笔记,绝不是开发者笔记

破解保险箱

需求

  • 听力正常
  • 听诊器 或 听力增强CBM

算法

  1. 如果不满足需求, 只能直接拨动刻度盘, 每次花费 10s, 有 $\frac{1}{30^3}$ 的几率成功

  2. 满足要求, 则开始计算破解耗时

  3. 耗时 = MAX(150 - 20 * (机械学 - 3) - 10 * (感知 - 8), 30) 分钟

  4. 行动点数 = 耗时(秒) * 100

安装生化插件

需求

  • 无故障的无菌生化插件

算法

计算生化操作技能

  1. 等级 = 智力 * 4 + 主技能 * 4 + 次技能 * 3 + 最次技能 * 1
  2. 若职业为住院医师/生化外科医生, 等级 += 3
  3. 若职业为人体强化协会会员/全自动医疗仪专家, 等级 += 7
  4. 等级 = 等级 - MIN(40, 等级 - 等级 / 10)

计算安装成功率

  1. 若开启 MOD “完全可靠的医疗仪”, 并且使用全自动医疗仪安装, 则成功率 100%
  2. 计算生化操作技能等级: 若有全自动医疗仪, 则技能主次顺序为: 急救, 计算机学, 电子学. 反之顺序为: 电子学, 急救, 机械学.
  3. 计算协助智力点数,增加到生化操作技能上
  4. 难度参数 = 生化操作技能 / (4 * 生化插件安装难度)
  5. 成功率 = (100 * 难度参数) / 难度参数 + sqrt(难度参数)
  6. 耗时 = 难度参数 * 20分钟

备注

生化插件安装难度可查询: https://cdda-trunk.aloxaf.cn

回血速率

自然回血(无视吧,太少了)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
at_rest_quality = if sleep 1 else 0

# 基本恢复速率, 曾经是 0.01
heal_rate = 0.0001
# 最终恢复速率
final_rate = 0.0

# healing_awake 参考
# 急速自愈 2.0    高速自愈 0.66   快速自愈 0.2   高速新陈代谢 0.2
# 虚弱   -0.002   衰退   -0.02   解体   -0.08
awake_rate = heal_rate * mutation_value("healing_awake")
if awake_rate > 0:
    final_rate += awake_rate
elif at_rest_quality < 1:
	final_rate += (1 - at_rest_quality) * awake_rate

# healing_rest 参考
# 急速自愈 1.5    高速自愈   0.5    快速自愈  0.5   高速新陈代谢 0.5
# 虚弱   -0.25   慢速自愈  -0.25   自愈弱化 -0.66   自愈无效   -0.9
asleep_rate = 0.0
if at_rest_quality > 0:
	alseep_rate = at_rest_quality * heal_rate * (1 + mutation_value("healing_rest"))
if alseep_rate > 0.0:
	final_rate += asleep_rate * (1 + healthy / 200)

# 身强力壮 0.2 钢筋铁骨 0.3   不可战胜 0.4
# 小个子 -0.05 毫不起眼 -0.25 瘦弱 -0.25  体型细小 -0.3  弱不禁风 -0.5 柴毁骨立 -0.75
primary_hp_mod = mutation_value( "hp_modifier" );
if primary_hp_mod < 0.0:
	# HP mod can't get below -1.0
	final_rate *= 1.0f + primary_hp_mod;

TL;DR

首先基本回血速率 0.0001(以前是 0.01)。

清醒回血速率为基本回血速率乘上特性加成,默认为 0(也就是不回血),最高可以由急速自愈提供 2.0 的加成。 睡眠回血速率为基本回血速率乘上特性加成,默认为 1(也就是只提供基本回血),最高急速自愈提供 2.5,最低自愈无效提提供 0.1(不增反减)。然后睡眠回血速率还会受到健康(-200~200)影响,最高翻倍,最低归 0(完全不回血)。

最终回血速率:白天就是清醒回血速率,晚上为两个相加,然后这个值再乘上特性加成,最高不可战胜提供 1.4,最低柴毁骨立提供 0.25。

这个数值非常小……一个没有任何特性健康为 0 的正常人睡 8 个小时大概能自然回血 3 点……

科学回血

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
rate_medicine = 0.0
bandaged_rate = 0.0
disinfected_rate = 0.0


# HEAL_RATE  base_mods=2  scaling_mods=2
# HEAL_TORSO base_mods=50
# HEAL_TORSO base_mods=150
# level  1-2(极差) 3-4(不佳) 5-6(普通) 7-8(好)
# 9-10(良好) 11~12(优秀) 13-14(出色) 15-16(完美)
def effect::get_amount(arg):
    ret = get("base_mods") + get("scaling_mods") * (min(8, level) - 1)

if bandaged:
    bandaged_rate += bandaged.get_amount("HEAL_RATE") / 24hours
    
    if body_part = head:
    	bandaged_rate *= bandaged.get_amount("HEAL_HEAD") / 100
    if body_part = torso:
        bandaged_rate *= bandaged.get_amount("HEAL_TORSO") / 100
        
        
if disinfected:
    disinfected_rate += disinfected.get_amount("HEAL_RATE") / 24hours
    
    if body_part = head:
    	disinfected_rate *= disinfected.get_amount("HEAL_HEAD") / 100
    if body_part = torso:
        disinfected_rate *= disinfected.get_amount("HEAL_TORSO") / 100

rate_medicine += bandaged_rate + disinfected_rate
rate_medicine *= 1.0 + mutation_value("healing_resting")
rate_medicine *= 1.0 + at_rest_quality

if bandaged and disinfected:
    rate_medicine *= 2
    
if healthy > 0:
    rate_medicine *= 1.0 + healthy / 200
else:
    rate_medicine *= 1.0 + healthy / 400
    
primary_hp_mod = mutation_value( "hp_modifier" );
if primary_hp_mod < 0.0:
	# HP mod can't get below -1.0
	rate_medicine *= 1.0f + primary_hp_mod;

TL;DR

运用医学手段后的回血,分为包扎回血和消毒回血,两者算法一致,主要受包扎/消毒效果影响。“极差”没有加成,“好”及以上可以翻八倍。其中头部和身体会再乘上特殊加成,头部 0.5,身体 1.5。

最终回血数值等于包扎回血加上消毒回血,再乘上特性加成(默认 1,最高急速自愈 2.5,最低自愈无效 0.1),如果在睡觉的话再翻倍,如果同时包扎&消毒就再翻倍,然后再乘上健康(取值 -200~200)加成(满值翻倍,负满值减半),然后如果有改变HP上限的特性(身强力壮、弱不禁风等等),也等比例应用到回血数值上。

一个没有特性健康为 0 正常人极差包扎+极差消毒,睡 8 个小时,四肢能回血 5 点。看起来很少,毕竟是“极差”的处理,如果是“良好”的话,这个数字就可以达到 40。所以提升急救学等级 & 使用更高级的包扎/消毒材料就很有必要了。

关于健康

虽然表面上说健康值范围是 -200~200,但通过饮食能达到的健康值上限基本为 10。同时因为辐射等原因健康值可能暴跌到负三四百甚至五六百。这个时候回血就会变成负值。。。

生化插件能耗改动

9702 以后,生化能量使用了焦耳热单位,最小单位为 mJ,同时由于数据类型的限制带来了一个上限:2147483647mJ,大约是 2100 kJ。因为是数据类型本身带来的限制,这个上限不大可能改变了。

当然这样生化插件就被削地不成样子了,于是 9748 后,生化插件的耗能也开始进行改动,究竟是强了还是弱了并不好说,把数据列举出来各位自行判断。(不过值得吐槽的是 CBM 界面的耗能显示没有调整,导致很多插件耗能显示为 0……)

注:1 W 即 1 J/s,也就是 1 J/回合。“1 J; 1 W”表示启动耗能 1 J,功率 1W

插件名 旧版耗能 新版耗能
肾上腺素泵 50 kJ 5 J
警报系统 1 / 600 kW 1 W
单分子刀刃 200 kJ 50 J
霰弹枪臂 5 kJ 50 J
血液分析 25 kJ 100 J
血液过滤 75 kJ 600 J
连锁闪电 125 kJ 100 kJ
生化合金爪 100 kJ 25 J
恒温机 1 kJ ; 1 / 24 kW 100 J ; 100 W
隐身系统 50 kJ ; 50 kW 30 kJ ; 30 kW
近身格斗强化 1 kJ ; 1 kW 20 J / 20 W
定向 EMP 100 kJ 50 kJ
EMP 发射器 20 kJ 50 kJ
湿气凝水器 200 kJ 720 kJ
绝缘电容系统 1 J ; 1 / 2 kW 5 J ; 5 W
闪光弹生成器 125 kJ 10 kJ
脑壳手电 1 kJ ; 1 / 150 kW 3 J ; 3 W
LED纹身 1 kJ ; 1 / 300 kW 1 J ; 1 W
内置辐射计 25 kJ 100 J
声纳之足 5 kJ ; 1 kW 200 J ; 200 W
热能防护 4 kJ ; 4 kW 1 kJ ; 1 kW
液压肌肉 17 kJ ; 17 kW 10 kJ ; 10 kW
红外视觉 5 kJ ; 1 kW 5 J / 5 W
指端激光枪 50 kJ 30 kJ
白细胞培育系统 10 kJ ; 1 / 3600 kW 5 J ; 5 W
指端开锁器 25 kJ 50 J
掌心电磁铁 50 kJ 10 kJ
记忆增强 10 kJ ; 1 / 600 kW 2 J ; 2 W
气象识别 10 kJ 10 J
人工黑夜制造机(注:范围从 15 缩小到 2 ) 15 kJ ; 15 kW 9 kJ ; 9 kW
植入式夜视仪 1 kJ ; 1 / 1000 kW 10 J ; 10 W
量子移动(待机) 1 kJ ; 1 kW 3 J ; 3 W
辐射清洗系统 50 kJ 4.5 kJ
远程控制(未改动) 1 / 24 kW 10 W
形象化嗅觉 1 kJ ; 1 / 6 kW 2 J ; 2 W
神奇闪避 1 kJ ; 1 / 10 kW 6 J ; 6 W
体液萃取 50 kJ 20 kJ

车辆

越野性能

  1. 轮胎面积计算: 轮胎直径 * 轮胎宽度
  2. 轮胎越野系数: 塑料轮子 0.1, 竞赛车轮 0.3, 越野车轮 0.7, 履带 0.9, 轨道轮 0.05, 普通轮子 0.5
  3. 轮胎牵引面积: 轮胎总面积 * 轮胎平均越野系数
  4. 无牵引比例: 1 - 轮胎牵引面积 / 轮胎总面积
  5. 重量惩罚: 无牵引比例 * 车辆总质量(kg)
  6. 越野系数: 轮胎牵引面积 / 重量惩罚, 最高不超过 1.0, 最低不低于 0.1

简化一下: (轮胎总面积 * 轮胎平均越野系数) / ( (1 - 轮胎平均越野系数) * 车辆总质量 )

启动时的噪音

噪音描述 原因 解决方案
从 xx 传出一声巨响! 发动机发生回火 修理发动机,提高耐久
xx 发出长久的蜂鸣声 触发了防盗装置 拆掉防盗装置
xx 发出一阵喀喇声 启动电机发生故障 修复/更换引擎
xx 发出急促的喀喇声 电量不足 检查蓄电池耐久并充电/更换满电的蓄电池
xx 突突响了几下就挂了 汽油(柴油)泵故障 修复引擎
xx 发出哐当和嘎吱响声 引擎耐久过低 修理引擎

运行中的提示

描述 原因 解决方案
xx 艰难地牵引着 xx! 加速度过低 减轻车辆重量、换用更大马力的引擎、尽量走公路
xx 对于其引擎来说太重了! 车辆正在加速中,但加速度为 0 减轻车辆重量、换用更大马力的引擎、尽量走公路

怪物的特殊攻击

凝视

燃烧之眼的超恶心攻击手段,游戏中最恶心的怪物没有之一。

攻击的唯一条件就是它看见了你。会导致持续 80 分钟的传送病。可以使用带有空间稳定效果的装备或者神器(?)(待验证)来防御。

目前已知的空间稳定装备有:五点式空间锚(开)

嗯……只有一种装备

恐惧震慑

和凝视有点像,但不同的是这是你看到它才会触发。

我觉得直面大多数神话生物都应该导致这个效果,然而很可惜目前只有阿米格拉 血祭牺牲者血肉天使牛头怪能带来恐惧震慑的效果

防御手段:

  1. 有心灵护盾效果的神器可以完全防御
  2. 有不完全心灵护盾效果的装备有 1/4 几率防御:锡纸帽 相位沉浸服(开)

拍照

眼球无人机的攻击手段(笑)。前期挺麻烦,后期就是送材料。

攻击条件是六格视野范围内,所以离远点射死就没事了。

防御手段则是需要对应职业。一般政府/军队人员都能防御,比如警察、警探、SWAT 人员、CRIT 人员、生化警官、联邦执法官等等都能让眼球无视你。不过联邦执法官需要戴着你的徽章才有效,其他职业不用戴对应徽章也能让眼球无人机无视你,戴上的话眼球无人机就会离开。

武器属性

命中

参照 DPS 相关代码进行解析,因为这个地方简单一点。虽然难以看出命中和最终 dps 的关系,但是可以发现:

  • 一点命中的效果等效于 4 点敏捷
  • 一点命中能抵消怪物的一级闪避

感冒

机制

游戏中每 30 分钟进行一次感冒检测,每次有 $\frac{1}{2 \times 24 \times 365 \times 2^{\frac{健康}{50}} }$ 的几率感冒,如果你拥有抗病体质,这个概率会再除以 3。简而言之就是健康为 0 的普通人每 30 分钟有 $\frac{1}{5840}$ 的概率感冒,健康每上升/下降 50 点这个概率降低一半/翻倍。

而感冒时你有 $\frac{1}{6}$ 的概率患上持续时间 3 ~ 10 天的流感,否则患上持续时间 1 ~ 14 天的普通感冒。

但是!感冒作为一种环境伤害,是可以被防护的。设嘴部的环境防护为 x,则当 xd3 >= 3d3 时,你就能成功抵御这次感冒。

负面效果

  • 做事情获得的快乐减少三分之二
  • 流感会使你头部温度上升 1500 单位
  • 普通感冒会使你全身温度下降 750 单位(这两个单位暂时还没明白和摄氏度的对应关系)