Ein neues Thema erstellen  Auf das Thema antworten  [ 17 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: new PLUGIN_LOGD_CATKILLER
BeitragVerfasst: 17.03.2002, 22:18 

Registriert: 06.01.2002, 01:00
Beiträge: 415
Wohnort: nicht weit weg von Köln
Biohazards Cat Killer Plugin (v1.0) 17.03.2002
-----------------------------------------------------------------------------

Vorwort
--------
Die Idee zu diesem Plugin entstand, als ich vor einiger Zeit auf einem Server
spielte auf dem ein Cheater seinen Unfug trieb. Er war keineswegs verlegen zu
zeigen welche kleinen und großen 'Vorteile' das Cheaten so mit sich bringt.
Neben den mir bereits schon seit längerem bekannten Cheats wie Aimbot, Wall-
hack usw. befand sich aber auch ein mir bis dato unbekannter 'Cheat' darunter.
Undzwar war es ihm möglich nach seinem Tod einfach wieder an einem beliebigen
Startpunkt 'aufzuerstehen' und für sich die Runde von vorn beginnen zu lassen.
Ziemlich entrüstet beschloß ich etwas dagegen zu unternehmen und schrieb jenes
Plugin, und nannte es 'Cat Killer' (da diese Cheater sieben Leben zu haben
scheinen).

Funktionsweise
---------------
Das Plugin speichert in einem Array die Information darüber ob ein Spieler in
der aktuellen Runde bereits gestorben ist, oder nicht. Ist ein Spieler bereits
als tot deklariert worden und tötet einen anderen Spieler oder wird selber ge-
tötet, so muß er jenen Cheat benutzen und wird gekickt oder gebannt (Kann im
Quellcode vor der Kompilierung eingestellt werden).

Das Plugin kann mit dem Befehl

admin_cat_off

ausgeschaltet, und mit dem Befehl

admin_cat_on

wieder eingeschaltet werden.

-----------------------------------------------------------------------------
(c)Copyright 2002 by Biohazard
Code:
      /***************************************************************
     **  Biohazards Cat Killer                          v 1.0  ******
    ***                                                        *****
   ****  INFO:  This Plugin detects if a player has more than  ****
  *****  one life in the same round. If so, he will be kicked  ***
 ******  or baned (Depending on your opinion)                  **
***************************************************************/

#include <core> 
#include <console> 
#include <string> 
#include <admin> 
#include <adminlib> 

#define ACCESS_CONSOLE 131072
#define ACCESS_CAT 1024
#define CLEAN_SLATE 0
#define SHOW_TIME 5
#define COLOR_R 255
#define COLOR_G 255
#define COLOR_B 255
#define KICK_HIM 1            // If a cheater is detected, he will be kicked
#define BAN_HIM 1             // If a cheater is detected, he will be banned
#define BAN_TIME 10           // Time in minutes a cheater will be banned (set to '0' to ban him for life)

#define DEBUG 0

new STRING_VERSION[MAX_DATA_LENGTH] = "1.0";
new Status[MAX_PLAYERS] = {CLEAN_SLATE,...};
new bEnabled = 1;             // 1 - Plugin on, 0 - Plugin off

public admin_cat_off(HLCommand, HLData, HLUserName, UserIndex)
{
      new User[MAX_NAME_LENGTH];
      new Text[MAX_TEXT_LENGTH];

      convert_string(HLUserName, User, MAX_NAME_LENGTH);

      if (bEnabled != 0) {
            bEnabled = 0;     // Plugin off
            say(">>> Cat Killer Plugin has been disabled <<<");
            snprintf(Text, MAX_TEXT_LENGTH, "Cat Killer Plugin has been disabled by %s", User);
            log(Text);
      }
      else selfmessage("Cat Killer Plugin already disabled");

      return PLUGIN_HANDLED;
}

public admin_cat_on(HLCommand, HLData, HLUserName, UserIndex)
{
      new User[MAX_NAME_LENGTH];
      new Text[MAX_TEXT_LENGTH];

      convert_string(HLUserName, User, MAX_NAME_LENGTH);

      if (bEnabled != 1) {
            bEnabled = 1;     // Plugin on
            say(">>> Cat Killer Plugin has been enabled <<<");
            snprintf(Text, MAX_TEXT_LENGTH, "Cat Killer Plugin has been enabled by %s", User);
            log(Text);
      }
      else selfmessage("Cat Killer Plugin already enabled");

      return PLUGIN_HANDLED;
}

public ck_HandleKill(HLCommand,HLData,HLUserName,UserIndex)
{
      if (!bEnabled)
            return PLUGIN_CONTINUE;

      new Data[MAX_DATA_LENGTH];
      new iIDK;
      new iIDV;
      new sID1[3];
      new sID2[3];
      new iUserID;
      new iWONID;
      new iTeamK;
      new iTeamV;
      new Killer[MAX_NAME_LENGTH];
      new Victim[MAX_NAME_LENGTH];
      new logText[MAX_DATA_LENGTH];
      new Text[MAX_DATA_LENGTH];
      new InfoText[MAX_DATA_LENGTH];

      ///////////////////////////// DEBUG //////////////////////////////
      #if DEBUG
            status()
      #endif
      ///////////////////////////// DEBUG //////////////////////////////

      convert_string(HLData, Data, MAX_DATA_LENGTH);
      strsplit(Data, " ", sID1, 3, sID2, 3);

      iIDK = strtonum(sID1);
      iIDV = strtonum(sID2);

      if(playerinfo(iIDK, Killer, MAX_NAME_LENGTH, iUserID, iWONID, iTeamK))
      {
            if(playerinfo(iIDV, Victim, MAX_NAME_LENGTH, iUserID, iWONID, iTeamV))
            {
                  if (Status[iIDV] == 0) {
                        Status[iIDV] = 1;
                  }
                  // if the victim was allready dead
                  else if (Status[iIDV] == 1) {
                        log("-----------------------------");
                        log("We got a cheater !");
                        snprintf(logText,MAX_DATA_LENGTH,"-> %s", Victim);
                        log(logText);
                        log("-----------------------------");

                        messageex(Killer,"",print_console);
                        snprintf(Text,MAX_DATA_LENGTH,"We dont want cheaters in here !");
                        messageex(Victim,Text,print_console);

                        snprintf(InfoText,MAX_DATA_LENGTH,"%s is a cheater,^nso he was kicked !", Victim);
                        centersay(InfoText,SHOW_TIME,COLOR_R,COLOR_G,COLOR_B);

                        #if BAN_HIM
                              ban(Victim, BAN_TIME);
                        #endif

                        #if KICK_HIM
                              kick(Victim);
                        #endif
                  }
                  // dead people cant kill players
                  if (Status[iIDK] == 1) {
                        log("-----------------------------");
                        log("We got a cheater !");
                        snprintf(logText,MAX_DATA_LENGTH,"-> %s", Killer);
                        log(logText);
                        log("-----------------------------");

                        messageex(Killer,"",print_console);
                        snprintf(Text,MAX_DATA_LENGTH,"We dont want cheaters in here !");
                        messageex(Killer,Text,print_console);

                        snprintf(InfoText,MAX_DATA_LENGTH,"%s is a cheater,^nso he was kicked !", Killer);
                        centersay(InfoText,SHOW_TIME,COLOR_R,COLOR_G,COLOR_B);

                        #if BAN_HIM
                              ban(Killer, BAN_TIME);
                        #endif

                        #if KICK_HIM
                              kick(Killer);
                        #endif
                  }
            }
      }

      ///////////////////////////// DEBUG //////////////////////////////
      #if DEBUG
            status()
      #endif
      ///////////////////////////// DEBUG //////////////////////////////

      return PLUGIN_CONTINUE;
}

public ck_HandleWorld(HLCommand,HLData,HLUserName,UserIndex)
{
      if (!bEnabled)
            return PLUGIN_CONTINUE;

      new Params[MAX_DATA_LENGTH];
      new i;

      convert_string(HLData,Params,MAX_DATA_LENGTH);
      switch( Params[ 6 ] )
      {
            case 'S':
            {
                  for(i=0; i<MAX_PLAYERS; i++) {
                        Status[i] = CLEAN_SLATE;
                  }
                  return PLUGIN_CONTINUE;
            }
      }

      return PLUGIN_CONTINUE;
}

///////////////////////////// DEBUG //////////////////////////////
#if DEBUG

status()
{
      printf("---- DEBUG ----^n");
      printf("%d %d %d %d %d %d^n",Status[1],Status[2],Status[3],Status[4],Status[5],Status[6]);
      printf("---- DEBUG ----^n");

      new DbgText[MAX_DATA_LENGTH];
      snprintf(DbgText,MAX_DATA_LENGTH,"%i %i %i %i %i %i",Status[1],Status[2],Status[3],Status[4],Status[5],Status[6]);
      say(DbgText);
}

#endif
///////////////////////////// DEBUG //////////////////////////////

public plugin_connect(HLUserName, HLIP, UserIndex)
{
      if (UserIndex >= 1 && UserIndex <= MAX_PLAYERS) {
            Status[UserIndex] = CLEAN_SLATE;
      }
      return PLUGIN_CONTINUE;
}

public plugin_disconnect(HLUserName, UserIndex)
{
      if (UserIndex >= 1 && UserIndex <= MAX_PLAYERS) {
            Status[UserIndex] = CLEAN_SLATE;
      }
      return PLUGIN_CONTINUE;
}

public plugin_init()
{
      plugin_registerinfo("Biohazards Cat Killer Plugin","Kicks and/or bans player who have more than one life.",STRING_VERSION);

      plugin_registercmd("ck_HandleKill", "ck_HandleKill", ACCESS_CONSOLE);
      plugin_registercmd("ck_HandleWorld", "ck_HandleWorld", ACCESS_CONSOLE);

      plugin_registercmd("admin_cat_off", "admin_cat_off", ACCESS_CAT, "admin_cat_off:  Enables watching for cats.");
      plugin_registercmd("admin_cat_on", "admin_cat_on", ACCESS_CAT, "admin_cat_on:  Disables watching for cats.");

      exec("logd_reg 57 admin_command ck_HandleKill");
      exec("logd_reg 62 admin_command ck_HandleWorld");

      return PLUGIN_CONTINUE;
}
Ich denke dazu brauche ich nichtmehr viel zu sagen, wenn jemand Fragen an mich hat kann er mir gerne eine Private Message schicken oder hier posten. :wink:

Nachtrag: Ich habe alle Tabulatorzeichen im Quellcode in Leerzeichen umgewandelt (Ultra Edit bietet da eine sehr hilfreiche Funktion an), so sollte es beim Kompilieren weniger WARNINGS geben.

Bio

_________________
It's not a bug, it's a feature !


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 17.03.2002, 23:01 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
Hm...nette Idee. Aber wenn Du Cheating Death und CSGuard als Anticheat-Tools nutzt, wird der Cheat sicher erkannt werden.

Der ist schon etwas älter, glaube ich. Habe sowas auf jeden Fall schon letztes Jahr gesehen. Aber wer weiss. Vielleicht gibt es diesen ja auch wieder in einer neuen Version

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 17.03.2002, 23:14 

Registriert: 06.01.2002, 01:00
Beiträge: 415
Wohnort: nicht weit weg von Köln
Soweit ich mich entsinnen kann lief auf dem Server Cheating Death...

Bio

_________________
It's not a bug, it's a feature !


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 17.03.2002, 23:21 

Registriert: 21.10.2001, 01:00
Beiträge: 93
ich finde die idee sehr gut und außerdem hasse ich zusatz anti-cheat-programme... früher war es wenigstens NUR punkbuster, jetzt muss man ja schon 3 verschiedene laufen haben...


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 18.03.2002, 01:01 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
Hui Stetze !!! 666 Beiträge zu diesem Zeitpunkt...Diabolisch :-)

