From 852eb088faca6a42fa8ab1c781466a29d123da6b Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 19 Mar 2026 15:25:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B6=E8=97=8F=E5=93=81=E5=A5=96=E5=8A=B1?= =?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/conf/collect/collect_cfg.go | 9 +++++++++ src/server/game/mod/collect/Collect.go | 23 ++++++++++++++--------- src/server/test/fix_test.go | 3 ++- 3 files changed, 25 insertions(+), 10 deletions(-) diff --git a/src/server/conf/collect/collect_cfg.go b/src/server/conf/collect/collect_cfg.go index 0394fff4..7dd75dfe 100644 --- a/src/server/conf/collect/collect_cfg.go +++ b/src/server/conf/collect/collect_cfg.go @@ -56,3 +56,12 @@ func GetRewardType(Id int) int { } 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) +} diff --git a/src/server/game/mod/collect/Collect.go b/src/server/game/mod/collect/Collect.go index d8e27941..d6eac176 100644 --- a/src/server/game/mod/collect/Collect.go +++ b/src/server/game/mod/collect/Collect.go @@ -22,7 +22,7 @@ const ( COLLECT_TYPE_FACE = 2 COLLECT_TYPE_AVATAR = 3 - jackpotPreviewSize = 18 // 展示的奖池预览数量,同时作为补充阈値 + jackpotPreviewSize = 9 // 展示的奖池预览数量,同时作为补充阈値 ) func (c *Collect) InitData() { @@ -37,8 +37,12 @@ func (c *Collect) InitData() { // ensureJackpot 当奖池剩余少于预览数量时自动补充 func (c *Collect) ensureJackpot() { - if len(c.Jackpot) <= jackpotPreviewSize { - c.Jackpot = initJackpot2(c.Jackpot) + rewardLen := collectCfg.GetRewardLen() + 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) - jackpotId := 0 - jackpotId, c.Jackpot = GoUtil.PopSlice(c.Jackpot) - c.ensureJackpot() + jackpotId := c.Jackpot[id-1] + if jackpotId == 0 { + return nil, fmt.Errorf("id : %d;奖池数据异常", id) + } items := collectCfg.GetJackpotItems(jackpotId) items = GoUtil.FormatStarItem(items, factor) 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 { itemsMsg := make([]*msg.CollectItem, 0, jackpotPreviewSize) - for i := 0; i < jackpotPreviewSize; i++ { - items := collectCfg.GetJackpotItems(c.Jackpot[i]) + for k, v := range c.Jackpot { + items := collectCfg.GetJackpotItems(v) items = GoUtil.FormatStarItem(items, factor) itemsMsg = append(itemsMsg, &msg.CollectItem{ - Id: int32(i + 1), + Id: int32(k + 1), Items: item.ItemToMsg(items), }) } diff --git a/src/server/test/fix_test.go b/src/server/test/fix_test.go index 7c77ae4b..21afff50 100644 --- a/src/server/test/fix_test.go +++ b/src/server/test/fix_test.go @@ -96,7 +96,8 @@ func TestFixUserData(t *testing.T) { func TestRandInt(t *testing.T) { p1 := new(game.Player) p1.InitPlayer("3625212") - p1.DeleteHighOrder() + CollectMod := p1.GetCollectMod() + p1.PushClientRes(CollectMod.BackData(p1.GetOrderFactor())) } func TestII(t *testing.T) {