问答 卡牌游戏,在背包格子快满的情况下,进行武将重生,提示背包空间不足,但是依然返还了所有资源,包括了武将养成所消耗的资源,和武将身上穿戴的东西,但是武将并没有被重生,可能是什么原因

xiaotang · 2023年03月16日 · 最后由 xiaotang 回复于 2023年03月17日 · 8445 次阅读

复现步骤:将背包的格子填满,然后再去给武将重生,如果提示背包空间不足则去回收背包里面的道具,直到可以重生为止,会出现武将不被重生掉,但是能获取到重生返还的资源和武将身上穿戴的东西

最佳回复
仅楼主可见
共收到 16 条回复 时间 点赞

看不懂问题

可能是服务端代码逻辑执行顺序有问题,估计是先执行了返还逻辑,再去走扣除武将的逻辑。

你都能稳定复现了,找你们开发看下日志不就知道了。我们也不知道你这个流程的机制呀。

仅楼主可见

后端逻辑处理顺序的问题,先返还后删武将,然后就是 BUG,没有判断背包满的情况就直接重置了

听起来像是 代码逻辑和配置 问题,没有判断满背包的重生之后的资源不返还,默认进行了返还资源,或者是表格配置问题,item 表的一些道具的参数没有配置一致,所以返还了部分道具。

这个问题感觉直接看源码会来得更快,代码逻辑出错了

你这个应该是业务上的逻辑问题,可能是计算逻辑的问题,也可能是边界值没处理好导致的。

典型的沉浸在提问者世界的提问者。。。

重生返还的部分道具是背包外还是背包内的道具呢,背包内是合理的,背包外的道具就是不合理的,那么看服务端返回的数据是不是对的呢,返回不对就分析数据库是不是对的呢,如果不是服务端的问题,那就是 ui 显示问题,即客户端问题呢

什么问题照成的不得是开发看代码分析吗,测试不知道什么原因造成的写好复现步骤就行

进而可以建议, 背包容量不足时将获得物品发到邮件里, 等玩家腾出空间后,再去领邮件, 不少游戏都是这样处理了

明显是 bug 啊,不符合转生条件,事务就应该终止并回滚到初始状态了

xiaotang · #4 · 2023年03月17日 Author
仅楼主可见

后面发现问题描述错了,是返还了所有道具,包括了武将在养成过程中消耗的资源和武将身上穿戴的装备那些,代码在判断背包空间是否充足的过程中,只考虑了武将养成返还的资源,没考虑武将重生后,武将身上穿戴的东西也会回到背包中,而且重生代码的执行顺序是先返还道具,再脱装备,最后修改武将数据,所以脱装备的时候出现背包空间不足,后面也没能成功修改到武将数据

Ouroboros 回复

下次注意!

xiaotang 关闭了讨论 03月20日 15:41
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册