收藏品奖励优化

This commit is contained in:
hahwu 2026-03-19 15:25:13 +08:00
parent fdbeb25af2
commit 852eb088fa
3 changed files with 25 additions and 10 deletions

View File

@ -56,3 +56,12 @@ func GetRewardType(Id int) int {
} }
return gamedata.GetIntValue(data, "Type") return gamedata.GetIntValue(data, "Type")
} }
func GetRewardLen() int {
data, err := gamedata.GetData(CFG_COLLECT)
if err != nil {
log.Debug("GetRewardLen err:%v", err)
return 0
}
return len(data)
}

View File

@ -22,7 +22,7 @@ const (
COLLECT_TYPE_FACE = 2 COLLECT_TYPE_FACE = 2
COLLECT_TYPE_AVATAR = 3 COLLECT_TYPE_AVATAR = 3
jackpotPreviewSize = 18 // 展示的奖池预览数量,同时作为补充阈値 jackpotPreviewSize = 9 // 展示的奖池预览数量,同时作为补充阈値
) )
func (c *Collect) InitData() { func (c *Collect) InitData() {
@ -37,8 +37,12 @@ func (c *Collect) InitData() {
// ensureJackpot 当奖池剩余少于预览数量时自动补充 // ensureJackpot 当奖池剩余少于预览数量时自动补充
func (c *Collect) ensureJackpot() { func (c *Collect) ensureJackpot() {
if len(c.Jackpot) <= jackpotPreviewSize { rewardLen := collectCfg.GetRewardLen()
c.Jackpot = initJackpot2(c.Jackpot) if len(c.Jackpot) <= rewardLen {
loopNum := (rewardLen-len(c.Jackpot))/jackpotPreviewSize + 1
for i := 0; i < loopNum; i++ {
c.Jackpot = append(c.Jackpot, initJackpot2(nil)...)
}
} }
} }
@ -56,9 +60,10 @@ func (c *Collect) GetReward(id, num, factor int) ([]*item.Item, error) {
} }
// 领取奖励 // 领取奖励
c.Reward = append(c.Reward, id) c.Reward = append(c.Reward, id)
jackpotId := 0 jackpotId := c.Jackpot[id-1]
jackpotId, c.Jackpot = GoUtil.PopSlice(c.Jackpot) if jackpotId == 0 {
c.ensureJackpot() return nil, fmt.Errorf("id : %d;奖池数据异常", id)
}
items := collectCfg.GetJackpotItems(jackpotId) items := collectCfg.GetJackpotItems(jackpotId)
items = GoUtil.FormatStarItem(items, factor) items = GoUtil.FormatStarItem(items, factor)
return items, nil return items, nil
@ -66,11 +71,11 @@ func (c *Collect) GetReward(id, num, factor int) ([]*item.Item, error) {
func (c *Collect) BackData(factor int) *msg.ResCollectInfo { func (c *Collect) BackData(factor int) *msg.ResCollectInfo {
itemsMsg := make([]*msg.CollectItem, 0, jackpotPreviewSize) itemsMsg := make([]*msg.CollectItem, 0, jackpotPreviewSize)
for i := 0; i < jackpotPreviewSize; i++ { for k, v := range c.Jackpot {
items := collectCfg.GetJackpotItems(c.Jackpot[i]) items := collectCfg.GetJackpotItems(v)
items = GoUtil.FormatStarItem(items, factor) items = GoUtil.FormatStarItem(items, factor)
itemsMsg = append(itemsMsg, &msg.CollectItem{ itemsMsg = append(itemsMsg, &msg.CollectItem{
Id: int32(i + 1), Id: int32(k + 1),
Items: item.ItemToMsg(items), Items: item.ItemToMsg(items),
}) })
} }

View File

@ -96,7 +96,8 @@ func TestFixUserData(t *testing.T) {
func TestRandInt(t *testing.T) { func TestRandInt(t *testing.T) {
p1 := new(game.Player) p1 := new(game.Player)
p1.InitPlayer("3625212") p1.InitPlayer("3625212")
p1.DeleteHighOrder() CollectMod := p1.GetCollectMod()
p1.PushClientRes(CollectMod.BackData(p1.GetOrderFactor()))
} }
func TestII(t *testing.T) { func TestII(t *testing.T) {