diff --git a/server/channelserver/handlers_clients.go b/server/channelserver/handlers_clients.go index e1d2c4a49..4add1e9eb 100644 --- a/server/channelserver/handlers_clients.go +++ b/server/channelserver/handlers_clients.go @@ -29,6 +29,9 @@ func handleMsgSysEnumerateClient(s *Session, p mhfpacket.MHFPacket) { for _, cid := range stage.clients { clients = append(clients, cid) } + for cid := range stage.reservedClientSlots { + clients = append(clients, cid) + } case 1: // Not ready for cid, ready := range stage.reservedClientSlots { if !ready { diff --git a/server/channelserver/handlers_stage.go b/server/channelserver/handlers_stage.go index abd9d3ba5..5e26c8697 100644 --- a/server/channelserver/handlers_stage.go +++ b/server/channelserver/handlers_stage.go @@ -386,7 +386,11 @@ func handleMsgSysEnumerateStage(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint16(uint16(len(stage.reservedClientSlots))) bf.WriteUint16(uint16(len(stage.clients))) - bf.WriteUint16(uint16(len(stage.clients))) + if strings.HasPrefix(stage.id, "sl2Ls") { + bf.WriteUint16(uint16(len(stage.clients) + len(stage.reservedClientSlots))) + } else { + bf.WriteUint16(uint16(len(stage.clients))) + } bf.WriteUint16(stage.maxPlayers) var flags uint8 if stage.locked {