Rangeban

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Guten Tag


    Ich möchte per Befehl leute rangebannen, das heißt jede ip die mit den 1. beiden stellen beginnt, wird sofort gekickt.


    gespeichert und ausgelesen wird alles richtig, das wurde schon getestet, doch iwie kickt er ihn nicht weg:


    public OnPlayerConnect(playerid)
    {
    new ip[40],ip2[4][5],ipstr[30],readstr[50];
    GetPlayerIp(playerid,ip,sizeof(ip)); //kriegt die ip
    split(ip,ip2,'.'); //teilt die ip in 4 teile immer beim "."
    format(ipstr,sizeof(ipstr),"%s.%s.",ip2[0],ip2[1]); //stellt die 1. beiden stellen zusammen (bsp: 120.86.)
    new File:rb = fopen("rangebans.txt",io_read); //öffnet die datei
    while(fread(rb,readstr))
    {
    if(!strcmp(ipstr,readstr,true)) //überprüft ob die 1. beiden stellen der ip, mit der gebannten ip übereinstimmt
    {
    SendClientMessage(playerid,0xDD0000FF,"War wohl nichts!");
    return Kick(playerid);
    }
    }

  • versuch das mal so
    if(!strcmp(ipstr,readstr,true,strlen(ipstr)))Wenn nach dem Eintrag in der Datei eine neue Zeile beginnt, hängt sogesehen noch ein Zeichen hinten dran. Dann sind die beiden Strings ja nicht mehr gleich :)