cn_xc-RandomValuablePrice icon

RandomValuablePrice

抓取时随机化贵重物品价格,主机强制统一配置。支持黑白名单、现金袋保护、详细日志。v1.7.3 优化:移除反射,性能提升;依赖我的 AdvancedREPO.Config Reloaded。

By cn_xc
Last updated a day ago
Total downloads 0
Total rating 0 
Categories
Dependency string cn_xc-RandomValuablePrice-1.7.3
Dependants 0 other packages depend on this package

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-AdvancedREPO_Config_Reloaded-1.0.3 icon
cn_xc-AdvancedREPO_Config_Reloaded

修复版 AdvancedREPO.Config,兼容最新游戏版本,移除导致崩溃的 Harmony 补丁,改用独立 Photon RPC 同步配置。

Preferred version: 1.0.3

README

markdown

随机贵重物品的价格

作者: dyxc666
版本: v1.7.3
最后更新: 2026年3月8日
注:本模组代码由 DeepSeek AI 辅助生成。


⚠️ 重要提示:多人游戏测试状态

本模组主要针对单人游戏环境开发和测试,虽然核心机制(价格随机化、配置同步)理论上可在多人游戏中工作,但未经充分多人环境测试。如果你在多人游戏中遇到任何问题(如同步失败、配置不生效等),欢迎在模组页面反馈,但请注意目前无法保证完美兼容性。


📢 加入讨论

我是代码新手,欢迎大佬们指点!
有任何问题、建议或想交流模组心得,欢迎加入我的抖音群:

🔗 抖音群链接https://v.douyin.com/group/132508564374
(复制链接到浏览器打开或直接在抖音中搜索群号)


📖 概述

一个为《REPO》游戏设计的独立模组,专注于在第一次抓取贵重物品时随机化其价格,增加游戏的变数和重玩价值!主机配置自动同步给所有客户端,确保多人游戏中体验完全一致。

v1.7.3 优化

  • 移除了反射机制,改用公共化字段访问,性能更优。
  • 依赖我的 AdvancedREPO.Config Reloaded,完美兼容最新游戏版本。

v1.7.1 新增:抖音群聊 & 新手声明。
v1.7.0 新增:公开 API,供其他模组开发者扩展。


✨ 功能特点

  • 🎲 抓取时随机化:物品在被玩家抓取时才触发价格随机化,每个物品仅生效一次。
  • ⚙️ 高度可配置:价格随机变化范围可自由调节(0.1倍~10.0倍)。
  • 🛡️ 黑白名单系统:通过关键词精确控制哪些物品被随机化。
  • 💰 现金袋保护:默认不随机化提取点奖励的现金袋(可配置)。
  • 🌐 主机强制统一配置:所有玩家的配置(倍率、黑白名单等)由主机自动同步。
  • 🚀 零网络开销:基于“确定性随机”算法,每个客户端独立计算相同价格,无需传输价格值。
  • 📋 详细日志:可配置的详细日志输出,便于调试。
  • 🔌 公开 API:供其他模组监听价格变化事件。

📥 安装方法

自动安装(推荐)

  1. 安装 Thunderstore Mod Managerr2modman
  2. 搜索 随机贵重物品的价格 作者 dyxc666 并安装。
  3. 启动游戏一次以生成配置文件,然后关闭游戏。

手动安装

  1. 安装 BepInEx 5(版本 5.4.2100 或更高)。
  2. 确保已安装依赖:AdvancedREPO.Config Reloaded 1.0.3+(由我修复的版本,原版已过时)。
  3. 将本模组的 RandomValueMod.dll 放入 BepInEx/plugins/ 文件夹。
  4. 启动游戏一次以生成配置文件,然后关闭游戏。

⚙️ 配置说明

启动一次游戏后,配置文件位于:
BepInEx/config/RandomValuablePrice/RandomValuablePrice.cfg

配置项 说明 默认值
随机化物品价格 是否随机化贵重物品的价格 true
最小价格倍率 价格的最小倍率(0.1–5.0) 0.5
最大价格倍率 价格的最大倍率(0.5–10.0) 2.0
启用黑名单模式 启用黑名单,匹配的物品将不被随机化 true
黑名单关键词 逗号分隔的关键词列表(如 keycard,computer
启用白名单模式 启用白名单,只有匹配白名单的物品才会被随机化 false
白名单关键词 逗号分隔的关键词列表
排除高价物品 不随机化价格超过阈值的物品 false
高价物品阈值 价格超过此值的物品不随机化 50000
现金袋随机化 如果为true,则现金袋也会被随机化 false
详细日志输出 输出每个物品修改前后的具体数值 false
强制刷新UI 尝试强制刷新UI显示(遗留选项) true

注意:本模组使用 AdvancedREPO.Config 进行配置同步,请确保安装的是我的修复版 Reloaded。


🔌 公开 API

其他模组可以通过引用此模组的 DLL 或使用反射来访问以下 API:

命名空间

using RandomValuablePrice;
事件
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);
🎮 使用方法
单人游戏
安装模组后启动游戏。

进入任意关卡。

抓取贵重物品时会自动随机化其价格,并显示提示(需开启详细日志)。

多人游戏
主机安装并配置模组,其配置会自动同步给所有客户端。

客户端无需安装模组(但安装后也可获得配置同步)。

所有玩家独立计算价格,结果一致(无需网络传输价格值)。

❓ 常见问题
问:为什么我的配置项不在 REPOConfig 里显示?
答:本模组使用独立的 AdvancedREPO.Config 框架,配置文件位于 BepInEx/config/RandomValuablePrice/RandomValuablePrice.cfg。

问:如何在自己的模组中使用 API?
答:在您的模组项目中添加对本模组 DLL 的引用,然后使用 RandomValueAPI 类即可。

问:v1.7.3 兼容之前的版本吗?
答:完全兼容,v1.7.3 仅做了代码优化(移除反射)并更新了依赖库,功能逻辑与 v1.7.2 完全相同。

问:这个模组支持多人游戏吗?
答:理论上支持,但由于开发环境限制,本模组未经多人环境充分测试。如果你在多人游戏中遇到问题,欢迎反馈,但无法保证完美兼容。

🙏 致谢
AdvancedREPO.Config Reloaded(基于 PotatoePet 的原版修复)

AI 辅助来自 DeepSeek