fix(item): 添加购买物品时的金币检查并调整对话奖励逻辑

This commit is contained in:
1
2025-10-23 04:20:10 +00:00
parent 9739598df2
commit a71d7ee9ad
3 changed files with 27 additions and 24 deletions

View File

@@ -47,15 +47,18 @@ func (h Controller) PlayerExp(data *item.ExpTotalRemainInboundInfo, c *player.Pl
func (h Controller) BuyItem(data *item.BuyInboundInfo, c *player.Player) (result *item.BuyOutboundInfo, err errorcode.ErrorCode) {
tt, ok := xmlres.ItemsMAP[int(data.ItemId)]
if ok {
c.Info.Coins -= data.Count * uint32(tt.Price)
if (data.Count * uint32(tt.Price)) <= c.Info.Coins {
c.Info.Coins -= data.Count * uint32(tt.Price)
c.ItemAdd(model.SingleItemInfo{ItemId: data.ItemId, ItemCnt: data.Count})
return &item.BuyOutboundInfo{
ItemId: data.ItemId,
Level: 1,
Count: data.Count,
Coins: c.Info.Coins,
}, 0
}
c.ItemAdd(model.SingleItemInfo{ItemId: data.ItemId, ItemCnt: data.Count})
return &item.BuyOutboundInfo{
ItemId: data.ItemId,
Level: 1,
Count: data.Count,
Coins: c.Info.Coins,
}, 0
}
return &item.BuyOutboundInfo{
@@ -103,14 +106,6 @@ func (h Controller) TalkCate(data *item.TalkCateInboundInfo, c *player.Player) (
for _, te := range xmlres.TalkConfig.Energies {
if te.MapID == uint64(c.Info.MapID) && te.Type == uint64(data.ID) { //
c.Service.Talk(func(t map[uint32]uint32) bool {
_, ok := t[data.ID]
if ok {
t[data.ID] += 1
}
return true
})
_, ok := talkcacche[te.Name]
if !ok {
for _, v := range xmlres.ItemsMAP {
@@ -126,8 +121,17 @@ func (h Controller) TalkCate(data *item.TalkCateInboundInfo, c *player.Player) (
// 2. 生成 1-10 的随机数rand.Intn(10) → 0-9+1 后范围变为 1-10
randomNum := rand.Intn(10) + 1
result.OutList = append(result.OutList, item.CateInfo{ID: uint32(talkcacche[te.Name]), Count: uint32(randomNum)})
c.ItemAdd(model.SingleItemInfo{ItemId: uint32(talkcacche[te.Name]), ItemCnt: uint32(randomNum)})
c.Service.Talk(func(t map[uint32]uint32) bool {
_, ok := t[data.ID]
if ok {
t[data.ID] += 1
result.OutList = append(result.OutList, item.CateInfo{ID: uint32(talkcacche[te.Name]), Count: uint32(randomNum)})
c.ItemAdd(model.SingleItemInfo{ItemId: uint32(talkcacche[te.Name]), ItemCnt: uint32(randomNum)})
}
return true
})
break
}