Na klar ist es eine gute Idee !
Nur man hat ja damals an den Anticheat-Plugins, das sie schnell überholt sind.
Ok. Dieses wird nie überholt sein, da es ja ein Generell-Todes-ChecK ist.

Aber die Anticheatprogramme mit Client-System sind ok...Man scheint sich ja langsam auf Cheating-Death geeinigt zu haben...

Mit HLSW oder HalflifeManager ist das GottseiDank mit dem Anticheat-Programmen einfacher geworden

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 18.03.2002, 14:01 
HLDS Team
Benutzeravatar

Registriert: 21.10.2002, 12:15
Beiträge: 830
Wohnort: Hannover
ui
GLÜCKWUNSCH

hab aber 3 mehr oder so

obwohl ich lange inactive war

aber ist ja auch egal

intressiert hier ja nicht wieviel man hat sondern wie weit man helfen kann

ich helfe gerne also fragt nur

BLÖDE FRAGEN kosten 5€ :-)


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 18.03.2002, 14:14 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
Wookie,ich verfolge Dich gerade durch die Beiträge...merkst Du schon, oder :-)

Du gierst ja wirklich nach Plugins und sounds :-)

Aber welche 3 Anticheatprogramme meinst Du denn mehr.
Ich meinte ja die Clientseitigen. Punkbuster habe ich schon nicht mehr mitgezählt.

