Skip to content

Instantly share code, notes, and snippets.

@wifiman
Last active December 12, 2015 07:39
Show Gist options
  • Save wifiman/4738355 to your computer and use it in GitHub Desktop.
Save wifiman/4738355 to your computer and use it in GitHub Desktop.
diff -r dd56a497bb3b server/server.h
--- a/server/server.h Tue Sep 04 07:31:03 2012 +0000
+++ b/server/server.h Tue Oct 02 10:24:55 2012 +0000
@@ -271,6 +271,9 @@
//ugly hack for variable FPS support dropping s.event
int entity_events[MAX_EDICTS];
+
+ usercmd_t cmdHist[2];
+ int snaps;
} client_t;
// a client can leave the server in one of four ways:
diff -r dd56a497bb3b server/sv_user.c
--- a/server/sv_user.c Tue Sep 04 07:31:03 2012 +0000
+++ b/server/sv_user.c Tue Oct 02 10:24:55 2012 +0000
@@ -2470,6 +2470,21 @@
if (cl->commandMsec < 0 && sv_enforcetime->intvalue)
return;
+ if ( !(cmd->buttons & BUTTON_ATTACK) && (cl->cmdHist[0].buttons & BUTTON_ATTACK) && !(cl->cmdHist[1].buttons & BUTTON_ATTACK) ) {
+ const int16 deltaLast[2] = { abs(cmd->angles[0] - cl->cmdHist[0].angles[0]), abs(cmd->angles[1] - cl->cmdHist[0].angles[1]) };
+ const int16 deltaPrev[2] = { abs(cmd->angles[0] - cl->cmdHist[1].angles[0]), abs(cmd->angles[1] - cl->cmdHist[1].angles[1]) };
+ const int16 oldDelta[2] = { abs(cl->cmdHist[0].angles[0] - cl->cmdHist[1].angles[0]), abs(cl->cmdHist[0].angles[1] - cl->cmdHist[1].angles[1]) };
+ if ( deltaLast[0] > deltaPrev[0] && deltaLast[1] > deltaPrev[1] &&
+ oldDelta [0] > deltaPrev[0] && oldDelta [1] > deltaPrev[1] ) {
+ if (++cl->snaps > 2) {
+ SV_KickClient(cl, "probable aimbot detected", "probable aimbot detected");
+ return;
+ }
+ }
+ }
+ cl->cmdHist[1] = cl->cmdHist[0];
+ cl->cmdHist[0] = *cmd;
+
interpolate = qfalse;
//r1: interpolate the move over the msec to smooth out
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment