细蓝线

细蓝线

穿蓝衣服的男孩女孩们累了。受够了你的胡闹。累到他们会退一步,让你自己玩去。暂时如此。ᕦ(ò_óˇ)ᕤ

- 介绍 -

在原版游戏中,无论你杀掉多少警察,他们都会不断涌来,除非你藏起来让通缉等级逐星下降。所以。超——无——聊。

这个模组改变了这一点,现在你真的能火力压制他们。如果你击杀足够多的 NCPD(夜之城警察局),他们就会撤退。具体要杀多少取决于你在哪里、你是谁、你做过什么,以及你妈妈是否喜欢你。还有你是否贩毒。真的,兄弟!

一旦他们撤退,会有一段冷却时间,之后才会再次追捕你——但小心,下次他们来势会凶猛一倍!

在夜之城,你打垮了 NCPD。除了 MaxTac——他们打垮的是

简而言之:NCPD 有尸袋要填满。填够了他们就回家。( -_-)>--- pewpew

- 循环流程 -

1. 热度产生(任何来源——你的罪行、误报、MA 标记,随便什么)。 2. NCPD 生成并交战。 3. 你击杀警察,每次击杀都会增加追击计数器。 4. 如果计数器达到区域阈值,NCPD 将尝试撤退。 5. 热度闪烁消失,已生成的 NCPD 消失或游荡离开。 6. 冷却计时器开始。 7. 如果在冷却结束后你继续犯罪,他们会回来,但强度翻倍,甚至更糟。

如果 MaxTac 在场(热度 4 级以上),则永远不会撤退。你完蛋了,伙计!

- 区域阈值 -

你必须击杀多少警察才能让 NCPD 撤退,取决于你所在的位置。

  • 市中心 / 企业广场 / 城区 - 12 击杀
  • 海伍德 / 西布鲁克 / 井泉 / 格伦 - 8 击杀
  • 沃森 / 歌舞伎 / 圣多明各 / 北区 / 阿罗约 - 6 击杀
  • 太平洲 / 恶土 / 海岸景观 - 3 击杀
  • 狗镇 - 这里没有 NCPD,伙计,而且巴盖斯特不会退缩。

所有阈值均可配置。

- 动态冷却 -

NCPD 撤退后,他们暂时不会回来。持续多久取决于堆叠在区域基础时间上的三个乘数:

冷却时间 = 区域基础时间 x NCR 人口乘数 x 街头声望乘数 x 已知目标乘数

每个区域的基础小时数(游戏内时间):

  • 市中心:8 小时
  • 海伍德:16 小时
  • 沃森:24 小时
  • 太平洲:48 小时

NCR 人口乘数(仅安装了 Night City Remembers 时生效):

  • 满编:0.5 倍
  • 运转中:0.75 倍
  • 吃紧:1.0 倍
  • 枯竭:1.5 倍
  • 破碎:2.0 倍
  • 残余:3.0 倍
  • 背水一战:5.0 倍
  • 全灭:他们没了,伙计。消——失——了。

街头声望乘数(你的名声决定了 NCPD 对你的仇恨程度):

  • 声望 1-10:0.5 倍
  • 声望 11-25:0.75 倍
  • 声望 26-40:1.0 倍
  • 声望 41-49:2.0 倍
  • 声望 50:3.0 倍

示例

  • 声望 50,太平洲,NCPD 残余:48 x 3.0 x 3.0 = 432 小时(约 18 天)
  • 声望 5,市中心,满编:8 x 0.5 x 0.5 = 2 小时
  • 声望 35,沃森,吃紧:24 x 1.0 x 1.0 = 24 小时(1 天)

- 升级响应 -

撤退后,下一次追击不会从头开始。NCPD 记得你做过什么。升级标记会一直保持,直到冷却结束。如果在该窗口期内触发新的热度,则会以生成等级的 2 倍出现,上限为可配置的最大值(默认为热度 4,以避免单星触发直接引来 MaxTac)。

热度 1 -> 热度 2。热度 2 -> 热度 4。热度 3 及以上 -> 上限为 4。

等待冷却结束而不触发热度,标记就会过期。他们已经翻篇了!¯_(ツ)_/¯

- 已知目标 API -

其他模组可以通过一个干净的 API 将你标记为 NCPD 的高优先级目标。例如,毒贩模组通知 TBL(Thin Blue Line)你是大毒枭,就会改变 NCPD 的响应方式。

API 接口

