From de5e85fabe6dcecf80f3decb3c161ee390944c8a Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 15 Sep 2023 11:08:20 +0800 Subject: [PATCH] 1 --- server/hallserver/proto/cs_proto.proto | 5 +++-- server/hallserver/room/room.go | 21 +++++++++++++++------ server/hallserver/room/team.go | 3 --- third_party/q5 | 2 +- 4 files changed, 19 insertions(+), 12 deletions(-) diff --git a/server/hallserver/proto/cs_proto.proto b/server/hallserver/proto/cs_proto.proto index 9192b948..a370561c 100644 --- a/server/hallserver/proto/cs_proto.proto +++ b/server/hallserver/proto/cs_proto.proto @@ -120,7 +120,8 @@ message MFMember message MFTeam { optional int32 team_id = 1; //队伍id - repeated MFMember members = 2; //成员列表 + optional string team_uuid = 2; //队伍唯一id + repeated MFMember members = 3; //成员列表 } //自己所在房间信息 @@ -270,7 +271,7 @@ message CMSetPrepare //踢队伍(房主才有权限) message CMKickoutTeam { - optional int32 team_id = 1; //队伍id + optional string team_uuid = 1; //队伍唯一id } //踢成员 diff --git a/server/hallserver/room/room.go b/server/hallserver/room/room.go index 58b06f73..37438433 100644 --- a/server/hallserver/room/room.go +++ b/server/hallserver/room/room.go @@ -76,7 +76,7 @@ func (this *room) getMember(accountId string) *member { return nil } -func (this *room) getTeam(teamUuid string) *team { +func (this *room) getTeamByUuid(teamUuid string) *team { t, ok := this.teamUuidHash[teamUuid] if ok { return t @@ -84,6 +84,14 @@ func (this *room) getTeam(teamUuid string) *team { return nil } +func (this *room) getTeamById(teamId int32) *team { + t, ok := this.teamIdHash[teamId] + if ok { + return t + } + return nil +} + func (this *room) getTeamNum() int32 { return int32(len(this.teamUuidHash)) } @@ -104,7 +112,7 @@ func (this *room) canJoin(member common.Player, passwd string) bool { if this.config.passwd != passwd { return false } - t := this.getTeam(member.GetTeamUuid()) + t := this.getTeamByUuid(member.GetTeamUuid()) if t != nil && t.getMemberNum() >= constant.ROOM_MAX_TEAM_MEMBER_NUM { return false } @@ -117,7 +125,7 @@ func (this *room) join(hum common.Player, passwd string) bool { } m := newMember(this, hum) this.members[hum.GetAccountId()] = m - t := this.getTeam(hum.GetTeamUuid()) + t := this.getTeamByUuid(hum.GetTeamUuid()) if t == nil { t = newTeam(this, this.genTeamId(), m) this.teamUuidHash[hum.GetTeamUuid()] = t @@ -204,7 +212,7 @@ func (this *room) CMStartGame(hdr *f5.MsgHdr, msg *cs.CMStartGame) { func (this *room) CMSetPrepare(hdr *f5.MsgHdr, msg *cs.CMSetPrepare) { hum := hdr.Context.(common.Player) m := this.getMember(hum.GetAccountId()) - if m != nil { + if m != nil && m != this.owner { m.state = MEMBER_READY_STATE notifyMsg := &cs.SMRoomMemberChangeNotify{} notifyMsg.Member = new(cs.MFMember) @@ -216,7 +224,8 @@ func (this *room) CMSetPrepare(hdr *f5.MsgHdr, msg *cs.CMSetPrepare) { func (this *room) CMKickoutTeam(hdr *f5.MsgHdr, msg *cs.CMKickoutTeam) { hum := hdr.Context.(common.Player) m := this.getMember(hum.GetAccountId()) - if m != nil { + t := this.getTeamByUuid(msg.GetTeamUuid()) + if m == this.owner && t != nil { notifyMsg := &cs.SMRoomKickoutNotify{} this.broadcastMsg(notifyMsg) } @@ -225,7 +234,7 @@ func (this *room) CMKickoutTeam(hdr *f5.MsgHdr, msg *cs.CMKickoutTeam) { func (this *room) CMKickoutMember(hdr *f5.MsgHdr, msg *cs.CMKickoutMember) { hum := hdr.Context.(common.Player) m := this.getMember(hum.GetAccountId()) - if m != nil { + if m == this.owner { notifyMsg := &cs.SMRoomKickoutNotify{} this.broadcastMsg(notifyMsg) } diff --git a/server/hallserver/room/team.go b/server/hallserver/room/team.go index 17304d81..e2f1f97c 100644 --- a/server/hallserver/room/team.go +++ b/server/hallserver/room/team.go @@ -36,9 +36,6 @@ func (this *team) addMember(m *member) { this.members.AddTail(&m.teamEntry) } -func (this *team) removeMember(m *member) { -} - func (this *team) getMemberNum() int32 { return this.members.Size() } diff --git a/third_party/q5 b/third_party/q5 index f0ba360b..867867b5 160000 --- a/third_party/q5 +++ b/third_party/q5 @@ -1 +1 @@ -Subproject commit f0ba360bdc5a4045c3ef54fcb84a198e09fbe254 +Subproject commit 867867b5d62818c6dc1474fb9dba487075038e45