cn_xc-RandomValuablePrice icon

RandomValuablePrice

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

By cn_xc
Last updated 7 months ago
Total downloads 28
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 Manager 或 r2modman。
  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