Die anderen Anti-Cheat-Plugins sind ja schon etwas überholt. Meintest Du diese ?

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 18.03.2002, 14:44 

Registriert: 04.01.2002, 01:00
Beiträge: 28
hm, ich war mal ne zeit lang fasziniert von CSG (als es noch alle Cheats gefunden hat) aba wenn man jemandem der nen 600er P3 LAN dedicated serva hat CSG draufschmeißt und CD, glaub net, dass der serva noch vernünftig läuft!!! CSG soll ja ziemlich resourcen rauben! aba der nachteil an CD is, dass die cheater net auffallen! weil die cheats ja einfach ausgeschaltet werden ;(


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 18.03.2002, 16:52 

Registriert: 31.12.2001, 01:00
Beiträge: 514
Wohnort: Lüneburg
Weise Worte Stetze endlich mal einer der meiner Meinung is mit diesen ganzen anticheat tools. ich war letzens auf nem server ers kam ich garnich ers rauf da der server voll war, als ich dann endlich drauf war wurd ich gekickt weil ich cheating death nich an hatte, dann hab ich das teil angemacht und wollte wieder auf den server ... server is full ... als ich endlich drauf war kam die meldung kicked by console bitte zieh dir das neuste update ... hab das dann gemacht und bin wieder auf den server is full server gegangen, nach 5 runden hatte ich kein bock mehr weil mein ping zwischen 50-500 geschwankt hat.

ISDN rulez :D

_________________
Geht nich, gibs nich: Suchen, FAQ
www.cola-clan.de - Whiskey@cola-clan.de


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 18.03.2002, 16:59 

Registriert: 04.01.2002, 01:00
Beiträge: 28
hm, ich freu mich schon auf FASTPATH!!! ping von 30 - 40 mit DSL, vorrausgesetzt der server is schnell genuch!!! *freu*

_________________
Wenn man net weiß wo der SUCHEN button is:hier klicken! ;)

