cn_xc-RandomValuablePrice icon

RandomValuablePrice

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

By cn_xc

CHANGELOG

📜 更新日志

v1.7.3 (性能优化与依赖更新)

  • 优化: 移除反射机制,改用公共化字段访问 (dollarValueCurrent / dollarValueOriginal),提升运行性能。
  • 依赖: 更新为 AdvancedREPO.Config Reloaded
  • 代码: 简化价格读写逻辑,删除冗余反射代码。
  • 兼容性: 完全兼容 v1.7.2,功能逻辑不变。

v1.7.2 (文档调整)

  • 更新: 更新文档说明。
    注:仅文档更新,功能代码与 v1.7.1 完全相同。

v1.7.1 (文档调整)

  • 新增: 将抖音群链接提前至 README 靠前位置,并添加“我是代码新手”声明。
  • 文档: 优化文档结构,提高可读性。
    注:仅文档更新,功能代码与 v1.7.0 完全相同。

v1.7.0 (新增公开 API)

  • 新增: 公开 API RandomValueAPI,包含 OnItemRandomized 事件和 GetItemPrice 方法。
  • 说明: 其他模组可通过订阅事件或主动查询价格来实现扩展功能(如网络同步、视觉反馈等)。
  • 优化: 内部代码整理,原有功能完全不变。
  • 兼容性: 完全兼容 v1.6.3 的所有功能。

v1.6.3

  • 移除: 不再依赖 REPOConfig,配置同步仅通过 AdvancedREPO.Config 实现。
  • 恢复: 基于 v1.5.9 稳定版本,确保所有核心功能正常运作。
  • 优化: 简化依赖列表,降低玩家安装门槛。
  • 文档: 更新 README,说明配置方式变更。

v1.6.2 (内部测试版)

  • 移除: 移除对 REPOConfig 的依赖(未公开发布,仅内部测试)。

v1.6.1 (内部测试版)

  • 调整: 对颜色反馈代码进行优化(未公开发布,仅内部测试)。

v1.6.0 (内部测试版)

  • 新增: 价格颜色反馈功能(未公开发布,仅内部测试)。

v1.5.9

  • 修复: 修正了提示信息中倍率计算错误的问题,现在倍率会正确显示原价到新价的变化倍数。
  • 优化: 代码中传递原价给日志函数,确保计算准确。

v1.5.8

  • 修复: 将价格字段读写方式从 FieldRef 回退为传统反射,确保修改成功。
  • 增强: 在价格修改前后添加详细日志输出(需开启详细日志),便于定位问题。

v1.5.7

  • 性能优化: 尝试使用 FieldRef 代替反射读写价格字段(发现兼容性问题,v1.5.8 已回退)。
  • 代码精简: 添加辅助方法 CreateBoolConfigCreateFloatConfig,简化配置创建。
  • 可维护性: 统一注释风格,添加静态字段引用初始化。

v1.5.6

  • 调整: 将默认最小倍率从 0.8 改为 0.5,默认最大倍率从 2.5 改为 2.0,对应稳定模式。
  • 文档: 更新 README,明确“稳定模式”为默认配置。

v1.5.5

  • 增强: 在模组启动时打印当前最小/最大倍率值,便于确认配置是否正确加载。
  • 调试: 在价格计算函数中添加日志输出(仅在详细日志开启时显示)。
  • 优化: 确保配置系统正确读取文件中的值。

v1.5.4

  • 修复: 将所有布尔配置项的验证方式从 .Acceptable() 改为 .Range(false, true),解决范围验证错误。
  • 文档: 增加“为什么不能用 REPOConfig 修改”的详细说明。

v1.5.3

  • 修复: 为所有布尔配置项添加 .Acceptable(new bool[] { true, false }) 调用,尝试解决范围验证错误。

v1.5.2

  • 更新: 更新文档说明。

v1.5.1

  • 修复: 在 CreateConfigEntries 中为每个配置项添加 .File("RandomValuablePrice.cfg") 调用,解决空引用异常。
  • 完善: 确保所有配置项使用同一个配置文件。

v1.5.0

  • 修复: 移除了不可访问的 Sync.ApplyLocal() 调用,解决编译错误。
  • 完善: 确保配置同步机制正常工作,所有配置项由 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.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

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