fix(item): 添加购买物品时的金币检查并调整对话奖励逻辑
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user