Merge branch 'develop' into sdk

This commit is contained in:
hahwu 2026-02-12 11:18:35 +08:00
commit 29b55d85a3
8 changed files with 65 additions and 60 deletions

View File

@ -64,12 +64,16 @@ func (p *Player) ActivityLogin() {
// 清空猫草大作战数据无需发邮件 // 清空猫草大作战数据无需发邮件
MailMod := p.PlayMod.getMailMod() MailMod := p.PlayMod.getMailMod()
MailMod.SendMail(&mail.MailStruct{ MailMod.SendMail(&mail.MailStruct{
Title: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, "backend_gardenend_mail_title"), Title: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, "backend_gardenend_mail_title"),
TitleEn: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, "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"), Content: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, "backend_gardenend_mail_content"),
ContentEn: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, "backend_gardenend_mail_content"), ContentEn: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, "backend_gardenend_mail_content"),
Items: CatnipUnReward, TitlePtBr: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_PTBR, "backend_gardenend_mail_title"),
Type: mail.MAIL_TYPE_NORMAL, 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_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_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_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) mt_zh := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, mail_title_key)
mc_zh := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, mail_content_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) mt_en := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, mail_title_key)
mc_en := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, mail_content_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) mt_pt := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_PTBR, activity_title_key)
mc_pt := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_PTBR, mail_content_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 := []*item.Item{item.NewItem(ItemId, ItemNum)}
Items = append(Items, RewardItems...) Items = append(Items, RewardItems...)
MailMod.SendMail(&mail.MailStruct{ MailMod.SendMail(&mail.MailStruct{
Title: fmt.Sprintf(mt_zh, activity_title_zh), Title: fmt.Sprintf(mt_zh, activity_title_zh),
Content: fmt.Sprintf(mc_zh, activity_title_zh), Content: fmt.Sprintf(mc_zh, activity_title_zh),
TitleEn: fmt.Sprintf(mt_en, activity_title_en), TitleEn: fmt.Sprintf(mt_en, activity_title_en),
ContentEn: fmt.Sprintf(mc_en, activity_title_en), ContentEn: fmt.Sprintf(mc_en, activity_title_en),
TitlePtBr: fmt.Sprintf(mt_pt, activity_title_pt), TitlePtBr: fmt.Sprintf(mt_pt, activity_title_pt),
ContentPtBr: fmt.Sprintf(mc_pt, activity_title_pt), ContentPtBr: fmt.Sprintf(mc_pt, activity_title_pt),
Items: Items, TitleEsLatam: fmt.Sprintf(mt_es, activity_title_es),
Type: mail.MAIL_TYPE_NORMAL, ContentEsLatam: fmt.Sprintf(mc_es, activity_title_es),
Items: Items,
Type: mail.MAIL_TYPE_NORMAL,
}) })
} }

View File

