修复注册帐号问题

This commit is contained in:
flswld
2023-02-12 18:00:12 +08:00
parent 36a150c9bb
commit a5a0a16998
2 changed files with 11 additions and 11 deletions

View File

@@ -19,7 +19,7 @@ func (g *GameManager) PlayerLoginReq(userId uint32, clientSeq uint32, gateAppId
logger.Info("user login req, uid: %v, gateAppId: %v", userId, gateAppId)
req := payloadMsg.(*proto.PlayerLoginReq)
logger.Debug("login data: %v", req)
g.OnLogin(userId, clientSeq, gateAppId)
g.OnLogin(userId, clientSeq, gateAppId, false, nil)
}
func (g *GameManager) SetPlayerBornDataReq(userId uint32, clientSeq uint32, gateAppId string, payloadMsg pb.Message) {
@@ -33,8 +33,12 @@ func (g *GameManager) SetPlayerBornDataReq(userId uint32, clientSeq uint32, gate
g.OnReg(userId, clientSeq, gateAppId, req)
}
func (g *GameManager) OnLogin(userId uint32, clientSeq uint32, gateAppId string) {
func (g *GameManager) OnLogin(userId uint32, clientSeq uint32, gateAppId string, isReg bool, regPlayer *model.Player) {
logger.Info("user login, uid: %v", userId)
if isReg {
g.OnLoginOk(userId, regPlayer, clientSeq, gateAppId)
return
}
player, isRobot := USER_MANAGER.OnlineUser(userId, clientSeq, gateAppId)
if isRobot {
g.OnLoginOk(userId, player, clientSeq, gateAppId)
@@ -46,9 +50,9 @@ func (g *GameManager) OnLoginOk(userId uint32, player *model.Player, clientSeq u
g.SendMsgToGate(cmd.DoSetPlayerBornDataNotify, userId, clientSeq, gateAppId, new(proto.DoSetPlayerBornDataNotify))
return
}
player.OnlineTime = uint32(time.Now().UnixMilli())
player.Online = true
player.GateAppId = gateAppId
// 初始化
@@ -58,7 +62,6 @@ func (g *GameManager) OnLoginOk(userId uint32, player *model.Player, clientSeq u
player.Pos.X = player.SafePos.X
player.Pos.Y = player.SafePos.Y
player.Pos.Z = player.SafePos.Z
if player.SceneId > 100 {
player.SceneId = 3
player.Pos = &model.Vector{X: 2747, Y: 194, Z: -1719}
@@ -93,7 +96,6 @@ func (g *GameManager) OnReg(userId uint32, clientSeq uint32, gateAppId string, p
logger.Debug("user reg, uid: %v", userId)
req := payloadMsg.(*proto.SetPlayerBornDataReq)
logger.Debug("avatar id: %v, nickname: %v", req.AvatarId, req.NickName)
exist, asyncWait := USER_MANAGER.CheckUserExistOnReg(userId, req, clientSeq, gateAppId)
if !asyncWait {
g.OnRegOk(exist, req, userId, clientSeq, gateAppId)
@@ -105,23 +107,20 @@ func (g *GameManager) OnRegOk(exist bool, req *proto.SetPlayerBornDataReq, userI
logger.Error("recv reg req, but user is already exist, uid: %v", userId)
return
}
nickName := req.NickName
mainCharAvatarId := req.GetAvatarId()
if mainCharAvatarId != 10000005 && mainCharAvatarId != 10000007 {
logger.Error("invalid main char avatar id: %v", mainCharAvatarId)
return
}
player := g.CreatePlayer(userId, nickName, mainCharAvatarId)
if player == nil {
logger.Error("player is nil, uid: %v", userId)
return
}
USER_MANAGER.AddUser(player)
g.SendMsgToGate(cmd.SetPlayerBornDataRsp, userId, clientSeq, gateAppId, new(proto.SetPlayerBornDataRsp))
g.OnLogin(userId, clientSeq, gateAppId)
g.OnLogin(userId, clientSeq, gateAppId, true, player)
}
func (g *GameManager) OnUserOffline(userId uint32, changeGsInfo *ChangeGsInfo) {
@@ -140,7 +139,6 @@ func (g *GameManager) OnUserOffline(userId uint32, changeGsInfo *ChangeGsInfo) {
player.Online = false
player.TotalOnlineTime += uint32(time.Now().UnixMilli()) - player.OnlineTime
USER_MANAGER.OfflineUser(player, changeGsInfo)
atomic.AddInt32(&ONLINE_PLAYER_NUM, -1)
}

View File

@@ -133,8 +133,9 @@ type PlayerLoginInfo struct {
func (u *UserManager) OnlineUser(userId uint32, clientSeq uint32, gateAppId string) (*model.Player, bool) {
player, exist := u.playerMap[userId]
if userId > PlayerBaseUid {
// 每次玩家上线必须从数据库加载最新的档 如果之前存在于内存则删掉
// 正常登录
if exist {
// 每次玩家上线必须从数据库加载最新的档 如果之前存在于内存则删掉
u.DeleteUser(userId)
}
go func() {
@@ -158,6 +159,7 @@ func (u *UserManager) OnlineUser(userId uint32, clientSeq uint32, gateAppId stri
}()
return nil, false
} else {
// 机器人
return player, true
}
}