visit our server: 62.80.115.97:27045 PW: wbbups


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 18.03.2002, 21:04 

Registriert: 10.11.2001, 01:00
Beiträge: 10
mh... wenn jetzt aber einer getötet wird, und dann mit der grenade, die er in der hand hatte noch einen erwischt, wird der dann nicht auch gekickt/gebannt?
oder habbich da was falsch verstanden?

Admin-Mod Forum Pop-Up 1
SpaX 0 :evil:


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 18.03.2002, 21:08 

Registriert: 06.01.2002, 01:00
Beiträge: 415
Wohnort: nicht weit weg von Köln
Ja, dieser Gedanke ging mir heute auch durch den Kopf - gut das du es ansprichst. Ich werde in nächster Zeit eine neue Version vom Plugin rausbringen in der dieses Fehlverhalten abgefangen wird. Sonst könnte es - wie du schon sagtest - passieren das jemand gekickt oder gar gebannt wird, der garnicht cheatet.

PS:
Zitat:
Admin-Mod Forum Pop-Up 1
SpaX 0 :evil:
Genau meine Meinung !

Bio

_________________
It's not a bug, it's a feature !


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 19.03.2002, 16:00 

Registriert: 06.01.2002, 01:00
Beiträge: 415
Wohnort: nicht weit weg von Köln
Wie SpaX ja schon richtig angemerkt hat, gibt es ein kleines Problem mit meinem Plugin. Und zwar wird jemand der getötet wird und zuvor eine HE geworfen hat als Cheater bezeichnet, wenn er mit seiner Granate nach seinem Ableben noch jemanden erwischt. Um dem entgegenzuwirken wollte ich die Information das jemand gestorben ist erst 3 Sekunden nach seinem Tod speichern. Das führt allerdings zu Komplikationen wenn jemand innerhalb der 3 Sekunden getötet wird, da dann ja der Timer neugestartet wird und der letzte Spieler nicht als tot deklariert wird.
Ich werde wohl gezwungen sein eine Abfrage auf Weapon HE einzubauen, was es allerdings Cheatern erlauben würde ihr Gegner mit HEs zu killen ohne vom Plugin entlarvt zu werden. Da man HEs aber nur am Startpunkt kaufen kann und der Cheater ja erkannt wird wenn ihn jemand erschießt, kann ich damit leben. Oder sieht jemand vielleicht noch eine andere Möglichkeit ?

