
You are viewing a potentially older version of this package. View Latest Version
RandomValueMod
最终稳定版:抓取时随机化贵重物品价格。支持黑白名单、现金袋保护、详细日志。配置采用 BepInEx 原生系统,支持 REPOConfig 游戏内编辑。📄 README.md markdown
随机贵重物品的价格 (最终稳定版)
作者: dyxc666
版本: v1.8.0
最后更新: 2026年3月8日
注:本模组代码由 DeepSeek AI 辅助生成,经过多轮调试最终稳定。
⚠️ 重要提示:多人游戏测试状态
本模组主要针对单人游戏环境开发和测试,核心机制(抓取时价格随机化)理论上可在多人游戏中工作,但未经充分多人环境测试。如果你在多人游戏中遇到问题(如同步失败、配置不生效等),欢迎在模组页面反馈,但请注意目前无法保证完美兼容。
📢 加入讨论
我是代码新手,欢迎大佬们指点!
有任何问题、建议或想交流模组心得,欢迎加入我的抖音群:
🔗 抖音群链接:https://v.douyin.com/group/132508564374
(复制链接到浏览器打开或直接在抖音中搜索群号)
📖 概述
一个为《REPO》游戏设计的独立模组,专注于在第一次抓取贵重物品时随机化其价格,增加游戏的变数和重玩价值!配置采用 BepInEx 原生系统,可通过 REPOConfig 在游戏内直接编辑,无需手动修改文件。
v1.8.0 最终特性:
- 🎲 抓取时随机化:物品在被玩家抓取时才触发价格随机化,每个物品仅生效一次。
- ⚙️ 高度可配置:价格随机变化范围可自由调节(0.1倍~10.0倍)。
- 🛡️ 黑白名单系统:通过关键词精确控制哪些物品被随机化。
- 💰 现金袋保护:默认不随机化提取点奖励的现金袋(可配置)。
- 📋 详细日志:可配置的详细日志输出,便于调试。
- 🧩 REPOConfig 支持:可在游戏主菜单中直接修改配置(需安装 REPOConfig)。
✨ 功能特点
- 抓取时触发:价格在玩家抓取物品瞬间随机,与游戏内其他修改不冲突。
- 确定性随机:基于物品实例 ID 生成随机数,同一物品每次游戏价格固定(联机时各客户端独立计算)。
- 黑白名单:通过关键词灵活控制哪些物品被排除或仅哪些物品生效。
- 现金袋独立开关:保护重要的现金袋不被意外随机化。
- 性能优化:使用缓存确保每个物品只随机一次,不影响游戏性能。
- 完全独立:不再依赖任何外部配置同步库,配置由 BepInEx 原生管理。
📥 安装方法
自动安装(推荐)
- 安装 Thunderstore Mod Manager 或 r2modman。
- 搜索 随机贵重物品的价格 作者 dyxc666 并安装。
- 启动游戏一次以生成配置文件,然后关闭游戏。
手动安装
- 安装 BepInEx 5(版本 5.4.2100 或更高)。
- 将本模组的
RandomValueMod.dll放入BepInEx/plugins/文件夹。 - (可选但推荐)安装 REPOConfig,以便在游戏中直接修改配置。
- 启动游戏,配置会自动生成。
⚙️ 配置说明
启动一次游戏后,配置文件位于:
BepInEx/config/RandomValueMod.cfg
(如果安装了 REPOConfig,可在游戏主菜单中直接编辑)
| 配置项 | 说明 | 默认值 |
|---|---|---|
随机化物品价格 |
是否随机化贵重物品的价格 | true |
最小价格倍率 |
价格的最小倍率(0.1–5.0) | 0.5 |
最大价格倍率 |
价格的最大倍率(0.5–10.0) | 2.0 |
启用黑名单模式 |
启用黑名单,匹配的物品将不被随机化 | true |
黑名单关键词 |
逗号分隔的关键词列表(如 keycard,computer) |
空 |
启用白名单模式 |
启用白名单,只有匹配白名单的物品才会被随机化 | false |
白名单关键词 |
逗号分隔的关键词列表 | 空 |
排除高价物品 |
不随机化价格超过阈值的物品 | false |
高价物品阈值 |
价格超过此值的物品不随机化 | 50000 |
现金袋随机化 |
如果为true,则现金袋也会被随机化 | false |
详细日志输出 |
输出每个物品修改前后的具体数值 | false |
注意:本模组不再依赖任何外部配置同步库,所有配置由 BepInEx 原生管理。
🔌 公开 API (供其他模组开发者使用)
其他模组可以通过引用此模组的 DLL 或使用反射来访问以下 API:
命名空间
using RandomValueMod;
事件
csharp
public static event Action<ValuableObject, float, float> OnItemRandomized
触发时机:当贵重物品被成功随机化后触发。
参数:
ValuableObject vo:被随机化的物品对象。
float oldPrice:随机前的原价。
float newPrice:随机后的新价。
方法
csharp
public static float GetItemPrice(ValuableObject vo)
描述:获取指定贵重物品的当前价格。
返回值:物品当前价格(dollarValueCurrent 字段的值)。
使用示例
csharp
// 订阅价格随机化事件
RandomValueAPI.OnItemRandomized += (vo, oldPrice, newPrice) => {
Debug.Log($"物品 {vo.name} 价格从 {oldPrice} 变为 {newPrice}");
};
// 主动查询价格
float price = RandomValueAPI.GetItemPrice(someValuable);