自定义地图筛选面板

自定义地图筛选面板

模组游戏的POI世界地图过滤。对每种图钉类型进行指纹识别,逐个切换可见性,重命名、重新着色、收藏、分组,并使用常规或动态缩放规则——无需原版的共享过滤槽。

打开世界地图。左侧会出现一个地图筛选器侧面板。每一行代表一种已指纹识别的兴趣点(POI)类型——包括原版图钉、模组图钉以及独立的 NCPD 扫描器分类——每行都拥有自己的显示/隐藏切换、重命名、颜色、收藏和分组选项。

原版地图筛选器只知道一小部分固定的分类。当两个模组(或一个模组与原版)共享同一个筛选槽位时,关闭其中一个会隐藏所有同类图钉。自定义地图筛选器面板通过单独跟踪每种 POI 类型,并直接将你的选择应用到实时地图图钉上来解决这个问题。

[list]
[]点击一行可在地图上显示或隐藏这些图钉[/]
[]行上的[编辑]**:重命名标签、选择图标颜色、添加到收藏、分配分组,或从面板中隐藏该行[/]
[]全部 / 收藏 / 分组 标签页,用于浏览、星标和批量切换[/]
[]顶栏的常规动态筛选模式[/]
[]全部显示 / 全部隐藏,适用于所有已知的 POI 类型[/]
[]隐藏可将面板折叠为一条细标签;随时可重新打开[/]
[/list]
所有功能都存在于地图面板上,没有单独的模组设置页面。

[size=4][b]我制作这个模组的原因[/b][/size]

《赛博朋克 2077》的世界地图从一开始就不是为大量模组加载顺序而设计的。

原版筛选列表与一个原生枚举(gamedataWorldMapFilter)绑定,并且对可自定义筛选位的数量有硬性限制。模组作者必须将他们的新地图图钉附加到那些现有分类之一。这在一开始是可行的,直到两个完全不同的 POI 类型最终共享同一个槽位。

一个常见的例子:多个模组使用相同的变体或相同的回收筛选枚举值(与其他已在地图上的内容相同)来添加自己的图钉。在原版界面中,它们看起来像一个复选框。切换关闭它,你会失去该分组中的
所有
内容——一个供应商模组、一个任务模组、一个扫描器图标,以及恰好共享该分类的原版图钉。切换开启它,你又会得到全部混乱。当游戏将它们视为同一个筛选器时,没有办法说“隐藏这个模组的快速传送终端,但保留另一个模组的商店”。

有些模组还重用相同的地图图钉变体,仅存在微小的脚本数据差异,甚至完全没有脚本数据。原版筛选界面无法区分它们。

自定义地图筛选器面板通过在 POI 类型出现时对其进行指纹识别来解决此问题:变体、模组脚本数据类、反射字段、标题/标题约定,以及需要时的图标图集详细信息。每个唯一指纹都会在侧面板中获得自己的行。你的显示/隐藏、颜色、重命名、收藏和分组选择仅适用于该指纹——不会影响原版归入同一类别的所有其他图钉。

这就是核心要点:在模组游戏中,对地图杂乱内容进行单独控制,而无需要求每个模组作者都去认领一个可能不存在的独特原生筛选槽位。

