You are viewing a potentially older version of this package. View all versions.
cn_xc-RandomValueMod-1.5.0 icon

RandomValueMod

随机化贵重物品价格,增加游戏变数和重玩价值。可配置黑白名单、现金袋保护等。主机配置自动同步给所有客户端,确保多人游戏一致体验。

By cn_xc
Date uploaded 5 months ago
Version 1.5.0
Download link cn_xc-RandomValueMod-1.5.0.zip
Downloads 42
Dependency string cn_xc-RandomValueMod-1.5.0

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2100 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2100
cn_xc-RandomValueLib-1.0.5 icon
cn_xc-RandomValueLib

已支持至 REPO v0.4.4 版本,交流QQ群573485890, 核心随机价格库,提供确定性随机算法、黑白名单、现金袋保护等规则,供其他模组调用。

Preferred version: 1.0.5

README

随机贵重物品的价格 🎮

注:本模组网络同步代码和说明文件由 DeepSeek AI 辅助生成

灵感来源

一个为《REPO》游戏设计的独立模组,专注于在第一次抓取贵重物品时随机化其价格,增加游戏的变数和重玩价值!

作者: dyxc666
版本: v1.5.0
最后更新: 2026年2月23日


📢 关于旧版本

重要:本模组是全新发布的独立模组,与先前同样由我发布的 RandomWeightAndValueMod 无关。

  • 旧版链接: RandomWeightAndValueMod v1.3.9已弃用
  • 弃用原因: 旧版同时包含重量与价格随机化,因重量修改涉及复杂的物理引擎,维护成本高且易引发兼容性问题。
  • 迁移建议: 所有旧版用户请完全卸载旧模组,并使用此全新模组以获得更稳定、更专注的价格随机化体验。

✨ 功能特点

  • 🎲 抓取时随机化:物品在被玩家抓取时才触发价格随机化,提供真正的“惊喜”体验,每个物品仅生效一次。
  • ⚙️ 高度可配置:价格随机变化范围可自由调节(0.1倍~10.0倍),满足不同难度需求。
  • 🛡️ 黑白名单系统:通过关键词精确控制哪些物品被随机化,支持黑/白名单模式。
  • 💰 现金袋保护:默认不随机化提取点奖励的现金袋,可通过配置开关启用。
  • 🌐 主机强制统一配置:所有玩家的配置(倍率、黑白名单等)由主机自动同步,确保多人游戏中体验完全一致。
  • 🚀 零网络开销:基于“确定性随机”算法,每个客户端独立计算相同价格,无需传输价格数值。
  • 📋 详细日志:可配置的详细日志输出,便于调试和问题排查。

📥 安装方法

自动安装(推荐)

  1. 安装 Thunderstore Mod Managerr2modman
  2. 在应用内搜索 “随机贵重物品的价格” 并点击安装。
  3. 安装程序会自动处理所有依赖项(包括 AdvancedREPO.Config)。

手动安装

  1. 确保已安装 BepInEx 5REPOConfig 1.2.3+AdvancedREPO.Config 1.0.2+
  2. 下载最新版本的模组压缩包。
  3. 将其解压到《REPO》的游戏根目录(即包含 BepInEx 文件夹的目录)。

⚙️ 配置说明

所有设置均可通过 REPOConfig 图形界面 调整:

  1. 确保已安装 REPOConfig 模组。
  2. 进入游戏,打开 REPOConfig 主菜单。
  3. 在左侧列表中找到并点击 “随机贵重物品的价格”
  4. 右侧将显示所有可调节项。

主要配置项说明

