cn_xc-RandomValueMod icon

RandomValueMod

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

By cn_xc

CHANGELOG

📜 更新日志

v1.5.6 (最新版本 - 调整默认倍率为稳定模式)

  • 调整: 将默认最小倍率从 0.8 改为 0.5,默认最大倍率从 2.5 改为 2.0,对应稳定模式(平衡体验)
  • 文档: 更新 README,在配置示例中明确“稳定模式”为默认配置
  • 保留: 延续 v1.5.5 的调试日志功能,便于排查问题
  • 版本: 提升至 v1.5.6,推荐所有用户更新以获得更平衡的默认体验

v1.5.5

  • 增强: 在模组启动时打印当前最小/最大倍率值,便于确认配置是否正确加载
  • 调试: 在 GetDeterministicRandomPrice 中添加日志输出(仅在 EnableVerboseLogging 为 true 时),显示 minmax 和实际乘数
  • 优化: 确保配置系统正确读取文件中的值,避免倍率默认为 0 导致随机化失效

v1.5.4

  • 修复: 将所有布尔配置项的验证方式从 .Acceptable() 改为 .Range(false, true),确保 minValue < maxValue,彻底解决 ArgumentException: minValue has to be lower than maxValue 错误
  • 文档: 在 README 中增加“为什么不能用 REPOConfig 修改”的详细说明,并指导用户如何手动编辑配置文件

v1.5.3

  • 修复: 为所有布尔配置项添加 .Acceptable(new bool[] { true, false }) 调用,尝试解决范围验证错误(未完全解决)
  • 版本: 保留记录

v1.5.2

  • 更新: 更新文档说明

v1.5.1

  • 修复: 在 CreateConfigEntries 中为每个配置项添加 .File("RandomValuablePrice.cfg") 调用,解决 ConfigBuilder.Build() 中因 _Filenull 引发的空引用异常
  • 完善: 确保所有配置项使用同一个配置文件,配置系统正常工作

v1.5.0

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

v1.4.9

  • 重大重构: 将配置系统迁移至 AdvancedREPO.Config,实现主机强制统一配置
  • 移除: 所有手动编写的价格同步网络代码(RPC、超时回退、网络组件等)
  • 新增: 依赖 AdvancedREPO.Config,配置同步由该框架自动处理
  • 优化: 基于“确定性随机”算法,客户端独立计算相同价格,无需网络传输,零延迟
  • 改进: 配置项现在支持同步,主机修改后自动广播给所有客户端
  • 文档: 更新README,明确新版本特性与安装要求

v1.4.8

  • 增强: 网络同步组件现在在物品生成时立即添加,而非抓取时,确保PhotonView及时注册
  • 新增: 客户端网络请求超时机制,默认2秒后自动回退到本地计算的价格,避免卡死
  • 新增: 配置项 网络超时,可调节等待服务器响应的时间 (1-5秒)
  • 改进: 主机在广播后立即应用价格,避免主机自身延迟
  • 优化: 简化RPC调用,统一使用 RpcTarget.AllRpcTarget.Others 逻辑
  • 修复: 潜在的主机重复应用问题
  • 调试: 增加更详细的网络状态日志,便于排查同步问题

v1.4.7

  • 更新: 更新文档说明

v1.4.6

  • 修复: 修复了Photon RPC参数错误,解决多人游戏同步问题
  • 改进: 将RPC方法参数改为符合Photon规范 (PhotonMessageInfo作为最后一个参数)
  • 优化: 更新所有RPC调用,移除不再需要的请求者ID参数
  • 兼容性: 确保多人游戏网络同步功能正常工作

v1.4.5

  • 文档更新: 更新README,添加指向旧版(v1.3.9,含重量随机化)的链接
  • 状态声明: 明确声明旧版软件包已被标记为已弃用 (deprecated)
  • 版本维护: 确保版本历史记录的连续性

v1.4.4

  • 多人游戏优化: 改进了网络同步机制,添加客户端请求跟踪和重试机制
  • 新增功能: 客户端随机化请求记录和清理,避免重复请求
  • 网络稳定性: 添加RPC重试机制,提高多人游戏同步成功率
  • 调试增强: 更详细的网络调试日志,便于排查多人游戏问题
  • 性能优化: 网络请求清理机制,定期清理过期请求避免内存泄漏
  • 兼容性: 保持与之前版本的兼容性,单人游戏功能不变

v1.4.3

  • 重大优化: 大幅减少Harmony补丁数量,只补丁关键的抓取相关方法(GrabStarted、GrabEnded、GrabLink)
  • 性能修复: 解决了游戏卡顿问题,之前版本因补丁过多方法导致性能下降
  • 日志优化: 减少了不必要的调试日志输出,避免日志刷屏
  • 代码清理: 移除冗余代码,优化性能

v1.4.2

  • 功能重构: 将随机化时机从物品生成时改为抓取时,提供真正的"随机化"体验
  • 新增功能: 抓取时触发价格随机化,增加游戏惊喜感
  • 改进机制: 补丁多个抓取相关方法,确保全面覆盖
  • 添加提示: 在日志中显示随机化提示信息
  • 性能问题: 存在日志刷屏和游戏卡顿问题(已在v1.4.3修复)

v1.4.1

  • 修复: 添加详细调试日志,帮助排查抓取物品无反应的问题
  • 改进: 优化日志输出格式,增加关键步骤的调试信息

v1.4.0

  • 重构: 移除所有重量随机化相关代码,专注于价格随机化
  • 说明: 重量修改涉及复杂的物理引擎和预设系统,容易引发兼容性问题。为了模组的长期稳定性和维护性,我们决定删除重量功能,专注于价格随机化这一核心功能
  • 优化: 简化代码结构,减少运行时错误风险
  • 更新: 修复所有编译错误,提升代码质量

v1.3.13

  • 修复: 静态类中的 Logger 调用错误,解决了所有 CS1061 和 CS0026 编译错误
  • 改进: 添加静态 Logger 引用,确保在静态上下文中也能正确记录日志
  • 优化: 统一了所有静态方法中的日志调用方式

v1.3.12

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

v1.3.11

  • 改进: 网络同步组件的双向网络同步机制
  • 优化: 客户端主动请求随机化的时机和逻辑

v1.3.10

  • 修复: 主机与客户端单向同步问题,实现双向网络同步
  • 改进: 配置系统初始化逻辑和错误处理
  • 新增: 更详细的初始化状态日志输出

v1.3.9

  • 更新: 更新文档说明

v1.3.8

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

v1.3.7

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

v1.3.6

  • 重构: 移除所有重量和价格的默认值设置,完全尊重游戏原始数据
  • 改进: 重量获取逻辑,只在游戏本身设置了重量值时才进行随机化
  • 优化: 物品跟踪机制,减少重复随机化的可能性
  • 新增: 当物品重量或价格为0时的跳过逻辑和警告日志

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

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