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 已回退)。 - 代码精简: 添加辅助方法
CreateBoolConfig和CreateFloatConfig,简化配置创建。 - 可维护性: 统一注释风格,添加静态字段引用初始化。
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.All和RpcTarget.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
- 初始版本发布: 实现抓取时随机化贵重物品重量和价格的核心功能。