mirror of
https://github.com/Mezeporta/Erupe.git
synced 2026-02-04 09:15:08 +01:00
enforce Stage.maxPlayers on EnterStage
This commit is contained in:
@@ -151,6 +151,13 @@ func removeSessionFromStage(s *Session) {
|
||||
func handleMsgSysEnterStage(s *Session, p mhfpacket.MHFPacket) {
|
||||
pkt := p.(*mhfpacket.MsgSysEnterStage)
|
||||
|
||||
if stage, exists := s.server.stages[pkt.StageID]; exists {
|
||||
if len(stage.reservedClientSlots) == int(stage.maxPlayers) {
|
||||
doAckSimpleFail(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x01})
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// Push our current stage ID to the movement stack before entering another one.
|
||||
if s.stage != nil {
|
||||
s.stage.Lock()
|
||||
|
||||
@@ -59,7 +59,7 @@ func NewStage(ID string) *Stage {
|
||||
objects: make(map[uint32]*Object),
|
||||
objectIndex: 0,
|
||||
rawBinaryData: make(map[stageBinaryKey][]byte),
|
||||
maxPlayers: 4,
|
||||
maxPlayers: 127,
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user