树桩探测器 (V2.3) 树桩查找定位雷达 用于采集蜂蜜和木材

树桩探测器 (V2.3) 树桩查找定位雷达 用于采集蜂蜜和木材

TechFreqs 树桩探测模组,是一款客户端模组,帮助玩家定位游戏世界中的树桩(可收获的方块,产出木材和/或蜂蜜等)。它改编自 TechFreqs 原版的“矿石视觉模组”,但专注于

游戏玩法

TechFreqs 树桩探测模组

TechFreqs 树桩探测模组,是一款客户端模组,可协助玩家定位游戏世界中的树桩(可收获木材和/或蜂蜜等资源的方块)。

它是基于TechFreqs原版"矿石视觉模组"的改编版本,但仅专注于树桩,将其视为检测逻辑中的"矿石"。该模组会定期扫描玩家周围区域,识别树桩(单个或集群),并在游戏内罗盘和地图区域将其显示为可交互标记。这使得资源收集更加便捷,尤其是在大型生态区域或探索过程中,无需手动搜索地形。

最新更新日志:

V1.0(V2.3)

为什么使用它?

树桩是常见但分散的地表资源。该模组就像一个"树桩雷达",在你的HUD/地图上显示位置、距离和大小,类似于任务标记。它是可切换的,并且高度可定制,以适应你的游戏风格。

兼容性:适用于单人游戏和多人游戏(作为客户端模组)。

使用 HarmonyLib 构建,实现无缝集成——除非其他模组大幅修改地图/指南针界面或导航对象,否则不会与大多数模组产生冲突。

版本说明:目标版本为7D2D v2.3,需要.NET Framework 4.8。需要Harmony。

鸣谢/灵感来源:基于TechFreqs的矿石视觉模组代码,最初只是作为一个玩笑构思但从未实现。感谢GothPunk4Christ再次在我的矿石视觉模组评论区留言,让我决定将其变为现实。经过再次思考,这或许会是个提升游戏体验的实用模组。

同样,这里使用的是 Unity 的 KeyCodes,查看自定义按键绑定的文档请点击这里 https://docs.unity3d.com/ScriptReference/KeyCode.html

主要特点

以下是该模组提供的详细内容,附带更多技术细节:

树桩检测与聚类:

扫描名称包含"stump"、"treestump"、"cnttreestump"或"treeStump"(不区分大小写)的方块。这些默认被视为单一类型("Stump"),但你可以通过配置json扩展代码以支持子类型(例如,不同树种变体?)。

技巧

  • 使用泛洪填充算法(通过队列的广度优先搜索)将相连的树桩分组为"簇",前提是它们满足最小簇大小阈值。这减少了用户界面的混乱——例如,10个相连的树桩会显示为一个"树桩簇:10块,45.2米"标记,而不是10个单独的标记。
  • 单个树桩(或低于最小尺寸的小群组)将单独显示为"树桩,X.X米"。
  • 标记动态更新:距离会重新计算,当您处于5米范围内时,它们会变成红色(带有"热点区域"效果),以便轻松精确定位。

UI 集成:

  • 指南针与地图标记:使用游戏内置导航系统(例如"ui_game_symbol_map_treasure"图标)。标记会出现在指南针上(带缩放与夹取限制)与地图上(带显示名称、规模与距离的文字标签)。
  • 自定义:图标随MapIconSize缩放,文本颜色通过MapTextColor设置,树桩特定颜色通过StumpColors调整(例如棕色以实现真实感)。通过EnableMapOverlay启用/禁用地图叠加层。
  • MAYBE 高亮显示:如果启用高亮和调试模式为真,它会将树桩位置记录到控制台(例如,"[TechFreqsStumpDetector] 高亮显示位于 (x,y,z) 的树桩方块")。目前物品在游戏世界中还没有视觉发光效果,但这可以在未来的更新中通过粒子效果或着色器添加,我还没完全搞定这个功能。

