From 1f323b7797b18c27b578d77001ee53d02d38c999 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 13 Sep 2023 16:40:05 +0800 Subject: [PATCH] 1 --- server/hallserver/common/types.go | 1 + server/hallserver/player/player.go | 4 ++++ server/hallserver/room/team.go | 12 +++++++++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/server/hallserver/common/types.go b/server/hallserver/common/types.go index 772aaa55..60772717 100644 --- a/server/hallserver/common/types.go +++ b/server/hallserver/common/types.go @@ -31,6 +31,7 @@ type Player interface { GetZoneId() int32 GetNodeId() int32 SendMsg(proto.Message) + IsOnline() bool } type PlayerMgr interface { diff --git a/server/hallserver/player/player.go b/server/hallserver/player/player.go index cde4f26f..d3fe6146 100644 --- a/server/hallserver/player/player.go +++ b/server/hallserver/player/player.go @@ -79,3 +79,7 @@ func (this *player) GetNodeId() int32 { func (this *player) GetSessionId() string { return this.sessionId } + +func (this *player) IsOnline() bool { + return this.socket.IsValid() +} diff --git a/server/hallserver/room/team.go b/server/hallserver/room/team.go index e561b321..18e13f73 100644 --- a/server/hallserver/room/team.go +++ b/server/hallserver/room/team.go @@ -37,7 +37,17 @@ func (this *team) hasAlreadMember() bool { } func (this *team) getOwnerCandidate() *member { - return nil + var ownerCandidate *member + this.members.ForEach_r( + func (data interface{}) bool { + m := data.(*member) + if m.hum.IsOnline() { + ownerCandidate = m + return false + } + return true + }) + return ownerCandidate } func newTeam(teamId int32, leader *member) *team {