diff --git a/server/matchserver/common/types.go b/server/matchserver/common/types.go index adc857fb..1e44c86f 100644 --- a/server/matchserver/common/types.go +++ b/server/matchserver/common/types.go @@ -52,6 +52,7 @@ type Team interface { KickOut(Player, string) HandoverLeader(Player, string) CancelMatch() + SetMapId(int32) } type TeamMgr interface { diff --git a/server/matchserver/player/player.go b/server/matchserver/player/player.go index 21f39aaf..e2287153 100644 --- a/server/matchserver/player/player.go +++ b/server/matchserver/player/player.go @@ -284,6 +284,7 @@ func (this *player) CMChooseMap(hdr *f5.MsgHdr, msg *cs.CMChooseMap) { rspMsg.Errcode = proto.Int32(1) rspMsg.Errmsg = proto.String("team already started") } else { + this.GetTeam().SetMapId(msg.GetMapId()) } this.SendMsg(rspMsg) this.GetTeam().SendUpdateNotify() diff --git a/server/matchserver/team/team.go b/server/matchserver/team/team.go index a20a6430..a6676791 100644 --- a/server/matchserver/team/team.go +++ b/server/matchserver/team/team.go @@ -211,6 +211,12 @@ func (this *team) CancelMatch() { } } +func (this *team) SetMapId(mapId int32) { + if !this.Started() { + this.mapId = mapId + } +} + func (this *team) rearrangementSortIdx() { members := []common.Player{} q5.NewSlice(&members, 0, 4)