切换与更新:

  • 通过按键切换开关(可配置)。激活时显示工具提示,如"TechFreqs 树桩探测器已启用!"。
  • 扫描在启用时每隔 UpdateInterval 秒自动运行。仅在需要时更新(例如,清理超出范围的标记)。
  • 导航对象被动态注册/注销以避免内存泄漏。

性能优化:

  • 扫描体积减少:将垂直(Y轴)扫描限制在您当前位置的±VerticalScanLimit方块范围内(默认为20),因为树桩位于地表层级。这将显著减少需要检查的方块数量(例如,对于100米半径:从约340万减少至约34万)。
  • 间隔控制:可调整的更新间隔让您能够间隔扫描(例如,大半径扫描每30秒一次)以最小化卡顿。
  • 高效清理:自动移除无效/遥远标记,保持导航对象列表精简。
  • 调试日志记录:在调试模式下,记录配置详情和事件以排查性能问题。

配置:

所有设置都在 config.json 中(启动时或通过 reload 命令加载)。使用文本编辑器编辑它,保存,然后重新加载以进行实时更改。包含默认值和解释的完整列表:

至于个人配置JSON以及我推荐的配置,不带双斜杠的配置文件JSON如下载如下

{
  "切换键": "小键盘7",
  "检测半径": 100.0,
  "最小集群大小": 5,
  "启用地图覆盖层": true,
  "启用高亮显示": true,
  "调试模式": true,
  "地图图标大小": 0.8,
  "地图文本颜色": "白色",
  "树桩颜色": {
    "树桩": "棕色"
  },
  "更新间隔": 20.0,
  "垂直扫描限制": 20
}

但默认情况下

{
  "ToggleKey": "Keypad6",  // 切换按键(Unity KeyCode 字符串)
  "DetectionRadius": 15.0,  // 扫描距离,单位米(≥5)
  "MinClusterSize": 5,  // 集群的最小连通区块数(≥1)
  "EnableMapOverlay": true,  // 在地图上显示?
  "EnableHighlighting": true,  // 在调试模式下记录位置?
  "DebugMode": false,  // 额外日志记录?
  "地图图标大小": 1.2,  // 地图/罗盘上的图标缩放比例 (0.5-5.0)
  "MapTextColor": "white",  // 标签颜色(名称或十六进制,勿用灰色)
  "StumpColors": { "Stump": "棕色" },  // 每种树桩类型的颜色
  "UpdateInterval": 3.0,  // 扫描间隔(秒)(>=1)
  "VerticalScanLimit": 20  // Y轴扫描限制(≥5;0 = 无限制)
}

如果文件缺失/无效,将自动创建一个默认文件。

颜色支持名称(例如,"棕色"、"红色")或十六进制值(例如,"#A52A2A")。无效值默认为洋红色或备用颜色。

可用命令:

一个内置的控制台命令(在游戏控制台中输入,通常是F1或~键):

树桩探测器重新加载

重新加载config.json实时。无需重启即可测试更改(例如,将半径编辑为200,保存文件,运行命令——下次扫描将使用新设置)。

无需参数。

Output: "树桩检测器配置已重新加载。"(如果DebugMode开启,则加上加载的值)。

使用方法:按下F1打开控制台,然后输入stumpdetectorreload,按下回车键。该功能已实装,可在单人模式或多人模式中作为客户端使用。

总体概述 工作原理(高层技术总结)

初始化:游戏加载时,修补 EntityPlayerLocal.Update(用于切换/扫描)和 XUiC_MapArea.Update(用于地图界面)。加载配置并设置 Harmony。

扫描: 每 UpdateInterval 秒,循环扫描玩家周围的球形区域(通过距离检查和Y轴限制进行优化)。 收集树桩位置,对它们进行聚类,并注册/更新导航对象。

Nav Objects: 使用7D2D的NavObject系统进行标记(如寻宝)。自定义颜色、文本、热区等设置。

清理:注销远距离/无效标记以防止积累。

错误处理:记录问题(例如,无效颜色)并回退到默认值。

性能提示与限制

高半径处的卡顿: 扫描大范围区域(例如200米)可能因主线程阻塞检查导致短暂停顿(0.1-2秒)。缓解方法包括:

  • 更高的更新间隔(例如,20-60秒)。
  • Lower VerticalScanLimit(例如,对于平坦生物群系为10-15)。
  • 降低密集区域的半径。

