From 1a61c7fd1c43b3c805c6d02ec974998efe80edb0 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 11 Mar 2026 17:47:17 +0800 Subject: [PATCH] =?UTF-8?q?=E9=99=90=E6=97=B6=E4=BA=8B=E4=BB=B6-=E5=8D=95?= =?UTF-8?q?=E5=85=83=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../limited_time_event/limited_time_event.go | 17 +++++++++++++++++ src/server/test/limit_test.go | 12 ++++++++++++ 2 files changed, 29 insertions(+) diff --git a/src/server/game/mod/limited_time_event/limited_time_event.go b/src/server/game/mod/limited_time_event/limited_time_event.go index fa12fe2c..410ab9c7 100644 --- a/src/server/game/mod/limited_time_event/limited_time_event.go +++ b/src/server/game/mod/limited_time_event/limited_time_event.go @@ -368,6 +368,23 @@ func (l *LimitedTimeEventMod) SelectProgressReward(Id, Lv, Energy int) ([]*item. return Item, limitedTimeEventCfg.GetProgressRewardType(RewardId), OrderNum, RewardList, nil } +func (l *LimitedTimeEventMod) DebugProgressRewardList(Lv, Energy int) map[int]int { + // 重新生成进度奖励 + SelectNum := limitedTimeEventCfg.GetProgressSelectNum(Lv) + BonusLv := limitedTimeEventCfg.GetBonusLv(Lv) + RandMap := limitedTimeEventCfg.GetProgressRewardRand(BonusLv) + // 体力小于200 high roller事件不进池子 + if Energy < limitedTimeEventCfg.GetHighRollerNeedEnergy() { + delete(RandMap, limitedTimeEventCfg.GetJackpotIdByType(EVENT_TYPE_HIGH_ROLLER)) + } + if GoUtil.Now()-l.LastCatDaySale < limitedTimeEventCfg.GetCatSaleCD() { + // 参与猫咪大甩卖活动时,猫咪大甩卖事件不进池子 + delete(RandMap, limitedTimeEventCfg.GetJackpotIdByType(EVENT_TYPE_CAT_DAY_SALE)) + } + l.fillProgressReward(RandMap, SelectNum) + return l.ProgressReward +} + // fillProgressReward 随机填充进度奖励(最多尝试10次避免与上次相同) func (l *LimitedTimeEventMod) fillProgressReward(RandMap map[int]int, SelectNum int) { LastOption := l.LastOption diff --git a/src/server/test/limit_test.go b/src/server/test/limit_test.go index 39ade1dd..7e815878 100644 --- a/src/server/test/limit_test.go +++ b/src/server/test/limit_test.go @@ -1,6 +1,7 @@ package test import ( + "fmt" "server/game" limitedTimeEvent "server/game/mod/limited_time_event" "testing" @@ -42,3 +43,14 @@ func TestSenceDash(t *testing.T) { } t.Logf("Scene dash reward: Id=%d, items=%v", Id, items) } + +func TestProgressReward(t *testing.T) { + p := new(game.Player) + p.InitPlayer("3625212") + LimitEventMod := p.GetLimitEventMod() + BaseMod := p.GetBaseMod() + for i := 0; i < 100; i++ { + res := LimitEventMod.DebugProgressRewardList(38, BaseMod.Energy) // 输出当前进度奖励列表 + fmt.Printf("Current progress reward list: %v\n", res) + } +}