分类 配置项 说明与默认值
基础设置 随机化物品价格 是否随机化贵重物品的价格 (默认: true)
价格设置 最小价格倍率 价格的最小倍率 (默认: 0.8,即原价的80%)
最大价格倍率 价格的最大倍率 (默认: 2.5,即原价的250%)
黑白名单 启用黑名单模式 启用黑名单,匹配的物品将不被随机化 (默认: true)
黑名单关键词 逗号分隔的关键词列表,留空表示无黑名单 (默认: )
启用白名单模式 启用白名单,只有匹配白名单的物品才会被随机化 (默认: false)
白名单关键词 逗号分隔的关键词列表,留空表示所有物品 (默认: )
特殊排除规则 现金袋随机化 如果为true,则现金袋也会被随机化 (默认: false)
排除高价物品 不随机化价格超过阈值的物品 (默认: false)
高价物品阈值 价格超过此值的物品不随机化 (默认: 50000)
调试设置 详细日志输出 输出每个物品修改前后的具体数值 (默认: false)
强制刷新UI 尝试强制刷新UI显示 (默认: true)

注意:网络相关配置(如“启用网络同步”、“网络超时”)已移除,因为配置同步由 AdvancedREPO.Config 自动处理,无需手动设置。


🎮 使用指南

单人游戏

  1. 安装模组后启动游戏。
  2. 进入任意关卡。
  3. 抓取贵重物品时会自动随机化其价格,并在控制台显示提示。
  4. 可在游戏内设置菜单中随时调整配置。

多人游戏

⚠️ 重要提示:主机强制统一配置(v1.5.0)

v1.5.0 版本改用 AdvancedREPO.Config 实现配置同步:

  • 主机修改配置:所有更改会自动通过 RPC 同步给所有客户端。
  • 客户端无需额外设置:客户端的配置会跟随主机更新,无需手动修改。
  • 确定性随机:由于配置统一,每个客户端独立计算的价格完全相同,无需传输价格值,零网络延迟。
  1. 所有玩家必须安装相同版本的模组(包括 AdvancedREPO.Config 前置)。
  2. 主机启动游戏后,其配置即为全房间的统一配置。
  3. 客户端在游戏中无法修改同步的配置项(修改后会被主机的值覆盖),确保一致性。
  4. 抓取物品时,每个客户端独立计算价格,结果自然一致。

配置示例

  • 轻度随机化:价格倍率 0.91.5(适合新手)
  • 疯狂模式:价格倍率 0.110.0(高风险高回报)
  • 稳定模式:价格倍率 0.52.0(平衡体验)

🔧 故障排除

常见问题

Q:模组没有生效?
A:请按顺序检查:

  1. 游戏启动时是否有BepInEx控制台窗口?
  2. 是否安装了所有依赖(REPOConfig、AdvancedREPO.Config)?
  3. 在REPOConfig菜单中是否已启用“随机化物品价格”?

Q:为什么有些物品没有随机化?
A:可能原因:

  • 该物品名称匹配了黑名单关键词。
  • 该物品是现金袋,且未开启“现金袋随机化”。
  • 该物品已被抓取过(每个物品仅生效一次),重新进入关卡会重置。

Q:多人游戏中配置没有同步?
A:请尝试以下步骤:

  1. 确认所有玩家安装了 AdvancedREPO.Config(版本 ≥ 1.0.2)。
  2. 主机修改配置后,等待几秒观察客户端是否变化。
  3. 检查控制台是否有 AdvancedREPO.Config 的同步日志(需开启该模组的调试日志)。
  4. 如果仍不同步,可能是网络问题,尝试重新加入游戏。

Q:这个模组和之前的 RandomWeightAndValueMod 是什么关系?
A:这是一个完全独立的全新模组,专注于价格随机化,不再包含重量修改功能。旧版模组因技术原因已弃用,强烈建议所有玩家使用此新版。旧版链接:RandomWeightAndValueMod v1.3.9(已标记弃用)。

Q:v1.5.0 主要改进了什么?
A:修复了之前版本中调用 Sync.ApplyLocal() 的访问错误,该行代码已被移除(实际为多余调用)。同时将配置系统迁移至 AdvancedREPO.Config,实现了主机强制统一配置,并移除了所有价格同步的网络代码,大幅简化模组结构,提高多人游戏的一致性和稳定性。


📜 更新日志摘要

版本 重点内容
v1.5.0 修复访问错误:移除多余 Sync.ApplyLocal() 调用,完善配置同步机制
v1.4.9 重构配置同步:改用 AdvancedREPO.Config,主机统一配置,移除价格网络传输
v1.4.8 增强网络同步:预加载组件、超时回退、更详细的调试日志
v1.4.6 修复RPC参数错误,多人游戏同步基础功能可用
v1.4.2 核心机制改为“抓取时随机化”
v1.4.0 初始版本发布,专注价格随机化

完整更新日志请参阅随模组附带的 CHANGELOG.md 文件。


说明文件由DeepSeekAI辅助生成,如有问题欢迎反馈。

CHANGELOG

更新日志

[2.0.8] - 2026-05-25

适配repo 0.4.4。

[2.0.7] - 2026-05-23

适配repo 0.4.3。

###[2.0.6]

  • 更新:更新文档说明。

[2.0.5] - 2026-05-02

回退

  • 回退 WZC_UI 联动功能,因该模组日志刷屏,无法获取有效调试信息。
  • 功能恢复至 v2.0.4。

说明

  • WZC_UI 反射联动技术验证(v2.0.6)已完成,方案可行。
  • 因联动模组自身问题,该功能暂时搁置,待其修复后重新评估。

[2.0.4] - 2026-05-02

新增

  • 单机日志中显示玩家名字,方便确认模组是否生效。

[2.0.3] - 2026-05-02

新增

  • 详细日志中输出抓取物品的玩家名字。

优化

  • 日志中的物品名称去除 "Valuable " 前缀和 "(Clone)" 后缀。

[2.0.2] - 2026-05-02

修复

  • 修复单机模式下无法触发价格随机的问题。

新增

  • 单机模式下使用 InstanceID 替代 ViewID,避免去重冲突。
  • OnJoinedRoom 时自动清空缓存。

[2.0.1] - 2026-05-02

文档

  • README 添加 QQ 群信息。

[2.0.0] - 2026-04-17

🚀 重大更新:网络同步彻底重写

  • 全新的房主权威同步模式
    • 移除旧版 NetSync 组件,不再干扰房间初始化。
    • 价格由房主统一计算并通过 RPC 广播,确保所有客户端一致。
    • 配置通过 Photon 房间自定义属性同步,新玩家自动获取。
  • 新玩家中途加入自动同步
    • 房主会向新加入的玩家补发所有已修改物品的价格。
  • 详细日志输出
    • 开启 详细日志 后,控制台会显示物品名称、原价、新价、倍率。
  • 稳定性提升
    • 修复旧版本导致联机房间卡死的问题。
    • 修复客户端与房主价格不一致的问题。
    • 延迟初始化 RPC 中继,避免主菜单阶段报错。

v1.9.1 (发布修正)

  • 发布: 补传版本,实际代码与 v1.9.0 完全相同。之前忘了上传,现在同步。

v1.9.0 (核心库重构)

  • 重构:将核心随机算法、配置模型和规则判断提取为独立库 RandomValueLib,简化主模组代码。
  • 优化:主模组现在只负责 Harmony 补丁、网络同步、配置绑定和 UI 相关逻辑。
  • 依赖:新增对 cn_xc-RandomValueLib-1.0.0 的依赖。
  • 兼容性:完全兼容 v1.8.3 所有功能,运行逻辑不变。

v1.8.3 (代码优化与修复)

  • 优化:调整网络组件初始化时机,避免在非必要情况下过早创建 PhotonView。
  • 修复:解决某些情况下因网络组件未就绪导致的潜在 RPC 调用问题。
  • 兼容性:完全兼容 v1.8.2,功能逻辑不变。

v1.8.2 (多人同步 + 局间随机种子)

  • 核心新增:多人游戏支持!所有玩家的价格随机化结果一致,配置由主机强制统一。
  • 局间变化:每局开始时会根据关卡种子混入随机计算,同一物品在不同关卡中价格倍率不同,增加重复可玩性。
  • 同步机制
    • 主机在关卡开始时通过 RPC 广播配置(倍率、黑白名单等)和种子。
    • 客户端收到后覆盖本地配置,确保计算一致性。
    • 新玩家中途加入时会自动收到当前配置和种子。
  • 性能优化:沿用确定性随机算法,无需传输价格值,零网络开销。
  • 兼容性:完全兼容 v1.8.1 的单人模式;多人游戏需所有玩家安装此模组。