限制

  • 仅限客户端;未安装客户端的服务器上无法使用。
  • 无游戏内视觉效果(例如发光的树桩)——仅地图/指南针。
  • 假设树桩为地表级别;地下树桩(罕见)若Y轴限制较低(主要针对原版树桩)可能会被遗漏。
  • 可能与修改导航/地图系统的模组存在潜在冲突。

最大实用半径:在良好硬件上约150-200米;超出此范围,建议通过新命令进行手动扫描。

免责声明:

使用此模组即表示您承认TechFreq不对因使用该模组而导致的任何问题、崩溃或冲突负责。 使用风险自负。请在安装任何类型的模组前备份您的游戏文件。 感谢您的下载,祝您使用愉快!

安装:

确保mod目录中存在harmony mod,因为它是必需的。 下载模组文件,解压模组文件。 请备份您的世界、存档和游戏文件。 将它们放入你的《七日杀》游戏模组目录中。 EAC必须被禁用,尽管我希望将来能有所改变,但目前DLLS不支持EAC,而XML则没有问题。 这是仅客户端,但也许这也是,服务器端和客户端兼容性动态链接库? 无需进一步设置。尽情享受吧!

鸣谢:

感谢TechFreq & A.I、ChatGPT或Microsoft CoPilot A.I或Twitter/X的Grok AI,帮助我创建这个模组,尽管我对游戏的模组制作知识非常有限,但在学习过程中没有它们的帮助我无法完成这项工作,还要感谢整个头脑风暴过程和模组制作社区。 我非常感激,并且也欢迎对模组的任何反馈。

支持通知:

对于那些想要支持"TechFreqs"工作的人,这个模组可能会或可能不会被交叉发布。通过7daystodiemods网站通过ModsFire(广告驱动,每次下载都能赚取收益)下载,如果发布在那里或其他示例模组网站上,对我帮助很大,但是! (尽管每次下载仅需10美分) 还有一个直接镜像可供使用NexusMods网站替代,该网站也提供直接链接,但这些链接并非按点击或下载次数计费,而是通过不同的捐赠点数系统运作。除了下载模组之外,支持TechFreq的最佳方式就是与朋友分享模组、留下反馈并总体上认可这个模组,这就是我所要求的全部,但如果你想更进一步,虽然并非必要,你可以通过PayPal或Ko-fi页面使用捐赠链接,这同样会对我有很大帮助! 然而,捐款并非必须,但每一份支持都能助我们前行,为未来的模组、音乐和漏洞修复提供动力,所以再次感谢您的阅读、您的出色表现以及查看模组帖子。

社交媒体:

如果你欣赏'TechFreqs'的作品并想表示支持,可以使用这个捐赠链接,尽管不是必需的。 我由衷感谢大家查看模组帖子、分享并享受其中的任何模组。再次感谢!祝游戏愉快!


喜欢这个模组吗?有反馈、想法或需要故障排除? 加入TechFreq超酷小队Discord服务器! 快来我们的Discord上放松一下,一起畅谈游戏、分享表情包,还有更多模组更新等着你!


至于TechFreqs音乐,它是免版税音乐,可用于您的项目或休闲聆听! 源音乐文件已备好——尽管提问,可在Discord获取!或欲了解更多内容: TechFreqs 社交账号:https://beacons.ai/techfreq 来看看今天的幕后氛围吧!再次感谢大家查看模组帖子。

许可证:CC BY-NC-SA 4.0

本模组采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行授权。您可在《七日杀》游戏中个人使用。修改或分享需注明TechFreq作者信息,附上模组页面链接,且衍生作品需采用相同许可协议。如需进行任何修改或变更,请通过beacons.ai/techfreq联系我获取授权。 请参阅 LICENSE.txt 或访问 http://creativecommons.org/licenses/by-nc-sa/4.0/ 获取完整条款。 注意:允许展示此模组的盈利视频/博客,但需注明出处为TechFreq。