From d55122d76452c4ee1480d752981b31a72baa0973 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 11 Mar 2024 10:55:24 +0800 Subject: [PATCH] 1 --- server/matchserver/common/types.go | 2 ++ server/matchserver/player/player.go | 7 ++++++- server/matchserver/player/playermgr.go | 16 +++++++++++++--- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/server/matchserver/common/types.go b/server/matchserver/common/types.go index d7b81fe7..5a3be1b8 100644 --- a/server/matchserver/common/types.go +++ b/server/matchserver/common/types.go @@ -11,6 +11,7 @@ import ( ) type Team interface { + GetTeamUuid() string OnPlayerOffline(Player) OnPlayerOnline(Player) } @@ -29,6 +30,7 @@ type Player interface { GetPing() int32 SendMsg(proto.Message) IsOnline() bool + GetTeam() Team } type PlayerMgr interface { diff --git a/server/matchserver/player/player.go b/server/matchserver/player/player.go index 39ccc54f..c9f1bb92 100644 --- a/server/matchserver/player/player.go +++ b/server/matchserver/player/player.go @@ -4,7 +4,7 @@ import ( "cs" "f5" "github.com/golang/protobuf/proto" - //"main/common" + "main/common" . "main/global" ) @@ -20,6 +20,7 @@ type player struct { heroId string headFrame string ping int32 + team common.Team } func (this *player) SendMsg(rspMsg proto.Message) { @@ -102,3 +103,7 @@ func (this *player) internalSetPing(ping int32) { this.ping = ping } } + +func (this *player) GetTeam() common.Team { + return this.team +} diff --git a/server/matchserver/player/playermgr.go b/server/matchserver/player/playermgr.go index 9b8ef0f8..97bcd3e0 100644 --- a/server/matchserver/player/playermgr.go +++ b/server/matchserver/player/playermgr.go @@ -64,6 +64,17 @@ func (this *playerMgr) UnInit() { } func (this *playerMgr) CMLogin(hdr *f5.MsgHdr, msg *cs.CMLogin) { + { + if msg.GetCreateTeamParam() == nil && + msg.GetJoinTeamParam() == nil { + rspMsg := cs.SMLogin{} + rspMsg.Errcode = proto.Int32(1) + rspMsg.Errmsg = proto.String("params error") + GetWspListener().SendProxyMsg(hdr.Conn, hdr.SocketHandle, &rspMsg) + return + + } + } { oldHum := this.internalGetPlayerBySocket(hdr.GetSocket()) if oldHum != nil { @@ -71,9 +82,9 @@ func (this *playerMgr) CMLogin(hdr *f5.MsgHdr, msg *cs.CMLogin) { rspMsg.Errcode = proto.Int32(0) rspMsg.Errmsg = proto.String("") rspMsg.ServerInfo = proto.String(mt.Table.MatchCluster.GetServerInfo()) + rspMsg.TeamUuid = proto.String(oldHum.GetTeam().GetTeamUuid()) oldHum.reBind(hdr.GetSocket()) oldHum.SendMsg(&rspMsg) - return } } @@ -119,7 +130,7 @@ func (this *playerMgr) apiAuthCb(hdr *f5.MsgHdr, msg *cs.CMLogin, rsp f5.HttpCli if pendingReq == nil || pendingReq.reqId != *reqId { return } - delete(this.pendingLoginHash, msg.GetAccountId()) + defer delete(this.pendingLoginHash, msg.GetAccountId()) rspMsg := cs.SMLogin{} if rsp.GetErr() != nil { @@ -161,7 +172,6 @@ func (this *playerMgr) apiAuthCb(hdr *f5.MsgHdr, msg *cs.CMLogin, rsp f5.HttpCli hum := new(player) hum.init(pendingReq, rspObj.Info.Name, rspObj.Info.HeadId, rspObj.Info.HeroId, rspObj.Info.HeadFrame) - //this.accountIdHash[hum.GetAccountId()] = hum this.socketHash[pendingReq.hdr.GetSocket()] = hum rspMsg.ServerInfo = proto.String(mt.Table.MatchCluster.GetServerInfo())