Bio

_________________
It's not a bug, it's a feature !


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 19.03.2002, 19:06 

Registriert: 04.01.2002, 01:00
Beiträge: 28
aba 1. wird der cheata wohl net wissn, dass das plugin aufm seva is, und wie genau es funtzt, wenner net grad hier im forum wa, und 2. geht das nur, wenn jemand nach seinem ableben nurnoch HE kills macht, was sehr unwahscheinlich is! M4 gegen HE z.B. is ja eigentlich ziemlich klar wies ausgeht! ;) und wenn er ne waffe nutzt, gibbets nen kigg oda ban!!!

_________________
Wenn man net weiß wo der SUCHEN button is:hier klicken! ;)

visit our server: 62.80.115.97:27045 PW: wbbups


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 19.03.2002, 20:37 

Registriert: 06.01.2002, 01:00
Beiträge: 415
Wohnort: nicht weit weg von Köln
Ok, dann werde ich wohl eine Abfrage bezüglich der HEs einbauen und so schnell wie möglich posten :wink:

Bio

_________________
It's not a bug, it's a feature !


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 19.03.2002, 22:56 

Registriert: 21.10.2001, 01:00
Beiträge: 93
ich weiß ja nicht genau, wie der cheat jetzt funktioniert, aber bei den alten alive-cheats war es doch so, dass man gar keine waffen mehr kuafen konnte, wenn man wiederauferstanden ist sondern nur welche aufsammeln konnte. und das ist mit HEs ja schwer möglich :)))


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 05.04.2002, 01:48 

Registriert: 06.01.2002, 01:00
Beiträge: 415
Wohnort: nicht weit weg von Köln
Ich weiß das es schon eine Weile her ist, das ich dieses Plugin hier gepostet habe, aber ich konnte mich in letzter Zeit nicht sehr viel mit Plugins und dem Forum beschäftigen. Nun habe ich aber doch Zeit gefunden das Plugin in Bezug auf den 'HE-Bug' zu verbessern. Hier nun der neue Quellcode:
Code:
      /***************************************************************
     **  Biohazards Cat Killer                          v 1.1  ******
    ***                                                        *****
   ****  INFO:  This Plugin detects if a player has more than  ****
  *****  one life in the same round. If so, he will be kicked  ***
 ******  or baned (Depending on your opinion)                  **
***************************************************************/

#include <core> 
#include <console> 
#include <string> 
#include <admin> 
#include <adminlib> 

#define ACCESS_CONSOLE 131072
#define ACCESS_CAT 1024
#define CLEAN_SLATE 0
#define SHOW_TIME 5
#define COLOR_R 255
#define COLOR_G 255
#define COLOR_B 255
#define BAN_HIM 0             // If a cheater is detected, he will be banned
#define KICK_HIM 1            // If a cheater is detected, he will be kicked

#define DEBUG 0

