自动拾取植物或农作物 (V2.6) (V2.5) (V2.4) (V2.2) x 客户端拾取植物或农作物

自动拾取植物或农作物 (V2.6) (V2.5) (V2.4) (V2.2) x 客户端拾取植物或农作物

TechFreqs Auto Pickup Plants是一个模组,适用于《7 Days to Die》,它会自动拾取玩家周围可配置范围内的可收获植物。它支持单人游戏或客户端游戏或服务器世界,它会奖励经验值,并增加

游戏玩法

TechFreqs的自动拾取植物是一个《七日杀》模组,可自动拾取玩家周围可配置半径内的可采集植物。该模组支持单人游戏或客户端游戏(服务器端未经测试),但会奖励经验值,并同步更新植物挑战界面。模组会定期动态重新加载配置文件(config.json),无需手动命令即可无缝更新拾取半径或切换键等设置。

兼容性:

  • 7d2d 最新版本 (V2.4) 适用于 V1.3 及之前版本
  • 适用于 V1.4 Beta 的 7d2d 最新版本 (V2.5)
  • 不支持 EAC(DLL)

最新更新日志: V1.5 对应 V2.6

🚀 1. 完全消除卡顿(异步扫描) 旧:该模组在主游戏线程上瞬间扫描半径内的每个方块。在半径100的情况下,这意味着在一帧内检查约1100万个方块,会导致游戏完全冻结几秒钟。 新:扫描已移至协程中。现在每次扫描一个区块,让游戏渲染一帧,然后再扫描下一个区块。你现在可以将半径设置为100以上,游戏在后台扫描的几秒钟内会保持完美流畅。

🧠 2. 内存泄漏已修复 (processedPickups) 旧:采集过的植物被保存到一个无限增长的HashSet中。在数小时的游玩过程中,这个列表无限增长,慢慢吞噬内存,直到服务器/客户端卡顿。 新特性:替换为轻量级 Dictionary<Vector3i, float>。内置清理功能现在会在每次扫描开始时自动运行,永久删除超过10秒前采摘的任何植物的记忆。你的模组现在几乎使用零内存。

🗑️ 3. 移除了垃圾回收峰值 旧:代码在更新循环(每秒运行60次以上)内使用了Enum.Parse,并在最深层级的块扫描循环中构建文本字符串($"...")。这导致游戏的垃圾回收器超负荷工作,引发细微卡顿。 新:Enum.Parse 现在仅在加载 config.json 时精确运行一次,所有文本字符串已从扫描循环中移除。

🛡️ 4. 阻止了“扫描刷屏” 旧版:如果玩家按下了 End 键,模组会同时触发多次大规模扫描并叠加在一起,导致卡顿成倍增加。 新内容:新增了一个扫描锁定功能。如果正在进行扫描,模组将忽略后续的自动/手动扫描请求,直到第一次扫描完成。

🌍 5. 存活后返回主菜单 旧:你的配置检查协程在 InitMod() 中启动。如果玩家返回主菜单并加载新世界,该协程会停止且不再重新启动,从而破坏了自动重载功能。 新:当玩家生成到世界中时,配置检查器现在会启动(EntityPlayerLocal.Update 初始化)。它现在将完美地应对世界跳转和主菜单切换。

🔗 6. 不可破解的XML解析 旧:您使用了 xpath.IndexOf("name='") 来读取 blocks.xml。如果其他模组或未来的游戏更新使用了双引号(name="plant"),您的模组将静默地无法识别任何植物。 新:已切换到正则表达式 (Regex)。无论 XML 文件中的引号或间距变得多么奇怪,它都能完美找到植物名称。

🎲 7. 真随机种子 旧:创建了一个浮动的GameRandom实例。 新:现在使用GameManager.Instance.World.GetGameRandom()。这确保了你的自定义收获掉落计算能够正确地与玩家当前游戏世界的特定种子同步,就像原版收获一样。

🧹 8. 代码清理与智能调试 旧:有三个“无效”的Harmony补丁,它们仅输出日志,增加了不必要的处理开销。此外,在物品计算期间LogAlways被大量滥用,即使玩家不希望,也会填满他们的日志文件。 新:移除了空补丁以加快模组速度。所有详细的生产日志(物品计算、掉落计数、检测到的方块)已恢复,但改为通过LogDebug输出。现在,当DebugLogging为true时,你可以看到所有计算过程,而当它为false时,普通玩家就不会被日志刷屏了!

感谢反重力技术、谷歌智能体以及谷歌Gemini 3.1专业版 (然而在服务器环境下未经测试,即将模组复制到服务器模组和客户端动态链接库。虽然此模组仅适用于单人游戏或作为客户端模组使用,但若同时放在两个模组目录下仍可能在服务器环境中运行,使用效果可能有所不同)

半最新更新日志:

V1.4 测试版 (V2.5)

  • 针对 7D2D V2.5 B32 进行了更新
  • 在 config json 中将 startenabled 改为 false,适用于那些不希望拾取植物自动启动的用户
  • BETA(测试版)未经在专用服务器上使用测试,仍采用V1.3测试版及先前版本的功能,对于"野外求生"技能而言具有相同的扩展性。 (但未在服务器环境中测试,亦即将模组同时复制到服务器模组和客户端DLL中,此模组仅设计用于单人游戏或作为客户端模组使用)
  • 修复了因游戏内进度添加等级经验值的更改而导致的一个问题,该问题会在代码中生成大量Null引用异常,因为代码期望一个第二参数而不是单一版本

已修复问题详情 - [TechFreqsAutoPickupPlants] EntityPlayerLocal.Update 中出现错误:未找到方法:int .Progression.AddLevelExp(int,string,Progression/XPTypes,bool,bool) 堆栈跟踪: 在TechFreqsPlayerUpdatePatch.Postfix(EntityPlayerLocal __instance)[0x001fd]文件中<0a38b36dc03f4ef2a84fba878a86e0d6>:0

最新更新日志:

V1.3 BETA

  • 新增功能:独立的自动切换与手动切换,默认按键为 Home 或 End 键(可在配置 json 文件中调整)
  • 新增功能,可在配置 json 中设置 true 或 false 来开启或关闭拾取音效
  • 之前的修复和功能 来自 v1.2、v1.1、v1.0

配置添加 "AutoToggleKey": "Home" "ManualToggleKey": "结束" "PlayPickupSound": false 或 true

V1.2 测试版

  • 修复了植物可放置方块应掉落收获和种子的错误。

V1.1 测试版

  • 新增通过半径自动拾取功能 自动附近拾取:当你移动至少一段距离(如5个方块)时,配置半径内的植物会自动收割。无需按键——只需行走或奔跑即可!
  • 新增手动/自动模式切换:按一个按键(默认为 End)即可启用/关闭自动拾取或触发一次手动扫描。支持两种模式: 自动:在移动时扫描(如果启用)。 手册:仅在按下切换键时进行扫描。
  • 服务器兼容的采集:在专用服务器上,植物会被正确移除(采集),物品添加到背包,经验值奖励(默认:每株10点),并触发挑战(例如“challengeHarvest”)。没有重复或利用漏洞获取经验值。
  • 背包处理:物品直接加入背包。若背包已满,则掉落至地面并伴有提示/音效提醒——无需无用背包。
  • 增强的调试日志:用于故障排除的详细日志(可在配置中切换)。追踪扫描、拾取、经验和错误。
  • 手动方法同样具备V1.0的功能特性

== 新建配置 JSON 配置 没问题,请提供你需要翻译的游戏文本,我会按要求逐行翻译。 "PickupRadius": 10.0, // 玩家周围扫描植物的距离(受限于MaxPickupRadius) "MaxPickupRadius": 100.0, // 最大允许半径 "ToggleKey": "End", // 切换启用/禁用或手动扫描的按键(Unity KeyCode 名称) "ConfigCheckInterval": 300.0, // 配置重载检查间隔(单位:秒,默认:5分钟) "DebugLogging": true, // 启用详细日志(设置为false以减少信息量) "StartEnabled": true, // 加载时自动拾取默认启用 "MinScanDistance": 5.0, // 玩家必须移动的最小方块数以触发自动扫描 "Mode": "automatic", // "automatic"(移动时扫描)或 "manual"(仅在切换键时) "ShowTooltips": true // 显示游戏内消息(例如,“配置已重新加载”,“库存已满”) 您输入的内容似乎是单独的右花括号“}”,没有可翻译的文本内容。请提供完整的待翻译文本。

== 工作原理 扫描:当玩家更新时,检查你是否移动了足够(最小扫描距离)的方块。扫描你周围的区块,寻找mods文件夹的blocks.xml中列出的植物。 采集:对于检测到的每株植物,运行自定义逻辑来收集物品、给予经验值/挑战奖励,并请求服务器拾取(移除方块)。 服务端同步:在 NetPackagePickupBlock 上使用 Harmony 补丁处理专用服务器的工作,确保方块被移除且无漏洞。 安全措施:跳过空气/空/已处理的方块。优雅地处理物品栏。

