From 59bbfcd710a48badbadcad87abd7a3fd22df9a0c Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 14 Jan 2026 10:09:36 +0800 Subject: [PATCH 01/20] =?UTF-8?q?=E6=97=A5=E5=BF=97=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/cluster/cluster_func.go | 2 +- src/server/game/message_mgr.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/server/cluster/cluster_func.go b/src/server/cluster/cluster_func.go index d9ccbd31..8be63217 100644 --- a/src/server/cluster/cluster_func.go +++ b/src/server/cluster/cluster_func.go @@ -150,7 +150,7 @@ func CallServerMsg(m *msg.Msg, serverId int) (*msg.Msg, error) { if backm == nil { return nil, fmt.Errorf("server %d not response", serverId) } - log.Debug("CallServerMsg reply %v", backm) + // log.Debug("CallServerMsg reply %v", backm) return backm, nil case <-timeout: return nil, fmt.Errorf("timeout waiting for server %d response", serverId) diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index b1427533..0f6edca9 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -339,7 +339,7 @@ func PlayerReplyMsgHandler(data *msg.Msg) (interface{}, error) { mergeCluster.GetCallbackChanMu().RUnlock() if ok { - log.Debug("reply message ") + // log.Debug("reply message ") chanel <- data } } @@ -414,7 +414,7 @@ func (m *MessageMgr) MessageHandleAsync(message *msg.Msg) error { // 兼容旧版本的函数 func MessageHandle(m *msg.Msg) error { - log.Debug("RecvMessage m %v", m) + // log.Debug("RecvMessage m %v", m) // 这里可以调用 MessageMgr 的处理方法 G_GameLogicPtr.MessageMgr.MessageHandleAsync(m) return nil From 497efd6e2d1493c9f6ae7d308c269d2cc62b9355 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 14 Jan 2026 10:09:54 +0800 Subject: [PATCH 02/20] =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E5=9B=9E=E6=94=B6?= =?UTF-8?q?=E9=82=AE=E4=BB=B6=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/activity_func.go | 27 +++++++++++++++++++++------ src/server/test/config_test.go | 2 +- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/server/game/activity_func.go b/src/server/game/activity_func.go index 78937420..28360eeb 100644 --- a/src/server/game/activity_func.go +++ b/src/server/game/activity_func.go @@ -1,12 +1,11 @@ package game import ( + "fmt" activityCfg "server/conf/activity" catnipCfg "server/conf/catnip" guesscolorCfg "server/conf/guess_color" - itemCfg "server/conf/item" languageCfg "server/conf/language" - mailCfg "server/conf/mail" miningCfg "server/conf/mining" passCfg "server/conf/pass" raceCfg "server/conf/race" @@ -92,12 +91,28 @@ func (p *Player) ActivityLogin() { // 发送活动邮件 func (p *Player) SendActivityMail(ItemId, ItemNum, ActivityId int, RewardItems []*item.Item) { MailMod := p.PlayMod.getMailMod() - ItemName, ItemNameEn := itemCfg.GetItemName(ItemId) - ActivityTitle, ActivityTitleEn := activityCfg.GetActivityTitle(ActivityId) - mt, mc, mt_en, mc_en := mailCfg.GetRecallMail(ActivityTitle, ActivityTitleEn, ItemName, ItemNameEn) + activity_title_key, mail_title_key, mail_content_key := activityCfg.GetActivityRecycleMail(ActivityId) + activity_title_zh := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, activity_title_key) + activity_title_en := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, activity_title_key) + activity_title_pt := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_PTBR, activity_title_key) + mt_zh := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, mail_title_key) + mc_zh := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, mail_content_key) + mt_en := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, mail_title_key) + mc_en := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, mail_content_key) + mt_pt := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_PTBR, activity_title_key) + mc_pt := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_PTBR, mail_content_key) Items := []*item.Item{item.NewItem(ItemId, ItemNum)} Items = append(Items, RewardItems...) - MailMod.Send(mt, "", mc, mt_en, "", mc_en, Items, mail.MAIL_TYPE_NORMAL) + MailMod.SendMail(&mail.MailStruct{ + Title: fmt.Sprintf(mt_zh, activity_title_zh), + Content: fmt.Sprintf(mc_zh, activity_title_zh), + TitleEn: fmt.Sprintf(mt_en, activity_title_en), + ContentEn: fmt.Sprintf(mc_en, activity_title_en), + TitlePtBr: fmt.Sprintf(mt_pt, activity_title_pt), + ContentPtBr: fmt.Sprintf(mc_pt, activity_title_pt), + Items: Items, + Type: mail.MAIL_TYPE_NORMAL, + }) } // 活动模块 零点更新 diff --git a/src/server/test/config_test.go b/src/server/test/config_test.go index 6b03f3e5..d789ebd0 100644 --- a/src/server/test/config_test.go +++ b/src/server/test/config_test.go @@ -15,7 +15,7 @@ func Test(t *testing.T) { } func TestGetActivityRecycleMail(t *testing.T) { - title, mailTitle, mailContent := activityCfg.GetActivityRecycleMail(1) + title, mailTitle, mailContent := activityCfg.GetActivityRecycleMail(7) fmt.Println("title:", title) fmt.Println("mailTitle:", mailTitle) fmt.Println("mailContent:", mailContent) From 1b0199dc157e159da532b92e5b2eadd0435a6599 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 14 Jan 2026 10:09:36 +0800 Subject: [PATCH 03/20] =?UTF-8?q?=E6=97=A5=E5=BF=97=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/cluster/cluster_func.go | 2 +- src/server/game/message_mgr.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/server/cluster/cluster_func.go b/src/server/cluster/cluster_func.go index d9ccbd31..8be63217 100644 --- a/src/server/cluster/cluster_func.go +++ b/src/server/cluster/cluster_func.go @@ -150,7 +150,7 @@ func CallServerMsg(m *msg.Msg, serverId int) (*msg.Msg, error) { if backm == nil { return nil, fmt.Errorf("server %d not response", serverId) } - log.Debug("CallServerMsg reply %v", backm) + // log.Debug("CallServerMsg reply %v", backm) return backm, nil case <-timeout: return nil, fmt.Errorf("timeout waiting for server %d response", serverId) diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index b1427533..0f6edca9 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -339,7 +339,7 @@ func PlayerReplyMsgHandler(data *msg.Msg) (interface{}, error) { mergeCluster.GetCallbackChanMu().RUnlock() if ok { - log.Debug("reply message ") + // log.Debug("reply message ") chanel <- data } } @@ -414,7 +414,7 @@ func (m *MessageMgr) MessageHandleAsync(message *msg.Msg) error { // 兼容旧版本的函数 func MessageHandle(m *msg.Msg) error { - log.Debug("RecvMessage m %v", m) + // log.Debug("RecvMessage m %v", m) // 这里可以调用 MessageMgr 的处理方法 G_GameLogicPtr.MessageMgr.MessageHandleAsync(m) return nil From 804ee3251d50c9920630ac77d3d501321713b411 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 14 Jan 2026 10:46:34 +0800 Subject: [PATCH 04/20] =?UTF-8?q?=E5=95=86=E5=BA=97=E7=9A=84=E4=BA=A7?= =?UTF-8?q?=E7=89=A9=E7=9B=B4=E8=B4=AD=E4=BB=B7=E6=A0=BC=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E4=B8=BA=EF=BC=9A=E4=BA=A7=E7=89=A9=E6=A0=87=E5=87=86=E9=93=BE?= =?UTF-8?q?=E8=99=9A=E6=8B=9F=E4=BD=93=E5=8A=9B/5=20=20(=E5=8E=9F=E6=9D=A5?= =?UTF-8?q?=E9=99=A4=E6=95=B0=E4=B8=BA18=EF=BC=89?= 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 f832fe30..5204e0a1 100644 --- a/src/server/game/mod/charge/Charge.go +++ b/src/server/game/mod/charge/Charge.go @@ -366,7 +366,7 @@ func (c *ChargeMod) InitChessShop(Emit []int) { ChessLv := mergeDataCfg.GetLvById(c) DynamicLv := mergeDataCfg.GetAdjust(v, p, 0) ChessLv += DynamicLv - Diamond := math.Round(math.Pow(2, float64(ChessLv-1)) / 18) + Diamond := math.Round(math.Pow(2, float64(ChessLv-1)) / 5) Diamond = max(1, Diamond) RandList = append(RandList, &Rand{ChessId: c, Diamond: int(Diamond)}) } From 87e8b9a261d1b41c25a4ad01ba33f9c44c87f7a0 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 14 Jan 2026 18:09:20 +0800 Subject: [PATCH 05/20] =?UTF-8?q?=E4=BB=A3=E7=A0=81=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 | 77 ---------------------------- 1 file changed, 77 deletions(-) diff --git a/src/server/game/mod/charge/Charge.go b/src/server/game/mod/charge/Charge.go index 5204e0a1..9c57859d 100644 --- a/src/server/game/mod/charge/Charge.go +++ b/src/server/game/mod/charge/Charge.go @@ -284,65 +284,6 @@ func (c *ChargeMod) FireFreeShop() ([]*item.Item, error) { return chargeCfg.GetFreeShopReward(c.FreeShop), nil } -// 返回数据 -// func (c *ChargeMod) BackData() *msg.ResCharge { -// SpecialShop := make(map[int32]*msg.ResSpecialShop) -// ChessShop := make(map[int32]*msg.ResChessShop) -// for k, v := range c.SpecialShop { -// SpecialShop[int32(k)] = &msg.ResSpecialShop{ -// Grade: int32(v.Grade), -// Count: int32(v.Count), -// } -// } - -// for k, v := range c.ChessShop { -// ChessShop[int32(k)] = &msg.ResChessShop{ -// Diamond: int32(v.Diamond), -// Count: int32(v.Count), -// ChessId: int32(v.Id), -// } -// } -// resWish := &msg.WishList{} -// if c.WishList != nil { -// resWish = &msg.WishList{ -// Id: int32(c.WishList.ItemId), -// Count: int32(c.WishList.Count), -// Uid: c.WishList.SendList, -// } -// } -// WeeklyDiscount := make(map[int32]*msg.WeeklyDiscountInfo) -// WeeklyDiscountInfo := chargeCfg.GetWeeklyInfoAll() -// if c.IsWeeklyDiscountDay() { -// for k, v := range WeeklyDiscountInfo { -// LimitNum := c.WeeklyDiscount[k] -// WeeklyDiscount[int32(k)] = &msg.WeeklyDiscountInfo{ -// Discount: int32(v.Discount), -// Count: int32(v.WeeklyLimit - LimitNum), -// Id: int32(k), -// } -// } -// } -// return &msg.ResCharge{ -// Charge: float32(c.Charge), -// Total: int32(c.Total), -// First: GoUtil.MapIntToSlice(c.EnergyShop), -// SpecialShop: SpecialShop, -// FreeShop: int32(c.FreeShop), -// ChessShop: ChessShop, -// Gift: GoUtil.MapIntToInt32(c.Gift), -// Ad: c.Ad, -// SpecialCharge: float32(c.SpecialCharge), -// SpecialChargeWeek: int32(GoUtil.FullWeeksSince(c.LastSpecialCharge)), -// TodayCharge: float32(c.TodayCharge), -// MonthCharge: float32(c.MonthCharge), -// Wish: resWish, -// AdEndTime: c.AdEndTime, -// WeeklyDiscount: WeeklyDiscount, -// PetWorkRemainTime: c.PetWorkTime, -// WeeklyEndTime: c.WeeklyEndTime, -// } -// } - func (c *ChargeMod) InitChessShop(Emit []int) { if len(Emit) == 0 { return @@ -371,21 +312,7 @@ func (c *ChargeMod) InitChessShop(Emit []int) { RandList = append(RandList, &Rand{ChessId: c, Diamond: int(Diamond)}) } } - //ColorList = append(ColorList, ProduceList...) } - // for _, v := range ColorList { - // ColorType := mergeDataCfg.GetColorType(v) - // r := make([]*Rand, 0) - // switch ColorType { - // case mergeDataCfg.CHESS_PRODUCT_MAIN_TYPE: - // r = getChessMainRand(v) - // case mergeDataCfg.CHESS_PRODUCT_SECONDARY_TYPE: - // r = getChessSecondaryRand(v) - // case mergeDataCfg.CHESS_PRODUCT_SUB_TYPE: - // r = getChessSubRand(v) - // } - // RandList = append(RandList, r...) - // } randList := make([]interface{}, len(RandList)) for k, v := range RandList { randList[k] = v @@ -450,10 +377,6 @@ func (c *ChargeMod) BuyChess(Chess int, IsWeeklyDiscount bool) ([]*item.Item, [] } func (c *ChargeMod) TriggerChargeUnlock(Lv int, Emit []int) { - //UnlockLv := chargeCfg.GetUnlockShopLv() - // if Lv != UnlockLv { - // return - // } c.InitChessShop(Emit) } From f063cd199cd9752788f6cef39891551f7c087271 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 15 Jan 2026 16:23:12 +0800 Subject: [PATCH 06/20] =?UTF-8?q?=E6=89=93=E7=82=B9=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/player_data.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/server/game/player_data.go b/src/server/game/player_data.go index 3a204b32..f0e3c1af 100644 --- a/src/server/game/player_data.go +++ b/src/server/game/player_data.go @@ -432,10 +432,11 @@ func (p *Player) Outline() { BaseMod.Outline(int(Cacumulative)) p.PlayMod.save() p.TeLog("logout", map[string]interface{}{ - "order_list": p.PlayMod.getOrderMod().GetOrderList(), - "after_level": p.PlayMod.getBaseMod().GetLevel(), - "tmp_diamond": p.PlayMod.getBaseMod().GetDiamond(), - "tmp_energy": p.PlayMod.getBaseMod().GetEnergy(), + "caccumulative": Cacumulative, + "order_list": p.PlayMod.getOrderMod().GetOrderList(), + "after_level": p.PlayMod.getBaseMod().GetLevel(), + "tmp_diamond": p.PlayMod.getBaseMod().GetDiamond(), + "tmp_energy": p.PlayMod.getBaseMod().GetEnergy(), }) p.UpdateUserInfo() } From a66c9757077e21e8a607f67d9b48f7c8df8d35bb Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 15 Jan 2026 16:23:12 +0800 Subject: [PATCH 07/20] =?UTF-8?q?=E6=89=93=E7=82=B9=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/player_data.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/server/game/player_data.go b/src/server/game/player_data.go index 3a204b32..f0e3c1af 100644 --- a/src/server/game/player_data.go +++ b/src/server/game/player_data.go @@ -432,10 +432,11 @@ func (p *Player) Outline() { BaseMod.Outline(int(Cacumulative)) p.PlayMod.save() p.TeLog("logout", map[string]interface{}{ - "order_list": p.PlayMod.getOrderMod().GetOrderList(), - "after_level": p.PlayMod.getBaseMod().GetLevel(), - "tmp_diamond": p.PlayMod.getBaseMod().GetDiamond(), - "tmp_energy": p.PlayMod.getBaseMod().GetEnergy(), + "caccumulative": Cacumulative, + "order_list": p.PlayMod.getOrderMod().GetOrderList(), + "after_level": p.PlayMod.getBaseMod().GetLevel(), + "tmp_diamond": p.PlayMod.getBaseMod().GetDiamond(), + "tmp_energy": p.PlayMod.getBaseMod().GetEnergy(), }) p.UpdateUserInfo() } From 48aae65afdb4018e7dcce48e891938224e5e050e Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 15 Jan 2026 18:45:52 +0800 Subject: [PATCH 08/20] =?UTF-8?q?=E6=97=A5=E5=BF=97=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../game/mod/friend_treasure.go/friend_treasure.go | 2 +- src/server/game_util/feishu.go | 9 ++++----- src/server/test/config_test.go | 2 ++ 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/server/game/mod/friend_treasure.go/friend_treasure.go b/src/server/game/mod/friend_treasure.go/friend_treasure.go index e5c07fbb..8bc66881 100644 --- a/src/server/game/mod/friend_treasure.go/friend_treasure.go +++ b/src/server/game/mod/friend_treasure.go/friend_treasure.go @@ -62,7 +62,7 @@ func (f *FriendTreasureMod) Flip(Pos int) ([]*item.Item, int64, error) { } f.Shift++ Info := f.List[Pos] - log.Debug("pos:%v, info:%v", Pos, Info) + //log.Debug("pos:%v, info:%v", Pos, Info) if Info.Uid != 0 { log.Debug("uid:%v", Info.Uid) f.Uids = append(f.Uids, Info.Uid) diff --git a/src/server/game_util/feishu.go b/src/server/game_util/feishu.go index 32aecfe2..66732081 100644 --- a/src/server/game_util/feishu.go +++ b/src/server/game_util/feishu.go @@ -11,7 +11,7 @@ import ( ) const ( - FEISHU_WEBHOOK = "https://gadmin.bywaystudios.com/api/feishu/notify" + FEISHU_WEBHOOK = "https://gadmin.bywaystudios.com/api/alibaba/game/notify" FEISHU_ORDER = "https://gadmin.bywaystudios.com/api/feishu/notify/order" ) @@ -21,10 +21,9 @@ func SendFeishuFatal(PlayerId int, FuncName string, msg string) error { stack := make([]byte, 1024) length := runtime.Stack(stack, false) payload := map[string]interface{}{ - "notify_msg": fmt.Sprintf("游戏接口出错 %s:%d", conf.Server.GameName, PlayerId), - "host": FuncName, - "event_name": fmt.Sprintf("%s\nStack trace:\n%s", msg, stack[:length]), - "severity": "High", + "notify_msg": fmt.Sprintf("游戏接口出错 %s:%d[炸弹][炸弹][炸弹]", conf.Server.GameName, PlayerId), + "func_name": FuncName, + "stack": fmt.Sprintf("%s\nStack trace:\n%s", msg, stack[:length]), "alarm_time": time.Unix(time.Now().Unix(), 0).Format("2006-01-02 15:04:05"), } diff --git a/src/server/test/config_test.go b/src/server/test/config_test.go index d789ebd0..7e6d5c46 100644 --- a/src/server/test/config_test.go +++ b/src/server/test/config_test.go @@ -5,11 +5,13 @@ import ( activityCfg "server/conf/activity" languageCfg "server/conf/language" userCfg "server/conf/user" + GoUtil "server/game_util" "server/msg" "testing" ) func Test(t *testing.T) { + GoUtil.SendFeishuFatal(0, "Test", "error") i := userCfg.GetEnergyMulByLv(1) fmt.Println(i) } From 6dfb61ada92feb1d5bf266de5d05f70fef04a9dd Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 16 Jan 2026 10:24:43 +0800 Subject: [PATCH 09/20] =?UTF-8?q?=E8=A3=85=E9=A5=B0=E6=AD=A5=E9=AA=A4?= =?UTF-8?q?=E6=94=B9=E7=89=88=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_handler.go | 31 ++++++++++++++++++++++++++++++ src/server/game/player_data.go | 2 +- src/server/test/fix_test.go | 21 ++++++++++++++++++++ 3 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 src/server/test/fix_test.go diff --git a/src/server/game/message_handler.go b/src/server/game/message_handler.go index 598a8442..da2bd2e4 100644 --- a/src/server/game/message_handler.go +++ b/src/server/game/message_handler.go @@ -15,6 +15,7 @@ import ( userCfg "server/conf/user" "server/game/mod/activity" "server/game/mod/card" + "server/game/mod/decorate" "server/game/mod/friend" "server/game/mod/item" limitedTimeEvent "server/game/mod/limited_time_event" @@ -849,6 +850,36 @@ func (player *Player) FixOrderBug() { } } +func (player *Player) FixDecorate() { + DecorateMod := player.PlayMod.getDecorateMod() + area_id := DecorateMod.GetAreaId() + progress := DecorateMod.GetProgress() + if GoUtil.InArray(area_id, []int{3, 4, 5}) && progress >= 20 { + items := []*item.Item{} + for i := progress + 1; i <= 25; i++ { + DecorateItems := decorateCfg.GetProgressReward(area_id, i) + items = append(items, DecorateItems...) + } + MailMod := player.PlayMod.getMailMod() + MailMod.SendMail(&mail.MailStruct{ + Title: "房间装饰升级奖励", + Content: "恭喜您成功升级房间装饰,获得以下奖励!", + TitleEn: "Room Decoration Upgrade Reward", + ContentEn: "Congratulations on successfully upgrading your room decoration and receiving the following rewards!", + Items: items, + Type: mail.MAIL_TYPE_NORMAL, + }) + DecorateMod.AreaId = area_id + 1 + DecorateMod.FinishList = make(map[int]struct{}) + DecorateMod.Progress = 0 + DecorateMod.PartCost = make(map[int]*decorate.PartCostInfo) + DecorateMod.PartClassPool = []int{} + DecorateMod.PartPool = make(map[int]int) + DecorateMod.InitData() + player.PushClientRes(DecorateMod.BackData()) + } +} + func (player *Player) CreatePetOrder() { BaseMod := player.PlayMod.getBaseMod() ChessMod := player.PlayMod.getChessMod() diff --git a/src/server/game/player_data.go b/src/server/game/player_data.go index f0e3c1af..b2a1f377 100644 --- a/src/server/game/player_data.go +++ b/src/server/game/player_data.go @@ -259,7 +259,7 @@ func (p *Player) InitPlayer(UserName string) error { ChessMod := p.PlayMod.getChessMod() ChargeMod.FixBug(ChessMod.GetEmitList()) p.FixOrderBug() - + p.FixDecorate() return nil } diff --git a/src/server/test/fix_test.go b/src/server/test/fix_test.go new file mode 100644 index 00000000..ca9709f9 --- /dev/null +++ b/src/server/test/fix_test.go @@ -0,0 +1,21 @@ +package test + +import ( + "server/game" + "testing" +) + +func TestFixDecorate(t *testing.T) { + // Initialize player + p := new(game.Player) + p.FixDecorate() + + // + p.InitPlayer("aaa001") + p.FixDecorate() + + DecorateMod := p.GetDecorateMod() + DecorateMod.AreaId = 3 + DecorateMod.Progress = 22 + p.FixDecorate() +} From afd9c276f3f884e2126152a95d06304b4e49e8aa Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 16 Jan 2026 10:33:39 +0800 Subject: [PATCH 10/20] =?UTF-8?q?=E6=97=A5=E5=BF=97=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_mgr.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index 0f6edca9..4dc21d3b 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -634,15 +634,14 @@ func LoggingMiddleware() MessageMiddleware { return func(next MessageHandlerFunc) MessageHandlerFunc { return func(message *msg.Msg) (interface{}, error) { start := time.Now() - log.Debug("[Middleware] Processing message : %v, time: %v", message, start) - + // log.Debug("[Middleware] Processing message : %v, time: %v", message, start) result, err := next(message) duration := time.Since(start) if err != nil { - log.Error("[Middleware] Message : %v failed, duration: %v, error: %v", message, duration, err) + log.Error("[Middleware] Message handle type: %d; type: %d failed, duration: %v, error: %v", message.HandleType, message.Type, duration, err) } else { - log.Debug("[Middleware] Message : %v success, duration: %v", message, duration) + log.Debug("[Middleware] Message handle type: %d; type: %d success, duration: %v", message.HandleType, message.Type, duration) } return result, err From 972284868b0ed60b115070fba07194bff18ef551 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 15 Jan 2026 18:45:52 +0800 Subject: [PATCH 12/20] =?UTF-8?q?=E6=97=A5=E5=BF=97=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../game/mod/friend_treasure.go/friend_treasure.go | 2 +- src/server/game_util/feishu.go | 9 ++++----- src/server/test/config_test.go | 2 ++ 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/server/game/mod/friend_treasure.go/friend_treasure.go b/src/server/game/mod/friend_treasure.go/friend_treasure.go index e5c07fbb..8bc66881 100644 --- a/src/server/game/mod/friend_treasure.go/friend_treasure.go +++ b/src/server/game/mod/friend_treasure.go/friend_treasure.go @@ -62,7 +62,7 @@ func (f *FriendTreasureMod) Flip(Pos int) ([]*item.Item, int64, error) { } f.Shift++ Info := f.List[Pos] - log.Debug("pos:%v, info:%v", Pos, Info) + //log.Debug("pos:%v, info:%v", Pos, Info) if Info.Uid != 0 { log.Debug("uid:%v", Info.Uid) f.Uids = append(f.Uids, Info.Uid) diff --git a/src/server/game_util/feishu.go b/src/server/game_util/feishu.go index 32aecfe2..66732081 100644 --- a/src/server/game_util/feishu.go +++ b/src/server/game_util/feishu.go @@ -11,7 +11,7 @@ import ( ) const ( - FEISHU_WEBHOOK = "https://gadmin.bywaystudios.com/api/feishu/notify" + FEISHU_WEBHOOK = "https://gadmin.bywaystudios.com/api/alibaba/game/notify" FEISHU_ORDER = "https://gadmin.bywaystudios.com/api/feishu/notify/order" ) @@ -21,10 +21,9 @@ func SendFeishuFatal(PlayerId int, FuncName string, msg string) error { stack := make([]byte, 1024) length := runtime.Stack(stack, false) payload := map[string]interface{}{ - "notify_msg": fmt.Sprintf("游戏接口出错 %s:%d", conf.Server.GameName, PlayerId), - "host": FuncName, - "event_name": fmt.Sprintf("%s\nStack trace:\n%s", msg, stack[:length]), - "severity": "High", + "notify_msg": fmt.Sprintf("游戏接口出错 %s:%d[炸弹][炸弹][炸弹]", conf.Server.GameName, PlayerId), + "func_name": FuncName, + "stack": fmt.Sprintf("%s\nStack trace:\n%s", msg, stack[:length]), "alarm_time": time.Unix(time.Now().Unix(), 0).Format("2006-01-02 15:04:05"), } diff --git a/src/server/test/config_test.go b/src/server/test/config_test.go index 6b03f3e5..a979ae06 100644 --- a/src/server/test/config_test.go +++ b/src/server/test/config_test.go @@ -5,11 +5,13 @@ import ( activityCfg "server/conf/activity" languageCfg "server/conf/language" userCfg "server/conf/user" + GoUtil "server/game_util" "server/msg" "testing" ) func Test(t *testing.T) { + GoUtil.SendFeishuFatal(0, "Test", "error") i := userCfg.GetEnergyMulByLv(1) fmt.Println(i) } From 6c114608cdaf7165c6433a901bf256a73677a12e Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 16 Jan 2026 10:33:39 +0800 Subject: [PATCH 13/20] =?UTF-8?q?=E6=97=A5=E5=BF=97=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_mgr.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index 0f6edca9..4dc21d3b 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -634,15 +634,14 @@ func LoggingMiddleware() MessageMiddleware { return func(next MessageHandlerFunc) MessageHandlerFunc { return func(message *msg.Msg) (interface{}, error) { start := time.Now() - log.Debug("[Middleware] Processing message : %v, time: %v", message, start) - + // log.Debug("[Middleware] Processing message : %v, time: %v", message, start) result, err := next(message) duration := time.Since(start) if err != nil { - log.Error("[Middleware] Message : %v failed, duration: %v, error: %v", message, duration, err) + log.Error("[Middleware] Message handle type: %d; type: %d failed, duration: %v, error: %v", message.HandleType, message.Type, duration, err) } else { - log.Debug("[Middleware] Message : %v success, duration: %v", message, duration) + log.Debug("[Middleware] Message handle type: %d; type: %d success, duration: %v", message.HandleType, message.Type, duration) } return result, err From 0a48a583173d2c3c192a94cfb32884f1d0b87f08 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 16 Jan 2026 11:01:38 +0800 Subject: [PATCH 14/20] =?UTF-8?q?=E8=A3=85=E9=A5=B0=E6=AD=A5=E9=AA=A4?= =?UTF-8?q?=E6=94=B9=E7=89=88=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_handler.go | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/server/game/message_handler.go b/src/server/game/message_handler.go index da2bd2e4..c5264b7d 100644 --- a/src/server/game/message_handler.go +++ b/src/server/game/message_handler.go @@ -857,8 +857,21 @@ func (player *Player) FixDecorate() { if GoUtil.InArray(area_id, []int{3, 4, 5}) && progress >= 20 { items := []*item.Item{} for i := progress + 1; i <= 25; i++ { - DecorateItems := decorateCfg.GetProgressReward(area_id, i) - items = append(items, DecorateItems...) + if area_id == 3 && i == 25 { + items = append(items, item.NewItem(item.ITEM_ENERGY_ID, 50)) + items = append(items, item.NewItem(101449, 1)) + } + if area_id == 4 && i == 22 { + items = append(items, item.NewItem(906, 1)) + } + if area_id == 4 && i == 25 { + items = append(items, item.NewItem(item.ITEM_ENERGY_ID, 50)) + items = append(items, item.NewItem(101452, 1)) + } + if area_id == 5 && i == 25 { + items = append(items, item.NewItem(item.ITEM_ENERGY_ID, 50)) + items = append(items, item.NewItem(101450, 1)) + } } MailMod := player.PlayMod.getMailMod() MailMod.SendMail(&mail.MailStruct{ From 19881f2d09075b5f2153b5421285f5b08e6569d9 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 16 Jan 2026 11:32:20 +0800 Subject: [PATCH 15/20] =?UTF-8?q?gm=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_handler.go | 1 + src/server/test/fix_test.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/server/game/gm_handler.go b/src/server/game/gm_handler.go index 2595beca..88126e6b 100644 --- a/src/server/game/gm_handler.go +++ b/src/server/game/gm_handler.go @@ -377,6 +377,7 @@ func ReqGmCommand_(player *Player, Command string) error { player.PlayMod.ClearData(player) case "logout": player.PushAndSendClienRes(&msg.ForceKickOut{}) + player.ClearData() case "resetFriend": FriendMod := player.PlayMod.getFriendMod() FriendMod.FriendList = make(map[int]struct{}) diff --git a/src/server/test/fix_test.go b/src/server/test/fix_test.go index ca9709f9..4898481f 100644 --- a/src/server/test/fix_test.go +++ b/src/server/test/fix_test.go @@ -11,7 +11,7 @@ func TestFixDecorate(t *testing.T) { p.FixDecorate() // - p.InitPlayer("aaa001") + p.InitPlayer("202601K111") p.FixDecorate() DecorateMod := p.GetDecorateMod() From bf1b96fbb56da4dda9787205e14448a41526be6c Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 16 Jan 2026 11:34:33 +0800 Subject: [PATCH 16/20] =?UTF-8?q?=E8=A3=85=E9=A5=B0=E6=AD=A5=E9=AA=A4?= =?UTF-8?q?=E6=94=B9=E7=89=88=E4=BC=98=E5=8C=96=20=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_handler.go | 1 + 1 file changed, 1 insertion(+) diff --git a/src/server/game/message_handler.go b/src/server/game/message_handler.go index c5264b7d..abbea871 100644 --- a/src/server/game/message_handler.go +++ b/src/server/game/message_handler.go @@ -889,6 +889,7 @@ func (player *Player) FixDecorate() { DecorateMod.PartClassPool = []int{} DecorateMod.PartPool = make(map[int]int) DecorateMod.InitData() + log.Debug("player id : %d fix decorate old area id : %d old progress : %d", player.M_DwUin, area_id, progress) player.PushClientRes(DecorateMod.BackData()) } } From 1ce0f639cec2b8fbe7f3b71440dde7b6b16c03f5 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 16 Jan 2026 12:04:40 +0800 Subject: [PATCH 17/20] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E7=AB=AF=E9=87=8D?= =?UTF-8?q?=E5=90=AF=E5=A2=9E=E5=8A=A0=E8=B8=A2=E5=87=BA=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/GameLogic.go | 1 + 1 file changed, 1 insertion(+) diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index 09111df9..98c39aab 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -922,6 +922,7 @@ func Destroy() { log.Debug("服务器下线") if G_GameLogicPtr != nil { G_GameLogicPtr.M_Players.Range(func(k, v interface{}) bool { + v.(*Player).PushAndSendClienRes(&msg.ForceKickOut{}) v.(*Player).ClearData() log.Debug("palyer %d 断开连接 写入数据", k) return true From deb90ba749cebf3af2cb977da2b8e3fc288be5fd Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 16 Jan 2026 12:29:42 +0800 Subject: [PATCH 18/20] =?UTF-8?q?=E8=A3=85=E9=A5=B0=E6=AD=A5=E9=AA=A4?= =?UTF-8?q?=E6=94=B9=E7=89=88=E4=BC=98=E5=8C=96-=E9=82=AE=E4=BB=B6?= =?UTF-8?q?=E6=96=87=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_handler.go | 33 ++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/src/server/game/message_handler.go b/src/server/game/message_handler.go index abbea871..c763f57f 100644 --- a/src/server/game/message_handler.go +++ b/src/server/game/message_handler.go @@ -873,14 +873,35 @@ func (player *Player) FixDecorate() { items = append(items, item.NewItem(101450, 1)) } } + title := "Game Update & Thank-You Gift" + content := `Hi there! + +Thanks so much for your continued support! +We've made a few updates to the game—and as a small thank-you, we've prepared a special gift for you. + +Happy merging! + +Meowment Team` + title_ptbr := "Atualização do Jogo e Presente de Agradecimento" + content_ptbr := `Olá! + +Muito obrigado pelo seu apoio contínuo! +Fizemos algumas atualizações no jogo — e como forma de agradecimento, preparamos um presente especial para você. + +Boa diversão nas combinações! + +Equipe Meowment ` + MailMod := player.PlayMod.getMailMod() MailMod.SendMail(&mail.MailStruct{ - Title: "房间装饰升级奖励", - Content: "恭喜您成功升级房间装饰,获得以下奖励!", - TitleEn: "Room Decoration Upgrade Reward", - ContentEn: "Congratulations on successfully upgrading your room decoration and receiving the following rewards!", - Items: items, - Type: mail.MAIL_TYPE_NORMAL, + Title: title, + Content: content, + TitleEn: title, + ContentEn: content, + TitlePtBr: title_ptbr, + ContentPtBr: content_ptbr, + Items: items, + Type: mail.MAIL_TYPE_NORMAL, }) DecorateMod.AreaId = area_id + 1 DecorateMod.FinishList = make(map[int]struct{}) From bed748319ffdd9abb5dc5d4e5bec70cd11913af3 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 16 Jan 2026 18:53:23 +0800 Subject: [PATCH 19/20] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/GameLogic.go | 13 ++++++------- src/server/game/external.go | 5 +---- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index 98c39aab..ba5d0e72 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -213,13 +213,12 @@ func (ad *GameLogic) NewAccountInsertDataToDB() bool { Uid: insertId, EventName: "register", }) - G_GameLogicPtr.AddLog(&Log{ - Uid: insertId, - EventName: "register_info", - Param: map[string]interface{}{ - "username": ad.Db_AccountInfo.UserName, - }, - }) + // 创建玩家日志 + player := new(Player) + BaseMod := player.PlayMod.getBaseMod() + BaseMod.Account = ad.Db_AccountInfo.UserName + player.TeLog("register", nil) + return true } diff --git a/src/server/game/external.go b/src/server/game/external.go index 8b4b1f98..7e7c3709 100644 --- a/src/server/game/external.go +++ b/src/server/game/external.go @@ -182,10 +182,7 @@ func HandleClientReq(args []interface{}) { p.(*Player).PlayMod.getBaseMod().DiviceId = detail.Device //加锁 p.(*Player).PushClientRes(ResLogin) p.(*Player).LoginBackData() - G_GameLogicPtr.AddLog(&Log{ - Uid: p.(*Player).M_DwUin, - EventName: "Login_log", - }) + p.(*Player).TeLog("Login_log", nil) } p.(*Player).ProcessTrigger() case "ReqServerTime": // 获取服务器时间 From 7ed6c36052605d21d74fb1214cba6c0d55647293 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 16 Jan 2026 20:59:10 +0800 Subject: [PATCH 20/20] =?UTF-8?q?=E6=97=A5=E5=BF=97=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_data.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/server/game/player_data.go b/src/server/game/player_data.go index b2a1f377..9cc3bda4 100644 --- a/src/server/game/player_data.go +++ b/src/server/game/player_data.go @@ -1053,7 +1053,10 @@ func (p *Player) TeLog(Type string, Param map[string]interface{}) { Param: Param, }) agent := p.GetAgent() - if agent != nil { + if Param == nil { + Param = make(map[string]interface{}) + } + if agent != nil && Param != nil { Param["Ip"] = agent.RemoteAddr().String() } //Param["#zone_offset"] = -5