Files
bl/logic/service/player/new.go
昔念 d74652373c ```
refactor(socket): 更新广播和退出逻辑中的类型引用

更新socket服务器中广播功能和退出功能的代码,
将player.Player类型替换为player.ClientData类型,
并相应调整方法调用以适应新的数据结构。

feat(map): 添加LoadOrStore方法支持

在并发安全的swiss map中新增LoadOrStore方法,
提供原子性的加载或存储功能,增强map的操作能力。

refactor(login): 优化登录逻辑中的玩家获取方式

重构登录控制器中获取玩家对象的方式,
直接从
2026-03-16 22:30:12 +08:00

46 lines
993 B
Go

package player
import (
"blazing/logic/service/common"
"blazing/modules/base/service"
"blazing/modules/player/model"
"time"
"github.com/panjf2000/gnet/v2"
)
// 定义刷野间隔常量(可根据业务调整)
const (
//firstEnterInterval = 7 * time.Second // 首次进图/退出战斗后首次 刷新间隔
normalRefreshInterval = 10 * time.Second // 正常循环 刷新间隔
)
// NewPlayer 使用 Options 模式创建 Player 实例
func NewPlayer(opts gnet.Conn) *Player {
p := &Player{
HavePVPinfo: make([]common.PlayerI, 0),
baseplayer: newbaseplayer(),
}
p.User = service.NewBaseSysUserService()
p.monsters = generateThreeUniqueNumbers()
p.Done = NewDone(p) //发布订阅事件
p.MapNPC = time.AfterFunc(10*time.Second, p.GenMonster)
p.MainConn = opts
return p
}
func NewAI_player(i *model.PlayerInfo) *AI_player {
ret := &AI_player{
baseplayer: newbaseplayer(),
}
ret.Info = i
//ret.Info.Nick = xmlres.PetMAP[int(m.ID)].DefName
return ret
}