"refactor(map): 优化地图NPC刷新逻辑并调整怪物生成冷却时间"

This commit is contained in:
1
2025-12-17 09:52:44 +00:00
parent 09dad913fe
commit 0322f28f53
3 changed files with 5 additions and 3 deletions

View File

@@ -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),
}

View File

@@ -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++ {

View File

@@ -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() {
// 获取当前地图的怪物配置