r1ch.net forums
* Home Help Search Login Register
r1ch.net  |  r1ch.net stuff  |  Anticheat  |  Topic: Adding anticheat support for client
Pages: [1]
Print
Author Topic: Adding anticheat support for client  (Read 26728 times)
Berserker
Guest
« on: August 22, 2010, 04:16:14 am »

Hello R1CH
I want to add anticheat support (client side only) for berserker@quake2.
I added in to CL_ConnectionlessPacket:

...
   // server connection
   if (!strcmp(c, "client_connect"))
   {
      int      i, ia;
      bool   try_to_use_anticheat;
      char   *p;

      if (cls.state == ca_connected)
      {
         Com_Printf ("^3Dup connect received. Ignored.\n");
         return;
      }
      Netchan_Setup (NS_CLIENT, &cls.netchan, net_from, cls.port);

      try_to_use_anticheat = false;
      ia = Cmd_Argc();
      for (i = 1; i < ia; i++)
      {
         p = Cmd_Argv(i);
         if (!strncmp (p, "ac=", 3))
         {
            p+= 3;
            if (!p[0])
               continue;
            if (atoi(p))
               try_to_use_anticheat = true;
         }
      }

      if (try_to_use_anticheat)
      {
         MSG_WriteByte (&cls.netchan.message, clc_nop);
         Netchan_Transmit (&cls.netchan, 0, NULL);
         S_StopAllSounds ();
         Com_Printf ("^2Loading anticheat, this may take a few moments...\n");
         SCR_UpdateScreen ();
            if( !Sys_GetAntiCheatAPI() )
            Com_Printf ("^1ERROR: anticheat.dll failed to load\n"
                     "Either the file is missing, or something is preventing\n"
                     "it from loading or connecting to the anticheat server.\n"
                     "This is commonly caused by over-aggressive anti-virus\n"
                     "software. Try disabling any anti-virus or other security\n"
                     "software or add an exception for anticheat.dll.\n"
                     "\n"
                     "Trying to connect without anticheat support.\n");
            else
                Com_Printf( "^2Anticheat loaded successfully.\n" );
      }

      MSG_WriteByte (&cls.netchan.message, clc_stringcmd);
      MSG_WriteString (&cls.netchan.message, "new");   
      cls.state = ca_connected;
      return;
   }
...

anticheat.dll loaded and initialised succefully, but q2.playground.ru server kicked with
"Servers at q2.playground.ru require an anticheat module"

Whats wrong? What is not enough in a code?
 OS: WinXP64, antivirus KAV disabled, tracert anticheat.r1ch.net works...
Logged
R1CH
Administrator
Member

Posts: 2625



« Reply #1 on: August 22, 2010, 07:23:47 pm »

That doesn't work, since how does anticheat know your client is not full of built in aimbots and other such hacks Smiley.

New clients have to be manually approved by myself and often require significant code changes to anticheat.dll. Due to the amount of work involved, I only do this for clients that have active use on public Quake 2 servers. What version string does your client identify itself as?
Logged
Berserker
Guest
« Reply #2 on: August 22, 2010, 10:25:02 pm »

Thanx for quick reply  smiley
Quote
What version string does your client identify itself as?
Remind me please server's request or client's message with identity string. I'm not Q2 net protocol expert  embarassed
Logged
R1CH
Administrator
Member

Posts: 2625



« Reply #3 on: August 22, 2010, 11:50:18 pm »

Open your Q2 client and type "version" in the console, it should give a unique string identifying itself that's composed of a client name and build date.
Logged
Berserker
Guest
« Reply #4 on: August 23, 2010, 01:13:29 am »

version string consists of build date, time and "(Win32 RELEASE)"
For example: Apr 30 2010 13:00:30 x86 (Win32 RELEASE)
Rebuild changes version string.   sad   May be add "Berserker@Quake2" string?
For example: Berserker@Quake2 Apr 30 2010 13:00:30 x86 (Win32 RELEASE)
Logged
R1CH
Administrator
Member

Posts: 2625



« Reply #5 on: August 23, 2010, 01:46:29 am »

Yes, any custom client should identify itself in the version string instead of using "3.21" or nothing at all.
Logged
Berserker
Guest
« Reply #6 on: August 23, 2010, 08:50:24 am »

Will you add bers@q2 support? A version will be "Berserker@Quake2 ...".
To send you a client?
Logged
R1CH
Administrator
Member

Posts: 2625



« Reply #7 on: August 23, 2010, 08:21:12 pm »

I need to know the full version string of the current release of the client to gauge whether it's popular enough to add support to.
Logged
Berserker
Guest
« Reply #8 on: August 24, 2010, 09:02:17 am »

s = va("Berserker@Quake2 %s %s x86 (%s)", __DATE__, __TIME__,  BUILDSTRING);
Cvar_Get ("version", s, CVAR_SERVERINFO|CVAR_NOSET);
For my current build:
"version" is "Berserker@Quake2 Aug 24 2010 20:01:49 x86 (Win32 RELEASE)"
Logged
Berserker
Guest
« Reply #9 on: September 06, 2010, 12:19:15 pm »

Hi R1CH, I builded version 1.25 with experimental anticheat support.
http://berserker.quakegate.ru/files/up124to125.rar
Logged
mhanor
Member

Posts: 120


« Reply #10 on: September 07, 2010, 10:09:37 am »

perhaps you haven't fully understood how this works

the client version string must be personalized, so R1CH can see how much you're client is really used... it must be very popular among Q2 players, before asking R1CH for AC support for your client
the client must also be "stable", meaning it won't require an update for a long period of time, because other (new) builds won't be validated by AC
Logged
Pages: [1]
Print
r1ch.net  |  r1ch.net stuff  |  Anticheat  |  Topic: Adding anticheat support for client
Jump to:  

Powered by SMF 1.1.19 | SMF © 2013, Simple Machines