diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index 52011006..108332f7 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -763,7 +763,7 @@ func (ad *GameLogic) RegisterNetWorkFunc() { RegisterMsgProcessFunc("ReqFastProduceReward", ReqFastProduceReward) // 连击快手奖励 RegisterMsgProcessFunc("ReqFastProduceInfo", ReqFastProduceInfo) // 请求连击快手数据 RegisterMsgProcessFunc("ReqLimitSenceReward", ReqLimitSenceReward) // 获取场景转盘奖励 - RegisterMsgProcessFunc("ReqSelectLimitEvent", ReqSelectLimitEvent) //领取限时事件进度奖励 + RegisterMsgProcessFunc("ReqSelectLimitEvent", ReqSelectLimitEvent) //领取Bouns限时事件进度奖励 RegisterMsgProcessFunc("ReqGetGoldCard", ReqGetGoldCard) //请求金卡交换信息 RegisterMsgProcessFunc("ReqLimitEventLuckyCat", ReqLimitEventLuckyCat) //幸运猫获取奖励 RegisterMsgProcessFunc("ReqCatTrickReward", ReqCatTrickReward) //小猫戏法获取奖励 diff --git a/src/server/game/PlayerChessMod.go b/src/server/game/PlayerChessMod.go index 0bc52737..11a4eb6a 100644 --- a/src/server/game/PlayerChessMod.go +++ b/src/server/game/PlayerChessMod.go @@ -57,8 +57,9 @@ func (p *PlayerChessData) ResChessColorData(player *Player) { func (p *PlayerChessData) UpdatePlayerChessData(player *Player, buf []byte) error { update := &msg.UpdatePlayerChessData{} proto.Unmarshal(buf, update) - err := p.HandleChess(player, update.MChessHandle) LastMap := player.PlayMod.getChessMod().ChessMap + AddChessList, AddNewEmit, err := p.HandleChess(player, update.MChessHandle) + if err != nil { res := &msg.ResUpdatePlayerChessData{ Code: msg.RES_CODE_FAIL, @@ -98,7 +99,14 @@ func (p *PlayerChessData) UpdatePlayerChessData(player *Player, buf []byte) erro }) return fmt.Errorf("棋子数据不一致") } - player.PlayMod.getChessMod().ChessMap = update.MChessData + ChessMod := player.PlayMod.getChessMod() + BaseMod := player.PlayMod.getBaseMod() + OrderMod := player.PlayMod.getOrderMod() + ChessMod.ChessMap = update.MChessData + Update := OrderMod.CreateExtraOrder(AddChessList, AddNewEmit, ChessMod.GetUnlockChessList(), BaseMod.GetEnergyMul(), BaseMod.GetLevel()) + if Update { + player.PushClientRes(OrderMod.BackData()) + } return nil } @@ -142,7 +150,7 @@ func (p *PlayerChessData) checkChessEqual(player *Player) bool { } // 棋子操作 -func (p *PlayerChessData) HandleChess(player *Player, handle_list []*msg.ChessHandle) error { +func (p *PlayerChessData) HandleChess(player *Player, handle_list []*msg.ChessHandle) ([]int, []int, error) { sort.Slice(handle_list, func(i, j int) bool { return handle_list[i].Id < handle_list[j].Id }) @@ -164,7 +172,7 @@ func (p *PlayerChessData) HandleChess(player *Player, handle_list []*msg.ChessHa case msg.HANDLE_TYPE_ADD: //增加棋子 err := ChessMod.AddChess(ChessId) if err != nil { - return err + return nil, nil, err } Type := mergeDataCfg.GetTypeById(ChessId) AddChessList = append(AddChessList, ChessId) @@ -184,7 +192,7 @@ func (p *PlayerChessData) HandleChess(player *Player, handle_list []*msg.ChessHa case msg.HANDLE_TYPE_COMPOSE: //合成棋子 NewChessId, err := ChessMod.ComposeChess(ChessId) if err != nil { - return err + return nil, nil, err } HandbookMod := player.PlayMod.getHandbookMod() // 添加图鉴 b := HandbookMod.SetHandbook(NewChessId) @@ -203,8 +211,9 @@ func (p *PlayerChessData) HandleChess(player *Player, handle_list []*msg.ChessHa case msg.HANDLE_TYPE_BUY: //购买棋子 loseGold, err := ChessMod.BuyChess(ChessId) if err != nil { - return err + return nil, nil, err } + AddChessList = append(AddChessList, ChessId) buyChess += loseGold itemList = append(itemList, &item.Item{Id: item.ITEM_STAR_ID, Num: int(-loseGold)}) case msg.HANDLE_TYPE_SELL: //出售棋子 @@ -222,7 +231,7 @@ func (p *PlayerChessData) HandleChess(player *Player, handle_list []*msg.ChessHa LimitPush = true } if err != nil { - return err + return nil, nil, err } player.TeLog("sell_item", map[string]interface{}{ "merge_item_id": ChessId, @@ -243,7 +252,7 @@ func (p *PlayerChessData) HandleChess(player *Player, handle_list []*msg.ChessHa } err := player.HandleItem(itemList, msg.ITEM_POP_LABEL_HandleChess.String()) if err != nil { - return err + return nil, nil, err } NewEmitList := ChessMod.GetEmitList() EmitProductList := make([]string, 0) @@ -261,10 +270,7 @@ func (p *PlayerChessData) HandleChess(player *Player, handle_list []*msg.ChessHa // 发射器系列变化,重新洗牌 OrderMod.ResetChessPool() } - Update := OrderMod.CreateExtraOrder(AddChessList, AddNewEmit, ChessMod.GetUnlockChessList(), EnergyPow, BaseMod.GetLevel()) - if Update { - player.PushClientRes(OrderMod.BackData()) - } + // 限时事件 小猫戏法 LimitedTimeEventMod := player.PlayMod.getLimitedTimeEventMod() if LimitedTimeEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_CAT_TRICK) { @@ -278,7 +284,7 @@ func (p *PlayerChessData) HandleChess(player *Player, handle_list []*msg.ChessHa EmitRetireTrigger1(player) player.PushClientRes(ChessMod.BackData()) player.PlayMod.save() - return nil + return AddChessList, AddNewEmit, nil } func (p *PlayerChessData) ClearData() bool {