
   /* AMX Mod - C-D Info
   *  Dieses Plugin gibt C-D Authentifizierungsnachrichten aus, ausserdem
   koennen
   * C-D Auths, NoAuths und Oldcds geloggt/ausgegeben werden.
   *
   * Installation:
   * - cdinfo.amx nach /addons/amx/plugins kopieren
   *   -   addons/amx/plugins/plugins.ini   oeffnen,  "cdinfo.amx"  unten
   anfuegen (ohne "")
   * - server.cfg cvars und Defaultwerte:
   *   sv_cdauth 2
   *   sv_cdnoauth 2
   *   sv_cdold 2
   *   sv_cdhud  4  (Schrift  erscheint  1=links  oben 2=Konsole  3=links
   unten 4=center, 0=keine Infomessage)
   *   0=nix, 1=log only 2=screen only(default) 3=log+screen
   * - folgende Variablen MUESSEN so in eure server.cfg:
   *   cdvalidatecmd "cdinfo %d 1"
   *   cdnovalidatecmd "cdinfo %d 2"
   *   cdoldvalidatecmd "cdinfo %d 3"
   *
   *  Ihr  koennt  somit  die  3  Aktionen  CDAUTH,  CDNOAUTH  und  OLDCD
   unabhaengig einstellen, z.B.
   *  NOAUTHs  loggen, AUTHs nur aufm Bildschirm anzeigen und OLDCDs ganz
   ignorieren
   * (das waere dann sv_cdnoauth 1, sv_cdauth 2, sv_oldcd 0).
   *
   * Das Logfile heisst "cdinfo.log" und befindet sich in addons/amx.
   */
   #include <amxmod>
   //#define AMX_094RC8
   // Set Language
   // 1 - German
   // 2 - English
   #define LANGUAGE 2
   new g_check[33]
   new g_logFile[] = "cdinfo.log"
   new g_cdinfoTag[] = "[CDINFO]"
   #if LANGUAGE == 1
   new g_clientMsg[2][] = {
     "Sie  konnten  nicht  C-D  authentifiziert  werden  und sind deshalb
   gekickt worden",
     "Sie  verwenden  eine veraltete C-D Version und sind deshalb gekickt
   worden"
   }
   new g_serverMsg[3][] = {
     "%s - Spieler %s authentifiziert (WON %s, IP %s, CD %s)",
     "%s - Spieler %s nicht authentifiziert (WON %s, IP %s, CD %s)",
     "%s  - Spieler %s benutzt eine veraltete C-D Version (WON %s, IP %s,
   CD %s)"
   }
   #define CONNECTMSG 4
   new g_connectMsg[CONNECTMSG][] = {
     "=====================================",
     " Auf diesem Server laeuft CDInfo 1.17",
     "     www.nocheat.de - MUff[99]",
     "====================================="
   }
   #endif
   #if LANGUAGE == 2
   new g_clientMsg[2][] = {
     "You  failed  to  get  CD  authenticated  and  got  kicked from this
   server",
     "The CD version you are using is out of date, plz update"
   }
   new g_serverMsg[3][] = {
     "%s - Player %s authenticated (WON %s, IP %s, CD %s)",
     "%s - Player %s failed to authenticate (WON %s, IP %s, CD %s)",
     "%s - Player %s uses an old C-D version (WON %s, IP %s, CD %s)"
   }
   #define CONNECTMSG 4
   new g_connectMsg[CONNECTMSG][] = {
     "=====================================",
     "      CDInfo 1.17 running ...",
     "     www.nocheat.de - MUff[99]",
     "====================================="
   }
   #endif
   // ================================================================
   public plugin_init()
   {
     register_plugin("nocheat.de CDInfo","1.17", "MUff[99]")
     register_srvcmd("cdinfo", "cmdCDInfo")
     register_cvar("sv_cdauth","2")
     register_cvar("sv_cdnoauth","2")
     register_cvar("sv_cdold","2")
     register_cvar("sv_cdhud", "4")
     register_cvar("amx_cdinfo", "1.16")
   }
   // ================================================================
   public client_connect(id)
   {
     for(new a = 0; a < CONNECTMSG; ++a)
       client_cmd(id, "echo ^"%s^"" , g_connectMsg[a] )

     g_check[ id ] = 1

   #if defined AMX_094RC8
     set_task(20.0, "showInfo", id )
   #else
     new param[1]
     param[0] = id
     set_task(20.0, "showInfo", id ,param, 1 )
   #endif
   }
   // ================================================================
   public client_disconnect(id)
     remove_task( id )
   // ================================================================
   #if defined AMX_094RC8
   public showInfo( id ){
   #else
   public showInfo( param[] ){
     new id = param[0]
   #endif
     new hud = get_cvar_num("sv_cdhud")
     if   (   hud   )   client_print(id,  hud  ,"%s  Cheating  Death  %s"
   ,g_cdinfoTag,
       get_cvar_num("cdrequired") ? "required" : "optional" )
   }
   // ================================================================
   doAction( id , clientmsg[] , servermsg[], flags )
   {
     new name[32], authid[32], ip[16],cdversion[16]
     get_user_name(id,name,31)

     get_user_authid(id,authid,31)

     get_user_ip(id,ip,15,1)
     get_cvar_string("cdversion", cdversion, 15)
     if   (   flags   &   4  )  client_print(  id  ,  print_console,  "%s
   %s",g_cdinfoTag,clientmsg )
     if   (   flags  &  2  )  client_print(  0  ,print_chat  ,  servermsg
   ,g_cdinfoTag, name, authid ,ip, cdversion )
     if  (  flags  & 1 ) log_to_file( g_logFile , servermsg ,g_cdinfoTag,
   name, authid ,ip, cdversion )
   }
   // ================================================================
   public cmdCDInfo()
   {
     new arg[8]
     read_argv(1, arg, 7)
     new id = strtonum( arg )
     // arg1 = Spielerid
     // ?????????? - USER INDEX or USER ID ??????????
     // Couldn't determine from original code
     // Assuming that this is an user index
     // arg2 = 1=cdauth, 2=cdnoauth, 3=oldcd
     if ( g_check[ id ] && is_user_connected( id ) ) {
       g_check[ id ] = 0
       read_argv(2, arg, 7)
       switch( strtonum( arg )  ) {
         case     1:     doAction(     id     ,    "",    g_serverMsg[0],
   get_cvar_num("sv_cdauth")  )
         case   2:   doAction(   id   ,  g_clientMsg[0],  g_serverMsg[1],
   get_cvar_num("sv_cdnoauth") | 4 )
         case   3:   doAction(   id   ,  g_clientMsg[1],  g_serverMsg[2],
   get_cvar_num("sv_cdold") | 4 )
       }
     }
     return PLUGIN_HANDLED
   }
