diff --git a/pkg/server/room.go b/pkg/server/room.go index b2b530f..7b29073 100644 --- a/pkg/server/room.go +++ b/pkg/server/room.go @@ -279,8 +279,10 @@ func (r *Room) HandleInput(input game.ClientInput) { case "STATE": // Vollständigen Input-State atomisch setzen – verhindert stuck-Inputs durch // Paketverlust oder Reihenfolge-Probleme bei Event-basierten Nachrichten. - // Out-of-Order-Schutz: nur neuere States übernehmen - if input.Sequence <= p.LastInputSeq { + // Out-of-Order-Schutz: ältere States (Sequenz < zuletzt gesehen) ignorieren. + // Hinweis: p.LastInputSeq wurde oben bereits auf max(old, input.Sequence) gesetzt, + // daher muss hier < statt <= geprüft werden. + if input.Sequence < p.LastInputSeq { return }