From b29eee3a1a4bcf12ecc17dd99ba83d02b1a9be5e Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 17 Dec 2025 10:45:06 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E7=8C=AB=E8=8D=89=E5=A4=A7=E4=BD=9C?= =?UTF-8?q?=E6=88=98=E3=80=91=E8=A1=A5=E5=8F=91=E9=82=AE=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/ActivityFunc.go | 14 ++++++++++++-- src/server/game/mod/catnip/Catnip.go | 22 ++++++++++++++++++---- 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/src/server/game/ActivityFunc.go b/src/server/game/ActivityFunc.go index 02f9e896..e7404c01 100644 --- a/src/server/game/ActivityFunc.go +++ b/src/server/game/ActivityFunc.go @@ -7,6 +7,7 @@ import ( catnipCfg "server/conf/catnip" guesscolorCfg "server/conf/guessColor" itemCfg "server/conf/item" + languageCfg "server/conf/language" mailCfg "server/conf/mail" miningCfg "server/conf/mining" passCfg "server/conf/pass" @@ -60,9 +61,18 @@ func (p *Player) ActivityLogin() { // 猫草大作战 ActivityId = p.GetActivityId(activity.ACT_TYPE_CATNIP) CatnipMod := p.PlayMod.getCatnipMod() - OldId = CatnipMod.Login(ActivityId) - if OldId != 0 { + OldId, CatnipUnReward := CatnipMod.Login(ActivityId) + if OldId != 0 && len(CatnipUnReward) > 0 { // 清空猫草大作战数据无需发邮件 + MailMod := p.PlayMod.getMailMod() + MailMod.SendMail(&mail.MailStruct{ + Title: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, "backend_catnip_title"), + TitleEn: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, "backend_catnip_title"), + Content: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, "backend_catnip_content"), + ContentEn: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, "backend_catnip_content"), + Items: CatnipUnReward, + Type: mail.MAIL_TYPE_NORMAL, + }) } // 通行证 diff --git a/src/server/game/mod/catnip/Catnip.go b/src/server/game/mod/catnip/Catnip.go index 5f2c43de..eeffce73 100644 --- a/src/server/game/mod/catnip/Catnip.go +++ b/src/server/game/mod/catnip/Catnip.go @@ -52,15 +52,16 @@ func (c *CatnipMod) InitData() { } } -func (c *CatnipMod) Login(Id int) int { +func (c *CatnipMod) Login(Id int) (int, []*item.Item) { OldId := c.Id if Id == 0 { c.Id = 0 - return OldId + return OldId, nil } if c.Id == Id { - return 0 + return 0, nil } + Items := c.GetUnGetReward() c.Id = Id c.IsGetGrandReward = false // Reset grand reward status on login c.Game = make(map[int]*CatnipGame) @@ -76,7 +77,7 @@ func (c *CatnipMod) Login(Id int) int { Status: GAME_STATUS_IDLE, // Not started } } - return c.Id + return c.Id, Items } func (c *CatnipMod) ZeroUpdate(Id int) { @@ -260,3 +261,16 @@ func (c *CatnipMod) GetGameInfo(Id int) *CatnipGame { func (c *CatnipMod) SetSendEmoji(Id, EmojiId int) { c.Game[Id].SendEmoji = EmojiId } + +func (c *CatnipMod) GetUnGetReward() []*item.Item { + var rewards []*item.Item + for _, v := range c.Game { + Items, _, _ := c.Reward(v.Id) + rewards = append(rewards, Items...) + } + BigReward, err := c.GrandReward() + if err == nil { + rewards = append(rewards, BigReward...) + } + return rewards +}