From 3bdf9850b9c1d59aa7a2836b87eb3bcc2ed1c37e Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 27 Feb 2025 16:09:39 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9E=E5=87=BB=E5=BF=AB=E6=89=8B=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../limitedTimeEvent/LimitedTimeEventCfg.go | 23 +++++++++++++++++++ src/server/game/Gm.go | 8 +++++++ .../mod/limitedTimeEvent/LimitedTimeEvent.go | 15 +++++++++--- 3 files changed, 43 insertions(+), 3 deletions(-) diff --git a/src/server/conf/limitedTimeEvent/LimitedTimeEventCfg.go b/src/server/conf/limitedTimeEvent/LimitedTimeEventCfg.go index e48e19b8..3a487b67 100644 --- a/src/server/conf/limitedTimeEvent/LimitedTimeEventCfg.go +++ b/src/server/conf/limitedTimeEvent/LimitedTimeEventCfg.go @@ -141,6 +141,20 @@ func GetFastProduceReward(Times, Energy int) []*item.Item { return nil } +// 获取连击快手最大次数 +func GetFastProduceMaxTimes() int { + Max := 0 + data, err := gamedata.GetData(CFG_LIMITED_TIME_EVENT_FAST) + if err != nil { + log.Debug("GetSceneDashReward err:%v", err) + return 0 + } + for _, v := range data { + Max = max(gamedata.GetIntValue(v, "Times"), Max) + } + return Max +} + // 获取进度最大值 func GetProgressMax(Lv, Num int) int { data, err := gamedata.GetData(CFG_LIMITED_TIME_EVENT_BONUS) @@ -257,3 +271,12 @@ func GetFirstEvent() int { } return gamedata.GetIntValue(data, "Value") } + +func GetFastCD() int { + data, err := gamedata.GetDataByKey(CFG_LIMITED_TIME_EVENT_CONST, "Fast_Cd") + if err != nil { + log.Debug("GetFirstEvent err:%v", err) + return 0 + } + return gamedata.GetIntValue(data, "Value") +} diff --git a/src/server/game/Gm.go b/src/server/game/Gm.go index fd734615..ab3a58e8 100644 --- a/src/server/game/Gm.go +++ b/src/server/game/Gm.go @@ -260,6 +260,14 @@ func ReqGmCommand_(player *Player, Command string) error { case "resetTimeline": FriendMod := player.PlayMod.getFriendMod() FriendMod.Log = make([]*friend.LogInfo, 0) + case "resetFastCD": + LimitedTimeEventMod := player.PlayMod.getLimitedTimeEventMod() + LimitedTimeEventMod.ResetFastProduceCD() + EndTime, Times := LimitedTimeEventMod.GetFastProduceInfo() + player.PushClientRes(&msg.ResFastProduceInfo{ + EndTime: int32(EndTime), + Num: int32(Times), + }) case "recoverUser": file, err := os.OpenFile(conf.Server.GameConfPath+"user.info", os.O_RDWR|os.O_CREATE, 0666) if err != nil { diff --git a/src/server/game/mod/limitedTimeEvent/LimitedTimeEvent.go b/src/server/game/mod/limitedTimeEvent/LimitedTimeEvent.go index 9173f3cf..65ee242b 100644 --- a/src/server/game/mod/limitedTimeEvent/LimitedTimeEvent.go +++ b/src/server/game/mod/limitedTimeEvent/LimitedTimeEvent.go @@ -223,10 +223,19 @@ func (l *LimitedTimeEventMod) GetFastProduceReward(Energy int) ([]*item.Item, in Times := GoUtil.Int(Event.Info["Times"]) Times++ Event.Info["Times"] = Times - Times = min(Times, 6) + MaxTimes := limitedTimeEventCfg.GetFastProduceMaxTimes() + Times = min(Times, MaxTimes) + CD := limitedTimeEventCfg.GetFastCD() + Event.Info["NextPlay"] = GoUtil.Now() + int64(CD) // CD5分钟 + return limitedTimeEventCfg.GetFastProduceReward(Times, Energy), GoUtil.Now() + int64(CD), Event.Info["Times"].(int), nil +} - Event.Info["NextPlay"] = GoUtil.Now() + 300 // CD5分钟 - return limitedTimeEventCfg.GetFastProduceReward(Times, Energy), GoUtil.Now() + 300, Event.Info["Times"].(int), nil +func (l *LimitedTimeEventMod) ResetFastProduceCD() { + Event, ok := l.EventList[EVENT_TYPE_FAST_PRODUCE] + if !ok { + return + } + Event.Info["NextPlay"] = 0 } func (l *LimitedTimeEventMod) GetFastProduceInfo() (int64, int) {