"refactor(map): 优化地图NPC刷新逻辑并调整怪物生成冷却时间"
This commit is contained in:
@@ -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),
|
||||
}
|
||||
|
||||
@@ -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++ {
|
||||
|
||||
|
||||
@@ -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() {
|
||||
|
||||
// 获取当前地图的怪物配置
|
||||
|
||||
|
||||
Reference in New Issue
Block a user