From bf985f9c81837c6f98559b5f6ce8a43d35736fcd Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sat, 16 Sep 2023 11:49:42 +0800 Subject: [PATCH] 1 --- server/hallserver/room/room.go | 21 +++++++++++++++++++++ server/hallserver/room/roommgr.go | 3 +++ server/hallserver/room/team.go | 16 ++++++++++++++++ 3 files changed, 40 insertions(+) diff --git a/server/hallserver/room/room.go b/server/hallserver/room/room.go index 96004f62..6f687c6a 100644 --- a/server/hallserver/room/room.go +++ b/server/hallserver/room/room.go @@ -145,6 +145,27 @@ func (this *room) fillMFRoom(pb *cs.MFRoom) { this.owner.fillMFMember(pb.Owner) } +func (this *room) fillMFCurrentRoom(pb *cs.MFCurrentRoom) { + pb.RoomId = proto.String(this.roomId) + pb.MapId = proto.Int32(this.config.mapId) + pb.ZoneId = proto.Int32(this.config.zoneId) + if this.config.passwd != "" { + pb.HasPasswd = proto.Int32(1) + } + pb.PlayerNum = proto.Int32(int32(len(this.members))) + pb.PlayerMaxNum = proto.Int32(constant.ROOM_MAX_PLAYER_NUM) + pb.TeamNum = proto.Int32(int32(len(this.teamUuidHash))) + pb.TeamMaxNum = proto.Int32(constant.ROOM_MAX_TEAM_NUM) + pb.Owner = new(cs.MFMember) + this.owner.fillMFMember(pb.Owner) + q5.NewSlice(&pb.TeamList, 0, 10) + for _, t := range(this.teamUuidHash) { + pbT := &cs.MFTeam{} + t.fillMFTeam(pbT) + q5.AppendSlice(&pb.TeamList, pbT) + } +} + func (this *room) OnPlayerOffline(hum common.Player) { } diff --git a/server/hallserver/room/roommgr.go b/server/hallserver/room/roommgr.go index 8d45e1ec..24566687 100644 --- a/server/hallserver/room/roommgr.go +++ b/server/hallserver/room/roommgr.go @@ -139,7 +139,10 @@ func (this *roomMgr) CMGetCurrentRoom(hdr *f5.MsgHdr, msg *cs.CMGetCurrentRoom) hum := hdr.Context.(common.Player) rspMsg := &cs.SMGetCurrentRoom{} if hum.GetRoom() != nil && hum.GetRoom().GetRoomState() == ROOM_INIT_STATE { + hum.SendMsg(rspMsg) return } + rspMsg.Room = new(cs.MFCurrentRoom) + hum.GetRoom().(*room).fillMFCurrentRoom(rspMsg.Room) hum.SendMsg(rspMsg) } diff --git a/server/hallserver/room/team.go b/server/hallserver/room/team.go index dc438fce..9fead079 100644 --- a/server/hallserver/room/team.go +++ b/server/hallserver/room/team.go @@ -2,6 +2,8 @@ package room import ( "q5" + "cs" + "github.com/golang/protobuf/proto" ) type team struct { @@ -28,6 +30,20 @@ func (this *team) unInit() { this.room = nil } +func (this *team) fillMFTeam(pb *cs.MFTeam) { + pb.TeamId = proto.Int32(this.teamId) + pb.TeamUuid = proto.String(this.teamUuid) + q5.NewSlice(&pb.Members, 0, 4) + this.members.ForEach( + func (data interface{}) bool { + m := data.(*member) + pbM := &cs.MFMember{} + m.fillMFMember(pbM) + q5.AppendSlice(&pb.Members, pbM) + return true + }) +} + func (this *team) addMember(m *member) { m.team = this this.members.AddTail(&m.teamEntry)