R.E.P.O.
You are viewing a potentially older version of this package. View Latest Version
Install

Details

Date Uploaded
5 months ago
Downloads
8.1K
Size
121KB
Dependency string
cn_xc-RandomValueMod-1.8.0

📄 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 原生管理。

📥 安装方法

自动安装(推荐)

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

手动安装

  1. 安装 BepInEx 5(版本 5.4.2100 或更高)。
  2. 将本模组的 RandomValueMod.dll 放入 BepInEx/plugins/ 文件夹。
  3. (可选但推荐)安装 REPOConfig,以便在游戏中直接修改配置。
  4. 启动游戏,配置会自动生成。

⚙️ 配置说明

启动一次游戏后,配置文件位于:
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);
Thunderstore development is made possible with ads. Please consider making an exception to your adblock.