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) {
|
func (h Controller) BuyItem(data *item.BuyInboundInfo, c *player.Player) (result *item.BuyOutboundInfo, err errorcode.ErrorCode) {
|
||||||
tt, ok := xmlres.ItemsMAP[int(data.ItemId)]
|
tt, ok := xmlres.ItemsMAP[int(data.ItemId)]
|
||||||
if ok {
|
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{
|
return &item.BuyOutboundInfo{
|
||||||
@@ -103,14 +106,6 @@ func (h Controller) TalkCate(data *item.TalkCateInboundInfo, c *player.Player) (
|
|||||||
for _, te := range xmlres.TalkConfig.Energies {
|
for _, te := range xmlres.TalkConfig.Energies {
|
||||||
if te.MapID == uint64(c.Info.MapID) && te.Type == uint64(data.ID) { //
|
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]
|
_, ok := talkcacche[te.Name]
|
||||||
if !ok {
|
if !ok {
|
||||||
for _, v := range xmlres.ItemsMAP {
|
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
|
// 2. 生成 1-10 的随机数:rand.Intn(10) → 0-9,+1 后范围变为 1-10
|
||||||
randomNum := rand.Intn(10) + 1
|
randomNum := rand.Intn(10) + 1
|
||||||
result.OutList = append(result.OutList, item.CateInfo{ID: uint32(talkcacche[te.Name]), Count: uint32(randomNum)})
|
c.Service.Talk(func(t map[uint32]uint32) bool {
|
||||||
c.ItemAdd(model.SingleItemInfo{ItemId: uint32(talkcacche[te.Name]), ItemCnt: uint32(randomNum)})
|
_, 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
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ import (
|
|||||||
"blazing/logic/service/maps"
|
"blazing/logic/service/maps"
|
||||||
"blazing/logic/service/player"
|
"blazing/logic/service/player"
|
||||||
"blazing/logic/service/space"
|
"blazing/logic/service/space"
|
||||||
"blazing/modules/blazing/model"
|
|
||||||
blservice "blazing/modules/blazing/service"
|
blservice "blazing/modules/blazing/service"
|
||||||
"context"
|
"context"
|
||||||
"time"
|
"time"
|
||||||
@@ -68,12 +67,7 @@ func (h *Controller) Login(data *user.MAIN_LOGIN_IN, c gnet.Conn) (result *user.
|
|||||||
if ok {
|
if ok {
|
||||||
if tttL.Type == 1 { //日常任务
|
if tttL.Type == 1 { //日常任务
|
||||||
t.Info.TaskList[i-1] = 0 //重置每日任务
|
t.Info.TaskList[i-1] = 0 //重置每日任务
|
||||||
t.Service.Task(uint32(i), func(t *model.TaskEX) bool {
|
|
||||||
t.Data = []uint32{}
|
|
||||||
|
|
||||||
return true
|
|
||||||
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,12 @@ func (h Controller) AcceptTask(data *task.AcceptTaskInboundInfo, c *player.Playe
|
|||||||
if c.Info.TaskList[data.TaskId-1] == 0 {
|
if c.Info.TaskList[data.TaskId-1] == 0 {
|
||||||
c.Info.TaskList[data.TaskId-1] = 1
|
c.Info.TaskList[data.TaskId-1] = 1
|
||||||
}
|
}
|
||||||
|
c.Service.Task(uint32(data.TaskId), func(t *model.TaskEX) bool {
|
||||||
|
t.Data = []uint32{}
|
||||||
|
|
||||||
|
return true
|
||||||
|
|
||||||
|
})
|
||||||
result = &task.AcceptTaskOutboundInfo{}
|
result = &task.AcceptTaskOutboundInfo{}
|
||||||
result.TaskId = data.TaskId
|
result.TaskId = data.TaskId
|
||||||
return result, 0
|
return result, 0
|
||||||
|
|||||||
Reference in New Issue
Block a user