QShop Confluence Currency Bridge 1.1.2 (forge)
Curse Maven Snippet
What's new
Forge 1.20.1
- 修复(真因,GameTest 已复现):“钱币没丢,却又出现 9999 个铂金币”。QShop 的死亡货币保留
会遍历钱包里每一个 key 并按保留系数缩放(
CurrencyService.set(..., SOURCE_DEATH)),1.1.0 及 以前的桥接只跳过绑定的显示 key"coins",没有跳过自己的内部账本 key (…bridge_v2.coins.cash= 钱币镜像、.version、.piggy)。于是死亡把镜像和版本号一起缩放了: 下一次读取发现“背包里的钱比镜像多”,把差额当成刚捡到的现金再入账一次(总额常常正好翻倍), 随后rebalanceCash把这笔虚增重新生成成真实钱币放回背包 —— 掉落的钱币和新生成的钱币同时存在, 商店余额当然不降。1.1.1 已经堵住这条路径(混入会跳过内部 key),但它不能自愈已经被写坏的存档, 所以升级后现象照旧。 - 修复:桥接账本版本升到 3。读取到旧版本写过的钱包时,把现金/存钱罐镜像按玩家实际携带的钱币
重新锚定,不再重复入账,QShop 余额保持不变(测试
ledgerVersionReanchorKeepsBalance)。 - 修复:死亡对账之前先比对“死亡瞬间实测的携带钱币”与镜像,不一致就按实测值修正再对账,因此掉落一定
会被结算进余额(测试
staleMirrorDoesNotDuplicateDroppedCoins:余额归零、重生后不再拿到同样的钱币)。 - 修复:
rebalanceCash不再给处于死亡/倒地状态的玩家发放钱币;尸体不该接收新生成的钱币。 - 修复:死亡快照不再执行“会对账的读取”,否则诊断代码自己会先制造出它要检测的那笔虚增。
- 测试:GameTest 由 9 项增至 12 项(上述两项回归全部通过)。
- 说明:复活后储备会不会变回钱币物品? 会。玩家恢复 alive 后,桥接会把余额里“还能装进钱币槽”的部分
重新生成成钱币物品,上限就是可用钱币槽容量;余额里剩下的仍然留在 QShop 商店,总额不变。
实测(1.0e15 铜余额,钱币槽上限 399,960,000,000 铜):
死亡掉落 399,960,000,000 铜 → 倒地复活后又回填 399,960,000,000 铜,总额保持 9.9960004E14 不变
(测试
reserveRefillsCoinSlotsAfterRevive)。真正的重生(respawn)如果装钱币的 curio 掉了, 钱币槽数为 0,回填就是 0,这笔价值全部安全留在商店里,等玩家重新装上钱袋再取用。 - 说明:已经被翻倍的余额不做自动修正(桥接无法区分“重复入账”与合法储备),请用
/qshopconfluence set <玩家> <金额>校准;/qshopconfluence status的ledger:行会显示version=3.0,可用来确认服务器加载的是哪个桥接构建(1.1.1 及以前是2.0)。 - 说明:
/qshopconfluence status的ledger:行现在显示version=3.0,可用来确认服务器加载的是 哪个桥接构建(1.1.1 及以前是2.0)。
This mod has no additional files