feat(item): 实现批量购买物品功能并优化物品添加逻辑

新增 BuyMItem 方法支持批量购买多个物品,并在 Controller 中完善错误处理流程。
修改 ItemAdd 方法以返回添加结果,增强对物品数量限制和异常情况的控制。
调整任务完成时的物品发放逻辑,确保只有成功添加的物品才会被返回给客户端。
修复新手任务中初级体力药剂的数量从 3 改为 5。
将 defer 调用提前执行以避免潜在的数据不一致问题。
```
This commit is contained in:
2025-10-25 15:06:05 +08:00
parent ade9003a11
commit 4306e2db53
5 changed files with 100 additions and 28 deletions

View File

@@ -104,7 +104,7 @@ func (h Controller) Complete_Task(data *task.CompleteTaskInboundInfo, c *player.
// out_id=1的奖励物品
result.ItemList = append(result.ItemList,
task.ItemInfo{ItemId: 300001, ItemCount: 5}, // 普通胶囊x5
task.ItemInfo{ItemId: 300011, ItemCount: 3}, // 初级体力药剂x3
task.ItemInfo{ItemId: 300011, ItemCount: 5}, // 初级体力药剂x3
)
// 新手任务4
@@ -548,7 +548,18 @@ func (h Controller) Complete_Task(data *task.CompleteTaskInboundInfo, c *player.
for _, v := range result.ItemList {
ttt = append(ttt, model.SingleItemInfo{ItemId: v.ItemId, ItemCnt: v.ItemCount})
}
c.ItemAdd(ttt...)
r := c.ItemAdd(ttt...)
tempItemList := make([]task.ItemInfo, 0)
for _, v := range result.ItemList {
for _, v1 := range r {
if v1.ItemId == v.ItemId {
tempItemList = append(tempItemList, task.ItemInfo{ItemId: v.ItemId, ItemCount: v.ItemCount})
}
}
}
result.ItemList = tempItemList //临时变量为了防止报错的时候返回数据没问题
return result, 0
}