From e7098e3777e9054feb357c707aff1a31945bb60b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=94=E5=BF=B5?= <12574910+72wo@users.noreply.github.com> Date: Wed, 18 Mar 2026 01:22:14 +0800 Subject: [PATCH] =?UTF-8?q?```=20feat(space):=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=9C=B0=E5=9B=BEBOSS=E7=94=9F=E6=88=90=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E5=B9=B6=E4=BC=98=E5=8C=96=E5=A4=A9=E6=B0=94=E5=8F=98=E5=8C=96?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改GetMapPlayerList方法中BOSS信息发送方式为调用GenBoss方法 - 注释掉Space结构体中的IsChange字段,不再使用该标志位 - 调整GenBoss方法参数,添加isfrist参数用于区分首次调用 - 重构定时任务中的GenBoss调用逻辑,改为匿名函数包装广播消息 - 移除GenBoss --- logic/controller/map.go | 2 +- logic/service/space/space.go | 22 ++++++++++++---------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/logic/controller/map.go b/logic/controller/map.go index 6b3163342..d08a9671c 100644 --- a/logic/controller/map.go +++ b/logic/controller/map.go @@ -68,7 +68,7 @@ func (h Controller) GetMapPlayerList(data *space.ListMapPlayerInboundInfo, c *pl if atomic.LoadUint32(&c.GetSpace().TimeBoss.Flag) == 1 { c.SendPackCmd(2022, &c.GetSpace().TimeBoss) } - c.SendPackCmd(2021, &c.GetSpace().MapBossSInfo) + c.SendPackCmd(2021, c.GetSpace().GenBoss(true)) return nil, -1 } diff --git a/logic/service/space/space.go b/logic/service/space/space.go index 0fb1dea4e..b2a9474d8 100644 --- a/logic/service/space/space.go +++ b/logic/service/space/space.go @@ -40,7 +40,7 @@ type Space struct { Name string //地图名称 Owner ARENA info.MapBossSInfo - IsChange bool + //IsChange bool WeatherType []uint32 TimeBoss info.S2C_2022 //Weather uint32 @@ -215,7 +215,10 @@ func (ret *Space) init() { } if len(ret.MapBossSInfo.INFO) > 0 { - cool.Cron.ScheduleFunc(10*time.Second, ret.GenBoss) + cool.Cron.ScheduleFunc(10*time.Second, func() { + + ret.Broadcast(nil, 2022, ret.GenBoss(false)) + }) cool.Cron.ScheduleFunc(300*time.Second, ret.HealHP) } @@ -241,7 +244,7 @@ func (p *Space) IsMatch(t model.Event) bool { return true } -func (ret *Space) GenBoss() { +func (ret *Space) GenBoss(isfrist bool) *info.MapBossSInfo { var res info.MapBossSInfo res.Wer = ret.Wer for i := 0; i < len(ret.MapBossSInfo.INFO); i++ { @@ -260,14 +263,14 @@ func (ret *Space) GenBoss() { } ret.MapBossSInfo.INFO[i].IsShow = 1 - if ret.IsChange { + if isfrist { ret.MapBossSInfo.INFO[i].IsShow = 2 } + res.INFO = append(res.INFO, ret.MapBossSInfo.INFO[i]) } - ret.Broadcast(nil, 2021, &res) - + return &res } func (ret *Space) HealHP() { @@ -287,13 +290,12 @@ func (ret *Space) GenWer() { } if neww != uint32(ret.MapBossSInfo.Wer) { - ret.IsChange = true + ret.MapBossSInfo.Wer = int32(neww) - ret.GenBoss() + + ret.Broadcast(nil, 2021, ret.GenBoss(true)) println(ret.Name, "change weather", neww) - } else { - ret.IsChange = false } //}