
拾取便利性优化
搞清楚你在打劫谁或者什么东西。
查看大图
Looting QoL 会根据你搜刮的对象或内容来修改搜刮界面中的标题。
- 容器:在物品上方显示容器名称,而不是“内容物”(CONTENTS)。
- 物品:不显示标题。因为事实证明,物品的“内容物”确实就是物品本身。
- 被击败的敌人:显示其所属派系和名字——如果已死亡,会标记为“已死亡”。
- 已扫描的被击败敌人:显示其真实姓名——如果已死亡,会标记为“已死亡”。
- 如果某事物因某些原因没有名字,则会显示“...”。
- 如果你是模组作者,你可以使用 redscript 动态地为容器或 NPC 设置自定义名称。请参阅下文。
Looting QoL 与以下模组搭配效果良好 ...
- Loot Icons Extension - 更多样化且可自定义的战利品图标,并可在战利品窗口中自行排序。
- Numerals Get Commas - 也是一个 QoL 模组。如果你希望战利品窗口和其他地方的数字用逗号分隔。
- Loot Quantity Text - 也是一个 QoL 模组。如果你希望战利品窗口中显示物品在 9999 以上的确切数量。
- Flavorful Descriptions - 也是一个 QoL 模组。如果你希望在更多战利品上看到原版传说文本。
更新日志
- v1.0:初始发布
- v1.1:为模组作者添加自定义命名功能(见下文)
- v1.2:添加 Codeware 作为模组依赖项
- v1.3:稳定性小幅改进
- v1.4:改进了标记敌人死亡时的死亡侦测逻辑
- v1.5:稳定性与效率小幅改进
- v1.6:增加了对重复派系名称与显示/原型名称的检查
- v1.7:小幅代码改进以保持最新和稳定
- v1.7:未命名的容器仅显示“...”代替名称
- v1.8:标题中的分隔符(“·”)现在可翻译
- v1.9:芯片(Shards)已移除“内容物”标题
- v2.0:修复了扫描任务 NPC 命名的小错误
模组冲突
- 此模组可能与任何修改搜刮界面的模组冲突。
前置需求
模组开发者信息 要给予容器或非任务 NPC 自定义名称,只需添加并使用以下 redscript 脚本。
// 条件导入:
@if(ModuleExists("LootingQoL"))
import LootingQoL.*
// 更改 NPC 派系名称(显示在显示名称之前,后跟一个空格):
@if(!ModuleExists("LootingQoL"))
public static func SetCustomFactionName(gameObject: ref<GameObject>, s: String) { return; }
@if(ModuleExists("LootingQoL"))
public static func SetCustomFactionName(gameObject: ref<GameObject>, s: String) { gameObject.m_customFactionName = s; }
// 更改 NPC 或容器的显示名称:
@if(!ModuleExists("LootingQoL"))
public static func SetCustomDisplayName(gameObject: ref<GameObject>, s: String) { return; }
@if(ModuleExists("LootingQoL"))
public static func SetCustomDisplayName(gameObject: ref<GameObject>, s: String) { gameObject.m_customDisplayName = s; }
// 使 NPC 派系名称覆盖扫描后给出的名称:
@if(!ModuleExists("LootingQoL"))
public static func SetCustomFactionNameOverridesScanner(gameObject: ref<GameObject>, b: Bool) { return; }
@if(ModuleExists("LootingQoL"))
public static func SetCustomFactionNameOverridesScanner(gameObject: ref<GameObject>, b: Bool) { gameObject.m_customFactionNameOverridesScanner = b; }
// 使 NPC 显示名称覆盖扫描后给出的名称:
@if(!ModuleExists("LootingQoL"))
public static func SetCustomDisplayNameOverridesScanner(gameObject: ref<GameObject>, b: Bool) { return; }
@if(ModuleExists("LootingQoL"))
public static func SetCustomDisplayNameOverridesScanner(gameObject: ref<GameObject>, b: Bool) { gameObject.m_customDisplayNameOverridesScanner = b; }
// 使 NPC 派系名称仅在其被扫描后才出现:
@if(!ModuleExists("LootingQoL"))
public static func SetCustomFactionNameOnlyIfScanned(gameObject: ref<GameObject>, b: Bool) { return; }
@if(ModuleExists("LootingQoL"))
public static func SetCustomFactionNameOnlyIfScanned(gameObject: ref<GameObject>, b: Bool) { gameObject.m_customFactionNameOnlyIfScanned = b; }
// 使 NPC 显示名称仅在其被扫描后才出现:
@if(!ModuleExists("LootingQoL"))
public static func SetCustomDisplayNameOnlyIfScanned(gameObject: ref<GameObject>, b: Bool) { return; }
@if(ModuleExists("LootingQoL"))
public static func SetCustomDisplayNameOnlyIfScanned(gameObject: ref<GameObject>, b: Bool) { gameObject.m_customDisplayNameOnlyIfScanned = b; }
// 最后,若仅需检查是否安装了 Looting QoL,请将此布尔值添加到你的 ScriptableSystem:
@if(!ModuleExists("LootingQoL"))
public static const let bLootingQoL: Bool = false;
@if(ModuleExists("LootingQoL"))
public static const let bLootingQoL: Bool = true;
我的《赛博朋克 2077》模组列表
- Android_Malfunction
- Armed Apartments
- Atone - Reset Your Street Cred
- Cop Killer
- Endgame Rewards Expanded
- Fast Travel Time
- Flatlined Exit
- Gamepad Button Hold Indicator Fix
- Gen Teleport Command
- Gorilla Grapple
- In Cold Blood - NPC Execution Fix
- Input QoL
- Item Records Fixes
- Judy Flirts on Dates
- Loot Icons Extension
- Looting QoL
- Mute Bolt Perk Weapon Charge Sfx
- Mute Combat Music
- Mute Deadeye Perk Headshot Sfx
- Mute Focus Perk Chime Sfx
- Mute Overclock Perk Activation Sfx
- NCPD Fixes
- Pariah
- Passenger Targeting Fix
- Pay-To-Go
- Plan C
- Retrothrusters QoL
- Sell From Wardrobe
- Shouldered Headphones
- Slaught-O-Matic Platinum
- Slaught-O-Matic QoL
- Streetwalker Minidress - Archive XL
- Threadscape
- Throttled Activity Log
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。