From 8b236925c26dc87b30176701f31fb809b1700e54 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 12 Feb 2026 10:25:41 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E8=83=8C=E5=8C=85=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/chess/Chess.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/server/game/mod/chess/Chess.go b/src/server/game/mod/chess/Chess.go index 85a1073b..1b9e5bbd 100644 --- a/src/server/game/mod/chess/Chess.go +++ b/src/server/game/mod/chess/Chess.go @@ -530,9 +530,9 @@ func (cb *ChessBorad) PutChessInBag(Grid, ChessId, EmitId int) error { return err } EmitColorId := mergeDataCfg.GetEmitId(ChessId) - ChessLv := mergeDataCfg.GetLvById(ChessId) - ChessMaxLv := mergeDataCfg.GetMaxLvById(ChessId) - if ChessLv == ChessMaxLv && cb.Retire[EmitColorId] == 3 { // 退役发射器 加入荣誉室 + // ChessLv := mergeDataCfg.GetLvById(ChessId) + // ChessMaxLv := mergeDataCfg.GetMaxLvById(ChessId) + if Grid == 0 && cb.RetireReward[EmitColorId] { // 背包id为0且发射器已退役奖励已领取 直接放入荣誉室 cb.AddHonor(ChessId) return nil } From 97f8e3b96d5aff7f371766411e0f4771ec2f5fb1 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 12 Feb 2026 10:26:00 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E6=89=93=E7=82=B9=E6=97=A5=E5=BF=97?= =?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/activity/activity.go | 6 +-- src/server/game/mod/activity/activity_gift.go | 2 +- src/server/game/mod/avatar/Avatar.go | 6 ++- src/server/game/mod/card/Card.go | 43 ++++++++----------- 4 files changed, 26 insertions(+), 31 deletions(-) diff --git a/src/server/game/mod/activity/activity.go b/src/server/game/mod/activity/activity.go index 93eaf692..ec378421 100644 --- a/src/server/game/mod/activity/activity.go +++ b/src/server/game/mod/activity/activity.go @@ -49,7 +49,7 @@ func init() { func (a *Activity) InitData() { if a.Var == nil { - a.Var = make(map[int]interface{}) + a.Var = make(map[int]interface{}, 8) } } @@ -105,10 +105,10 @@ func (a *Activity) GetActivityStatus(data *gamedata.ActivityData) int { func (a *Activity) GetReward(ActId int) ([]*item.Item, error) { Var := a.getGIftVar(ActId) if !Var.Buy { - return nil, fmt.Errorf("not buy") + return nil, fmt.Errorf("ActId:%d not buy", ActId) } if Var.Reward { - return nil, fmt.Errorf("reward already get") + return nil, fmt.Errorf("ActId:%d reward already get", ActId) } Var.Reward = true Var.RewardTime = GoUtil.Now() diff --git a/src/server/game/mod/activity/activity_gift.go b/src/server/game/mod/activity/activity_gift.go index 1b173dd7..5361703b 100644 --- a/src/server/game/mod/activity/activity_gift.go +++ b/src/server/game/mod/activity/activity_gift.go @@ -11,7 +11,7 @@ func (a *Activity) Fire(Id int) ([]*item.Item, error) { AId := activityCfg.GetActivityGiftId(Id) Var := a.getGIftVar(AId) if Var.Buy { - return nil, fmt.Errorf("已购买") + return nil, fmt.Errorf("Id%d已购买", Id) } Var.Buy = true Var.Time = GoUtil.Now() diff --git a/src/server/game/mod/avatar/Avatar.go b/src/server/game/mod/avatar/Avatar.go index 3083c196..b0d35108 100644 --- a/src/server/game/mod/avatar/Avatar.go +++ b/src/server/game/mod/avatar/Avatar.go @@ -10,6 +10,7 @@ import ( type AvatarMod struct { List map[int]*Avatar SetId int + Init bool } type Avatar struct { @@ -27,7 +28,8 @@ func (f *AvatarMod) Login(RegisterTime int64) { } func (a *AvatarMod) InitData() { now := GoUtil.Now() - if a.List == nil { + if a.List == nil || !a.Init { + a.Init = true InitId := avatarCfg.GetInitList() a.List = make(map[int]*Avatar, len(InitId)) for _, v := range InitId { @@ -44,7 +46,7 @@ func (a *AvatarMod) GetAvatarNum() int { func (a *AvatarMod) SetAvatar(Id int) error { if _, ok := a.List[Id]; !ok { - return fmt.Errorf("avatar id not exist") + return fmt.Errorf("avatar id:%d not exist", Id) } a.SetId = Id return nil diff --git a/src/server/game/mod/card/Card.go b/src/server/game/mod/card/Card.go index 80d96c8b..d3c8b098 100644 --- a/src/server/game/mod/card/Card.go +++ b/src/server/game/mod/card/Card.go @@ -174,14 +174,14 @@ func (c *CardMod) OpenCardPack(Star int) ([]int, error) { newCard := make([]int, 0) cnt := cardCfg.GetPackRewardCnt(Star) if cnt == 0 { - return newCard, fmt.Errorf("open card pack cfg err") + return newCard, fmt.Errorf("open star %d card pack cfg err cnt == 0", Star) } mustHaveStar := cardCfg.GetPackMustHave(Star) if mustHaveStar != 0 { cardId = randCard(c.Round, mustHaveStar, 0, newCard) if cardId == 0 { - return newCard, fmt.Errorf("OpenCardPack card id err") + return newCard, fmt.Errorf("OpenCardPack card id err, mustHaveStar: %d", mustHaveStar) } newCard = append(newCard, cardId) c.AddCard(cardId) @@ -206,7 +206,7 @@ func (c *CardMod) OpenCardPack(Star int) ([]int, error) { cardId = randCard(c.Round, CardStar, 0, newCard) } if cardId == 0 { - return newCard, fmt.Errorf("OpenCardPack card id err") + return newCard, fmt.Errorf("OpenCardPack card id err, CardStar: %d", CardStar) } newCard = append(newCard, cardId) c.AddCard(cardId) @@ -265,7 +265,7 @@ func (c *CardMod) BackData() *msg.ResCardInfo { func (c *CardMod) GetCollectReward(Id int) ([]*item.Item, int, error) { _, ok := c.CollectReward[Id] if ok { - return nil, 0, fmt.Errorf("CollectReward already collect") + return nil, 0, fmt.Errorf("CollectReward id:%d already collect", Id) } cardList := cardCfg.GetCardListByColor(Id) for _, v := range cardList { @@ -282,11 +282,11 @@ func (c *CardMod) GetCollectReward(Id int) ([]*item.Item, int, error) { // 兑换星星奖励 func (c *CardMod) ExStarReward(Id int) ([]*item.Item, int, error) { if c.ExchangeStar < Id { - return nil, 0, fmt.Errorf("ExStarReward star not enough") + return nil, 0, fmt.Errorf("ExStarReward star not enough, Id: %d", Id) } CostStar, itemList := cardCfg.GetExchangeCfg(Id) if c.ExchangeStar < CostStar { - return nil, 0, fmt.Errorf("ExStarReward star not enough") + return nil, 0, fmt.Errorf("ExStarReward star not enough, Id: %d", Id) } c.ExchangeStar -= CostStar c.Cache.ExStar -= CostStar @@ -302,7 +302,7 @@ func (c *CardMod) AllCollectReward() ([]*item.Item, []*item.Item, error) { for _, v := range AllCardId { count, ok := c.CardList[v] if !ok || count <= 0 { - return nil, nil, fmt.Errorf("card not fully collect") + return nil, nil, fmt.Errorf("card not fully collect for all collect reward, card id : %d", v) } } c.AllCollect = 0 @@ -322,10 +322,6 @@ func (c *CardMod) AllCollectReward() ([]*item.Item, []*item.Item, error) { if v == HANDBOOK_STATUS_GET { continue } - // Round := cardCfg.GetRoundById(k) - // if Round < c.Round { - // continue - // } HandbookItemNum += cardCfg.GetStarById(k) } c.Round++ @@ -356,7 +352,7 @@ func (c *CardMod) SubCard(id int) error { c.Cache.Card[id]-- return nil } - return fmt.Errorf("SubCard card not enough") + return fmt.Errorf("SubCard card not enough, id: %d", id) } func (c *CardMod) RequestCard() error { @@ -371,7 +367,7 @@ func (c *CardMod) RequestCard() error { func (c *CardMod) AddRequestCard(CardInfo *CardInfo) error { _, ok := c.ReqFriend[CardInfo.BUid] if ok { - return fmt.Errorf("AddRequestCard already request") + return fmt.Errorf("AddRequestCard already request card to this friend, BUid: %d", CardInfo.BUid) } c.ReqFriend[CardInfo.BUid] = CardInfo return nil @@ -380,7 +376,7 @@ func (c *CardMod) AddRequestCard(CardInfo *CardInfo) error { func (c *CardMod) DelRequestCard(Uid int) (map[int]*CardInfo, error) { ci, ok := c.ReqFriend[Uid] if !ok { - return nil, fmt.Errorf("DelRequestCard not find request card") + return nil, fmt.Errorf("DelRequestCard not find request card, Uid: %d", Uid) } r := make(map[int]*CardInfo) for k, v := range c.ReqFriend { @@ -427,16 +423,13 @@ func (c *CardMod) ExchangeCard(From, To, CardId int) (*CardInfo, error) { Id := GoUtil.CreateCardId(From, To, CardId) err := c.SubCard(CardId) if c.ExTimes <= 0 { - return nil, fmt.Errorf("ExchangeCard times not enough") + return nil, fmt.Errorf("ExchangeCard times not enough, CardId: %d", CardId) } c.ExTimes-- if err != nil { return nil, err } - // _, ok := c.ExCard[To] - // if ok { - // return nil, fmt.Errorf("ExchangeCard already exchange") - // } + CardInfo := &CardInfo{ Id: Id, AUid: From, @@ -456,7 +449,7 @@ func (c *CardMod) SendCard(From, To, CardId int) (*CardInfo, error) { Id := GoUtil.CreateCardId(From, To, CardId) err := c.SubCard(CardId) if c.ExTimes <= 0 { - return nil, fmt.Errorf("SendCard times not enough") + return nil, fmt.Errorf("SendCard times not enough, CardId: %d", CardId) } c.ExTimes-- if err != nil { @@ -485,10 +478,10 @@ func (c *CardMod) AddMasterCard(Id int) { func (c *CardMod) MasterCardEx(Id, CardId int) error { if c.AllCard[Id] <= 0 { - return fmt.Errorf("MasterCardEx card not enough") + return fmt.Errorf("MasterCardEx card not enough, Id: %d", Id) } if Id == MASTER_CARD_NORMAL && cardCfg.CheckCardIsGold(CardId) { - return fmt.Errorf("MasterCardEx card type err") + return fmt.Errorf("MasterCardEx card type err, Id: %d, CardId: %d", Id, CardId) } c.AllCard[Id]-- c.Cache.Master[Id]-- @@ -567,14 +560,14 @@ func (c *CardMod) AddGoldTimes() { func (c *CardMod) GetHandbookReward(CardId int) ([]*item.Item, error) { if v, ok := c.Handbook[CardId]; ok { if v == HANDBOOK_STATUS_GET { - return nil, fmt.Errorf("GetHandbookReward already get") + return nil, fmt.Errorf("GetHandbookReward already get reward, CardId: %d", CardId) } Star := cardCfg.GetStarById(CardId) c.Handbook[CardId] = HANDBOOK_STATUS_GET c.Cache.Handbook[CardId] = HANDBOOK_STATUS_GET return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, Star)}, nil } - return nil, fmt.Errorf("GetHandbookReward not find card") + return nil, fmt.Errorf("GetHandbookReward not find card in handbook, CardId: %d", CardId) } func (c *CardMod) RandCard(Star int) int { @@ -583,7 +576,7 @@ func (c *CardMod) RandCard(Star int) int { func (c *CardMod) SeasonFirstReward() ([]*item.Item, error) { if c.SeasonFirst { - return nil, fmt.Errorf("SeasonFirstReward already get") + return nil, fmt.Errorf("SeasonFirstReward already get reward") } c.SeasonFirst = true return cardCfg.GetSeasonFirstReward(), nil From f3a764e2dcb7b4164eb16ddb38ad0634fbaf2ba4 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 12 Feb 2026 10:33:19 +0800 Subject: [PATCH 3/5] =?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 | 37 ++++++++++++++++++++------------ src/server/game/trigger_func.go | 28 +++++++++++++----------- 2 files changed, 39 insertions(+), 26 deletions(-) diff --git a/src/server/game/activity_func.go b/src/server/game/activity_func.go index bfe66951..938d12ea 100644 --- a/src/server/game/activity_func.go +++ b/src/server/game/activity_func.go @@ -64,12 +64,16 @@ func (p *Player) ActivityLogin() { // 清空猫草大作战数据无需发邮件 MailMod := p.PlayMod.getMailMod() MailMod.SendMail(&mail.MailStruct{ - Title: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, "backend_gardenend_mail_title"), - TitleEn: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, "backend_gardenend_mail_title"), - Content: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, "backend_gardenend_mail_content"), - ContentEn: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, "backend_gardenend_mail_content"), - Items: CatnipUnReward, - Type: mail.MAIL_TYPE_NORMAL, + Title: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, "backend_gardenend_mail_title"), + TitleEn: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, "backend_gardenend_mail_title"), + Content: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, "backend_gardenend_mail_content"), + ContentEn: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, "backend_gardenend_mail_content"), + TitlePtBr: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_PTBR, "backend_gardenend_mail_title"), + ContentPtBr: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_PTBR, "backend_gardenend_mail_content"), + TitleEsLatam: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_ES_LATAM, "backend_gardenend_mail_title"), + ContentEsLatam: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_ES_LATAM, "backend_gardenend_mail_content"), + Items: CatnipUnReward, + Type: mail.MAIL_TYPE_NORMAL, }) } @@ -95,23 +99,28 @@ func (p *Player) SendActivityMail(ItemId, ItemNum, ActivityId int, RewardItems [ 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) + activity_title_es := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_ES_LATAM, 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) + mt_es := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_ES_LATAM, activity_title_key) + mc_es := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_ES_LATAM, mail_content_key) Items := []*item.Item{item.NewItem(ItemId, ItemNum)} Items = append(Items, RewardItems...) 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, + 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), + TitleEsLatam: fmt.Sprintf(mt_es, activity_title_es), + ContentEsLatam: fmt.Sprintf(mc_es, activity_title_es), + Items: Items, + Type: mail.MAIL_TYPE_NORMAL, }) } diff --git a/src/server/game/trigger_func.go b/src/server/game/trigger_func.go index 374340ae..cf99935e 100644 --- a/src/server/game/trigger_func.go +++ b/src/server/game/trigger_func.go @@ -52,19 +52,23 @@ func (player *Player) MailTrigger(Tr *quest.Trigger) bool { ContentEn := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, v.Content) TitlePtBr := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_PTBR, v.Title) ContentPtBr := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_PTBR, v.Content) - + TitleEsLatam := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_ES_LATAM, v.Title) + ContentEsLatam := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_ES_LATAM, v.Content) MailMod.SendMail(&mail.MailStruct{ - Title: Title, - SubTitle: "", - Content: Content, - TitleEn: TitleEn, - SubTitleEn: "", - ContentEn: ContentEn, - TitlePtBr: TitlePtBr, - SubTitlePtBr: "", - ContentPtBr: ContentPtBr, - Items: v.Items, - Type: v.Type, + Title: Title, + SubTitle: "", + Content: Content, + TitleEn: TitleEn, + SubTitleEn: "", + ContentEn: ContentEn, + TitlePtBr: TitlePtBr, + SubTitlePtBr: "", + ContentPtBr: ContentPtBr, + TitleEsLatam: TitleEsLatam, + SubTitleEsLatam: "", + ContentEsLatam: ContentEsLatam, + Items: v.Items, + Type: v.Type, }) MailMod.AddTriggerMail(v.Id) tr = true From 62b89598068b0cef47172b7a802f2128a2677972 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 12 Feb 2026 10:38:33 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E5=A2=9E=E5=8A=A0GM=E6=8C=87=E4=BB=A4?= =?UTF-8?q?=EF=BC=8C=E9=87=8D=E7=BD=AEtrigger=20mail=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/gm_handler.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/server/game/gm_handler.go b/src/server/game/gm_handler.go index 58378380..17f12aab 100644 --- a/src/server/game/gm_handler.go +++ b/src/server/game/gm_handler.go @@ -594,6 +594,8 @@ func ReqGmCommand_(player *Player, Command string) error { LimitedTimeEventMod := player.PlayMod.getLimitedTimeEventMod() LimitedTimeEventMod.AddEvent(Id, Cd) player.PushClientRes(LimitedTimeEventMod.BackData()) + case "resetTriggerMail": + player.PlayMod.mod_list.Mail.TriggerMail = make([]int, 0, 8) case "debugMsg": to, _ := strconv.Atoi(arg[1]) num, _ := strconv.Atoi(arg[1]) From b9bd65613069226c8ac8b0e599331945f9e1afd8 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 12 Feb 2026 11:18:09 +0800 Subject: [PATCH 5/5] =?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/avatar/Avatar.go | 4 +--- src/server/game/mod/chess/Chess.go | 5 +---- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/src/server/game/mod/avatar/Avatar.go b/src/server/game/mod/avatar/Avatar.go index b0d35108..7c4cf423 100644 --- a/src/server/game/mod/avatar/Avatar.go +++ b/src/server/game/mod/avatar/Avatar.go @@ -10,7 +10,6 @@ import ( type AvatarMod struct { List map[int]*Avatar SetId int - Init bool } type Avatar struct { @@ -28,8 +27,7 @@ func (f *AvatarMod) Login(RegisterTime int64) { } func (a *AvatarMod) InitData() { now := GoUtil.Now() - if a.List == nil || !a.Init { - a.Init = true + if a.List == nil { InitId := avatarCfg.GetInitList() a.List = make(map[int]*Avatar, len(InitId)) for _, v := range InitId { diff --git a/src/server/game/mod/chess/Chess.go b/src/server/game/mod/chess/Chess.go index 1b9e5bbd..4230aa34 100644 --- a/src/server/game/mod/chess/Chess.go +++ b/src/server/game/mod/chess/Chess.go @@ -529,10 +529,7 @@ func (cb *ChessBorad) PutChessInBag(Grid, ChessId, EmitId int) error { if err != nil { return err } - EmitColorId := mergeDataCfg.GetEmitId(ChessId) - // ChessLv := mergeDataCfg.GetLvById(ChessId) - // ChessMaxLv := mergeDataCfg.GetMaxLvById(ChessId) - if Grid == 0 && cb.RetireReward[EmitColorId] { // 背包id为0且发射器已退役奖励已领取 直接放入荣誉室 + if Grid == 0 { // 背包id为0且发射器已退役奖励已领取 直接放入荣誉室 cb.AddHonor(ChessId) return nil }