From 0322f28f536fcdeca1b6cac844c6b031cfd0a638 Mon Sep 17 00:00:00 2001 From: 1 <1@72wo.cn> Date: Wed, 17 Dec 2025 09:52:44 +0000 Subject: [PATCH] =?UTF-8?q?"refactor(map):=20=E4=BC=98=E5=8C=96=E5=9C=B0?= =?UTF-8?q?=E5=9B=BENPC=E5=88=B7=E6=96=B0=E9=80=BB=E8=BE=91=E5=B9=B6?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=80=AA=E7=89=A9=E7=94=9F=E6=88=90=E5=86=B7?= =?UTF-8?q?=E5=8D=B4=E6=97=B6=E9=97=B4"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logic/controller/map.go | 3 ++- logic/service/player/Monster.go | 2 +- logic/service/player/new.go | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/logic/controller/map.go b/logic/controller/map.go index bef36b23..356d354e 100644 --- a/logic/controller/map.go +++ b/logic/controller/map.go @@ -3,6 +3,7 @@ package controller import ( "blazing/common/socket/errorcode" "sync/atomic" + "time" "blazing/logic/service/fight" "blazing/logic/service/maphot" @@ -52,7 +53,7 @@ func (h *Controller) MapLeave(data *space.LeaveMapInboundInfo, c *player.Player) } func (h *Controller) MapList(data *space.ListMapPlayerInboundInfo, c *player.Player) (result *info.ListMapPlayerOutboundInfo, err errorcode.ErrorCode) { //这个时候player应该是空的 atomic.StoreUint32(&c.Canmon, 2) - + c.MapNPC.Reset(5 * time.Second) result = &info.ListMapPlayerOutboundInfo{ Player: c.GetSpace().GetInfo(c), } diff --git a/logic/service/player/Monster.go b/logic/service/player/Monster.go index e6912565..c9caa69c 100644 --- a/logic/service/player/Monster.go +++ b/logic/service/player/Monster.go @@ -25,7 +25,6 @@ func (p *Player) Next(time.Time) time.Time { if atomic.LoadUint32(&p.Canmon) != 1 { return time.Now().Add(5 * time.Second) } - return time.Now().Add(10 * time.Second) @@ -93,6 +92,7 @@ func (p *Player) genMonster() { } if atomic.CompareAndSwapUint32(&p.Canmon, 2, 1) { + p.MapNPC.Reset(10 * time.Second) p.OgreInfo = OgreInfo{} //切地图清空 for i := 0; i < 3; i++ { diff --git a/logic/service/player/new.go b/logic/service/player/new.go index 4d8f9b8a..1258888c 100644 --- a/logic/service/player/new.go +++ b/logic/service/player/new.go @@ -5,6 +5,7 @@ import ( "blazing/logic/service/common" "blazing/modules/base/service" "blazing/modules/blazing/model" + "time" ) // NewPlayer 使用 Options 模式创建 Player 实例 @@ -18,7 +19,7 @@ func NewPlayer(opts ...PlayerOption) *Player { p.User = service.NewBaseSysUserService() p.monsters = generateThreeUniqueNumbers() p.Done = NewDone(p) //发布订阅事件 - p.MapNPC = cool.Cron.CustomFunc(p, func() { + p.MapNPC = cool.Cron.ScheduleFunc(10*time.Second, func() { // 获取当前地图的怪物配置