V1.1 版本的问题: 行走时出现轻微卡顿,取决于设置的拾取半径。当半径设为30时我走路时会有些卡顿,不过这是发生在服务器端而非客户端的情况。 注意:增加采集半径会导致更大的性能损失,因为在该可配置半径范围内,它会尝试收集植物或农作物。

上一个 最新 更新日志 V1.0(V2.2)

  • 7D2D 的 V2.2 版本
  • 非EAC 虽然写着"自动拾取植物",但实际上是半自动拾取植物(通过切换键),以保持每个客户端的性能。

主要特点: 半自动植物拾取: 当开启时,采集指定半径(默认为10,最大100)内的植物(例如:plantedSnowberry3Harvest, plantedBlueberry3Harvest)。 默认设置为“End”键,可参考Unity键位代码文档来配置模组功能的各种开关。你可以在有农作物或植物的区域反复开启或关闭此功能,用于收割等操作。 未测试如果它与"靠山吃山"特长相叠加!所以请记住这一点!对于种子等可能无法保证效果。未测试。

基于 TechFreqs 拾取植物模组!通过共享相同属性的方块XML,同时也暗示了DaDiGui自动拾取箭矢与螺栓的概念想法!形成了这个我构思已久的模组版本。

可配置切换键: 使用可配置的键(默认为End键)启用/禁用自动拾取。切换键使用Unity键码进行设置。

动态配置重载: (由于实现配置重载命令时出现问题) 这是一个替代方法,模组会每5分钟(可调整)检查一次 config.json 文件的变化,并在不重启游戏的情况下应用已更改的半径更新。

经验值和任务追踪: 每株植物奖励10点经验,并通过QuestEventManager跟踪收获挑战。

背包溢出处理: 如果背包已满,会在玩家附近掉落物品并播放音效(ui_denied)。

多人兼容性: 在客户端上运行,并设有权限检查以防止未经授权的拾取。

空气方块修复: 跳过无效方块(如空气、terrDirt),以防止像之前的实现那样出现错误或日志刷屏。

可配置的日志记录: 植物拾取和开关事件的简要日志;当启用调试日志时,详细的日志(例如,区块扫描,配置检查)。

性能优化: 以半径10(大约9个区块)扫描约1000个方块,以半径100(大约49个区块)扫描约25000个方块,对配置检查的性能影响极小。

配置 JSON 配置 编辑Mods/TechFreqsAutoPickupPlants/目录下的config.json文件来自定义设置。 配置文件检查间隔(ConfigCheckInterval)秒后,更改会自动应用到模组代码中(默认设置为5分钟)。

默认配置 JSON

好的,请提供您需要翻译的游戏内容。 "拾取半径": 10.0, "MaxPickupRadius": 100.0, "ToggleKey": "End" "ConfigCheckInterval": 300.0, "DebugLogging": true }

配置JSON说明: 拾取半径:植物拾取的游戏单位半径(例如 10.0、50.0、100.0)。限制在最大拾取半径范围内。 MaxPickupRadius: 最大允许半径(默认100.0)。 ToggleKey: 切换自动拾取的Unity键位代码(例如:End、P、F1)。请参考Unity键位代码文档。 ConfigCheckInterval: 检查 config.json 的间隔秒数(例如,300.0 表示5分钟,60.0 表示1分钟)。避免设置过小的值(<10)以防性能问题。 调试日志:设置为true可获得详细日志(例如,区块扫描、配置检查);设置为false则只记录最少量的日志(仅限作物采集和切换事件)。

用法: 切换自动拾取: 按下已配置的切换键(默认为End)来启用/禁用自动拾取。 日志显示:[TechFreqsAutoPickupPlants] 玩家自动拾取已启用/禁用:。 半自动植物拾取: 启用后,采集半径内的植物将自动采集。 成功拾取物品获得10点经验值,播放item_plant_pickup音效,并更新任务挑战。 如果没有找到或捡起任何植物,会显示提示("半径范围内没有找到植物!"或"没有捡到植物!")并触发 ui_denied 音效。 动态配置更新: 编辑config.json(例如,将PickupRadius改为20.0或将ToggleKey改为你喜欢的键值)并保存。 在 ConfigCheckInterval 秒内,模组会重新加载配置,显示一个提示信息("TechFreqsAutoPickupPlants: 配置已重新加载"),并记录日志: [TechFreqsAutoPickupPlants] 配置已重新加载:拾取半径=20.0,最大拾取半径=100.0,切换键=P,配置检查间隔=300.0,调试日志记录=true 手动拾取: 直接与植物互动以采集它们,具有与当前通过按键切换的半自动采集功能相同的经验值、音效和任务追踪。然而,它不会干扰 TechFreq 植物采集模组,从而兼容两者!

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