v1.8.1 (文档更新)

  • 文档:在 README 中新增“推荐搭配的模组”章节,列出用户收集整理的可一起使用的 100+ 款模组,并按主题分类。
  • 兼容性:在功能特点中明确说明与 Empress Currency 同时使用互不影响。

v1.8.0 (最终稳定版 - 独立重构)

  • 核心基线:基于 v1.7.0 的稳定架构,彻底移除所有外部依赖(AdvancedREPO.Config 及其 Reloaded 版本)。
  • 抓取时机:回归 抓取时随机化,采用验证成功的补丁签名 GrabStarted(PhysGrabber player),确保价格稳定生效。
  • 配置系统:改用 BepInEx 原生配置,支持 REPOConfig 游戏内编辑,无需额外库。
  • 性能优化:保留反射缓存机制,加入 modifiedItemIDs 确保每个物品只随机一次。
  • 代码精简:吸收 v1.7.x 实验分支的经验,选择最简洁稳定的方案。

v1.7.x (实验分支 - 未公开发布)

这一系列版本记录了从 v1.7.0 到 v1.8.0 之间的技术探索,均未公开发布:

  • v1.7.3:尝试公共化访问字段,因 DLL 兼容性问题放弃。
  • v1.7.4:回退到反射,继续使用 AdvancedREPO.Config Reloaded。
  • v1.7.5:尝试将配置同步代码内嵌到模组中。
  • v1.7.6:尝试生成时随机化(Awake),被游戏覆盖。
  • v1.7.7:尝试生成时随机化延迟帧(Start),效果不稳定。
  • v1.7.8:回归抓取时随机化,修正补丁签名,验证成功。
  • v1.7.9:优化抓取逻辑,为最终版做准备。

v1.7.2 (文档调整)

  • 新增:将抖音群链接提前至 README 靠前位置,并添加“我是代码新手”声明。
  • 文档:优化文档结构,提高可读性。
  • 兼容性:完全兼容 v1.7.1,未改动任何功能代码。

v1.7.1 (文档调整)

  • 更新:更新文档说明,仅文档调整,功能代码与 v1.7.0 完全相同。

v1.7.0 (新增公开 API)

  • 新增:公开 API RandomValueAPI,包含 OnItemRandomized 事件和 GetItemPrice 方法。
  • 优化:内部代码整理,原有功能完全不变。
  • 兼容性:完全兼容 v1.6.3 的所有功能。

v1.6.3

  • 移除:不再依赖 REPOConfig,配置同步仅通过 AdvancedREPO.Config 实现。
  • 恢复:基于 v1.5.9 稳定版本,确保所有核心功能正常运作。
  • 优化:简化依赖列表,降低玩家安装门槛。

v1.6.2 (内部测试版)

  • 移除:移除对 REPOConfig 的依赖(未公开发布,仅内部测试)。

v1.6.1 (内部测试版)

  • 调整:对颜色反馈代码进行优化(未公开发布,仅内部测试)。

v1.6.0 (内部测试版)

  • 新增:价格颜色反馈功能(未公开发布,仅内部测试)。

v1.5.9

  • 修复:修正了提示信息中倍率计算错误的问题。
  • 优化:代码中传递原价给日志函数,确保计算准确。

v1.5.8

  • 修复:将价格字段读写方式从 FieldRef 回退为传统反射,确保修改成功。
  • 增强:在价格修改前后添加详细日志输出。

v1.5.7

  • 性能优化:尝试使用 FieldRef 代替反射(发现兼容性问题,v1.5.8 已回退)。
  • 代码精简:添加辅助方法 CreateBoolConfigCreateFloatConfig

v1.5.6

  • 调整:将默认最小倍率从 0.8 改为 0.5,默认最大倍率从 2.5 改为 2.0

v1.5.5

  • 增强:模组启动时打印当前倍率值,便于确认配置加载。
  • 调试:在价格计算函数中添加日志输出(仅在详细日志开启时显示)。

