TOS 开发周记 24:背包槽位由服务端说了算

本文根据 2026-03-23 至 2026-03-29 的 Git 提交补记。

交换背包,不只交换画面

这周的主题很单一:让背包槽位真正成为持久数据。后端给用户物品加入槽位索引,并新增 /bag/swap 接口。交换过程由服务端校验槽位、在事务中更新记录,再返回按槽位排列的最新背包内容;掉落物进入背包时也会寻找可用槽位,而不是只追加一条没有位置的数据。

客户端相应地把固定的 36 个格子映射到 slotIndex。玩家先选中来源格,再选择目标格,客户端把两个索引提交给后端;成功后直接采用响应中的物品列表,失败时则重新拉取背包。这意味着画面不再先自行交换、稍后才期待数据库跟上,最终状态以服务端返回为准。

迁移中的小修正

周初两个 tmp 提交分别调整了怪物掉落模型和详情地图中的掉落显示,为后面的槽位持久化清理了数据形态。提交不多,但这一周把一个容易停留在 UI 层的小功能,接成了完整的客户端—接口—数据库流程。

提交记录

日期 仓库 提交 原始说明
2026-03-23 后端 6735a4c tmp
2026-03-23 客户端 bff7645 tmp
2026-03-26 后端 400b6e0 feat: persist bag slot swaps with server authority
2026-03-26 客户端 2b26bec feat: apply server-authoritative bag swap updates

TOS 开发周记 24:背包槽位由服务端说了算

https://blog.util.online/2026/03/29/tos-weekly-history/2026-03-23-tos-weekly-24/

作者

amano

发布于

2026-03-29

更新于

2026-08-04

许可协议

评论