安装: 确保mod目录中存在harmony mod,因为它是必需的。 下载模组文件,解压模组文件。 请备份您的世界、存档或游戏文件。 将它们放入你的《7 Days to Die》游戏中的Mods文件夹。 必须禁用EAC,虽然我希望未来能有所改变,但目前DLLS不受EAC支持,但XML没有问题 这是仅客户端方面的内容,但也许这也涉及服务器端与客户端的兼容性问题? 无需额外设置,尽情享受!

支持通知: 对于想支持‘TechFreqs’作品的人,此模组可能或可能不会跨平台发布。请通过7daystodiemods网站的ModsFire(带广告的,每次下载可赚取收益)下载,如果发布在那里或其他示例模组网站,这对我帮助很大。但是! (尽管每次下载仅需10美分)此外,我们还有一个直接镜像链接,可用于使用NexusMods网站,该网站也提供直接下载链接,但这些链接不按点击或下载次数计费,而是通过另一种基于捐赠点数的系统运行。除了下载模组、与朋友分享模组、留下反馈和点赞模组之外,支持TechFreq的最佳方式就是这些,这就是我所要求的全部。但如果你想更进一步,尽管并非必需,你可以通过PayPal或Ko-fi页面使用捐赠链接,这同样会给我带来巨大的帮助! 不过,捐款并非必须,每一份小小的支持都是一种帮助,能激励我们未来制作更多模组、音乐并修复漏洞。所以再次感谢你的阅读,感谢你一直以来的热情,也感谢你查看这个模组帖子。

制作人员名单: 感谢TechFreq与A.I、ChatGPT或Microsoft CoPilot A.I,以及来自Twitter或X的Grok AI,帮助我创建了这个模组,同时凭借对游戏极少的模组知识并在学习中不断进步,没有这些帮助、整体头脑风暴或模组社区的支持,我无法做到这一点。 我非常感激您对这款模组或模组的任何反馈。

社交媒体: 如果你欣赏"TechFreqs"的作品并希望表示支持,可以使用此捐赠链接,尽管并非必须。 总的来说,我非常感谢你们浏览模组帖子、分享并享受其中的任何模组。再次感谢你们!祝游戏愉快!

[url=https://www.paypal.com/paypalme/techfreq][img]https://i.postimg.cc/GhVH3kkF/panel-43463309-image-68202b19-031c-4fa6-ae61-19d6cf57494d.png[/img][/url]

我明白了。请发送需要翻译的内容,我会严格按您的要求逐行翻译,保留所有特殊格式、序号、占位符、换行符等,不翻译路径、代码、表格和网址,直接输出译文不加解释。

喜欢这个模组?有反馈、想法或需要排除故障? 加入 TechFreq Pretty Rad Squad Discord 服务器! 加入我们的Discord,一起聊游戏、分享梗图,获取更多模组更新!

[url=https://discord.com/invite/SQCnGjNUhw][img]https://i.postimg.cc/7Yf5yBTP/panel-43463309-image-82663ce2-8b86-4009-868d-1885f06c77eb.png[/img][/url]

我会严格遵守您的要求,直接逐行准确翻译您提供的游戏内容,不会添加任何额外说明或注释。请您提供需要翻译的中文内容。

至于TechFreqs的音乐,这些免版税音乐可自由用于你的项目中或日常聆听! 源音乐文件可用——请随时在Discord中索取!若需更多内容: TechFreqs 社交链接: [url=https://beacons.ai/techfreq]https://beacons.ai/techfreq[/url] 来看看今天的幕后氛围吧!再次感谢大家查看模组帖子。

[url=https://beacons.ai/techfreq][img]https://i.postimg.cc/Y2XvZc0y/panel-43463309-image-f79ed069-f208-4a4b-9c01-fc7f4cf5045c.png[/img]

[未发现可翻译内容]

许可证: CC BY-NC-SA 4.0 本模组采用知识共享署名-非商业性使用-相同方式共享4.0国际许可协议。你可以在《七日杀》中用于个人游玩。如需修改或分享,必须注明TechFreq的贡献、链接至模组页面,并对衍生作品使用相同许可协议。如有任何修改或变更需求,请通过beacons.ai/techfreq联系我获取授权。 参见 LICENSE.txt 或 http://creativecommons.org/licenses/by-nc-sa/4.0/ 以获取完整条款。 注意:只要注明来源为TechFreq,展示此模组的付费视频/博客是被允许的。