From a245a5e33d177ab9eb34868c7d113154651d8fc5 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 17 Sep 2025 16:55:11 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E9=9B=B6=E4=BB=B6=E8=AE=A2=E5=8D=95bug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/PlayerFunc.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/game/PlayerFunc.go b/src/server/game/PlayerFunc.go index 1901b32d..63f2bbcc 100644 --- a/src/server/game/PlayerFunc.go +++ b/src/server/game/PlayerFunc.go @@ -1052,7 +1052,7 @@ func (player *Player) FormatOrderReward() { } if Trigger && Trigger2 { for k, v := range OrderMod.GetOrderList() { - if v.Type != order.Common_type { + if v.Type != order.Common_type && v.Type != order.Pet_type { continue } if v.Diff == order.DIFF_LOW { From dec81f8877521c0212fcccf5632bf3747e15144d Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 19 Sep 2025 10:53:58 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=89=93=E7=82=B9=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/conf/mergeData/MergeDataCfg.go | 2 +- src/server/game/Player.go | 1 + src/server/game/PlayerBaseMod.go | 2 +- src/server/game/PlayerChessMod.go | 1 + src/server/game/PlayerLog.go | 6 +- src/server/game/RegisterNetworkFunc.go | 68 +++++++++++++------ src/server/game/UnitTest.go | 2 +- src/server/game/mod/decorate/Decorate.go | 4 +- .../mod/friendTreasure.go/friendTreasure.go | 28 +++++--- 9 files changed, 75 insertions(+), 39 deletions(-) diff --git a/src/server/conf/mergeData/MergeDataCfg.go b/src/server/conf/mergeData/MergeDataCfg.go index c8fff722..dc33ca16 100644 --- a/src/server/conf/mergeData/MergeDataCfg.go +++ b/src/server/conf/mergeData/MergeDataCfg.go @@ -110,7 +110,7 @@ func GetNameById(Id int) string { log.Debug("MergeDataCfg GetOne Id:%v not found", Id) return "" } - return gamedata.GetStringValue(data, "Icon") + return gamedata.GetStringValue(data, "Title") } // 根据等级和颜色获取棋子id diff --git a/src/server/game/Player.go b/src/server/game/Player.go index e13edcba..fb1653ff 100644 --- a/src/server/game/Player.go +++ b/src/server/game/Player.go @@ -796,6 +796,7 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error { PlayroomBackData(p) } } + p.PetItemUseLog(itemList) CardMod := p.PlayMod.getCardMod() p.PushClientRes(CardMod.NotifyCard()) p.PushClientRes(ItemMod.NotifyItem()) diff --git a/src/server/game/PlayerBaseMod.go b/src/server/game/PlayerBaseMod.go index d43c9625..df922074 100644 --- a/src/server/game/PlayerBaseMod.go +++ b/src/server/game/PlayerBaseMod.go @@ -265,7 +265,7 @@ func (p *PlayerBaseData) ReqUnBindFacebook(player *Player, buf []byte) { G_getGameLogic().PackResInfo(agent, "ResUnBindFacebook", data) p.SaveDataFromDB("") player.TeLog("platform_disconnect", map[string]interface{}{ - "platform_type": "facebook", + "platform_type": "Facebook", "platform_id": req.BindAccountId, }) } diff --git a/src/server/game/PlayerChessMod.go b/src/server/game/PlayerChessMod.go index 11a4eb6a..474024e8 100644 --- a/src/server/game/PlayerChessMod.go +++ b/src/server/game/PlayerChessMod.go @@ -235,6 +235,7 @@ func (p *PlayerChessData) HandleChess(player *Player, handle_list []*msg.ChessHa } player.TeLog("sell_item", map[string]interface{}{ "merge_item_id": ChessId, + "product_name": mergeDataCfg.GetNameById(ChessId), "get_star_num": items[0].Num, }) itemList = item.Merge(itemList, items) diff --git a/src/server/game/PlayerLog.go b/src/server/game/PlayerLog.go index f666249e..288a6723 100644 --- a/src/server/game/PlayerLog.go +++ b/src/server/game/PlayerLog.go @@ -27,7 +27,7 @@ func (p *Player) PetItemGetLog(Item []*item.Item, Cost []*item.Item, Label strin CostNum := 0 if len(Cost) > 0 { switch Cost[0].Id { - case item.ITEM_TYPE_DIAMOND: + case item.ITEM_DIAMOND_ID: CostType = "diamond" case item.ITEM_STAR_ID: CostType = "star" @@ -36,7 +36,7 @@ func (p *Player) PetItemGetLog(Item []*item.Item, Cost []*item.Item, Label strin default: CostType = "unknown" } - CostNum = Cost[0].Num + CostNum = -Cost[0].Num } for _, v := range Item { Type := itemCfg.GetItemType(v.Id) @@ -61,7 +61,7 @@ func (p *Player) PetItemGetLog_(Type int, Name string, Label string, CostType st func (p *Player) PetItemUseLog(Item []*item.Item) { for _, v := range Item { Type := itemCfg.GetItemType(v.Id) - if Type == item.ITEM_TYPE_PLAYROOM_PET { + if Type == item.ITEM_TYPE_PLAYROOM_PET && v.Num < 0 { Name, _ := itemCfg.GetItemName(v.Id) Effect := itemCfg.GetItemEffect(v.Id) p.TeLog("pet_item_use", map[string]interface{}{ diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index c25d7733..bf935dad 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -325,11 +325,27 @@ func ReqRewardOrder(player *Player, buf []byte) error { // 每日任务 player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_FINISHORDER}) + order_star_reward := 0 + order_item_reward := []int{} + for _, v := range Item { + if v.Id == item.ITEM_STAR_ID { + order_star_reward += v.Num + } else { + order_item_reward = append(order_item_reward, v.Id) + } + } + preset_order_group := 0 + if OrderType != order.Preview_type && OrderType != order.Fixed_type { + preset_order_group = -1 + } player.TeLog("order_finish", map[string]interface{}{ - "order_id": int(req.OrderId), - "order_item_id": mergeList, - "order_type": OrderType, - "order_star_reward": Star, + "order_id": int(req.OrderId), + "order_item_id": mergeList, + "order_type": OrderType, + "order_star_reward": order_star_reward, + "order_item_reward": order_item_reward, + "order_star_value": Star, + "preset_order_group": preset_order_group, }) player.PetItemGetLog(Item, nil, "Order") EmitRetireTrigger2(player) @@ -403,7 +419,7 @@ func ReqDecorate(player *Player, buf []byte) error { DecorateMod := player.PlayMod.getDecorateMod() DecorateId := int(req.DecorateId) AreaId := int(req.AreaId) - CostItem, PetExp := DecorateMod.GetDecorateCostItem(AreaId, DecorateId) + CostItem, PetExp, PartItem := DecorateMod.GetDecorateCostItem(AreaId, DecorateId) err := player.HandleLoseItem(CostItem, msg.ITEM_POP_LABEL_DecorateCost.String()) // 扣除道具 if err != nil { player.SendErrClienRes(&msg.ResDecorate{ @@ -451,7 +467,8 @@ func ReqDecorate(player *Player, buf []byte) error { }) } player.TeLog("finish_deco", map[string]interface{}{ - "deco_step_id": fmt.Sprintf("%d_%d", AreaId, DecorateId), + "deco_step_id": fmt.Sprintf("%d_%d", AreaId, DecorateId), + "material_cost": PartItem, }) player.PlayMod.save() @@ -831,9 +848,9 @@ func ReqUpgradeChess(player *Player, buf []byte) error { }) return err } - player.TeLog("ReqUpgradeChess", map[string]interface{}{ - "chess_id": req.ChessId, - "new_chess": NewChess, + player.TeLog("wand_use", map[string]interface{}{ + "wand_item_id": req.ChessId, + "new_chess": NewChess, }) Handbook := player.PlayMod.getHandbookMod() Handbook.SetHandbook(NewChess) @@ -1365,8 +1382,13 @@ func ReqSetFace(player *Player, buf []byte) error { player.PushClientRes(&msg.ResSetFace{ Code: msg.RES_CODE_SUCCESS, }) + is_platform := false + if req.Face == 0 { + is_platform = true + } player.TeLog("face_set", map[string]interface{}{ - "face_id": int(req.Face), + "face_id": int(req.Face), + "is_platform": is_platform, }) player.PlayerDecoSetLog("face", int(req.Face), "") BackUserInfo(player) @@ -2454,7 +2476,7 @@ func ReqBuyChessShop(player *Player, buf []byte) error { "item_id": int(req.Id), "change_num": 1, "cost_type": "diamond", - "cost_num": LostItem[0].Num, + "cost_num": -LostItem[0].Num, }) player.PlayMod.save() player.PushClientRes(ChargeMod.BackData()) @@ -2462,7 +2484,7 @@ func ReqBuyChessShop(player *Player, buf []byte) error { Code: msg.RES_CODE_SUCCESS, }) player.TeLog("buy_product_diamond", map[string]interface{}{ - "diamond_cost": LostItem[0].Num, + "diamond_cost": -LostItem[0].Num, "product_id": int(req.Id), "product_name": mergeDataCfg.GetNameById(int(req.Id)), }) @@ -3436,7 +3458,7 @@ func ReqPlayroomSetRoom(player *Player, buf []byte) error { req := &msg.ReqPlayroomSetRoom{} proto.Unmarshal(buf, req) PlayroomMod := player.PlayMod.getPlayroomMod() - Diff, err := PlayroomMod.SetRoom(GoUtil.MapInt32ToInt(req.Playroom)) + _, err := PlayroomMod.SetRoom(GoUtil.MapInt32ToInt(req.Playroom)) if err != nil { player.SendErrClienRes(&msg.ResPlayroomSetRoom{ Code: msg.RES_CODE_FAIL, @@ -3446,7 +3468,7 @@ func ReqPlayroomSetRoom(player *Player, buf []byte) error { } player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_ROOMDEC}) player.PlayMod.save() - player.RoomDecoSetLog(Diff) + //player.RoomDecoSetLog(Diff) player.PushClientRes(&msg.ResPlayroomSetRoom{ Code: msg.RES_CODE_SUCCESS, }) @@ -3467,7 +3489,6 @@ func ReqPlayroomGame(player *Player, buf []byte) error { return fmt.Errorf("no target") } Items := player.GetPlayroomGameReward(int(req.Type), 0) - PlayroomMod.ResetGame() err := player.HandleItem(Items, msg.ITEM_POP_LABEL_PlayroomGame.String()) if err != nil { player.SendErrClienRes(&msg.ResPlayroomGame{ @@ -3498,6 +3519,7 @@ func ReqPlayroomGame(player *Player, buf []byte) error { "is_chip": false, "item_list": Items, }) + PlayroomMod.ResetGame() PlayroomBackData(player) player.PlayerDecoSetLog("emoji", int(req.EmojiId), "playroom_game") player.PushClientRes(&msg.ResPlayroomGame{ @@ -3548,12 +3570,13 @@ func ReqPlayroomSelectReward(player *Player, buf []byte) error { player.GetPetThiefReward(Target) } G_GameLogicPtr.SetUserData(Target, VAR_OP_CHIP, 1) - PlayroomMod.ResetGame() player.TeLog("finish_mini_game", map[string]interface{}{ "mini_game_type": PlayroomMod.GetGameId(), "is_chip": true, "item_list": Items, }) + PlayroomMod.ResetGame() + player.PlayerDecoSetLog("emoji", int(req.EmojiId), "playroom_select_reward") PlayroomBackData(player) player.PlayMod.save() @@ -3754,7 +3777,7 @@ func ReqPlayroomFlipReward(player *Player, buf []byte) error { }, }) player.TeLog("finish_mini_game", map[string]interface{}{ - "mini_game_type": PlayroomMod.GetGameId(), + "mini_game_type": playroom.GAME_TYPE_FILP, "is_chip": false, "item_list": Items, }) @@ -4191,9 +4214,10 @@ func ReqFriendTreasureEnd(player *Player, buf []byte) error { ) return err } - player.TeLog("friend_treasure_end", map[string]interface{}{ - "items": Items, - "num": FriendItemNum, + player.TeLog("pet_treasure_open", map[string]interface{}{ + "pet_treasure_step": FriendTreasureMod.Shift, + "pet_treasure_box": FriendTreasureMod.BoxItems, + "pet_treasure_reward": append(Items, FriendTreasureMod.BoxItems...), }) player.PlayMod.save() player.PushClientRes(&msg.ResFriendTreasureEnd{ @@ -4345,7 +4369,7 @@ func ReqPlayroomDressSet(player *Player, buf []byte) error { req := &msg.ReqPlayroomDressSet{} proto.Unmarshal(buf, req) PlayroomMod := player.PlayMod.getPlayroomMod() - Parts, Diff, error := PlayroomMod.PlayroomDressSet(GoUtil.MapInt32ToInt(req.DressSet)) + Parts, _, error := PlayroomMod.PlayroomDressSet(GoUtil.MapInt32ToInt(req.DressSet)) if error != nil { player.SendErrClienRes(&msg.ResPlayroomDressSet{ Code: msg.RES_CODE_FAIL, @@ -4355,7 +4379,7 @@ func ReqPlayroomDressSet(player *Player, buf []byte) error { } player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_PETDRESS, A: []interface{}{Parts}}) player.PlayMod.save() - player.PetDecoSetLog(Diff) + //player.PetDecoSetLog(Diff) PlayroomBackData(player) player.PushClientRes(&msg.ResPlayroomDressSet{ Code: msg.RES_CODE_SUCCESS, diff --git a/src/server/game/UnitTest.go b/src/server/game/UnitTest.go index 907fc394..073036a1 100644 --- a/src/server/game/UnitTest.go +++ b/src/server/game/UnitTest.go @@ -301,7 +301,7 @@ func UnitDecoratePartCost(p *Player) error { DecorateMod.PartClassPool = []int{} DecorateMod.PartPool = make(map[int]int) DecorateMod.InitData() - Items, _ := DecorateMod.GetDecorateCostItem(1, 33) + Items, _, _ := DecorateMod.GetDecorateCostItem(1, 33) err := p.HandleLoseItem(Items, "") if err != nil { fmt.Print(err) diff --git a/src/server/game/mod/decorate/Decorate.go b/src/server/game/mod/decorate/Decorate.go index 7e99b766..5262ce67 100644 --- a/src/server/game/mod/decorate/Decorate.go +++ b/src/server/game/mod/decorate/Decorate.go @@ -75,7 +75,7 @@ func (d *Decorate) GetDecorateAddEnergy(cnt int) []*item.Item { } // 获取装饰消耗 -func (d *Decorate) GetDecorateCostItem(AreaId, DecorateId int) ([]*item.Item, int) { +func (d *Decorate) GetDecorateCostItem(AreaId, DecorateId int) ([]*item.Item, int, []*item.Item) { Item := decorateCfg.GetStarCost(AreaId, DecorateId) PetExp := decorateCfg.GetDecoratePExp(AreaId, DecorateId) Id := decorateCfg.GetIdBySenceAndLv(AreaId, DecorateId) @@ -88,7 +88,7 @@ func (d *Decorate) GetDecorateCostItem(AreaId, DecorateId int) ([]*item.Item, in if len(d.PartCost) == 0 { d.initPartCost(d.AreaId + 1) } - return Items, PetExp + return Items, PetExp, PartItem.Items } func (d *Decorate) DecorateAll(Star int) ([]*item.Item, []*item.Item, int, []int, []interface{}, int) { diff --git a/src/server/game/mod/friendTreasure.go/friendTreasure.go b/src/server/game/mod/friendTreasure.go/friendTreasure.go index 8fe8f1f4..20aa23cb 100644 --- a/src/server/game/mod/friendTreasure.go/friendTreasure.go +++ b/src/server/game/mod/friendTreasure.go/friendTreasure.go @@ -10,13 +10,14 @@ import ( ) type FriendTreasureMod struct { - Star int // 星级 - Shift int // 挡位 - Pos []int - List map[int]*msg.TreasureInfo - List2 []int32 // 选择的好友 - Uids []int64 - Status int + Star int // 星级 + Shift int // 挡位 + Pos []int + List map[int]*msg.TreasureInfo + List2 []int32 // 选择的好友 + Uids []int64 + Status int + BoxItems []*item.Item } const ( @@ -70,7 +71,11 @@ func (f *FriendTreasureMod) Flip(Pos int) ([]*item.Item, int64, error) { ProbMap := friendTreasureCfg.GetChestProb() Prob := GoUtil.RandMap(ProbMap) Info.Status = GAME_STATUS_START - return friendTreasureCfg.GetChestItems(Prob), Info.Uid, nil + Items := friendTreasureCfg.GetChestItems(Prob) + if Items == nil { + f.BoxItems = append(f.BoxItems, Items...) + } + return Items, Info.Uid, nil } Info.Status = GAME_STATUS_START return nil, 0, nil @@ -91,10 +96,15 @@ func (f *FriendTreasureMod) EndGame() ([]*item.Item, int, error) { BigReward := friendTreasureCfg.GetBigReward() Reward = append(Reward, BigReward...) } + + return Reward, FriendItemNum, nil +} + +func (f *FriendTreasureMod) ResetGame() { f.Star = 0 f.Shift = 0 f.Status = GAME_STATUS_END - return Reward, FriendItemNum, nil + f.BoxItems = []*item.Item{} } func (f *FriendTreasureMod) NotifyStar() *msg.ResFriendTreasureStar {