限时事件优化

This commit is contained in:
hahwu 2025-06-06 11:24:38 +08:00
parent 1145fd63ba
commit bc1e788bd9
2 changed files with 31 additions and 33 deletions

View File

@ -2802,7 +2802,8 @@ func ReqSelectLimitEvent(player *Player, buf []byte) error {
req := &msg.ReqSelectLimitEvent{} req := &msg.ReqSelectLimitEvent{}
proto.Unmarshal(buf, req) proto.Unmarshal(buf, req)
LimitedTimeEventMod := player.PlayMod.getLimitedTimeEventMod() LimitedTimeEventMod := player.PlayMod.getLimitedTimeEventMod()
Items, slot_reward, slot_order_number, err := LimitedTimeEventMod.SelectProgressReward(int(req.Id)) BaseMod := player.PlayMod.getBaseMod()
Items, slot_reward, slot_order_number, err := LimitedTimeEventMod.SelectProgressReward(int(req.Id), BaseMod.Level)
if err != nil { if err != nil {
player.SendErrClienRes(&msg.ResSelectLimitEvent{ player.SendErrClienRes(&msg.ResSelectLimitEvent{
Code: msg.RES_CODE_FAIL, Code: msg.RES_CODE_FAIL,

View File

@ -92,6 +92,14 @@ func (l *LimitedTimeEventMod) InitData(Lv int) {
l.Lv = Lv l.Lv = Lv
l.ProgressMax = limitedTimeEventCfg.GetProgressMax(Lv, l.BonusNum) l.ProgressMax = limitedTimeEventCfg.GetProgressMax(Lv, l.BonusNum)
} }
if !l.First {
l.First = true
EventId := limitedTimeEventCfg.GetFirstEvent()
l.ProgressReward = map[int]int{
1: EventId,
}
l.LastOption = []int{EventId}
}
} }
func (l *LimitedTimeEventMod) ZeroUpdate(Lv int) { func (l *LimitedTimeEventMod) ZeroUpdate(Lv int) {
@ -300,16 +308,22 @@ func (l *LimitedTimeEventMod) AddProgress(Lv int) {
return return
} }
l.Progress++ l.Progress++
if l.Progress == l.ProgressMax {
if !l.First {
l.First = true
EventId := limitedTimeEventCfg.GetFirstEvent()
l.ProgressReward = map[int]int{
1: EventId,
} }
l.LastOption = []int{EventId}
return // 选择进度奖励
func (l *LimitedTimeEventMod) SelectProgressReward(Id, Lv int) ([]*item.Item, map[int]int, int, error) {
RewardId, ok := l.ProgressReward[Id]
if !ok {
return nil, nil, 0, fmt.Errorf("RewardId not exist")
} }
r1 := l.ProgressReward
r2 := l.ProgressMax
Item := limitedTimeEventCfg.GetProgressReward(RewardId)
l.LastSelect = RewardId
l.ProgressReward = make(map[int]int)
l.Progress = 0
l.BonusNum++
l.ProgressMax = limitedTimeEventCfg.GetProgressMax(l.Lv, l.BonusNum)
SelectNum := limitedTimeEventCfg.GetProgressSelectNum(Lv) SelectNum := limitedTimeEventCfg.GetProgressSelectNum(Lv)
BonusLv := limitedTimeEventCfg.GetBonusLv(Lv) BonusLv := limitedTimeEventCfg.GetBonusLv(Lv)
RandMap := limitedTimeEventCfg.GetProgressRewardRand(BonusLv) RandMap := limitedTimeEventCfg.GetProgressRewardRand(BonusLv)
@ -330,23 +344,6 @@ func (l *LimitedTimeEventMod) AddProgress(Lv int) {
} }
} }
l.LastOption = r l.LastOption = r
}
}
// 选择进度奖励
func (l *LimitedTimeEventMod) SelectProgressReward(Id int) ([]*item.Item, map[int]int, int, error) {
RewardId, ok := l.ProgressReward[Id]
if !ok {
return nil, nil, 0, fmt.Errorf("RewardId not exist")
}
r1 := l.ProgressReward
r2 := l.ProgressMax
Item := limitedTimeEventCfg.GetProgressReward(RewardId)
l.LastSelect = RewardId
l.ProgressReward = make(map[int]int)
l.Progress = 0
l.BonusNum++
l.ProgressMax = limitedTimeEventCfg.GetProgressMax(l.Lv, l.BonusNum)
return Item, r1, r2, nil return Item, r1, r2, nil
} }