feat 修改usn类型为string

This commit is contained in:
2026-01-11 16:16:18 +08:00
parent f5e3acd4d6
commit 48e178e853
6 changed files with 28 additions and 30 deletions

View File

@@ -20,25 +20,25 @@ import (
// Instance 场景类
type Instance struct {
wg sync.WaitGroup
players map[int64]*npc.PlayerNode // 存储所有玩家节点 [usn]
ctx context.Context // 停止指令
cancel context.CancelFunc // 停止函数
logger *zap.SugaredLogger // 日志
lastLogicTime int64 // 上次逻辑帧执行时间(毫秒时间戳)
players map[string]*npc.PlayerNode // 存储所有玩家节点 [usn]
ctx context.Context // 停止指令
cancel context.CancelFunc // 停止函数
logger *zap.SugaredLogger // 日志
lastLogicTime int64 // 上次逻辑帧执行时间(毫秒时间戳)
SID int64 // 服务ID
SID string // 服务ID
InstanceID int32 // 副本ID
UniqueNo int64 // 唯一编号
UniqueNo string // 唯一编号
EventIn chan proto.Message // 消息入口
}
// NewScene 初始化场景
func NewScene(sid int64, instanceID int32) *Instance {
func NewScene(sid string, instanceID int32) *Instance {
s := &Instance{
players: make(map[int64]*npc.PlayerNode),
players: make(map[string]*npc.PlayerNode),
SID: sid,
InstanceID: instanceID,
UniqueNo: utils.SnowflakeInstance().Generate().Int64(),
UniqueNo: utils.SnowflakeInstance().Generate().String(),
EventIn: make(chan proto.Message, 1024),
}
s.logger = log.GetLogger().Named(fmt.Sprintf("instance %v:%v", s.InstanceID, s.UniqueNo))
@@ -104,7 +104,7 @@ func (i *Instance) onEvent(e proto.Message) {
// 逻辑帧
func (i *Instance) onLogic(delta int64) {
positionUpdate := make([]*sc_pb.PositionInfo, 0)
sid := int64(0)
sid := ""
// 处理玩家指令
for _, node := range i.players {
if node.LogicAction(delta) {
@@ -121,7 +121,7 @@ func (i *Instance) onLogic(delta int64) {
Info: positionUpdate,
})
if err := stream_client.SendMessageToGateway(sid, stream_client.FunToClient, &grpc_pb.ToClientReq{
USN: -1,
USN: "",
MessageID: int32(sc_pb.MessageID_MESSAGE_ID_POSITION),
Payload: payload,
}); err != nil {

View File

@@ -8,34 +8,34 @@ var Mgr *insManager
type insManager struct {
sync.RWMutex
insMap map[int64]*Instance // [uniqueNo]
insMap map[string]*Instance // [uniqueNo]
}
func init() {
Mgr = &insManager{
insMap: make(map[int64]*Instance),
insMap: make(map[string]*Instance),
}
}
func (m *insManager) Add(uniqueNo int64, ins *Instance) {
func (m *insManager) Add(uniqueNo string, ins *Instance) {
m.Lock()
defer m.Unlock()
m.insMap[uniqueNo] = ins
}
func (m *insManager) Delete(uniqueNo int64) {
func (m *insManager) Delete(uniqueNo string) {
m.Lock()
defer m.Unlock()
delete(m.insMap, uniqueNo)
}
func (m *insManager) GetAll() map[int64]*Instance {
func (m *insManager) GetAll() map[string]*Instance {
m.RLock()
defer m.RUnlock()
return m.insMap
}
func (m *insManager) GetByUniqueNo(uniqueNo int64) *Instance {
func (m *insManager) GetByUniqueNo(uniqueNo string) *Instance {
m.RLock()
defer m.RUnlock()
return m.insMap[uniqueNo]