From 989f68174a02917e7cfad9083174e2620f6cafc0 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 2 Jul 2025 11:40:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=B6=E9=97=B4=E7=BA=BF=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/Gm.go | 2 +- src/server/game/Player.go | 4 +-- src/server/game/PlayerFunc.go | 38 +++++++++++++----------- src/server/game/RegisterNetworkFunc.go | 26 ++++++++-------- src/server/game/Type.go | 5 ++++ src/server/game/mod/charge/Charge.go | 7 +++-- src/server/game/mod/friend/Friend.go | 5 +++- src/server/game/mod/playroom/playroom.go | 3 ++ 8 files changed, 52 insertions(+), 38 deletions(-) diff --git a/src/server/game/Gm.go b/src/server/game/Gm.go index af2bcc43..abe726a9 100644 --- a/src/server/game/Gm.go +++ b/src/server/game/Gm.go @@ -93,7 +93,7 @@ func ReqGmCommand_(player *Player, Command string) error { player.LoginBackData() case "addChampshipLog": num, _ := strconv.Atoi(arg[1]) - player.AddLog(num, friend.LOG_TYPE_PLAYROOM_CHAMPSHIP, fmt.Sprintf("%d_%d", 1, 1)) + player.AddLog(num, friend.LOG_TYPE_PLAYROOM_CHAMPSHIP, fmt.Sprintf("%d_%d", 1, 1), GoUtil.Now()) case "serverZeroUpdate": VarMod := player.PlayMod.getVarMod() VarMod.DailyResetTime = 0 diff --git a/src/server/game/Player.go b/src/server/game/Player.go index 0b3e59d7..605c967a 100644 --- a/src/server/game/Player.go +++ b/src/server/game/Player.go @@ -859,7 +859,7 @@ func (p *Player) HandleInChampshipRank() { G_GameLogicPtr.ChampshipMgrSend(m) } -func (p *Player) AddLog(Uid int, Type int, Param string) { +func (p *Player) AddLog(Uid int, Type int, Param string, Time int64) { FriendMod := p.PlayMod.getFriendMod() Id := FriendMod.AddLog(Uid, Type, Param) p.PlayMod.save() @@ -869,7 +869,7 @@ func (p *Player) AddLog(Uid int, Type int, Param string) { Type: int32(Type), Param: Param, Id: int32(Id), - Time: int32(GoUtil.Now()), + Time: int32(Time), }, }) } diff --git a/src/server/game/PlayerFunc.go b/src/server/game/PlayerFunc.go index cab81492..854ed232 100644 --- a/src/server/game/PlayerFunc.go +++ b/src/server/game/PlayerFunc.go @@ -202,30 +202,33 @@ func handle(p *Player, m *msg.Msg) error { BackChampship(p) case msg.HANDLE_TYPE_CHAMPSHIP_RESULT: // # 好友锦标赛结果 Extra := m.Extra.([]int) - p.AddLog(m.From, friend.LOG_TYPE_PLAYROOM_CHAMPSHIP, fmt.Sprintf("%d_%d", Extra[0], Extra[1])) + p.AddLog(m.From, friend.LOG_TYPE_PLAYROOM_CHAMPSHIP, fmt.Sprintf("%d_%d", Extra[0], Extra[1]), m.SendT) case msg.HANDLE_TYPE_TREASURE_RESULT: // # 好友宝藏结果 - p.AddLog(m.From, friend.LOG_TYPE_TREASURE, fmt.Sprintf("%d", m.Extra.(int))) + p.AddLog(m.From, friend.LOG_TYPE_TREASURE, fmt.Sprintf("%d", m.Extra.(int)), m.SendT) case msg.HANDLE_TYPE_MAIL: // 邮件操作 SyncMailMsg(p) case msg.HANDLE_TYPE_PLAYROOM_LOSE: // # 玩家输了 PlayroomMod := p.PlayMod.getPlayroomMod() Items := m.Item - IsChip := false + GameId := playroom.GAME_TYPE_HOOK if m.Extra != nil { - if val, ok := m.Extra.(bool); ok { - IsChip = val + if val, ok := m.Extra.(int); ok { + GameId = val } } - if Items == nil || len(Items) == 0 { + if len(Items) == 0 { return nil } - if IsChip { + if GameId == playroom.GAME_TYPE_HOOK { PlayroomMod.AddChip(m.From, m.SendT) + p.AddLog(m.From, friend.LOG_TYPE_PLAYROOM_CAT_WIN, fmt.Sprintf("%d_%d", Items[0].Id, Items[0].Num), m.SendT) + } else { + p.AddLog(m.From, friend.LOG_TYPE_PLAYROOM_VISIT, fmt.Sprintf("%d_%d", Items[0].Id, Items[0].Num), m.SendT) } PlayroomMod.AddMood(playroom.MOOD_TYPE_FOOD, -50) PlayroomMod.AddMood(playroom.MOOD_TYPE_CLEAN, -50) PlayroomMod.AddVisitor(m.From, m.SendT) - p.AddLog(m.From, friend.LOG_TYPE_PLAYROOM_VISIT, fmt.Sprintf("%d_%d", Items[0].Id, Items[0].Num)) + if len(Items) > 0 && Items[0].Id == item.ITEM_STAR_ID { BaseMod := p.PlayMod.getBaseMod() StarNum := BaseMod.GetStar() @@ -241,6 +244,7 @@ func handle(p *Player, m *msg.Msg) error { p.PushClientRes(PlayroomMod.NotifyLose()) case msg.HANDLE_TYPE_PLAYROOM_GAME: FriendMod := p.PlayMod.getFriendMod() + p.AddLog(m.From, friend.LOG_TYPE_PLAYROOM_CAT_LOSE, "", m.SendT) FriendMod.Interact(m.From, friend.INTERACT_TYPE_VISIT, m.SendT) case msg.FRIEND_TREASURE_HANDLE: // # 好友宝藏 Items := make([]*item.Item, 0) @@ -250,11 +254,11 @@ func handle(p *Player, m *msg.Msg) error { p.HandleItem(Items, proto.ITEM_POP_LABEL_Friendtreasure.String()) case msg.HANDLE_TYPE_HANDBOOK_COLLECTION: // 图鉴收集奖励 data := m.Extra.(msg.HandbookMsg) - p.AddLog(m.From, friend.LOG_TYPE_HANDBOOK, data.Type) + p.AddLog(m.From, friend.LOG_TYPE_HANDBOOK, data.Type, m.SendT) case msg.HANDLE_TYPE_HANDBOOK_UPVOTE: // 图鉴点赞 FriendMod := p.PlayMod.getFriendMod() FriendMod.Interact(m.From, friend.INTERACT_TYPE_UPVOTE, m.SendT) - p.AddLog(m.From, friend.LOG_TYPE_HANDBOOK_UPVOTE, "") + p.AddLog(m.From, friend.LOG_TYPE_HANDBOOK_UPVOTE, "", m.SendT) case msg.HANDLE_TYPE_SEND_CHARGE: // 收到好友赠送的充值礼包 C := &ChargeExtra{} if m.Extra != nil { @@ -265,7 +269,7 @@ func handle(p *Player, m *msg.Msg) error { mt, mc, mt_en, mc_en := mailCfg.GetChargeSendMail(PlayerSimpleData.Name) Items := ChargeItem(p, C.ChargeId) MailId := MailMod.Send(mt, "", mc, mt_en, "", mc_en, Items, mail.MAIL_TYPE_GIFT) - p.AddLog(m.From, friend.LOG_TYPE_CHARGE_SEND, fmt.Sprintf("%d", MailId)) + p.AddLog(m.From, friend.LOG_TYPE_CHARGE_SEND, fmt.Sprintf("%d", MailId), m.SendT) p.PushClientRes(MailMod.NotifyMail(MailId)) case msg.HANDLE_TYPE_CHARGE_RECEIVE: // 收到好友的感谢信 Content := "" @@ -276,13 +280,13 @@ func handle(p *Player, m *msg.Msg) error { MailMod := p.PlayMod.getMailMod() mt, mc, mt_en, mc_en := mailCfg.GetChargeReceiveMail(PlayerSimpleData.Name, Content) MailId := MailMod.Send(mt, "", mc, mt_en, "", mc_en, nil, mail.MAIL_TYPE_NORMAL) - p.AddLog(m.From, friend.LOG_TYPE_CHARGE_RECEIVE, fmt.Sprintf("%d", MailId)) + p.AddLog(m.From, friend.LOG_TYPE_CHARGE_RECEIVE, fmt.Sprintf("%d", MailId), m.SendT) p.PushClientRes(MailMod.NotifyMail(MailId)) case msg.HANDLE_TYPE_WISHLIST_SEND: // 发送愿望单请求 FriendMod := p.PlayMod.getFriendMod() FriendMod.AddWishApply(int64(m.From)) case msg.HANDLE_TYPE_PLAYROOM_UPVOTE: // playroom点赞 - p.AddLog(m.From, friend.LOG_TYPE_PLAYROOM_UPVOTE, "") + p.AddLog(m.From, friend.LOG_TYPE_PLAYROOM_UPVOTE, "", m.SendT) PlayroomMod := p.PlayMod.getPlayroomMod() PlayroomMod.AddUpvote() FriendMod := p.PlayMod.getFriendMod() @@ -291,7 +295,7 @@ func handle(p *Player, m *msg.Msg) error { case msg.HANDLE_TYPE_WISHLIST_AGREE: ChargeMod := p.PlayMod.getChargeMod() ChargeMod.AddWishCount() - p.AddLog(m.From, friend.LOG_TYPE_WISH, "") + p.AddLog(m.From, friend.LOG_TYPE_WISH, "", m.SendT) p.PushClientRes(ChargeMod.BackData()) case msg.HANDLE_TYPE_PLAYROOM_KISS: // playroom亲吻 p.NotifyPlayroomKiss() @@ -314,7 +318,7 @@ func HandleFriendMsg(p *Player, m *msg.Msg) error { switch m.Type { case msg.HANDLE_TYPE_APPLY: // 好友申请 FriendMod.AddFriendApply(m.From) - p.AddLog(m.From, friend.LOG_TYPE_FRIEND_APPLY, "") + p.AddLog(m.From, friend.LOG_TYPE_FRIEND_APPLY, "", m.SendT) p.PushClientRes(&proto.ResFriendApplyNotify{ Player: PlayerSimpleData, Type: friend.FRIEND_NOTIFY_APPLY, @@ -334,10 +338,10 @@ func HandleFriendMsg(p *Player, m *msg.Msg) error { "player_id": m.From, "add_type": "agree", }) - p.AddLog(m.From, friend.LOG_TYPE_FRIEND_BECOME, "") + p.AddLog(m.From, friend.LOG_TYPE_FRIEND_BECOME, "", m.SendT) case msg.HANDLE_TYPE_DEL: // 删除好友 FriendMod.DelFriend(m.From) - p.AddLog(m.From, friend.LOG_TYPE_FRIEND_APPLY, "") + p.AddLog(m.From, friend.LOG_TYPE_FRIEND_APPLY, "", m.SendT) p.PushClientRes(&proto.ResFriendApplyNotify{ Player: PlayerSimpleData, Type: friend.FRIEND_NOTIFY_DEL, diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index 4c02c770..c7c6d523 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -1554,7 +1554,7 @@ func ReqAgreeFriend(player *Player, buf []byte) error { Uid: req.Uid, Player: G_GameLogicPtr.GetResSimplePlayerByUid(int(req.Uid)), }) - player.AddLog(Uid, friend.LOG_TYPE_FRIEND_BECOME, "") + player.AddLog(Uid, friend.LOG_TYPE_FRIEND_BECOME, "", GoUtil.Now()) FriendApplyBackData(player) PlayroomMod := player.PlayMod.getPlayroomMod() PlayroomMod.AddRoomPointAdd() @@ -1581,7 +1581,7 @@ func ReqDelFriend(player *Player, buf []byte) error { Code: msg.RES_CODE_SUCCESS, Uid: req.Uid, }) - player.AddLog(Uid, friend.LOG_TYPE_FRIEND_DELETE, "") + player.AddLog(Uid, friend.LOG_TYPE_FRIEND_DELETE, "", GoUtil.Now()) FriendListBackData(player) player.TeLog("friend_delete", map[string]interface{}{ "player_id": Uid, @@ -1672,7 +1672,7 @@ func ReqCardGive(player *Player, buf []byte) error { Type: card.TYPE_CARD_GIVE, Status: card.STATUS_CARD_GIVE_1, } - player.AddLog(Uid, friend.LOG_TYPE_CARD_GIVE, strconv.Itoa(CardId)) + player.AddLog(Uid, friend.LOG_TYPE_CARD_GIVE, strconv.Itoa(CardId), GoUtil.Now()) err = CardMod.AddRequestCard(CardInfo) // 添加请求卡牌 if err != nil { player.SendErrClienRes(&msg.ResCardGive{ @@ -1803,7 +1803,7 @@ func ReqCardSend(player *Player, buf []byte) error { End: GoUtil.Now() + 86400, Extra: *CardInfo, } - player.AddLog(int(req.Uid), friend.LOG_TYPE_CARD_SEND, strconv.Itoa(CardId)) + player.AddLog(int(req.Uid), friend.LOG_TYPE_CARD_SEND, strconv.Itoa(CardId), GoUtil.Now()) player.PushClientRes(&msg.ResCardSend{ Code: msg.RES_CODE_SUCCESS, }) @@ -1836,7 +1836,7 @@ func ReqCardExchange(player *Player, buf []byte) error { End: GoUtil.Now() + 86400, Extra: *CardInfo, } - player.AddLog(int(req.Uid), friend.LOG_TYPE_CARD_EX_SEND, fmt.Sprintf("%d", int(req.CardId))) + player.AddLog(int(req.Uid), friend.LOG_TYPE_CARD_EX_SEND, fmt.Sprintf("%d", int(req.CardId)), GoUtil.Now()) player.PushClientRes(&msg.ResCardExchange{ Code: msg.RES_CODE_SUCCESS, @@ -1888,7 +1888,7 @@ func ReqSelectCardExchange(player *Player, buf []byte) error { } } FriendMod.DelCardInfo(req.Id) - player.AddLog(CardInfo.AUid, friend.LOG_TYPE_CARD_SELECT_SEND, fmt.Sprintf("%d", CardInfo.ExId)) + player.AddLog(CardInfo.AUid, friend.LOG_TYPE_CARD_SELECT_SEND, fmt.Sprintf("%d", CardInfo.ExId), GoUtil.Now()) err := player.SubCard(CardId) if err != nil { player.SendErrClienRes(&msg.ResSelectCardExchange{ @@ -1947,7 +1947,7 @@ func ReqAgreeCardExchange(player *Player, buf []byte) error { return err } } - player.AddLog(CardInfo.BUid, friend.LOG_TYPE_CARD_EX_SUCCESS_1, fmt.Sprintf("%d_%d", CardInfo.CardId, CardInfo.ExId)) + player.AddLog(CardInfo.BUid, friend.LOG_TYPE_CARD_EX_SUCCESS_1, fmt.Sprintf("%d_%d", CardInfo.CardId, CardInfo.ExId), GoUtil.Now()) CardInfo.Status = card.STATUS_CARD_EX_3 CardInfo.EndTime = 0 player.PlayMod.save() @@ -2068,9 +2068,7 @@ func ReqGetFriendCard(player *Player, buf []byte) error { } FriendMod.DelCardInfo(req.Id) 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)) - // } + player.AddLog(CardInfo.AUid, friend.LOG_TYPE_CARD_SEND_ACCEPT, fmt.Sprintf("%d", CardInfo.CardId), GoUtil.Now()) player.PlayMod.save() player.PushClientRes(&msg.ResGetFriendCard{ Code: msg.RES_CODE_SUCCESS, @@ -3214,7 +3212,7 @@ func ReqPlayroomSetRoom(player *Player, buf []byte) error { return nil } -// 玩游戏 +// 玩游戏 Desprecated func ReqPlayroomGame(player *Player, buf []byte) error { req := &msg.ReqPlayroomGame{} proto.Unmarshal(buf, req) @@ -3293,7 +3291,7 @@ func ReqPlayroomSelectReward(player *Player, buf []byte) error { Type: MsqMod.HANDLE_TYPE_PLAYROOM_LOSE, SendT: GoUtil.Now(), Item: Items, - Extra: true, + Extra: PlayroomMod.GetGameId(), }) G_GameLogicPtr.SetUserData(Target, VAR_OP_CHIP, 1) PlayroomMod.ResetGame() @@ -3484,7 +3482,7 @@ func ReqPlayroomFlipReward(player *Player, buf []byte) error { Type: MsqMod.HANDLE_TYPE_PLAYROOM_LOSE, SendT: GoUtil.Now(), Item: Items, - Extra: false, + Extra: PlayroomMod.GetGameId(), }) player.PlayMod.save() PlayroomBackData(player) @@ -4208,7 +4206,7 @@ func ReqAddNpc(player *Player, buf []byte) error { PlayroomMod.AddRoomPointInvite() PlayroomMod.AddRoomPointAdd() PlayroomBackData(player) - player.AddLog(int(req.NpcId), friend.LOG_TYPE_FRIEND_BECOME_NPC, GoUtil.String(req.NpcId)) + player.AddLog(int(req.NpcId), friend.LOG_TYPE_FRIEND_BECOME_NPC, GoUtil.String(req.NpcId), GoUtil.Now()) player.PushClientRes(&msg.ResAddNpc{ Code: msg.RES_CODE_SUCCESS, NpcId: req.NpcId, diff --git a/src/server/game/Type.go b/src/server/game/Type.go index e67ab718..0e5f23f6 100644 --- a/src/server/game/Type.go +++ b/src/server/game/Type.go @@ -77,6 +77,11 @@ type ChargeExtra struct { ChargeId int // 充值id } +type GameResult struct { + t int // 游戏类型 + r int // 1:赢 2:输 3:平 +} + func init() { gob.Register(&limitedTimeEvent.MoneyCat{}) gob.Register(&limitedTimeEvent.LuckyCat{}) diff --git a/src/server/game/mod/charge/Charge.go b/src/server/game/mod/charge/Charge.go index 0620ed42..224689ee 100644 --- a/src/server/game/mod/charge/Charge.go +++ b/src/server/game/mod/charge/Charge.go @@ -299,11 +299,12 @@ func (c *ChargeMod) InitChessShop(Emit []int) { for _, v := range ColorList { ColorType := mergeDataCfg.GetColorType(v) r := make([]*Rand, 0) - if ColorType == mergeDataCfg.CHESS_PRODUCT_MAIN_TYPE { + switch ColorType { + case mergeDataCfg.CHESS_PRODUCT_MAIN_TYPE: r = getChessMainRand(v) - } else if ColorType == mergeDataCfg.CHESS_PRODUCT_SECONDARY_TYPE { + case mergeDataCfg.CHESS_PRODUCT_SECONDARY_TYPE: r = getChessSecondaryRand(v) - } else if ColorType == mergeDataCfg.CHESS_PRODUCT_SUB_TYPE { + case mergeDataCfg.CHESS_PRODUCT_SUB_TYPE: r = getChessSubRand(v) } RandList = append(RandList, r...) diff --git a/src/server/game/mod/friend/Friend.go b/src/server/game/mod/friend/Friend.go index 38cdaab9..eb200e63 100644 --- a/src/server/game/mod/friend/Friend.go +++ b/src/server/game/mod/friend/Friend.go @@ -59,7 +59,7 @@ const ( LOG_TYPE_CARD_EX_SUCCESS_1 = 10 // 卡牌交换成功 LOG_TYPE_CARD_EX_SUCCESS_2 = 11 // 卡牌交换成功 LOG_TYPE_FRIEND_DELETE = 14 // 删除好友 - LOG_TYPE_PLAYROOM_VISIT = 15 // 拜访玩家 + LOG_TYPE_PLAYROOM_VISIT = 15 // 非小猫游戏,他人偷走了玩家的猫币 LOG_TYPE_HANDBOOK = 16 // 图鉴收集 LOG_TYPE_HANDBOOK_UPVOTE = 17 // 图鉴点赞 LOG_TYPE_CHARGE_SEND = 18 // 赠送充值礼物 @@ -69,6 +69,9 @@ const ( LOG_TYPE_PLAYROOM_UPVOTE = 22 // playroom点赞 LOG_TYPE_PLAYROOM_CHAMPSHIP = 23 // 竞标赛排名 LOG_TYPE_TREASURE = 24 // 好友宝藏 + LOG_TYPE_CARD_SEND_ACCEPT = 25 // 收到赠送卡牌 + LOG_TYPE_PLAYROOM_CAT_WIN = 26 // 小猫游戏,给小猫成功装箱 + LOG_TYPE_PLAYROOM_CAT_LOSE = 27 // 小猫游戏,装箱小猫未成功 ) const ( diff --git a/src/server/game/mod/playroom/playroom.go b/src/server/game/mod/playroom/playroom.go index 279ab285..bd95a0fc 100644 --- a/src/server/game/mod/playroom/playroom.go +++ b/src/server/game/mod/playroom/playroom.go @@ -466,6 +466,9 @@ func (p *PlayroomMod) ResetGame() { p.InteractNum = 0 p.RevengeUid = 0 } +func (p *PlayroomMod) GetGameId() int { + return p.GameId +} func (p *PlayroomMod) ResetLose() { p.LoseItem = make([]*item.Item, 0)