SMG使用步枪弹药

SMG使用步枪弹药

难以对手枪和冲锋枪同时实施弹药限制?这个模组让冲锋枪使用步枪弹药。

[b][size=4]SMG 使用步枪弹药[/size][/b]



[i]冲锋枪不再消耗手枪弹药,而是改用步枪弹药。[/i]



一个简单的补丁,共四百八十一条记录,无脚本。它的存在是因为游戏中所有严肃的弹药模组都撞上了同一块礁石,而这块礁石就是冲锋枪和手枪共用同一个弹药池。




//////////////////////////////////////////////////////////////////////////////////////////////////


[b]问题所在[/b]


//////////////////////////////////////////////////////////////////////////////////////////////////



原版《赛博朋克 2077》将冲锋枪归类为使用手枪弹药。一把 Lexington 和一把 Shingen 会从同一个备弹池中取用弹药,这一个决定就悄悄使得基于稀缺性的弹药调控变得不可能。



想想这两种武器实际需要什么。手枪射击是有节制的。你在一场遭遇战中可能只打出八发子弹,并且每一发都是有意为之。一个弹匣是一个有意义的资源单位。冲锋枪的射速在每分钟六百到九百发之间,能在不到四秒内打空一个四十发的弹匣。它不是消耗弹药,而是在鲸吞。



现在试着设置一个能同时管理这两者的数值。



为手枪玩法调整一个有限的手枪弹药池,紧到一个程度,让打空弹药成为真实威胁、每个弹匣都至关重要,那么冲锋枪就会变得不可用。两场战斗后你就弹尽粮绝了。这个武器类别完全无法运作,不是因为威力弱,而是因为它根本无法被喂饱。



反之,为冲锋枪调整,慷慨到足以在整场交火中维持持续自动射击,那么你就等于给了所有手枪配装一个它们永远用不完的弹药海洋。手枪弹药的稀缺性荡然无存。你围绕稀缺性构建的整个系统的紧张感就根本不存在。



没有中间档位。这两种武器想要的备弹量规模相差一个数量级,一个数值无法同时满足两者。任何试图运行弹药稀缺模组,并困惑于为什么根据装备不同,平衡性会朝相反方向崩溃的人,都遇到过这个问题,只是未必看清了它的形态。




//////////////////////////////////////////////////////////////////////////////////////////////////


[b]此模组的作用[/b]


//////////////////////////////////////////////////////////////////////////////////////////////////



游戏中的每一把冲锋枪现在都使用步枪弹药。



Shingen、Saratoga、Pulsar、Senkoh、Warden、Guillotine、NYX-13、Borg4a,以及基于它们构建的所有变体和不朽武器。包括 Buzzsaw、Salamander、Toasty、幽灵手枪、小田的 Shingen、往日之影的商店和任务武器。敌人的冲锋枪也已转换,因此你搜刮时会掉落步枪子弹,经济系统在两端保持一致。



手枪弹药终于回归其应有的定位:一种手枪和左轮手枪的资源,按手枪的消耗速率消耗,稀缺性变得真正可调。




//////////////////////////////////////////////////////////////////////////////////////////////////


[b]为什么专门用步枪弹药[/b]


//////////////////////////////////////////////////////////////////////////////////////////////////



因为在其他所有方面,冲锋枪本来就已经属于这个类别。



冲锋枪占用主武器槽位。它与突击步枪竞争这个槽位,在配装中扮演相同的角色,在相同的距离上对付相同的目标,并且游戏自身的装备逻辑将其与它们归为一类。游戏唯一将冲锋枪视为副武器的地方就是弹药池,那是个例外,并非规则。



将冲锋枪归入步枪弹药使得资源与武器槽位保持一致。主武器消耗主武器弹药池。如果你同时携带冲锋枪和突击步枪,它们会互相竞争,这正是配装应该呈现的取舍。如果你携带冲锋枪和手枪,它们则互不干扰,你的副武器备弹就专属于你自己。



这种一致性正是全部要点。这不是削弱也不是增强。这只是让弹药经济最终与游戏其他部分已经使用的武器分类法相匹配。




//////////////////////////////////////////////////////////////////////////////////////////////////


[b]搭配建议[/b]


//////////////////////////////////////////////////////////////////////////////////////////////////



此模组本身除了将冲锋枪移至不同弹药池外,不做任何事情。在原版弹药充足的环境下,你几乎不会注意到它的存在。它旨在为其他模组提供底层支持。



弹药稀缺和弹药限制类模组是最明显的搭配,也是此模组存在的原因。有了冲锋枪不再占用手枪弹药池,你终于可以将手枪备弹设置得足够低以体现价值,同时不会削弱自动武器的火力;也可以将步枪备弹设置为可持续射击,而不会让手枪配装弹药泛滥。两个数值各司其职,而不是一个数值两边不讨好。



