From 41531e52fb8dc6df81ed8c83e3a02efcc7dc153a Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 6 Jun 2025 15:55:22 +0800 Subject: [PATCH] =?UTF-8?q?=E9=99=90=E6=97=B6=E4=BA=8B=E4=BB=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mod/limitedTimeEvent/LimitedTimeEvent.go | 45 ++++++++++--------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/src/server/game/mod/limitedTimeEvent/LimitedTimeEvent.go b/src/server/game/mod/limitedTimeEvent/LimitedTimeEvent.go index f87ccb4f..e70d924a 100644 --- a/src/server/game/mod/limitedTimeEvent/LimitedTimeEvent.go +++ b/src/server/game/mod/limitedTimeEvent/LimitedTimeEvent.go @@ -86,7 +86,9 @@ func (l *LimitedTimeEventMod) InitData(Lv int) { l.Triggered = make(map[int]struct{}) } if l.ProgressReward == nil { + // 初始化进度奖励 l.ProgressReward = make(map[int]int) + } if l.ProgressMax == 0 { l.Lv = Lv @@ -100,6 +102,29 @@ func (l *LimitedTimeEventMod) InitData(Lv int) { } l.LastOption = []int{EventId} } + + if len(l.ProgressReward) == 0 { + SelectNum := limitedTimeEventCfg.GetProgressSelectNum(Lv) + BonusLv := limitedTimeEventCfg.GetBonusLv(Lv) + RandMap := limitedTimeEventCfg.GetProgressRewardRand(BonusLv) + n := 0 + r := make([]int, 0) + LastOption := l.LastOption + for n < 10 { + n++ + r = GoUtil.RandMapNum(RandMap, SelectNum) + Id := 1 + for _, v := range r { + l.ProgressReward[Id] = v + Id++ + } + + if !GoUtil.SliceEqual(LastOption, r) { + break + } + } + l.LastOption = r + } } func (l *LimitedTimeEventMod) ZeroUpdate(Lv int) { @@ -324,26 +349,6 @@ func (l *LimitedTimeEventMod) SelectProgressReward(Id, Lv int) ([]*item.Item, ma l.Progress = 0 l.BonusNum++ l.ProgressMax = limitedTimeEventCfg.GetProgressMax(l.Lv, l.BonusNum) - SelectNum := limitedTimeEventCfg.GetProgressSelectNum(Lv) - BonusLv := limitedTimeEventCfg.GetBonusLv(Lv) - RandMap := limitedTimeEventCfg.GetProgressRewardRand(BonusLv) - n := 0 - r := make([]int, 0) - LastOption := l.LastOption - for n < 10 { - n++ - r = GoUtil.RandMapNum(RandMap, SelectNum) - Id := 1 - for _, v := range r { - l.ProgressReward[Id] = v - Id++ - } - - if !GoUtil.SliceEqual(LastOption, r) { - break - } - } - l.LastOption = r return Item, r1, r2, nil }