This commit is contained in:
hahwu 2025-09-09 16:55:04 +08:00
parent 30e11d1b50
commit 416a1067da
2 changed files with 20 additions and 14 deletions

View File

@ -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) //小猫戏法获取奖励

View File

@ -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 {