配装限制类模组也会因同样的结构原因而受益。如果某个模组强制要求你的武器槽位有意义,那么让弹药经济与槽位分类一致会使该限制更具可读性。主武器消耗主要弹药。这读起来正确,玩起来也正确。



任何让弹药耗尽成为真实事件的模组都会因此变得更加鲜明。冲锋枪变成一种扣住扳机就有真实代价的武器,何时扫射、何时精确点射的决策,就从一个风格选择变成了一个资源决策。




//////////////////////////////////////////////////////////////////////////////////////////////////


[b]前置需求[/b]


//////////////////////////////////////////////////////////////////////////////////////////////////



RED4ext ......................... 必需。


TweakXL ......................... 必需。



无需其他。不需要 redscript、不需要 Cyber Engine Tweaks、不需要 ArchiveXL、不需要 Codeware、不需要 Mod Settings。仅需一个 YAML 文件。




//////////////////////////////////////////////////////////////////////////////////////////////////


[b]兼容性[/b]


//////////////////////////////////////////////////////////////////////////////////////////////////



[i]存档安全。[/i] 无脚本、无持久数据、无新记录。可在游戏过程中的任何时间点添加或移除。移除后,所有冲锋枪将立即恢复使用手枪弹药,不留任何痕迹。



[i]无档案文件[/i],因此不会与任何纹理、网格或模型模组冲突。



[i]无脚本[/i],因此不会破坏 redscript 编译或与脚本钩子交互。



唯一真正的冲突面是其他写入相同字段的模组。如果另一个模组修改了相同武器记录上的弹药类型,则由加载顺序决定谁生效。武器大修和弹药重做类模组是可能的冲突对象。其他所有模组,包括伤害、操控、后坐力和武器皮肤模组,都修改完全不同的字段,可以共存。



添加新冲锋枪的武器模组不在覆盖范围内。生成此文件时这些记录尚不存在,因此它们将保留其作者设定的弹药类型。



//////////////////////////////////////////////////////////////////////////////////////////////////


[b]已知限制[/b]


//////////////////////////////////////////////////////////////////////////////////////////////////



备弹容量未作更改。原版中步枪弹药的最大携带量低于手枪弹药,因此在全新安装后,这会被视为直接收紧了冲锋枪的持续作战能力。这是有意为之,但如果你将其与稀缺性模组搭配使用,应在该模组中设置你的弹药上限,而不要假定原版数值是合理的基准。



弹药掉落权重为原版设定。游戏的战利品系统决定发放哪种类型的弹药,此模组不触及该逻辑。实际上,由于敌人冲锋枪记录的转换,步枪子弹会更频繁地出现,但如果你觉得平衡有问题,那属于掉落表调整,应归入另一个模组处理。



制作配方未作更改。武器制作功能在 2.0 版本中被移除,现存的配方记录会独立引用弹药类型。这没有实际效果,但值得说明。




//////////////////////////////////////////////////////////////////////////////////////////////////


[b]安装方法[/b]


//////////////////////////////////////////////////////////////////////////////////////////////////



解压至你的《赛博朋克 2077》安装目录。你应该会得到:



Cyberpunk 2077/r6/tweaks/SMGsUseRifleAmmo/smg_rifle_ammo.yaml



Vortex 和 Mod Organizer 2 可直接安装此压缩包。



卸载:删除 r6/tweaks/SMGsUseRifleAmmo 文件夹。



TweakXL 在游戏启动时生效,因此安装后需要完全重启游戏。通过覆盖层重载模组不会生效。




//////////////////////////////////////////////////////////////////////////////////////////////////


[b]验证是否生效[/b]


//////////////////////////////////////////////////////////////////////////////////////////////////



装备任意冲锋枪并查看弹药计数器。如果显示为步枪弹药,则安装成功。



如果你安装了 Cyber Engine Tweaks 并想直接确认:



print(TDBID.ToStringDEBUG(TweakDB:GetFlat("Items.Preset_Shingen_Default.ammo")))



该命令应返回 Ammo.RifleAmmo。




//////////////////////////////////////////////////////////////////////////////////////////////////


[b]配置说明[/b]


//////////////////////////////////////////////////////////////////////////////////////////////////



没有设置菜单,但该文件是纯文本,每一行都清晰可读。



要将冲锋枪改为使用其他弹药,查找并替换 Ammo.RifleAmmo 为 Ammo.ShotgunAmmo、Ammo.SniperRifleAmmo 或 Ammo.SpecialAmmo。除非你确切知道自己在对经济做什么,否则不建议使用最后一个。



要排除敌人武器并将此修改仅作用于玩家,请删除以 Items.Hard_、Items.VHard_、Items.Normal_ 和 Items.Preset_Psycho_ 开头的条目。这些是难度缩放和赛博精神病的配装记录。



要将某个武器家族单独改回手枪弹药,请在文件中搜索该家族名称并更改相应条目。每条记录都以所属武器命名。