Bei falschen RCON-Passwort wird ID: 0 gebannt, nicht ich.

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
  • Hallo...
    Ich habe heute ein System gescriptet, das einen Spieler bannen soll, wenn er 3 Mal das falsche RCON Passwort eingibt, doch es funktioniert nicht.
    Es wird immer ID 0 gebannt, in dem Falle ist das ein Bot, der gebannt wird. Komisch, guckt euch mal den Code an.


    public OnRconLoginAttempt(ip[], password[], success)
    {
    new string[300];
    if(!success)
    {
    ForEachPlayer(i)
    {
    if(IsPlayerConnected(i))
    {
    if(strcmp(ip,SpielerIP(i),true)==0)
    {
    PlayerInfo[i][pRconLogins]++;
    if(PlayerInfo[i][pRconLogins]>=3)
    {
    format(string,sizeof(string),"AdmCmd: Das Adminsystem hat den Spieler %s (ID:%i) gebannt. Grund: 3 fehlerhafte RCON-Login Versuche",SpielerName(i),i);
    SendClientMessageToAll(0xFF0000AA,string);
    format(string,sizeof(string),"%s, du wurdest vom Adminsystem gebannt.\nDer Grund für die Verbannung war: \n\n3 Fehlerhafte RCON-Login versuche.\nSollte es sich hierbei um einen Fehler handeln, schreibe einen Antrag für die Entbannung.\nSolltest du versucht haben, das RCON Passwort herauszufinden,\ngibts für dich keine Chancen für die Entbannung.",SpielerName(i));
    ShowPlayerDialog(i,DIALOG_INFO,DIALOG_STYLE_MSGBOX,"Verbannung von "#STAG"",string,"Ok","");
    KickedUser(i);
    mysql_rescue_function();
    }
    return 1;
    }
    }
    }
    }
    return 1;
    }


    Habe ich was falsch gemacht ?


  • for (new i = 0; i != MAX_PLAYERS; ++i)
    {
    if (IsPlayerConnected(i))
    {
    new ip[16];
    GetPlayerIp(i, ip, sizeof(ip)); if(strcmp(playerip, ip))
    {
    // Logins erhöhen, sperren! Mit return abschließen!!!
    }
    return 1; // Login durch RCON Console!
    }
    }


  • So wird das nichts ^^ Sobald 1 Spieler online ist, wird die Schleife unterbrochen :D


    Versuche es mal so:


    public OnRconLoginAttempt(ip[], password[], success)
    {
    if(success) return 0;
    new i,pIp[16],string[317 + MAX_PLAYER_NAME];
    for(; i!=MAX_PLAYERS; i++) {
    if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue;
    GetPlayerIp(i,pIp,16);
    if(strcmp(ip,pIp)) continue;
    PlayerInfo[i][pRconLogins]++;
    if(PlayerInfo[i][pRconLogins] < 3) break;
    format(string,sizeof(string),"AdmCmd: Das Adminsystem hat den Spieler %s (ID:%i) gebannt. Grund: 3 fehlerhafte RCON-Login Versuche",SpielerName(i),i);
    SendClientMessageToAll(0xFF0000AA,string);
    format(string,sizeof(string),"%s, du wurdest vom Adminsystem gebannt.\nDer Grund für die Verbannung war: \n\n3 Fehlerhafte RCON-Login versuche.\nSollte es sich hierbei um einen Fehler handeln, schreibe einen Antrag für die Entbannung.\nSolltest du versucht haben, das RCON Passwort herauszufinden,\ngibts für dich keine Chancen für die Entbannung.",SpielerName(i));
    ShowPlayerDialog(i,DIALOG_INFO,DIALOG_STYLE_MSGBOX,"Verbannung von "#STAG"",string,"Ok","");
    KickedUser(i);
    mysql_rescue_function();
    break;
    }
    return 1;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S