v1.5.4

  • 修复:将所有布尔配置项的验证方式从 .Acceptable() 改为 .Range(false, true)

v1.5.3

  • 修复:为所有布尔配置项添加 .Acceptable(new bool[] { true, false }) 尝试解决范围验证错误。

v1.5.2

  • 更新:更新文档说明。

v1.5.1

  • 修复:在 CreateConfigEntries 中为每个配置项添加 .File("RandomValueMod.cfg") 调用,解决空引用异常。

v1.5.0

  • 修复:移除了不可访问的 Sync.ApplyLocal() 调用,解决编译错误。
  • 完善:确保配置同步机制正常工作,所有配置项由 AdvancedREPO.Config 自动管理。
  • 版本:提升主版本号至 1.5.0,标志着配置同步架构的成熟稳定。

v1.4.9

  • 重大重构:将配置系统迁移至 AdvancedREPO.Config,实现主机强制统一配置。
  • 移除:所有手动编写的价格同步网络代码(RPC、超时回退等)。
  • 优化:基于“确定性随机”算法,客户端独立计算相同价格,零延迟。

v1.4.8

  • 增强:网络同步组件在物品生成时立即添加,确保 PhotonView 及时注册。
  • 新增:客户端网络请求超时机制,默认 2 秒后回退到本地计算。

v1.4.7

  • 更新:更新文档说明。

v1.4.6

  • 修复:修复了 Photon RPC 参数错误,解决多人游戏同步问题。

v1.4.5

  • 文档更新:更新 README,添加指向旧版(v1.3.9,含重量随机化)的链接。
  • 状态声明:明确声明旧版软件包已被标记为已弃用。

v1.4.4

  • 多人游戏优化:改进网络同步机制,添加客户端请求跟踪和重试机制。
  • 性能优化:网络请求清理机制,定期清理过期请求。

v1.4.3

  • 重大优化:大幅减少 Harmony 补丁数量,只补丁关键的抓取相关方法。
  • 性能修复:解决了游戏卡顿问题。

v1.4.2

  • 功能重构:将随机化时机从物品生成时改为抓取时。
  • 新增功能:抓取时触发价格随机化。

v1.4.1

  • 修复:添加详细调试日志,帮助排查抓取物品无反应的问题。

v1.4.0

  • 重构:移除所有重量随机化相关代码,专注于价格随机化。
  • 说明:重量修改易引发兼容性问题,故删除。

v1.3.13

  • 修复:静态类中的 Logger 调用错误,解决编译错误。

v1.3.12

  • 改进:网络同步代码,修复了双向同步的逻辑问题。

v1.3.11

  • 改进:网络同步组件的双向网络同步机制。

v1.3.10

  • 修复:主机与客户端单向同步问题,实现双向网络同步。

v1.3.9

  • 更新:更新文档说明。

v1.3.8

  • 更新:更新文档说明,增加单独的更新日志。

v1.3.7

  • 更新:更新文档说明,增加未来规划。

v1.3.6

  • 重构:移除所有重量和价格的默认值设置,完全尊重游戏原始数据。

v1.3.5

  • 修复:重量随机化中的 NaN 计算问题;单机模式下的网络警告问题。

v1.3.4

  • 恢复:完整的网络同步功能,包含 RPC 广播机制。

v1.3.3

  • 修复:模组加载时的依赖检测问题;移除重复集合定义。

v1.3.2

  • 新增:完整的网络同步功能框架。

v1.3.1

  • 修复:程序集引用问题,确保稳定编译。

v1.3.0

  • 重构:代码架构,提高了稳定性。
  • 新增:网络同步框架(实验性)。

v1.2.2

  • 更新:更新文档说明。

v1.2.0

  • 新增:现金袋随机化开关配置。
  • 优化:黑白名单系统关键词默认留空。

v1.1.0

  • 新增:完整的黑白名单系统,支持关键词匹配。
  • 改进:预设共享检测和修复机制。

v1.0.0

  • 初始版本发布:实现抓取时随机化贵重物品重量和价格的核心功能。