搜索

0.27.10 技能书与敏捷速度

技能书持久预扣、串行升级和异常退款,以及敏捷与速度技能的统一最终速度。

修复内容

技能书升级稳定性

  • 右键宠物后先为本次技能书写入 pending-skillbook-refunds.yml 持久预扣记录,台账落盘失败时不会扣书或提交升级。
  • 同一玩家的召唤、回收、成长和技能升级共用串行操作队列,连续右键会逐本按顺序结算,不再并发读取相同技能等级。
  • MySQL 会在事务内锁定宠物记录和技能记录,群组服上同时操作同一只宠物时也不会丢失等级;SQLite 与 MySQL 都会明确拒绝不存在宠物的技能写入。
  • 升级失败、技能已满级或宠物记录不存在时退还本次预扣的技能书。玩家在结算前掉线时保留退款,重新加入后发放;服务器中途重启也会从台账继续退款。
  • 数据库确认成功后才消费预扣记录,并使用本次数据库重读得到的等级发送成功提示。

敏捷速度

  • 修复成长属性刷新后只写回基础敏捷速度、覆盖速度技能加成的问题。
  • 宠物实体的 MOVEMENT_SPEED、飞行实体的 FLYING_SPEED、跟随导航和战斗追击统一使用基础速度、敏捷与速度技能共同计算的最终值。
  • 宠物信息 GUI 的 <speed> 与 PlaceholderAPI 的 %lipet_active_speed% 也读取同一最终值。
  • 速度文本改为最多三位小数。默认 movement-speed: 0.25、speed-per-agility: 0.005 时,敏捷 0 显示 0.25,敏捷 1 显示 0.255;不再都四舍五入成 0.3。

配置与升级

本次没有新增必须配置的节点,也不会覆盖已有的 skills.yml、宠物类型速度、技能数值或 GUI 文本。请停服替换 Jar 后完整重启一次;/lipet reload 只能重读配置,不能把旧 Jar 的业务逻辑变成新版本。

pending-skillbook-refunds.yml 是插件自动维护的内部退款台账,不需要服主手动创建或修改。确认成功的升级会自动删除对应记录;文件为空属于正常情况。

验证

  • 默认兼容构建与 Paper 26.2 Profile 各执行 315 项自动测试,失败、错误和跳过均为 0。
  • 同一最终 Jar 已在 Paper 26.1.2 Build 70 与 Paper 26.2 Build 111 完成真实启动和安全关闭。两套隔离服均使用真实 SQLite 连续提交 5 次迅捷技能升级,最终等级为 5;第 6 次稳定返回满级且数据库等级仍为 5。
  • 两套隔离服均生成真实狼实体并读取 MOVEMENT_SPEED:5 级迅捷时为 0.35,再增加 1 点敏捷后为 0.355,确认成长刷新没有覆盖技能速度加成。
  • 最终成品:LiPet-0.27.10-SNAPSHOT.jar;大小:869142 字节;SHA-256:9C8D59BE8EFE3A2BC681C5DE9CC1AEBAEB19BFC0D697665CFA46F24558DA411E。Jar 只包含 LiPet 业务代码,外部依赖未打入成品。
  • 当前环境没有真人客户端,GUI 的最终视觉、实际跟随速度体感和真实 Folia / MySQL 服务器仍需在目标服验收。