diff --git a/logic/controller/item.go b/logic/controller/item.go index 8ea499bb..6b7c4319 100644 --- a/logic/controller/item.go +++ b/logic/controller/item.go @@ -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 } diff --git a/logic/controller/login.go b/logic/controller/login.go index 7ffb9a77..3df0443b 100644 --- a/logic/controller/login.go +++ b/logic/controller/login.go @@ -14,7 +14,6 @@ import ( "blazing/logic/service/maps" "blazing/logic/service/player" "blazing/logic/service/space" - "blazing/modules/blazing/model" blservice "blazing/modules/blazing/service" "context" "time" @@ -68,12 +67,7 @@ func (h *Controller) Login(data *user.MAIN_LOGIN_IN, c gnet.Conn) (result *user. if ok { if tttL.Type == 1 { //日常任务 t.Info.TaskList[i-1] = 0 //重置每日任务 - t.Service.Task(uint32(i), func(t *model.TaskEX) bool { - t.Data = []uint32{} - return true - - }) } } diff --git a/logic/controller/task.go b/logic/controller/task.go index 130b0109..f193f291 100644 --- a/logic/controller/task.go +++ b/logic/controller/task.go @@ -20,7 +20,12 @@ func (h Controller) AcceptTask(data *task.AcceptTaskInboundInfo, c *player.Playe if c.Info.TaskList[data.TaskId-1] == 0 { 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.TaskId = data.TaskId return result, 0