new STRING_VERSION[MAX_DATA_LENGTH] = "1.1";
new Status[MAX_PLAYERS] = {CLEAN_SLATE,...};
new bEnabled = 1;             // 1 - Plugin on, 0 - Plugin off

public admin_cat_off(HLCommand, HLData, HLUserName, UserIndex)
{
      new User[MAX_NAME_LENGTH];
      new Text[MAX_TEXT_LENGTH];

      convert_string(HLUserName, User, MAX_NAME_LENGTH);

      if (bEnabled != 0) {
            bEnabled = 0;     // Plugin off
            say(">>> Cat Killer Plugin has been disabled <<<");
            snprintf(Text, MAX_TEXT_LENGTH, "Cat Killer Plugin has been disabled by %s", User);
            log(Text);
      }
      else selfmessage("Cat Killer Plugin already disabled");

      return PLUGIN_HANDLED;
}

public admin_cat_on(HLCommand, HLData, HLUserName, UserIndex)
{
      new User[MAX_NAME_LENGTH];
      new Text[MAX_TEXT_LENGTH];

      convert_string(HLUserName, User, MAX_NAME_LENGTH);

      if (bEnabled != 1) {
            bEnabled = 1;     // Plugin on
            say(">>> Cat Killer Plugin has been enabled <<<");
            snprintf(Text, MAX_TEXT_LENGTH, "Cat Killer Plugin has been enabled by %s", User);
            log(Text);
      }
      else selfmessage("Cat Killer Plugin already enabled");

      return PLUGIN_HANDLED;
}

public ck_HandleKill(HLCommand,HLData,HLUserName,UserIndex)
{
      if (!bEnabled)
            return PLUGIN_CONTINUE;

      new Data[MAX_DATA_LENGTH];
      new iIDK;
      new iIDV;
      new sID1[3];
      new sID2[3];
      new iUserID;
      new iWONID;
      new iTeamK;
      new iTeamV;
      new Killer[MAX_NAME_LENGTH];
      new Victim[MAX_NAME_LENGTH];
      new logText[MAX_DATA_LENGTH];
      new Text[MAX_DATA_LENGTH];
      new InfoText[MAX_DATA_LENGTH];
      new Weapon[MAX_DATA_LENGTH];

      ///////////////////////////// DEBUG //////////////////////////////
      #if DEBUG
            status()
      #endif
      ///////////////////////////// DEBUG //////////////////////////////

      convert_string(HLData, Data, MAX_DATA_LENGTH);
      strsplit(Data, " ", sID1, 3, sID2, 3, Weapon, MAX_DATA_LENGTH);

      iIDK = strtonum(sID1);
      iIDV = strtonum(sID2);

      if(playerinfo(iIDK, Killer, MAX_NAME_LENGTH, iUserID, iWONID, iTeamK))
      {
            if(playerinfo(iIDV, Victim, MAX_NAME_LENGTH, iUserID, iWONID, iTeamV))
            {
                  if (Status[iIDV] == 0) {
                        Status[iIDV] = 1;
                  }
                  // if the victim was allready dead
                  else if (Status[iIDV] == 1) {
                        log("-----------------------------");
                        log("We got a cheater !");
                        snprintf(logText,MAX_DATA_LENGTH,"-> %s", Victim);
                        log(logText);
                        log("-----------------------------");

                        messageex(Killer,"",print_console);
                        snprintf(Text,MAX_DATA_LENGTH,"We dont want cheaters in here !");
                        messageex(Victim,Text,print_console);

                        snprintf(InfoText,MAX_DATA_LENGTH,"%s is a cheater,^nso he was kicked !", Victim);
                        centersay(InfoText,SHOW_TIME,COLOR_R,COLOR_G,COLOR_B);

                        #if BAN_HIM
                              ban(Victim);
                        #endif

                        #if KICK_HIM
                              kick(Victim);
                        #endif
                  }
                  // dead people cant kill players
                  if ((Status[iIDK] == 1) && (strcmp(Weapon,"grenade") != 0 )) {
                        log("-----------------------------");
                        log("We got a cheater !");
                        snprintf(logText,MAX_DATA_LENGTH,"-> %s", Killer);
                        log(logText);
                        log("-----------------------------");

                        messageex(Killer,"",print_console);
                        snprintf(Text,MAX_DATA_LENGTH,"We dont want cheaters in here !");
                        messageex(Killer,Text,print_console);

                        snprintf(InfoText,MAX_DATA_LENGTH,"%s is a cheater,^nso he was kicked !", Killer);
                        centersay(InfoText,SHOW_TIME,COLOR_R,COLOR_G,COLOR_B);

                        #if BAN_HIM
                              ban(Killer);
                        #endif

                        #if KICK_HIM
                              kick(Killer);
                        #endif
                  }
            }
      }

      ///////////////////////////// DEBUG //////////////////////////////
      #if DEBUG
            say(Weapon);
            status()
      #endif
      ///////////////////////////// DEBUG //////////////////////////////

      return PLUGIN_CONTINUE;
}