[size=4][b]安装说明[/b][/size]
[list=1]
[]安装下方列出的前置要求[/]
[]将此压缩包解压到你的《赛博朋克 2077》游戏文件夹中,或使用 Vortex 安装[/]
[]确认这些路径存在:
Cyberpunk 2077\r6\scripts\CustomMapFiltersPanel\
Cyberpunk 2077\r6\tweaks\CustomMapFiltersPanel\
Cyberpunk 2077\bin\x64\plugins\cyber_engine_tweaks\mods\CustomMapFiltersPanel\[/
]
[]如果你使用[url=https://www.nexusmods.com/cyberpunk2077/mods/17488]改进的 NCPD 地图筛选器[/url],请禁用或卸载它——此模组替代了这三个扫描器筛选行[/]
[]重新启动游戏[/]
[/list]要卸载,请删除上述三个文件夹。

[url=https://www.nexusmods.com/cyberpunk2077/mods/17442]2.0 之前的 NCPD 扫描器图标[/url]可以保留。该模组仅替换了三个原版 NCPD 变体的纹理;它不会添加筛选行。

[size=4][b]核心功能[/b][/size]
[list]
[]世界地图上的侧面板,列出模组所见过的每种已指纹识别的 POI 类型[/]
[]按类型显示/隐藏——不受限于原版约 32 个自定义筛选复选框的上限[/]
[]重命名任何筛选器行的标签[/]
[]每种 POI 类型的自定义图标色调颜色[/]
[]收藏标签页,用于快速访问星标行[/]
[]自定义分组:使用+创建分组,通过[编辑] → 添加到分组分配 POI,然后从分组**标签页切换整个分组[/]
[]在分组标签页中通过*[删除]删除分组[/]
[
]隐藏面板中的单独行(通过
设置 → 取消隐藏行恢复)[/]
[
]面板高度随列表增长,达到最大值后滚动[/]
[
]鼠标滚轮滚动列表;仅当指针悬停在面板上时,地图缩放才会被阻止[/]
[
]选择会跨存档和地图会话持久保存[/*]
[/list]
[size=4][b]常规和动态模式[/b][/size]

使用面板顶部的
常规** / 动态按钮切换模式。

[b]常规模式[/b]
[list]
[]每行就是一个简单的显示/隐藏切换[/]
[]绿色方块 = 图钉可见[/]
[]灰色方块 = 图钉隐藏[/]
[]变暗的标签 = 已隐藏[/]
[/list]
[b]动态模式[/b]
[list]
[]行默认遵循游戏自身的缩放和距离规则——类似于原版在缩小时隐藏次要图标[/]
[]行上的[动态]* = 图钉遵循这些规则(大多数类型的缩放层级;有机/扫描器类图钉在 120 米内)[/]
[
]点击一行可绕过动态规则;该行显示绿色方块,这些图钉始终可见[/]
[
]追踪图钉和始终显示的类型(任务、快速传送、公寓等)不受影响[/]
[
]绕过选择会在切换模式或重新打开地图时持久保存[/]
[/list]
分组行使用相同的方块 / **[动态]**视觉效果,并一起切换所有成员 POI。

[size=4][b]NCPD 扫描器筛选器[/b][/size]

此模组内置了[url=https://www.nexusmods.com/cyberpunk2077/mods/17488]改进的 NCPD 地图筛选器[/url]曾添加的三个独立 NCPD 扫描器筛选行:
[list]
[]正在发生的袭击[/]
[]可疑犯罪活动[/]
[
]已报告犯罪[/]
[/list]请勿同时运行两个模组。[url=https://www.nexusmods.com/cyberpunk2077/mods/17488]改进的 NCPD 地图筛选器[/url]会重复这些复选框。

[size=4][b]原版筛选界面[/b][/size]

打开地图时,自定义地图筛选器面板会启用自定义快速筛选器,打开所有原生筛选位以使图钉注册,并隐藏原版左侧的筛选界面。

要恢复原版筛选面板:请使用侧面板上的*设置 → 游戏筛选器


[size=4][b]编辑菜单[/b][/size]

任何行上的**[编辑]会打开一个卡片,你可以在其中:
[list]
[]重命名标签[/]
[]选择预设图标颜色[/]
[*]添加或移出
收藏**[/]
[
]添加或移出任何分组[/]
[
]从面板列表中隐藏此行[/]
[/list]
[size=4][b]控制台(Cyber Engine Tweaks)[/b][/size]

在 CET 覆盖层中:
[list]
[
]CustomMapFiltersPanelDumpFilters() — 枚举值与已注册的筛选组、空闲槽位、冲突[/]
[
]CustomMapFiltersPanelDumpCatalog() — 当前已知的已指纹识别图钉[/]
[/list]
[size=4][b]限制[/b][/size]
[list]
[
]两个模组共享相同变体、没有可区分的脚本数据,并且使用相同图标图集时,无法区分。大多数 redscript 模组使用带命名空间的 MappinScriptData 子类,这通常足够。[/]
[
]固定位置(右键点击地图图钉)永远不会被列出,也不会被筛选。[/]
[/list]
[size=4][b]兼容性[/b][/size]

不兼容同时运行[url=https://www.nexusmods.com/cyberpunk2077/mods/17488]改进的 NCPD 地图筛选器[/url]——卸载它;此模组替代了那些行。

与大多数使用标准图钉变体和脚本数据的地图图钉模组兼容。仅更改 NCPD 图标纹理的模组(例如 2.0 之前的 NCPD 扫描器图标)没问题。

如果另一个模组也注入了自定义世界地图界面或包装了相同的图钉控制器方法,请一起测试——两者可能仍然有效,但存在重叠的可能性。

[size=4][b]前置要求[/b][/size]
[list]
[][url=https://www.nexusmods.com/cyberpunk2077/mods/1511]redscript[/url][/]
[
][url=https://www.nexusmods.com/cyberpunk2077/mods/2380]RED4ext[/url](当前 redscript 所需)[/]
[
][url=https://www.nexusmods.com/cyberpunk2077/mods/7780]Codeware[/url] 1.20.3 或更高版本[/]
[
][url=https://www.nexusmods.com/cyberpunk2077/mods/4197]TweakXL[/url][/*]
[][url=https://www.nexusmods.com/cyberpunk2077/mods/107]Cyber Engine Tweaks[/url][/]
[/list]
可选:
[list]
[][url=https://github.com/rayshader/cp2077-red-filesystem]RedFileSystem[/url] + [url=https://github.com/rayshader/cp2077-red-data]RedData[/url] —— 将设置镜像到 r6/storages/CustomMapFiltersPanel/config.json,便于备份或检查[/]
[/list]
[size=4][b]致谢[/b][/size]

感谢 jac3km4 提供[url=https://www.nexusmods.com/cyberpunk2077/mods/1511]redscript[/url],WopsS 提供[url=https://www.nexusmods.com/cyberpunk2077/mods/2380]RED4ext[/url],Codeware 和 CET 团队,以及每一位对其图钉脚本数据使用命名空间以便指纹保持可分离的模组作者。