卡牌赛季初奖励

This commit is contained in:
hahwu 2025-01-22 17:41:08 +08:00
parent ca4ddc283f
commit 8c3ca0e3a5
6 changed files with 2751 additions and 2587 deletions

View File

@ -200,3 +200,11 @@ func GetItemIdByCardId(CardId int) int {
}
return gamedata.GetIntValue(data, "ItemId")
}
func GetSeasonFirstReward() []*item.Item {
data, err := gamedata.GetDataByKey(CARD_CONST_CFG_NAME, "season_first")
if err != nil {
log.Debug("GetSeasonFirstReward data not found")
}
return item.ParseItem(data["Value"])
}

View File

@ -685,13 +685,14 @@ func (ad *GameLogic) RegisterNetWorkFunc() {
RegisterMsgProcessFunc("ReqGmCommand", ReqGmCommand) // Gm命令
// #region 卡牌
RegisterMsgProcessFunc("ReqCardInfo", ReqCardInfo) // 请求卡牌信息
RegisterMsgProcessFunc("ReqCardCollectReward", ReqCardCollectReward) //领取卡牌系列收集奖励
RegisterMsgProcessFunc("ReqExStarReward", ReqExStarReward) // 兑换收集星星奖励
RegisterMsgProcessFunc("ReqAllCollectReward", ReqAllCollectReward) // 领取全收集奖励
RegisterMsgProcessFunc("ReqCardGive", ReqCardGive) // 请求赠送卡牌
RegisterMsgProcessFunc("ReqAgreeCardGive", ReqAgreeCardGive) // 同意赠送卡牌
RegisterMsgProcessFunc("ReqRefuseCardGive", ReqRefuseCardGive) // 拒绝赠送卡牌
RegisterMsgProcessFunc("ReqCardInfo", ReqCardInfo) // 请求卡牌信息
RegisterMsgProcessFunc("ReqCardSeasonFirstReward", ReqCardSeasonFirstReward) // 领取赛季首次奖励
RegisterMsgProcessFunc("ReqCardCollectReward", ReqCardCollectReward) //领取卡牌系列收集奖励
RegisterMsgProcessFunc("ReqExStarReward", ReqExStarReward) // 兑换收集星星奖励
RegisterMsgProcessFunc("ReqAllCollectReward", ReqAllCollectReward) // 领取全收集奖励
RegisterMsgProcessFunc("ReqCardGive", ReqCardGive) // 请求赠送卡牌
RegisterMsgProcessFunc("ReqAgreeCardGive", ReqAgreeCardGive) // 同意赠送卡牌
RegisterMsgProcessFunc("ReqRefuseCardGive", ReqRefuseCardGive) // 拒绝赠送卡牌
RegisterMsgProcessFunc("ReqCardExchange", ReqCardExchange) // 请求交换卡牌
RegisterMsgProcessFunc("ReqSelectCardExchange", ReqSelectCardExchange) // 选择交换的卡牌

View File

@ -244,6 +244,9 @@ func ReqGmCommand(args []interface{}) error {
DecorateMod.AreaId = S
DecorateMod.FinishList = make(map[int]struct{})
DecorateMod.Progress = 0
case "resetCardSeasonFirst":
CardMod := player.PlayMod.getCardMod()
CardMod.SeasonFirst = false
}
player.PlayMod.save()
return nil

View File

@ -772,6 +772,34 @@ func ReqCardInfo(args []interface{}) error {
return nil
}
func ReqCardSeasonFirstReward(args []interface{}) error {
_, player, buf := ParseArgs(args)
req := &msg.ReqCardSeasonFirstReward{}
proto.Unmarshal(buf, req)
CardMod := player.PlayMod.getCardMod()
itemList, err := CardMod.SeasonFirstReward()
if err != nil {
player.SendErrClienRes(&msg.ResCardSeasonFirstReward{
Code: msg.RES_CODE_FAIL,
Msg: err.Error(),
})
return err
}
err = player.HandleItem(itemList, msg.ITEM_POP_LABEL_CardSeasonFirstReward.String())
if err != nil {
player.SendErrClienRes(&msg.ResCardSeasonFirstReward{
Code: msg.RES_CODE_FAIL,
Msg: err.Error(),
})
return err
}
player.PlayMod.save()
player.PushClientRes(&msg.ResCardSeasonFirstReward{
Code: msg.RES_CODE_SUCCESS,
})
return nil
}
// 领取卡牌系列收集奖励
func ReqCardCollectReward(args []interface{}) error {
_, player, buf := ParseArgs(args)

View File

@ -15,6 +15,7 @@ type CardMod struct {
AllCollect int // 总共收集 0未领取 1已领取
CardLimit bool //卡牌节 限时活动
EndTime int64 //周期结束时间
SeasonFirst bool //赛季首次奖励
AllCard map[int]int //
ExTimes int //置换次数
ReqTimes int //请求次数
@ -218,18 +219,19 @@ func (c *CardMod) BackData() *msg.ResCardInfo {
ExUid = append(ExUid, int64(k))
}
return &msg.ResCardInfo{
CardList: cardList,
ExStar: int32(c.ExchangeStar),
Status: int32(c.AllCollect),
CollectId: GoUtil.MapIntToSlice(c.CollectReward),
EndTime: int32(c.EndTime),
ExTimes: int32(c.ExTimes),
ReqTimes: int32(c.ReqTimes),
AllCard: GoUtil.MapIntToInt32(c.AllCard),
ReqUid: ReqUid,
ExUid: ExUid,
Round: int32(c.Round),
Handbook: GoUtil.MapIntToInt32(c.Handbook),
CardList: cardList,
ExStar: int32(c.ExchangeStar),
Status: int32(c.AllCollect),
CollectId: GoUtil.MapIntToSlice(c.CollectReward),
EndTime: int32(c.EndTime),
ExTimes: int32(c.ExTimes),
ReqTimes: int32(c.ReqTimes),
AllCard: GoUtil.MapIntToInt32(c.AllCard),
ReqUid: ReqUid,
ExUid: ExUid,
Round: int32(c.Round),
Handbook: GoUtil.MapIntToInt32(c.Handbook),
SeasonFirst: c.SeasonFirst,
}
}
@ -539,3 +541,11 @@ func (c *CardMod) GetHandbookReward(CardId int) ([]*item.Item, error) {
func (c *CardMod) RandCard(Star int) int {
return randCard(c.Round, Star, 0)
}
func (c *CardMod) SeasonFirstReward() ([]*item.Item, error) {
if c.SeasonFirst {
return nil, fmt.Errorf("SeasonFirstReward already get")
}
c.SeasonFirst = true
return cardCfg.GetSeasonFirstReward(), nil
}

File diff suppressed because it is too large Load Diff