diff --git a/src/server/game/Gm.go b/src/server/game/Gm.go index caaea8d0..f0953d40 100644 --- a/src/server/game/Gm.go +++ b/src/server/game/Gm.go @@ -117,16 +117,16 @@ func ReqGmCommand(args []interface{}) error { CardMod.ExCard = make(map[int]*card.CardInfo) CardMod.ExTimes = 10 CardMod.ReqTimes = 10 - CardMod.AddCard(1) - CardMod.AddCard(2) - CardMod.AddCard(3) + player.AddCard(1) + player.AddCard(2) + player.AddCard(3) FriendMod := player.PlayMod.getFriendMod() FriendMod.Card = make(map[string]*card.CardInfo) player.PushClientRes(CardMod.NotifyCard()) case "subCard": ChargeId, _ := strconv.Atoi(arg[1]) CardMod := player.PlayMod.getCardMod() - CardMod.SubCard(ChargeId) + player.SubCard(ChargeId) player.PushClientRes(CardMod.NotifyCard()) case "setProgress": num, _ := strconv.Atoi(arg[1]) @@ -227,7 +227,7 @@ func ReqGmCommand(args []interface{}) error { CardMod := player.PlayMod.getCardMod() CardList := cardCfg.GetAllCardId(CardMod.Round) for _, v := range CardList { - CardMod.AddCard(v) + player.AddCard(v) } case "resetRankUser": O := G_GameLogicPtr.RankMgr.getAllRank(RANK_TYPE_USER) diff --git a/src/server/game/LimitedTimeTrigger.go b/src/server/game/LimitedTimeTrigger.go index 4fb5b96c..d70709cc 100644 --- a/src/server/game/LimitedTimeTrigger.go +++ b/src/server/game/LimitedTimeTrigger.go @@ -122,7 +122,7 @@ func LimitedTimeCardTrigger(p *Player) { To: v.BUid, Type: MsgMod.HANDLE_TYPE_EX_CARD_TIMEOUT, }) - CardMod.AddCard(v.CardId) + p.AddCard(v.CardId) CardMod.DelExCard(v) p.PushClientRes(CardMod.NotifyTimes()) p.PushClientRes(CardMod.NotifyCard()) @@ -251,10 +251,11 @@ func LimitedTimeEnergyAdd(p *Player) { Energy = MaxEnergy } p.TeLog("asset_change", map[string]interface{}{ - "item_id": item.ITEM_ENERGY_ID, - "change_type": "gain", - "change_num": min(Addsta, E), - "change_after": Energy, + "item_id": item.ITEM_ENERGY_ID, + "change_type": "gain", + "change_num": min(Addsta, E), + "change_after": Energy, + "change_reason": "recover_server", }) p.CallEvent(time.Duration(Recover)*time.Second, func() { p.lock.Lock() diff --git a/src/server/game/Player.go b/src/server/game/Player.go index 7de0638b..00f88d0b 100644 --- a/src/server/game/Player.go +++ b/src/server/game/Player.go @@ -470,7 +470,7 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error { "change_type": change_type, "change_num": math.Abs(float64(v.Num)), "change_after": p.GetPlayerBaseMod().GetEnergy(), - "change_reason": p.args["func"], + "change_reason": Label, }) is_update = true if err != nil { @@ -487,7 +487,7 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error { "change_type": change_type, "change_num": math.Abs(float64(v.Num)), "change_after": p.GetPlayerBaseMod().GetStar(), - "change_reason": p.args["func"], + "change_reason": Label, }) case item.ITEM_TYPE_DIAMOND: // 钻石 err := p.GetPlayerBaseMod().AddDiamond(v.Num) @@ -500,12 +500,11 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error { "change_type": change_type, "change_num": math.Abs(float64(v.Num)), "change_after": p.GetPlayerBaseMod().GetDiamond(), - "change_reason": p.args["func"], + "change_reason": Label, }) case item.ITEM_TYPE_CARD: // 卡牌 - CardMod := p.PlayMod.getCardMod() Effect := itemCfg.GetItemEffect(v.Id) - CardMod.AddCard(Effect) + p.AddCard(Effect) case item.ITEM_TYPE_CARD_PACK: // 卡包 CardMod := p.PlayMod.getCardMod() Effect := itemCfg.GetItemEffect(v.Id) @@ -886,3 +885,31 @@ func (p *Player) NotifyRed(actType int) { Red: int32(Red), }) } + +func (p *Player) AddCard(Id int) { + CardMod := p.PlayMod.getCardMod() + CardMod.AddCard(Id) + p.TeLog("asset_change", map[string]interface{}{ + "item_id": Id, + "change_type": "gain", + "change_num": 1, + "change_after": CardMod.CardList[Id], + "change_reason": "exchange_card", + }) +} + +func (p *Player) SubCard(Id int) error { + CardMod := p.PlayMod.getCardMod() + err := CardMod.SubCard(Id) + if err != nil { + return err + } + p.TeLog("asset_change", map[string]interface{}{ + "item_id": Id, + "change_type": "gain", + "change_num": 1, + "change_after": CardMod.CardList[Id], + "change_reason": "exchange_card", + }) + return nil +} diff --git a/src/server/game/PlayerFunc.go b/src/server/game/PlayerFunc.go index 774e9f03..c367cf6d 100644 --- a/src/server/game/PlayerFunc.go +++ b/src/server/game/PlayerFunc.go @@ -86,14 +86,14 @@ func handle(p *Player, m *msg.Msg) error { case msg.HANDLE_TYPE_EX_CARD_SELECT_TIMEOUT: // A收到B置换卡牌选择超时 CardInfo := m.Extra.(card.CardInfo) CardMod := p.PlayMod.getCardMod() - CardMod.AddCard(CardInfo.CardId) + p.AddCard(CardInfo.CardId) CardMod.DelExCard(&CardInfo) p.PushClientRes(CardMod.NotifyCard()) p.PushClientRes(CardMod.NotifyTimes()) case msg.HANDLE_TYPE_EX_CARD_TIMEOUT: // B收到A同意置换卡牌超时 CardInfo := m.Extra.(card.CardInfo) CardMod := p.PlayMod.getCardMod() - CardMod.AddCard(CardInfo.ExId) + p.AddCard(CardInfo.ExId) p.PushClientRes(CardMod.NotifyCard()) p.PushClientRes(CardMod.NotifyTimes()) case msg.HANDLE_TYPE_REG_CARD_FINISH, msg.HANDLE_TYPE_AGREE_CARD_FAIL: // B收到A的请求已结束 @@ -175,7 +175,7 @@ func handle(p *Player, m *msg.Msg) error { CardMod := p.PlayMod.getCardMod() CardInfo := m.Extra.(card.CardInfo) CardMod.AddExTimes(&CardInfo) - CardMod.AddCard(CardInfo.CardId) + p.AddCard(CardInfo.CardId) CardMod.DelExCard(&CardInfo) p.PushClientRes(CardMod.NotifyCard()) p.PushClientRes(CardMod.NotifyTimes()) @@ -183,7 +183,7 @@ func handle(p *Player, m *msg.Msg) error { case msg.HANDLE_TYPE_REFUSE_EX_CARD: // B收到A拒绝置换卡牌 CardMod := p.PlayMod.getCardMod() CardInfo := m.Extra.(card.CardInfo) - CardMod.AddCard(CardInfo.ExId) + p.AddCard(CardInfo.ExId) FriendMod := p.PlayMod.getFriendMod() FriendMod.DelCardInfo(CardInfo.Id) if cardCfg.CheckCardIsGold(CardInfo.CardId) || cardCfg.CheckCardIsGold(CardInfo.ExId) { diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index 2108b462..60765354 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -1485,7 +1485,7 @@ func ReqCardGive(args []interface{}) error { }) return fmt.Errorf("card id empty") } - err = CardMod.SubCard(CardId) + err = player.SubCard(CardId) if err != nil { player.SendErrClienRes(&msg.ResCardGive{ Code: msg.RES_CODE_FAIL, @@ -1560,7 +1560,7 @@ func ReqAgreeCardGive(args []interface{}) error { return fmt.Errorf("card apply not exist") } CardMod := player.PlayMod.getCardMod() - err := CardMod.SubCard(CardInfo.CardId) + err := player.SubCard(CardInfo.CardId) if err != nil { player.SendErrClienRes(&msg.ResAgreeCardGive{ Code: msg.RES_CODE_FAIL, @@ -1734,7 +1734,7 @@ func ReqSelectCardExchange(args []interface{}) error { } FriendMod.DelCardInfo(req.Id) player.AddLog(CardInfo.AUid, friend.LOG_TYPE_CARD_SELECT_SEND, fmt.Sprintf("%d", CardInfo.ExId)) - err := CardMod.SubCard(CardId) + err := player.SubCard(CardId) if err != nil { player.SendErrClienRes(&msg.ResSelectCardExchange{ Code: msg.RES_CODE_FAIL, @@ -1780,7 +1780,7 @@ func ReqAgreeCardExchange(args []interface{}) error { }) return fmt.Errorf("exchange time out") } - CardMod.AddCard(CardInfo.ExId) + player.AddCard(CardInfo.ExId) CardMod.DelExCard(CardInfo) FriendMod.DelCardInfo(req.Id) if cardCfg.CheckCardIsGold(CardInfo.CardId) || cardCfg.CheckCardIsGold(CardInfo.ExId) { @@ -1880,7 +1880,7 @@ func ReqRefuseCardExchange(args []interface{}) error { return fmt.Errorf("card is not status 2") } FriendMod.DelCardInfo(req.Id) - CardMod.AddCard(CardInfo.CardId) + player.AddCard(CardInfo.CardId) CardMod.DelExCard(CardInfo) CardMod.AddExTimes(CardInfo) player.PlayMod.save() @@ -1916,7 +1916,7 @@ func ReqGetFriendCard(args []interface{}) error { return fmt.Errorf("exchange time out") } FriendMod.DelCardInfo(req.Id) - CardMod.AddCard(CardInfo.CardId) + player.AddCard(CardInfo.CardId) // if CardInfo.ExId != 0 { // player.AddLog(CardInfo.BUid, friend.LOG_TYPE_CARD_EX_SUCCESS_2, fmt.Sprintf("%d_%d", CardInfo.ExId, CardInfo.CardId)) // }