let tbl = ThinBlueLineSystem.Get(gi);
if IsDefined(tbl) {
    tbl.SetKnownTarget(n"DrugDealer", 0.7);  // 0.0-1.0
    tbl.SetKnownTarget(n"DrugDealer", 0.0);  // 清除
}```

多来源,每个模组注册自己的 CName 和分数。有效分数 = 所有来源中的最大值。

机制效果

  • 初始热度提升:分数 >= 0.5 时,起始热度等级提升 1 级。>= 0.85 时,提升 2 级。NCPD 从第一批响应者开始就会大举出动。
  • 撤退阈值:按分数 x 50% 的比例下调。NCPD 面对传奇人物会更快崩溃。默认需击杀 6 人,在分数 1.0 时变为 3 人。
  • 冷却时间:乘以 (1 + 分数) 的倍率延长。他们需要更多时间来考虑是否值得对付你。

预期模式:名声会让你遭遇最猛烈的开场攻势,但他们无法维持战斗,而且需要更长的时间来恢复

如果你想保持原版 TBL 行为,可以在“已知目标”Mod 设置类别中切换开关。

- 选项 -

所有选项都在 Mod 设置中的“Thin Blue Line”下。

模组开关:切换开关。默认开启。

显示选项:切换开关。 显示下方的调整类别。

2. 撤退阈值

各等级下 NCPD 撤退前所需的击杀数。滑块设置适用于市中心、海伍德、沃森、太平洲、狗镇。

3. 行为

MaxTac 免疫:切换开关。默认开启。 MaxTac 永不撤退。关闭 = 连他们也会崩溃。

撤退延迟(秒):滑块,1.0-10.0。默认 3.0。 达到阈值与实际撤退之间的时间。制造紧张感。

显示调度消息:切换开关。默认开启。 虽然有点老套,但也就那样吧。

升级响应:切换开关。默认开启。 撤退后下一次追击将以 2 倍热度出现。

升级上限:滑块,3-5。默认 4。 升级能达到的最高热度等级。4 = 避免自动触发 MaxTac。5 = 百无禁忌。

4. 冷却调整

每个区域在 NCPD 重新集结前的基础小时数。乘以 NCR 人口、街头声望和已知目标乘数,如上所述。

5. 已知目标

启用已知目标系统:切换开关。默认开启。 允许外部模组将你标记为高优先级目标。关闭 = 忽略所有外部 API 输入,无论谁调用。

6. 调试

调试日志记录:切换开关。默认关闭。 将 TBL 状态打印到游戏日志中。用于故障排除。

- 更新日志 -

1.0.4 - 首次发布。按区域撤退阈值、动态冷却、升级响应、MaxTac 免疫、NCR 集成、用于外部模组集成的已知目标 API。 1.3.0 - 更新为需要 DigitalVixen Core 和 Redscript Configuration Framework。支持 18 种语言的翻译 + 英语 = 共 19 种语言,配置现在通过游戏内的干净弹窗完成。 1.3.1 - 日志记录移至可选的 RedLogger 插件,为 Mod Picker 和游戏内 WIKI 添加了卡片和文档。

- 需求 -

此模组需要你安装以下内容: Redscript Codeware DigitalVixen Core Redscript Configuration Framework

可选但推荐: Night City Remembers RedLogger - 为日志增加详细度。 It Wasn't Me(误报抑制 + 狐狸小姐贿赂)

对于 1.3.0 之前的版本: Mod Settings(游戏内配置)

- 兼容性 -

  • 毒贩 / 外部模组 - 已知目标 API 允许干净集成。模组注册命名来源,最大分数生效。

- 安装方法 -

  1. 安装所有依赖项。
  2. 将下载的文件解压到你的游戏主目录中。
  3. Mod 设置 -> Thin Blue Line 下进行配置。

- 卸载方法 -

删除目录 \Cyberpunk 2077\r6\scripts\ThinBlueLine

持久化字段会保留在存档中,但移除模组后不会造成问题。

- 给模组作者的说明 -

模块名称:ThinBlueLine。请保护你的代码,使其在有或没有 TBL 的情况下都能编译:

import ThinBlueLine.*```

已知目标 API

ThinBlueLineSystem.Get(gi).GetKnownTarget() -> Float```

分数被限制在 0.0-1.0 之间。设为 0.0 会移除该来源。来自不同模组的多个来源可以共存 - 最大值为准。

用例

  • 毒贩:根据大毒枭声望等级缩放 knownTarget。
  • 未来的街头声望损失系统:双向 - 高声望会推高 knownTarget。

该 API 是可读写的,但在模组端仅用于观察 - 调用 SetKnownTarget 不会触发任何 TBL 事件。下次追击 / 撤退 / 冷却计算时会看到新值。

- 致谢 -

感谢 CET 和 redscript 社区提供的工具和文档。

感谢所有出色的模组作者,他们继续为我们免费创作内容!

特别感谢 NightlyNow 推动我做得更好,敢于更多尝试。

DigitalVixen 模组套件的一部分。 你现在可以在 Discord [这里](https://discord.gg/sc4yEx2fNf)找到我!