@ -594,6 +594,8 @@ func ReqGmCommand_(player *Player, Command string) error {
LimitedTimeEventMod := player.PlayMod.getLimitedTimeEventMod() LimitedTimeEventMod := player.PlayMod.getLimitedTimeEventMod()
LimitedTimeEventMod.AddEvent(Id, Cd) LimitedTimeEventMod.AddEvent(Id, Cd)
player.PushClientRes(LimitedTimeEventMod.BackData()) player.PushClientRes(LimitedTimeEventMod.BackData())
case "resetTriggerMail":
player.PlayMod.mod_list.Mail.TriggerMail = make([]int, 0, 8)
case "debugMsg": case "debugMsg":
to, _ := strconv.Atoi(arg[1]) to, _ := strconv.Atoi(arg[1])
num, _ := strconv.Atoi(arg[1]) num, _ := strconv.Atoi(arg[1])

View File

@ -49,7 +49,7 @@ func init() {
func (a *Activity) InitData() { func (a *Activity) InitData() {
if a.Var == nil { 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) { func (a *Activity) GetReward(ActId int) ([]*item.Item, error) {
Var := a.getGIftVar(ActId) Var := a.getGIftVar(ActId)
if !Var.Buy { if !Var.Buy {
return nil, fmt.Errorf("not buy") return nil, fmt.Errorf("ActId:%d not buy", ActId)
} }
if Var.Reward { if Var.Reward {
return nil, fmt.Errorf("reward already get") return nil, fmt.Errorf("ActId:%d reward already get", ActId)
} }
Var.Reward = true Var.Reward = true
Var.RewardTime = GoUtil.Now() Var.RewardTime = GoUtil.Now()

View File

@ -11,7 +11,7 @@ func (a *Activity) Fire(Id int) ([]*item.Item, error) {
AId := activityCfg.GetActivityGiftId(Id) AId := activityCfg.GetActivityGiftId(Id)
Var := a.getGIftVar(AId) Var := a.getGIftVar(AId)
if Var.Buy { if Var.Buy {
return nil, fmt.Errorf("已购买") return nil, fmt.Errorf("Id%d已购买", Id)
} }
Var.Buy = true Var.Buy = true
Var.Time = GoUtil.Now() Var.Time = GoUtil.Now()

View File

@ -47,7 +47,7 @@ func (a *AvatarMod) GetAvatarNum() int {
func (a *AvatarMod) SetAvatar(Id int) error { func (a *AvatarMod) SetAvatar(Id int) error {
if _, ok := a.List[Id]; !ok { 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 a.SetId = Id
return nil return nil

View File

@ -174,14 +174,14 @@ func (c *CardMod) OpenCardPack(Star int) ([]int, error) {
newCard := make([]int, 0) newCard := make([]int, 0)
cnt := cardCfg.GetPackRewardCnt(Star) cnt := cardCfg.GetPackRewardCnt(Star)
if cnt == 0 { 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) mustHaveStar := cardCfg.GetPackMustHave(Star)
if mustHaveStar != 0 { if mustHaveStar != 0 {
cardId = randCard(c.Round, mustHaveStar, 0, newCard) cardId = randCard(c.Round, mustHaveStar, 0, newCard)
if cardId == 0 { 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) newCard = append(newCard, cardId)
c.AddCard(cardId) c.AddCard(cardId)
@ -206,7 +206,7 @@ func (c *CardMod) OpenCardPack(Star int) ([]int, error) {
cardId = randCard(c.Round, CardStar, 0, newCard) cardId = randCard(c.Round, CardStar, 0, newCard)
} }
if cardId == 0 { 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) newCard = append(newCard, cardId)
c.AddCard(cardId) c.AddCard(cardId)
@ -265,7 +265,7 @@ func (c *CardMod) BackData() *msg.ResCardInfo {
func (c *CardMod) GetCollectReward(Id int) ([]*item.Item, int, error) { func (c *CardMod) GetCollectReward(Id int) ([]*item.Item, int, error) {
_, ok := c.CollectReward[Id] _, ok := c.CollectReward[Id]
if ok { 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) cardList := cardCfg.GetCardListByColor(Id)
for _, v := range cardList { 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) { func (c *CardMod) ExStarReward(Id int) ([]*item.Item, int, error) {
if c.ExchangeStar < Id { 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) CostStar, itemList := cardCfg.GetExchangeCfg(Id)
if c.ExchangeStar < CostStar { 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.ExchangeStar -= CostStar
c.Cache.ExStar -= CostStar c.Cache.ExStar -= CostStar
@ -302,7 +302,7 @@ func (c *CardMod) AllCollectReward() ([]*item.Item, []*item.Item, error) {
for _, v := range AllCardId { for _, v := range AllCardId {
count, ok := c.CardList[v] count, ok := c.CardList[v]
if !ok || count <= 0 { 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 c.AllCollect = 0
@ -322,10 +322,6 @@ func (c *CardMod) AllCollectReward() ([]*item.Item, []*item.Item, error) {
if v == HANDBOOK_STATUS_GET { if v == HANDBOOK_STATUS_GET {
continue continue
} }
// Round := cardCfg.GetRoundById(k)
// if Round < c.Round {
// continue
// }
HandbookItemNum += cardCfg.GetStarById(k) HandbookItemNum += cardCfg.GetStarById(k)
} }
c.Round++ c.Round++
@ -356,7 +352,7 @@ func (c *CardMod) SubCard(id int) error {
c.Cache.Card[id]-- c.Cache.Card[id]--
return nil return nil
} }
return fmt.Errorf("SubCard card not enough") return fmt.Errorf("SubCard card not enough, id: %d", id)
} }
func (c *CardMod) RequestCard() error { func (c *CardMod) RequestCard() error {
@ -371,7 +367,7 @@ func (c *CardMod) RequestCard() error {
func (c *CardMod) AddRequestCard(CardInfo *CardInfo) error { func (c *CardMod) AddRequestCard(CardInfo *CardInfo) error {
_, ok := c.ReqFriend[CardInfo.BUid] _, ok := c.ReqFriend[CardInfo.BUid]
if ok { 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 c.ReqFriend[CardInfo.BUid] = CardInfo
return nil return nil
@ -380,7 +376,7 @@ func (c *CardMod) AddRequestCard(CardInfo *CardInfo) error {
func (c *CardMod) DelRequestCard(Uid int) (map[int]*CardInfo, error) { func (c *CardMod) DelRequestCard(Uid int) (map[int]*CardInfo, error) {
ci, ok := c.ReqFriend[Uid] ci, ok := c.ReqFriend[Uid]
if !ok { 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) r := make(map[int]*CardInfo)
for k, v := range c.ReqFriend { 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) Id := GoUtil.CreateCardId(From, To, CardId)
err := c.SubCard(CardId) err := c.SubCard(CardId)
if c.ExTimes <= 0 { 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-- c.ExTimes--
if err != nil { if err != nil {
return nil, err return nil, err
} }
// _, ok := c.ExCard[To]
// if ok {
// return nil, fmt.Errorf("ExchangeCard already exchange")
// }
CardInfo := &CardInfo{ CardInfo := &CardInfo{
Id: Id, Id: Id,
AUid: From, AUid: From,
@ -456,7 +449,7 @@ func (c *CardMod) SendCard(From, To, CardId int) (*CardInfo, error) {
Id := GoUtil.CreateCardId(From, To, CardId) Id := GoUtil.CreateCardId(From, To, CardId)
err := c.SubCard(CardId) err := c.SubCard(CardId)
if c.ExTimes <= 0 { 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-- c.ExTimes--
if err != nil { if err != nil {
@ -485,10 +478,10 @@ func (c *CardMod) AddMasterCard(Id int) {
func (c *CardMod) MasterCardEx(Id, CardId int) error { func (c *CardMod) MasterCardEx(Id, CardId int) error {
if c.AllCard[Id] <= 0 { 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) { 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.AllCard[Id]--
c.Cache.Master[Id]-- c.Cache.Master[Id]--
@ -567,14 +560,14 @@ func (c *CardMod) AddGoldTimes() {
func (c *CardMod) GetHandbookReward(CardId int) ([]*item.Item, error) { func (c *CardMod) GetHandbookReward(CardId int) ([]*item.Item, error) {
if v, ok := c.Handbook[CardId]; ok { if v, ok := c.Handbook[CardId]; ok {
if v == HANDBOOK_STATUS_GET { 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) Star := cardCfg.GetStarById(CardId)
c.Handbook[CardId] = HANDBOOK_STATUS_GET c.Handbook[CardId] = HANDBOOK_STATUS_GET
c.Cache.Handbook[CardId] = HANDBOOK_STATUS_GET c.Cache.Handbook[CardId] = HANDBOOK_STATUS_GET
return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, Star)}, nil 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 { 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) { func (c *CardMod) SeasonFirstReward() ([]*item.Item, error) {
if c.SeasonFirst { if c.SeasonFirst {
return nil, fmt.Errorf("SeasonFirstReward already get") return nil, fmt.Errorf("SeasonFirstReward already get reward")
} }
c.SeasonFirst = true c.SeasonFirst = true
return cardCfg.GetSeasonFirstReward(), nil return cardCfg.GetSeasonFirstReward(), nil

View File

@ -529,10 +529,7 @@ func (cb *ChessBorad) PutChessInBag(Grid, ChessId, EmitId int) error {
if err != nil { if err != nil {
return err return err
} }
EmitColorId := mergeDataCfg.GetEmitId(ChessId) if Grid == 0 { // 背包id为0且发射器已退役奖励已领取 直接放入荣誉室
ChessLv := mergeDataCfg.GetLvById(ChessId)
ChessMaxLv := mergeDataCfg.GetMaxLvById(ChessId)
if ChessLv == ChessMaxLv && cb.Retire[EmitColorId] == 3 { // 退役发射器 加入荣誉室
cb.AddHonor(ChessId) cb.AddHonor(ChessId)
return nil return nil
} }

View File

@ -52,19 +52,23 @@ func (player *Player) MailTrigger(Tr *quest.Trigger) bool {
ContentEn := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, v.Content) ContentEn := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, v.Content)
TitlePtBr := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_PTBR, v.Title) TitlePtBr := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_PTBR, v.Title)
ContentPtBr := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_PTBR, v.Content) 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{ MailMod.SendMail(&mail.MailStruct{
Title: Title, Title: Title,
SubTitle: "", SubTitle: "",
Content: Content, Content: Content,
TitleEn: TitleEn, TitleEn: TitleEn,
SubTitleEn: "", SubTitleEn: "",
ContentEn: ContentEn, ContentEn: ContentEn,
TitlePtBr: TitlePtBr, TitlePtBr: TitlePtBr,
SubTitlePtBr: "", SubTitlePtBr: "",
ContentPtBr: ContentPtBr, ContentPtBr: ContentPtBr,
Items: v.Items, TitleEsLatam: TitleEsLatam,
Type: v.Type, SubTitleEsLatam: "",
ContentEsLatam: ContentEsLatam,
Items: v.Items,
Type: v.Type,
}) })
MailMod.AddTriggerMail(v.Id) MailMod.AddTriggerMail(v.Id)
tr = true tr = true