diff --git a/source/src/server.cpp b/source/src/server.cpp index 1106f166..adf9d887 100644 --- a/source/src/server.cpp +++ b/source/src/server.cpp @@ -185,7 +185,7 @@ struct client // server side version of "dynent" type int role; bool isauthed; // for passworded servers bool timesync; - int gameoffset; + int gameoffset, lastevent; clientstate state; vector events; vector position, messages; @@ -203,6 +203,7 @@ struct client // server side version of "dynent" type state.reset(); events.setsizenodelete(0); timesync = false; + lastevent = 0; } void reset() @@ -907,7 +908,12 @@ void processevents() while(c->events.length()) { gameevent &e = c->events[0]; - if(e.typegamemillis) break; + if(e.typegamemillis) break; + if(e.shot.millislastevent) { clearevent(c); continue; } + c->lastevent = e.shot.millis; + } switch(e.type) { case GE_SHOT: processevent(c, e.shot); break;