public ck_HandleWorld(HLCommand,HLData,HLUserName,UserIndex)
{
      if (!bEnabled)
            return PLUGIN_CONTINUE;

      new Params[MAX_DATA_LENGTH];
      new i;

      convert_string(HLData,Params,MAX_DATA_LENGTH);
      switch( Params[ 6 ] )
      {
            case 'S':
            {
                  for(i=0; i<MAX_PLAYERS; i++) {
                        Status[i] = CLEAN_SLATE;
                  }
                  return PLUGIN_CONTINUE;
            }
//          case 'E':
//          {
//                for(i=0; i<MAX_PLAYERS; i++) {
//                      Status[i] = CLEAN_SLATE;
//                }
//                return PLUGIN_CONTINUE;
//          }
      }

      return PLUGIN_CONTINUE;
}

///////////////////////////// DEBUG //////////////////////////////
#if DEBUG

status()
{
      printf("---- DEBUG ----^n");
      printf("%d %d %d %d %d %d^n",Status[1],Status[2],Status[3],Status[4],Status[5],Status[6]);
      printf("---- DEBUG ----^n");

      new DbgText[MAX_DATA_LENGTH];
      snprintf(DbgText,MAX_DATA_LENGTH,"%i %i %i %i %i %i",Status[1],Status[2],Status[3],Status[4],Status[5],Status[6]);
      say(DbgText);
}

#endif
///////////////////////////// DEBUG //////////////////////////////

public plugin_connect(HLUserName, HLIP, UserIndex)
{
      if (UserIndex >= 1 && UserIndex <= MAX_PLAYERS) {
            Status[UserIndex] = CLEAN_SLATE;
      }
      return PLUGIN_CONTINUE;
}

public plugin_disconnect(HLUserName, UserIndex)
{
      if (UserIndex >= 1 && UserIndex <= MAX_PLAYERS) {
            Status[UserIndex] = CLEAN_SLATE;
      }
      return PLUGIN_CONTINUE;
}

public plugin_init()
{
      plugin_registerinfo("Biohazards Cat Killer","Kicks and/or bans player who have more than one life.",STRING_VERSION);

      plugin_registercmd("ck_HandleKill", "ck_HandleKill", ACCESS_CONSOLE);
      plugin_registercmd("ck_HandleWorld", "ck_HandleWorld", ACCESS_CONSOLE);

      plugin_registercmd("admin_cat_off", "admin_cat_off", ACCESS_CAT, "admin_cat_off:  Enables watching for cats.");
      plugin_registercmd("admin_cat_on", "admin_cat_on", ACCESS_CAT, "admin_cat_on:  Disables watching for cats.");

      exec("logd_reg 57 admin_command ck_HandleKill");
      exec("logd_reg 62 admin_command ck_HandleWorld");

      return PLUGIN_CONTINUE;
}
Nun sollten Player, die nach ihrem Ableben noch jemanden mit ihrer geworfenen HE Granate töten, von einem Kick oder gar Bann verschont bleiben. :wink:

Bio

_________________
It's not a bug, it's a feature !


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 17 Beiträge ] 


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de
Original Design von "[ Half-Life Admin Mod © Alfred Reynolds 2000-2003 ] - [ site design by Jägermeister ]"