From 8916d8489deb459cd5ca70f2ce305cb6dfbc309b Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 30 Jun 2025 11:06:51 +0800 Subject: [PATCH 01/21] =?UTF-8?q?=E5=8D=A1=E7=89=8C=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/Player.go | 5 +++-- src/server/game/mod/card/Card.go | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/server/game/Player.go b/src/server/game/Player.go index f1eb9a53..786e0dc7 100644 --- a/src/server/game/Player.go +++ b/src/server/game/Player.go @@ -281,8 +281,9 @@ func (p *Player) ZeroUpdate(a []interface{}) { if VarMod.DailyResetTime < zeroTimestamp { VarMod.DailyResetTime = zeroTimestamp VarMod.DailyVar = make(map[int]interface{}) - //卡牌 - p.PlayMod.getCardMod().ZeroUpdate() + //卡牌 赛季结束补发图鉴奖励 + HandbookItem := p.PlayMod.getCardMod().ZeroUpdate(G_GameLogicPtr.SeverInfo.OpenTime) + p.HandleItem(HandbookItem, msg.ITEM_POP_LABEL_AllCollectRewardHB.String()) p.PushClientRes(p.PlayMod.getCardMod().BackData()) // 每日任务 diff --git a/src/server/game/mod/card/Card.go b/src/server/game/mod/card/Card.go index d9c33149..63b51060 100644 --- a/src/server/game/mod/card/Card.go +++ b/src/server/game/mod/card/Card.go @@ -140,10 +140,11 @@ func (c *CardMod) Login(ServerOpenTime int64) []*item.Item { return []*item.Item{{Id: item.ITEM_ENERGY_ID, Num: HandbookItemNum}} } -func (c *CardMod) ZeroUpdate() { +func (c *CardMod) ZeroUpdate(ServerOpenTime int64) []*item.Item { c.ReqTimes = cardCfg.GetReqTimes() c.ExTimes = cardCfg.GetExTimes() c.GoldTimes = 2 + return c.Login(ServerOpenTime) } // 增加卡牌 From c19a82f119f41de79cd44a0aa8f81c1b694961fc Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 30 Jun 2025 12:08:18 +0800 Subject: [PATCH 02/21] =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/GoUtil/AliyunOpenApi.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/server/GoUtil/AliyunOpenApi.go b/src/server/GoUtil/AliyunOpenApi.go index faf5080f..08dd6d07 100644 --- a/src/server/GoUtil/AliyunOpenApi.go +++ b/src/server/GoUtil/AliyunOpenApi.go @@ -75,7 +75,9 @@ func Id2MetaVerifyAutoRoute(request *sdk.Id2MetaVerifyRequest) (_result *sdk.Id2 if !tea.BoolValue(util.EqualString(lastResponse.Body.Code, tea.String("200"))) { return nil, fmt.Errorf("所有服务点调用失败,错误码:%s,错误信息:%s", tea.StringValue(lastResponse.Body.Code), tea.StringValue(lastResponse.Body.Message)) } - + if !tea.BoolValue(util.EqualString(lastResponse.Body.ResultObject.BizCode, tea.String("1"))) { + return nil, fmt.Errorf("校验失败,返回码:%s;", tea.StringValue(lastResponse.Body.ResultObject.BizCode)) + } return _result, nil } From 9f69ebb15d76477b29fc9ac2bb31aca2ad475da1 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 30 Jun 2025 15:27:42 +0800 Subject: [PATCH 03/21] =?UTF-8?q?=E5=A5=BD=E5=8F=8B=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/RegisterNetworkFunc.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index 751da940..980818e7 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -1461,7 +1461,7 @@ func ReqSearchPlayer(player *Player, buf []byte) error { if player.PlayMod.getFriendMod().CheckFriend(int(v.DwUin)) { continue } - if player.PlayMod.getFriendMod().CheckApply(int(v.DwUin)) { + if player.PlayMod.getFriendMod().CheckSendApply(int(v.DwUin)) { continue } SearchPlayer := G_GameLogicPtr.GetResSimplePlayerByUid(int(v.DwUin)) From 53b065dd38bc2172eaa2411b1f823bb44287d522 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 30 Jun 2025 15:49:51 +0800 Subject: [PATCH 04/21] =?UTF-8?q?=E5=8D=A1=E7=89=8C=E4=BA=A4=E6=8D=A2?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/mod/card/Card.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/server/game/mod/card/Card.go b/src/server/game/mod/card/Card.go index 63b51060..ec1db442 100644 --- a/src/server/game/mod/card/Card.go +++ b/src/server/game/mod/card/Card.go @@ -425,10 +425,10 @@ func (c *CardMod) ExchangeCard(From, To, CardId int) (*CardInfo, error) { if err != nil { return nil, err } - _, ok := c.ExCard[To] - if ok { - return nil, fmt.Errorf("ExchangeCard already exchange") - } + // _, ok := c.ExCard[To] + // if ok { + // return nil, fmt.Errorf("ExchangeCard already exchange") + // } CardInfo := &CardInfo{ Id: Id, AUid: From, From 12764c1070836559363dcb87c8621defdca005ba Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 30 Jun 2025 17:08:02 +0800 Subject: [PATCH 05/21] =?UTF-8?q?=E7=89=B9=E6=83=A0=E7=A4=BC=E5=8C=85?= =?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/conf/charge/ChargeCfg.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/server/conf/charge/ChargeCfg.go b/src/server/conf/charge/ChargeCfg.go index cb4e2361..50c5ff33 100644 --- a/src/server/conf/charge/ChargeCfg.go +++ b/src/server/conf/charge/ChargeCfg.go @@ -138,15 +138,15 @@ func GetSpecialShopGrade(Money float64, Type int) int { }) } sort.Slice(l, func(i, j int) bool { - return l[i].money < l[j].money + return l[i].money > l[j].money }) for _, v := range l { - if Money < v.money { + if Money <= v.money { return v.id } } - return 0 + return l[0].id } func GetUnlockShopLv() int { From 505f9a0dd64f11e1ee30da54df258834a68ece81 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 30 Jun 2025 18:50:41 +0800 Subject: [PATCH 06/21] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8E=92=E8=A1=8C?= =?UTF-8?q?=E6=A6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/Player.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/server/game/Player.go b/src/server/game/Player.go index 786e0dc7..0b3e59d7 100644 --- a/src/server/game/Player.go +++ b/src/server/game/Player.go @@ -823,7 +823,9 @@ func (p *Player) UpdateUserInfo() { func (p *Player) HandleInUserRank() { DecorateMod := p.PlayMod.getDecorateMod() - Score := DecorateMod.GetDecorateNum() + Score := float64(DecorateMod.GetDecorateNum()) + BaseMod := p.PlayMod.getBaseMod() + Score += float64(BaseMod.GetLevel()) * 1000000 // 等级加成 // 更新排行榜 m := &MsgMod.Msg{ Type: MsgMod.HANDLE_TYPE_RANK, From d79476b0d24c9043ce053cf80a8fafff22dfe843 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 1 Jul 2025 10:21:42 +0800 Subject: [PATCH 07/21] =?UTF-8?q?=E6=8E=92=E8=A1=8C=E6=A6=9C=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/PlayerBaseMod.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/server/game/PlayerBaseMod.go b/src/server/game/PlayerBaseMod.go index 4d0ab1bf..65607f62 100644 --- a/src/server/game/PlayerBaseMod.go +++ b/src/server/game/PlayerBaseMod.go @@ -522,13 +522,14 @@ func (p *PlayerBaseData) AddExp(player *Player, exp int, pexp int) (int, error) player.initAcitivity() player.BackDataActivity() player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_UPLV}) - p.p.TeLog("level_up", map[string]interface{}{ + player.TeLog("level_up", map[string]interface{}{ "after_level": BaseMod.Level, }) - p.p.TeLog("property_level_up", map[string]interface{}{ + player.TeLog("property_level_up", map[string]interface{}{ "property_level": BaseMod.Level, "property_level_reward": userCfg.GetUnlock(int(BaseMod.Level)), }) + player.HandleInUserRank() } if len(UpLevelItem) > 0 { err := player.HandleItem(UpLevelItem, msg.ITEM_POP_LABEL_LevUpReward.String()) From 02b7884357aa71de4d59ad7015295c1dfa0bf88a Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 1 Jul 2025 11:27:25 +0800 Subject: [PATCH 08/21] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/conf/playroom/playroomCfg.go | 32 +++++++++++++++++++++++++ src/server/game/PlayerFunc.go | 21 ++++++++++++++-- 2 files changed, 51 insertions(+), 2 deletions(-) diff --git a/src/server/conf/playroom/playroomCfg.go b/src/server/conf/playroom/playroomCfg.go index f38cbbb1..7ceab69b 100644 --- a/src/server/conf/playroom/playroomCfg.go +++ b/src/server/conf/playroom/playroomCfg.go @@ -548,3 +548,35 @@ func GetOrderItem(Star int) map[int][]gamedata.PetOrderItem { } return r } + +func GetOrderItemList() []int { + data, err := gamedata.GetData(CFG_PLAYROOM_ORDERITEM) + if err != nil { + log.Debug("GetOrderItemList err:%v", err) + return nil + } + r := make([]int, 0) + for k := range data { + Id := GoUtil.Int(k) + if Id == 0 { + log.Debug("GetOrderItemList Id is 0") + continue + } + r = append(r, Id) + } + return r +} + +func GetPetOrderItemExpByList(ItemList []*item.Item) int { + r := 0 + for _, v := range ItemList { + data, err := gamedata.GetDataByIntKey(CFG_PLAYROOM_ORDERITEM, v.Id) + if err != nil { + // log.Debug("GetPetOrderItemExpByList err:%v", err) + continue + } + Star := gamedata.GetIntValue(data, "Star") + r += Star * v.Num + } + return r +} diff --git a/src/server/game/PlayerFunc.go b/src/server/game/PlayerFunc.go index cf920e89..081b3730 100644 --- a/src/server/game/PlayerFunc.go +++ b/src/server/game/PlayerFunc.go @@ -847,12 +847,29 @@ func NotifyChampshipResult(Uid, Rank int) { } } +func (player *Player) GetPetOrderItemExp() int { + OrderItemCfgList := playroomCfg.GetOrderItemList() + itemList := make([]*item.Item, 0) + ItemMod := player.PlayMod.getItemMod() + for _, v := range OrderItemCfgList { + Num := ItemMod.GetItem(v) + if Num <= 0 { + continue + } + itemList = append(itemList, &item.Item{ + Id: v, + Num: Num, + }) + } + return playroomCfg.GetPetOrderItemExpByList(itemList) +} + func (player *Player) FormatOrderReward() { Exp, PExp := userCfg.GetLevUpExp(player.GetPlayerBaseMod().GetLevel()) BaseMod := player.PlayMod.getBaseMod() DecorateMod := player.PlayMod.getDecorateMod() - ExpCoin := (Exp - BaseMod.GetExp()) * decorateCfg.GetAreaPerPExp(DecorateMod.GetAreaId()) - PExpCoin := (PExp - BaseMod.GetPExp()) * 50 + ExpCoin := (Exp-BaseMod.GetExp())*decorateCfg.GetAreaPerPExp(DecorateMod.GetAreaId()) - BaseMod.GetStar() + PExpCoin := (PExp-BaseMod.GetPExp())*50 - player.GetPetOrderItemExp() OrderMod := player.PlayMod.getOrderMod() if ExpCoin > PExpCoin || BaseMod.GetLevel() < 6 { for k, v := range OrderMod.GetOrderList() { From 0c56cbd22455ddaa75fad1a326cf8409bf753f85 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 1 Jul 2025 12:17:29 +0800 Subject: [PATCH 09/21] =?UTF-8?q?=E5=AE=A0=E7=89=A9=E5=AE=9D=E8=97=8F?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/FriendMgr.go | 1 + src/server/game/PlayerFunc.go | 12 +++++++ src/server/game/RegisterNetworkFunc.go | 8 +++-- src/server/game/mod/friend/Friend.go | 47 +++++++++++++++++++++++++- src/server/game/mod/msg/Msg.go | 1 + src/server/msg/Gameapi.pb.go | 13 +++++-- 6 files changed, 77 insertions(+), 5 deletions(-) diff --git a/src/server/game/FriendMgr.go b/src/server/game/FriendMgr.go index dce1a3c7..81205d3a 100644 --- a/src/server/game/FriendMgr.go +++ b/src/server/game/FriendMgr.go @@ -75,6 +75,7 @@ func (f *FriendMgr) Init() { f.RegisterHandler(msg.HANDLE_TYPE_TREASURE_RESULT, f.sendToPlayer) f.RegisterHandler(msg.HANDLE_TYPE_FACEBOOK_UNBIND, f.sendToPlayer) f.RegisterHandler(msg.HANDLE_TYPE_PLAYROOM_KISS, f.sendToPlayerOnline) + f.RegisterHandler(msg.HANDLE_TYPE_PLAYROOM_GAME, f.sendToPlayerOnline) f.RegisterHandler(msg.HANDLE_TYPE_VAR_USER_GET, f.GetVarUserData) f.RegisterHandler(msg.HANDLE_TYPE_VAR_USER_SET, f.SetVarUserData) diff --git a/src/server/game/PlayerFunc.go b/src/server/game/PlayerFunc.go index 081b3730..aecfce51 100644 --- a/src/server/game/PlayerFunc.go +++ b/src/server/game/PlayerFunc.go @@ -83,6 +83,7 @@ func handle(p *Player, m *msg.Msg) error { CardInfo := m.Extra.(card.CardInfo) FriendMod := p.PlayMod.getFriendMod() FriendMod.SetCardInfo(&CardInfo) + FriendMod.Interact(CardInfo.AUid, friend.INTERACT_TYPE_CARD, m.SendT) p.PushClientRes( &proto.NotifyFriendCard{ Info: GetCardInfoMsg(&CardInfo), @@ -149,6 +150,7 @@ func handle(p *Player, m *msg.Msg) error { FriendMod := p.PlayMod.getFriendMod() CardInfo := m.Extra.(card.CardInfo) FriendMod.SetCardInfo(&CardInfo) + FriendMod.Interact(CardInfo.AUid, friend.INTERACT_TYPE_EX, m.SendT) p.PlayMod.save() p.PushClientRes( &proto.NotifyFriendCard{ @@ -227,9 +229,14 @@ func handle(p *Player, m *msg.Msg) error { } else { PlayroomMod.Lose(Items) } + FriendMod := p.PlayMod.getFriendMod() + FriendMod.Interact(m.From, friend.INTERACT_TYPE_VISIT, m.SendT) p.UpdateUserInfo() p.Kafka(PLAYROOM_LOST, map[string]interface{}{"uid": m.From, "item": Items}) p.PushClientRes(PlayroomMod.NotifyLose()) + case msg.HANDLE_TYPE_PLAYROOM_GAME: + FriendMod := p.PlayMod.getFriendMod() + FriendMod.Interact(m.From, friend.INTERACT_TYPE_VISIT, m.SendT) case msg.FRIEND_TREASURE_HANDLE: // # 好友宝藏 Items := make([]*item.Item, 0) if m.Extra != nil { @@ -240,6 +247,8 @@ func handle(p *Player, m *msg.Msg) error { data := m.Extra.(msg.HandbookMsg) p.AddLog(m.From, friend.LOG_TYPE_HANDBOOK, data.Type) 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, "") case msg.HANDLE_TYPE_SEND_CHARGE: // 收到好友赠送的充值礼包 C := &ChargeExtra{} @@ -271,6 +280,8 @@ func handle(p *Player, m *msg.Msg) error { p.AddLog(m.From, friend.LOG_TYPE_PLAYROOM_UPVOTE, "") PlayroomMod := p.PlayMod.getPlayroomMod() PlayroomMod.AddUpvote() + FriendMod := p.PlayMod.getFriendMod() + FriendMod.Interact(m.From, friend.INTERACT_TYPE_VISIT, m.SendT) p.UpdateUserInfo() case msg.HANDLE_TYPE_WISHLIST_AGREE: ChargeMod := p.PlayMod.getChargeMod() @@ -408,6 +419,7 @@ func FriendListBackData(p *Player) { ps := G_GameLogicPtr.GetResSimplePlayerByUid(k) if ps != nil { ps.AddTime = v.AddTime + ps.Interact = FriendMod.GetInteractTime(k) fl = append(fl, ps) } } diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index 980818e7..ea1fa1a4 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -3250,9 +3250,13 @@ func ReqPlayroomGame(player *Player, buf []byte) error { }) return err } + G_GameLogicPtr.FriendMgrSend(&MsqMod.Msg{ + From: int(player.M_DwUin), + To: Target, + Type: MsqMod.HANDLE_TYPE_PLAYROOM_GAME, + SendT: GoUtil.Now(), + }) player.PlayMod.save() - // PlayroomBackData(player) - // PlayroomVisit(player, PlayroomMod.GetTarget()) ItemsMsg := make(map[int32]*msg.ItemInfo, 0) for k, v := range PlayroomMod.GameReward { ItemsMsg[int32(k)] = &msg.ItemInfo{ diff --git a/src/server/game/mod/friend/Friend.go b/src/server/game/mod/friend/Friend.go index b65195e5..38cdaab9 100644 --- a/src/server/game/mod/friend/Friend.go +++ b/src/server/game/mod/friend/Friend.go @@ -22,7 +22,13 @@ type FriendMod struct { } type FriendInfo struct { - AddTime int64 + AddTime int64 + Interact []*Interact // 拜访记录 +} + +type Interact struct { + VisitTime int64 // 拜访时间 + Type int // 1:拜访 2:点赞 } type ApplyInfo struct { @@ -31,6 +37,15 @@ type ApplyInfo struct { Uid int64 } +// 24小时内与玩家进行过以下互动的用户,若被选中参加本次宠物宝藏,在其头像旁添加礼物盒 +const ( + INTERACT_TYPE_VISIT = 1 // 拜访过玩家的Pet Playroom并进行过小游戏或点赞的用户 + INTERACT_TYPE_UPVOTE = 2 // 为玩家的图鉴全收集信息点过赞的用户 + INTERACT_TYPE_CARD = 3 // 向玩家赠送过卡牌的用户 + INTERACT_TYPE_EX = 4 // 向玩家发起过卡牌交换 + INTERACT_TYPE_WISH = 5 // 邀请玩家一同参加活动的用户 +) + const ( LOG_TYPE_FRIEND_APPLY = 1 // 收到申请好友 LOG_TYPE_FRIEND_BECOME = 2 // 成为好友 @@ -117,6 +132,36 @@ func (f *FriendMod) SetSyncId(Id int64) { f.Id = Id } +func (f *FriendMod) Interact(id, t int, T int64) { + if _, ok := f.NewFriendList[id]; !ok { + return + } + for _, v := range f.NewFriendList[id].Interact { + if v.Type == t && v.VisitTime < T { + v.VisitTime = T + return + } + } + f.NewFriendList[id].Interact = append(f.NewFriendList[id].Interact, &Interact{ + VisitTime: T, + Type: t, + }) +} + +func (f *FriendMod) GetInteractTime(id int) int64 { + if _, ok := f.NewFriendList[id]; !ok { + return 0 + } + LastTime := int64(0) + // 获取最近一次拜访或点赞的时间 + for _, v := range f.NewFriendList[id].Interact { + if v.VisitTime > LastTime { + LastTime = v.VisitTime + } + } + return LastTime +} + func (f *FriendMod) AddFriend(id int) { f.NewFriendList[id] = &FriendInfo{ AddTime: GoUtil.Now(), diff --git a/src/server/game/mod/msg/Msg.go b/src/server/game/mod/msg/Msg.go index 3c6387a5..3c8e36ac 100644 --- a/src/server/game/mod/msg/Msg.go +++ b/src/server/game/mod/msg/Msg.go @@ -92,6 +92,7 @@ const ( HANDLE_TYPE_VAR_USER_GET // 获取玩家数据 HANDLE_TYPE_PLAYROOM_KISS // playroom亲吻 + HANDLE_TYPE_PLAYROOM_GAME // playroom游戏 ) const ( diff --git a/src/server/msg/Gameapi.pb.go b/src/server/msg/Gameapi.pb.go index a6fb7d05..a7cadce8 100644 --- a/src/server/msg/Gameapi.pb.go +++ b/src/server/msg/Gameapi.pb.go @@ -12149,6 +12149,7 @@ type ResPlayerSimple struct { Facebook string `protobuf:"bytes,9,opt,name=Facebook,proto3" json:"Facebook,omitempty"` Emoji map[int32]int32 `protobuf:"bytes,10,rep,name=Emoji,proto3" json:"Emoji,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` // 表情 AddTime int64 `protobuf:"varint,11,opt,name=AddTime,proto3" json:"AddTime,omitempty"` // 添加时间 + Interact int64 `protobuf:"varint,12,opt,name=Interact,proto3" json:"Interact,omitempty"` // 最后一次互动的时间 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -12260,6 +12261,13 @@ func (x *ResPlayerSimple) GetAddTime() int64 { return 0 } +func (x *ResPlayerSimple) GetInteract() int64 { + if x != nil { + return x.Interact + } + return 0 +} + type ResPlayerRank struct { state protoimpl.MessageState `protogen:"open.v1"` Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` @@ -24222,7 +24230,7 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\x03Uid\x18\x01 \x01(\tR\x03Uid\"T\n" + "\x0fResSearchPlayer\x12\x12\n" + "\x04Code\x18\x01 \x01(\x05R\x04Code\x12-\n" + - "\x04List\x18\x02 \x03(\v2\x19.tutorial.ResPlayerSimpleR\x04List\"\xf3\x02\n" + + "\x04List\x18\x02 \x03(\v2\x19.tutorial.ResPlayerSimpleR\x04List\"\x8f\x03\n" + "\x0fResPlayerSimple\x12\x10\n" + "\x03Uid\x18\x01 \x01(\x03R\x03Uid\x12\x12\n" + "\x04Name\x18\x02 \x01(\tR\x04Name\x12\x12\n" + @@ -24235,7 +24243,8 @@ const file_proto_Gameapi_proto_rawDesc = "" + "\bFacebook\x18\t \x01(\tR\bFacebook\x12:\n" + "\x05Emoji\x18\n" + " \x03(\v2$.tutorial.ResPlayerSimple.EmojiEntryR\x05Emoji\x12\x18\n" + - "\aAddTime\x18\v \x01(\x03R\aAddTime\x1a8\n" + + "\aAddTime\x18\v \x01(\x03R\aAddTime\x12\x1a\n" + + "\bInteract\x18\f \x01(\x03R\bInteract\x1a8\n" + "\n" + "EmojiEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\x05R\x03key\x12\x14\n" + From 1cc633b5ac4902b4ecb998665b00315fbfc95b11 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 1 Jul 2025 14:47:15 +0800 Subject: [PATCH 10/21] =?UTF-8?q?=E9=82=80=E8=AF=B7=E5=A5=BD=E5=8F=8B?= =?UTF-8?q?=E7=95=8C=E9=9D=A2=EF=BC=8CLily=E5=B7=B2=E7=BB=8F=E6=98=AF?= =?UTF-8?q?=E7=8E=A9=E5=AE=B6=E5=A5=BD=E5=8F=8B=E4=BA=86=EF=BC=8C=E8=A7=86?= =?UTF-8?q?=E4=B8=BA=E8=8E=B7=E5=BE=97=E4=BA=86=E5=B7=B2=E9=82=80=E8=AF=B7?= =?UTF-8?q?=E4=BA=86=E4=B8=80=E4=BD=8D=E5=A5=BD=E5=8F=8B=EF=BC=88=E5=90=8E?= =?UTF-8?q?=E7=BB=AD=E6=B7=BB=E5=8A=A0=E5=85=B6=E4=BB=96NPC=E5=A5=BD?= =?UTF-8?q?=E5=8F=8B=E4=B8=8D=E8=AE=A1=E6=95=B0=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/RegisterNetworkFunc.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index ea1fa1a4..4c02c770 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -4198,6 +4198,10 @@ func ReqAddNpc(player *Player, buf []byte) error { proto.Unmarshal(buf, req) FriendMod := player.PlayMod.getFriendMod() FriendMod.SetNpc(int(req.NpcId)) + if len(FriendMod.Npc) == 1 { // 首次添加NPC 视为邀请好友成功 + InviteMod := player.PlayMod.getInviteMod() + InviteMod.AddInvite(int(req.NpcId)) + } player.PlayMod.save() FriendListBackData(player) PlayroomMod := player.PlayMod.getPlayroomMod() From b6d79137275c84bcf3bfc120503b1b4f57b779b7 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 1 Jul 2025 16:42:10 +0800 Subject: [PATCH 11/21] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/PlayerFunc.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/server/game/PlayerFunc.go b/src/server/game/PlayerFunc.go index aecfce51..5bd0d7de 100644 --- a/src/server/game/PlayerFunc.go +++ b/src/server/game/PlayerFunc.go @@ -212,7 +212,9 @@ func handle(p *Player, m *msg.Msg) error { Items := m.Item IsChip := false if m.Extra != nil { - IsChip = m.Extra.(bool) + if val, ok := m.Extra.(bool); ok { + IsChip = val + } } if IsChip { PlayroomMod.AddChip(m.From, m.SendT) From 673026b2ba72b03ff444202c40bf53383397aaea Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 1 Jul 2025 16:45:23 +0800 Subject: [PATCH 12/21] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=B0=83=E8=AF=95GM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/Gm.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/server/game/Gm.go b/src/server/game/Gm.go index 3a975e48..b13b715d 100644 --- a/src/server/game/Gm.go +++ b/src/server/game/Gm.go @@ -328,6 +328,10 @@ func ReqGmCommand_(player *Player, Command string) error { a := player.GetAgent() a.Close() player.ClearData() + case "resetFriend": + FriendMod := player.PlayMod.getFriendMod() + FriendMod = &friend.FriendMod{} + FriendMod.InitData() case "addFriend": FriendMod := player.PlayMod.getFriendMod() Uid, _ := strconv.Atoi(arg[1]) From c2f8b7d9e46a25545e652ab73b4f0a51a842ee7c Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 1 Jul 2025 16:47:23 +0800 Subject: [PATCH 13/21] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=B0=83=E8=AF=95GM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/Gm.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/server/game/Gm.go b/src/server/game/Gm.go index b13b715d..af2bcc43 100644 --- a/src/server/game/Gm.go +++ b/src/server/game/Gm.go @@ -330,8 +330,17 @@ func ReqGmCommand_(player *Player, Command string) error { player.ClearData() case "resetFriend": FriendMod := player.PlayMod.getFriendMod() - FriendMod = &friend.FriendMod{} + FriendMod.FriendList = make(map[int]struct{}) + FriendMod.ApplyList = make(map[int]int64) + FriendMod.Card = make(map[string]*card.CardInfo) + FriendMod.SendApply = make(map[int]int64) + FriendMod.NewFriendList = make(map[int]*friend.FriendInfo) + FriendMod.Npc = []int{} + FriendMod.Id = 0 + FriendMod.Log = make([]*friend.LogInfo, 0) FriendMod.InitData() + FriendListBackData(player) + FriendLogBackData(player) case "addFriend": FriendMod := player.PlayMod.getFriendMod() Uid, _ := strconv.Atoi(arg[1]) From b59093dfbb7af4a70172218e75b4412779319309 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 1 Jul 2025 16:50:40 +0800 Subject: [PATCH 14/21] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/PlayerFunc.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/server/game/PlayerFunc.go b/src/server/game/PlayerFunc.go index 5bd0d7de..cab81492 100644 --- a/src/server/game/PlayerFunc.go +++ b/src/server/game/PlayerFunc.go @@ -216,6 +216,9 @@ func handle(p *Player, m *msg.Msg) error { IsChip = val } } + if Items == nil || len(Items) == 0 { + return nil + } if IsChip { PlayroomMod.AddChip(m.From, m.SendT) } From 9d3f3bf6d76931a2cc9ec775baaaa4c6df990fcf Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 2 Jul 2025 10:54:30 +0800 Subject: [PATCH 15/21] =?UTF-8?q?=E7=89=B9=E6=83=A0=E7=A4=BC=E5=8C=85?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/mod/charge/Charge.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/game/mod/charge/Charge.go b/src/server/game/mod/charge/Charge.go index 9b18369a..0620ed42 100644 --- a/src/server/game/mod/charge/Charge.go +++ b/src/server/game/mod/charge/Charge.go @@ -112,7 +112,7 @@ func (c *ChargeMod) ZeroUpdate(Emit []int) { SpecialShopCount := chargeCfg.GetSpecialShopCount() for i := 1; i <= 2; i++ { if c.Total == 0 { - c.SpecialShop[i] = &SepcialShop{Grade: SpecialGrade, Count: 2} + c.SpecialShop[i] = &SepcialShop{Grade: SpecialGrade, Count: 1} continue } m := c.SpecialCharge 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 16/21] =?UTF-8?q?=E6=97=B6=E9=97=B4=E7=BA=BF=E4=BC=98?= =?UTF-8?q?=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) From c5f974a39d63a7312f1b58f606d8f9c72c57dfbc Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 2 Jul 2025 15:24:29 +0800 Subject: [PATCH 17/21] =?UTF-8?q?=E6=97=B6=E9=97=B4=E7=BA=BF=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/PlayerFunc.go | 1 + src/server/game/RegisterNetworkFunc.go | 1 + src/server/game/mod/friend/Friend.go | 2 ++ 3 files changed, 4 insertions(+) diff --git a/src/server/game/PlayerFunc.go b/src/server/game/PlayerFunc.go index 854ed232..0caf4a78 100644 --- a/src/server/game/PlayerFunc.go +++ b/src/server/game/PlayerFunc.go @@ -77,6 +77,7 @@ func handle(p *Player, m *msg.Msg) error { case msg.HANDLE_TYPE_INVITE_FRIEND: // 邀请好友 InviteMod := p.PlayMod.getInviteMod() InviteMod.AddInvite(m.From) + p.AddLog(m.From, friend.LOG_TYPE_FRIEND_INVITE, "", m.SendT) p.PlayMod.save() p.PushClientRes(InviteMod.NotifySuccess()) case msg.HANDLE_TYPE_SEND_CARD: // B收到A赠送的卡牌 diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index c7c6d523..5ed4de9e 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -1743,6 +1743,7 @@ func ReqAgreeCardGive(player *Player, buf []byte) error { Code: msg.RES_CODE_SUCCESS, Id: req.Id, }) + player.AddLog(CardInfo.AUid, friend.LOG_TYPE_CARD_GIVE_ACCEPT, strconv.Itoa(CardInfo.CardId), GoUtil.Now()) player.PlayMod.save() player.TeLog("card_require_reply", map[string]interface{}{ "card_id": CardInfo.CardId, diff --git a/src/server/game/mod/friend/Friend.go b/src/server/game/mod/friend/Friend.go index eb200e63..86527893 100644 --- a/src/server/game/mod/friend/Friend.go +++ b/src/server/game/mod/friend/Friend.go @@ -72,6 +72,8 @@ const ( LOG_TYPE_CARD_SEND_ACCEPT = 25 // 收到赠送卡牌 LOG_TYPE_PLAYROOM_CAT_WIN = 26 // 小猫游戏,给小猫成功装箱 LOG_TYPE_PLAYROOM_CAT_LOSE = 27 // 小猫游戏,装箱小猫未成功 + LOG_TYPE_CARD_GIVE_ACCEPT = 28 // 接受卡牌请求 + LOG_TYPE_FRIEND_INVITE = 29 // 邀请注册 ) const ( From 01c8479ad87d504a8494f43081c791999abc3016 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 3 Jul 2025 14:34:49 +0800 Subject: [PATCH 18/21] =?UTF-8?q?=E8=A3=85=E9=A5=B0=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/conf/decorate/DecorateCfg.go | 10 ++++++++++ src/server/game/RegisterNetworkFunc.go | 7 +++++-- src/server/game/mod/decorate/Decorate.go | 6 ++++++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/server/conf/decorate/DecorateCfg.go b/src/server/conf/decorate/DecorateCfg.go index 973ab4f3..e8c2c56e 100644 --- a/src/server/conf/decorate/DecorateCfg.go +++ b/src/server/conf/decorate/DecorateCfg.go @@ -118,6 +118,16 @@ func GetOneKeyDecorateUnlockLv() int { return gamedata.GetIntValue(data, "Value") } +// 获取每次装饰增加的体力值 +func GetDecorateAddEnergy() int { + data, err := gamedata.GetDataByKey(DECORATE_CONST, "AddEnergy") + if err != nil { + log.Debug("GetDecorateAddEnergy not found") + return 0 + } + return gamedata.GetIntValue(data, "Value") +} + func GetAreaPerPExp(AreaId int) int { data, err := gamedata.GetDataByIntKey(DECORATE_AREA, AreaId) if err != nil { diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index 5ed4de9e..d57fb7db 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -416,7 +416,6 @@ func ReqDecorate(player *Player, buf []byte) error { }) return err } - AddItem, err := DecorateMod.Decorate(AreaId, DecorateId) // 装饰 if err != nil { player.SendErrClienRes(&msg.ResDecorate{ @@ -425,6 +424,9 @@ func ReqDecorate(player *Player, buf []byte) error { }) return err } + + EnergyItem := DecorateMod.GetDecorateAddEnergy(1) + AddItem = item.Merge(AddItem, EnergyItem) err = player.HandleItem(AddItem, msg.ITEM_POP_LABEL_DecorateAdd.String()) // 增加道具 if err != nil { player.SendErrClienRes(&msg.ResDecorate{ @@ -490,7 +492,8 @@ func ReqDecorateAll(player *Player, buf []byte) error { }) return err } - + EnergyItem := DecorateMod.GetDecorateAddEnergy(DecorateNum) + AddItem = item.Merge(AddItem, EnergyItem) err = player.HandleItem(AddItem, msg.ITEM_POP_LABEL_DecorateAdd.String()) // 增加道具 if err != nil { player.SendErrClienRes(&msg.ResDecorateAll{ diff --git a/src/server/game/mod/decorate/Decorate.go b/src/server/game/mod/decorate/Decorate.go index 15e91a71..5e41538a 100644 --- a/src/server/game/mod/decorate/Decorate.go +++ b/src/server/game/mod/decorate/Decorate.go @@ -48,6 +48,12 @@ func (d *Decorate) Decorate(areaId int, decorateId int) ([]*item.Item, error) { return Item, nil } +// 获取装饰增加体力 +func (d *Decorate) GetDecorateAddEnergy(cnt int) []*item.Item { + EnergyNum := decorateCfg.GetDecorateAddEnergy() + return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, EnergyNum*cnt)} +} + // 获取装饰消耗 func (d *Decorate) GetDecorateCostItem(AreaId, DecorateId int) ([]*item.Item, int) { Item := decorateCfg.GetStarCost(AreaId, DecorateId) From e8bce4c167eed233fae522cbd0329af060c097ab Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 3 Jul 2025 17:04:08 +0800 Subject: [PATCH 19/21] =?UTF-8?q?=E5=8D=A1=E7=89=8C=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/Player.go | 1 + 1 file changed, 1 insertion(+) diff --git a/src/server/game/Player.go b/src/server/game/Player.go index 605c967a..2c5bcd99 100644 --- a/src/server/game/Player.go +++ b/src/server/game/Player.go @@ -719,6 +719,7 @@ func (p *Player) LoginBackData() { p.PushClientRes(p.PlayMod.mod_list.Base.BackData()) p.PushClientRes(p.PlayMod.mod_list.Chess.BackData()) p.PushClientRes(p.PlayMod.mod_list.Order.BackData()) + p.PushClientRes(p.PlayMod.mod_list.Card.BackData()) p.PushClientRes(p.PlayMod.mod_list.Decorate.BackData()) p.PushClientRes(p.PlayMod.mod_list.DailyTask.BackData()) p.PushClientRes(p.PlayMod.mod_list.SevenLogin.BackData()) From a6493487c42debf5b8838b4ff18a29b3ff07172f Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 3 Jul 2025 17:18:19 +0800 Subject: [PATCH 20/21] =?UTF-8?q?=E6=97=A5=E5=BF=97=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/mod/card/Card.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/server/game/mod/card/Card.go b/src/server/game/mod/card/Card.go index ec1db442..7901c776 100644 --- a/src/server/game/mod/card/Card.go +++ b/src/server/game/mod/card/Card.go @@ -6,6 +6,7 @@ import ( cardCfg "server/conf/card" "server/game/mod/item" "server/msg" + "server/pkg/github.com/name5566/leaf/log" ) type CardMod struct { @@ -236,6 +237,10 @@ func (c *CardMod) BackData() *msg.ResCardInfo { } ExUid = append(ExUid, int64(k)) } + + if c.EndTime < GoUtil.Now() { + log.Debug("CardMod BackData EndTime < Now, reset card data") + } return &msg.ResCardInfo{ CardList: cardList, ExStar: int32(c.ExchangeStar), From 4972439ad6b1768df743a85da6087c01b7eb2011 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 3 Jul 2025 18:32:09 +0800 Subject: [PATCH 21/21] =?UTF-8?q?=E6=97=B6=E9=97=B4=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/conf/server.json | 2 +- src/server/game/FriendMgr.go | 3 +++ src/server/game/PlayerFunc.go | 1 + src/server/game/RegisterNetworkFunc.go | 27 +++++++++++++++++--------- 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/src/server/conf/server.json b/src/server/conf/server.json index 4e2d8c8e..fdb1d766 100644 --- a/src/server/conf/server.json +++ b/src/server/conf/server.json @@ -2,7 +2,7 @@ "AppID": 1, "LogLevel": "debug", "LogPath": "./log", - "TCPAddr": ":3605", + "TCPAddr": ":3601", "WSAddr": ":3566", "MySqlAddr": "127.0.0.1", "MySqlPort": "3306", diff --git a/src/server/game/FriendMgr.go b/src/server/game/FriendMgr.go index 81205d3a..25276251 100644 --- a/src/server/game/FriendMgr.go +++ b/src/server/game/FriendMgr.go @@ -178,6 +178,9 @@ func sendToPlayerOnline(m *msg.Msg) error { } func FriendMgrSend(m1 *msg.Msg) error { + if m1.SendT == 0 { + m1.SendT = GoUtil.Now() + } m := m1.Clone() ToServer := GoUtil.GetServerIdByUid(m.To) if ToServer != conf.Server.ServerID { diff --git a/src/server/game/PlayerFunc.go b/src/server/game/PlayerFunc.go index 0caf4a78..f588187b 100644 --- a/src/server/game/PlayerFunc.go +++ b/src/server/game/PlayerFunc.go @@ -863,6 +863,7 @@ func NotifyChampshipResult(Uid, Rank int) { Type: msg.HANDLE_TYPE_CHAMPSHIP_RESULT, From: Uid, To: v, + SendT: GoUtil.Now(), Extra: []int{Rank, GoUtil.GetServerOpenDay()}, } FriendMgrSend(Msg) diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index d57fb7db..6cec85d0 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -1912,6 +1912,7 @@ func ReqSelectCardExchange(player *Player, buf []byte) error { Type: MsqMod.HANDLE_TYPE_SELECT_EX_CARD, From: int(player.M_DwUin), To: CardInfo.AUid, + SendT: GoUtil.Now(), Extra: *CardInfo, } FriendMgrSend(m) @@ -1965,6 +1966,7 @@ func ReqAgreeCardExchange(player *Player, buf []byte) error { From: int(player.M_DwUin), To: CardInfo.BUid, Extra: *CardInfo, + SendT: GoUtil.Now(), } player.PushClientRes(CardMod.NotifyCard()) player.PushClientRes(CardMod.NotifyTimes()) @@ -2004,6 +2006,7 @@ func ReqRefuseCardSelect(player *Player, buf []byte) error { From: int(player.M_DwUin), To: CardInfo.AUid, Extra: *CardInfo, + SendT: GoUtil.Now(), } FriendMgrSend(m) player.PushClientRes(&msg.ResRefuseCardSelect{ @@ -2049,6 +2052,7 @@ func ReqRefuseCardExchange(player *Player, buf []byte) error { From: int(player.M_DwUin), To: CardInfo.BUid, Extra: *CardInfo, + SendT: GoUtil.Now(), } player.PushClientRes(CardMod.NotifyCard()) player.PushClientRes(CardMod.NotifyTimes()) @@ -2091,6 +2095,7 @@ func ReqRank(player *Player, buf []byte) error { From: int(player.M_DwUin), Type: MsqMod.HANDLE_TYPE_RANK_INFO, Extra: RankMsg{RankType: int(req.Type)}, + SendT: GoUtil.Now(), } RankInfo := G_GameLogicPtr.RankMgrCall(m).(*RankInfo) res := make(map[int32]*msg.ResPlayerSimple) @@ -2720,9 +2725,10 @@ func ReqSelfInvited(player *Player, buf []byte) error { req := &msg.ReqSelfInvited{} proto.Unmarshal(buf, req) G_GameLogicPtr.FriendMgrSend(&MsqMod.Msg{ - Type: MsqMod.HANDLE_TYPE_INVITE_FRIEND, - From: int(player.M_DwUin), - To: int(req.InviterId), + Type: MsqMod.HANDLE_TYPE_INVITE_FRIEND, + From: int(player.M_DwUin), + To: int(req.InviterId), + SendT: GoUtil.Now(), }) player.PushClientRes(&msg.ResSelfInvited{ ResultCode: 1, @@ -2780,9 +2786,10 @@ func ReqAutoAddInviteFriend(player *Player, buf []byte) error { ResultCode: 1, }) G_GameLogicPtr.FriendMgrSend(&MsqMod.Msg{ - From: int(player.M_DwUin), - To: Uid, - Type: MsqMod.HANDLE_TYPE_INVITE_ADD_FRIEND, + From: int(player.M_DwUin), + To: Uid, + Type: MsqMod.HANDLE_TYPE_INVITE_ADD_FRIEND, + SendT: GoUtil.Now(), }) PlayroomMod := player.PlayMod.getPlayroomMod() PlayroomMod.AddRoomPointAdd() @@ -2819,9 +2826,10 @@ func ReqAutoAddInviteFriend2(player *Player, buf []byte) error { ResultCode: 1, }) G_GameLogicPtr.FriendMgrSend(&MsqMod.Msg{ - From: int(player.M_DwUin), - To: Uid, - Type: MsqMod.HANDLE_TYPE_INVITE_ADD_FRIEND, + From: int(player.M_DwUin), + To: Uid, + Type: MsqMod.HANDLE_TYPE_INVITE_ADD_FRIEND, + SendT: GoUtil.Now(), }) PlayroomMod := player.PlayMod.getPlayroomMod() PlayroomMod.AddRoomPointAdd() @@ -3831,6 +3839,7 @@ func ReqFriendTreasureFilp(player *Player, buf []byte) error { To: int(Uid), Type: MsqMod.HANDLE_TYPE_TREASURE_RESULT, Extra: Items[0].Num, + SendT: GoUtil.Now(), }) }