Bei 3 Fehlversuchen beim /rcon bannen

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

  • public OnRconLoginAttempt(ip[], password[], success)
    {
    if(!success)SetPVarInt(playerid,"login_fail",GetPVarInt(playerid,"login_fail") + 1);
    if(GetPVarInt(playerid,"login_fail") >= 3)Ban(playerid);
    return 1;
    }

    so in der Art dürfte es funktionieren :)
    edit: fehler behoben

  • Ähm ich habe bereits eins Gefunden, aber ich weiß nicht, wie ich da einstelle, das das man da erst bei 3 Fehschlägen gebannt wird?


    Hier das Scipt:



    if(!success) //If the password was incorrect
    {
    printf("FAILED RCON LOGIN BY IP %s USING PASSWORD %s",ip, password);
    new pip[16];
    for(new i=0; i {
    GetPlayerIp(i, pip, sizeof(pip));
    if(!strcmp(ip, pip, true)) //If a player's IP is the IP that failed the login
    {
    SendClientMessage(i, 0xFFFFFFFF, "Wrong Password. Bye!"); //Send a message
    Ban(i); //They are now banned.
    }
    }
    }
    return 1;

  • Ressourceschonend & Benutzerfreundlicher



    #define MAX_RCON_WARNINGS (3)


    public OnPlayerDisconnect(playerid, reason)
    {
    DeletePVar(playerid, "___warnings");
    /// ....
    }


    public OnRconLoginAttempt(ip[], password[], success)
    {
    if(!success) {
    new playerid = INVALID_PLAYER_ID, playerIP[16]; for(new li, mP = GetMaxPlayers(); li < mP; li++) { GetPlayerIp(li, playerIP, 16); if(!strcmp(ip, playerIP)) { playerid = li; break; } }
    SetPVarInt(playerid, "___warnings", 1 + GetPVarInt(playerid, "___warnings"));
    if(GetPVarInt(playerid, "___warnings") >= MAX_RCON_WARNINGS) Kick(playerid);
    } else DeletePVar(playerid, "___warnings");
    /// ...
    }

  • Ich habe das jetzt genau so wie du geschreiben hast, aber bekomme 1 Error:



    C:\Program Files (x86)\Rockstar Games\filterscripts\rcon.pwn(65) : warning 217: loose indentation
    C:\Program Files (x86)\Rockstar Games\filterscripts\rcon.pwn(203) : error 017: undefined symbol "playerid"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.



    Einmal editiert, zuletzt von Janpeter4 ()

  • Das gleiche wei bei Haxler's version




    C:\Program Files (x86)\Rockstar Games\filterscripts\rcon1.pwn(197) : error 017: undefined symbol "playerid"
    C:\Program Files (x86)\Rockstar Games\filterscripts\rcon1.pwn(198) : error 017: undefined symbol "playerid"
    C:\Program Files (x86)\Rockstar Games\filterscripts\rcon1.pwn(198) : error 017: undefined symbol "playerid"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    3 Errors.

  • Da bekomme ich aber auch einen Error, habe alles so wie du geschrieben hast gemacht:



    C:\Program Files (x86)\Rockstar Games\filterscripts\rcon.pwn(204) : error 017: undefined symbol "playerid"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.

  • Entschuldigung, hier bitte:



    #define MAX_RCON_WARNINGS (3)


    public OnPlayerDisconnect(playerid, reason)
    {
    DeletePVar(playerid, "___warnings");
    /// ....
    }


    public OnRconLoginAttempt(ip[], password[], success)
    {
    new playerid = INVALID_PLAYER_ID, playerIP[16]; for(new li, mP = GetMaxPlayers(); li < mP; li++) { GetPlayerIp(li, playerIP, 16); if(!strcmp(ip, playerIP)) { playerid = li; break; } }
    if(!success) {
    SetPVarInt(playerid, "___warnings", 1 + GetPVarInt(playerid, "___warnings"));
    if(GetPVarInt(playerid, "___warnings") >= MAX_RCON_WARNINGS) Kick(playerid);
    } else DeletePVar(playerid, "___warnings");
    /// ...
    }

  • Dankeschön, das hat mir sehr weitergeholfen :)
    Dennoch habe ich eine Frage:


    Kann dann auch so ne ClientMessageToAll kommen, wenn der spieler gekickt wird?
    z.B: Der Spieler ___ wurde vom Server gekickt. [Grund: 3 Fehlgeschlagende Rcon-Login-Versuche]


    Mit meinem Jetzigem Scipt gehts nicht.



    public OnRconLoginAttempt(ip[], password[], success)
    {
    new Playername[128];
    new playerid = INVALID_PLAYER_ID, playerIP[16]; for(new li, mP = GetMaxPlayers(); li < mP; li++) { GetPlayerIp(li, playerIP, 16); if(!strcmp(ip, playerIP)) { playerid = li; break; } }
    if(!success) {
    SetPVarInt(playerid, "___warnings", 1 + GetPVarInt(playerid, "___warnings"));
    if(GetPVarInt(playerid, "___warnings") >= MAX_RCON_WARNINGS) Kick(playerid);
    SendClientMessageToAll(0xFFFF00FF,"Der Spieler %s wurde vom Server gekickt. [Grund: 3 Fehlgeschlagende Rcon-Login-Versuche]",Playername);
    } else DeletePVar(playerid, "___warnings");
    /// ...
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • So kanns ja auch nicht gehen.
    Bekomme jeden falls 2 Warnings. (eine Warning war vorher schon, ist aber harmlos)


    Also einmal so das scipt:



    public OnRconLoginAttempt(ip[], password[], success)
    {
    new Playername[128];
    new playerid = INVALID_PLAYER_ID, playerIP[16]; for(new li, mP = GetMaxPlayers(); li < mP; li++) { GetPlayerIp(li, playerIP, 16); if(!strcmp(ip, playerIP)) { playerid = li; break; } }
    if(!success) {
    SetPVarInt(playerid, "___warnings", 1 + GetPVarInt(playerid, "___warnings"));
    SendClientMessageToAll(0xFFFF00FF,"Der Spieler %s wurde vom Server gekickt. [Grund: 3 Fehlgeschlagende Rcon-Login-Versuche]",Playername);
    if(GetPVarInt(playerid, "___warnings") >= MAX_RCON_WARNINGS) Kick(playerid);

    } else DeletePVar(playerid, "___warnings");
    /// ...
    }


    und die eine warning


    C:\Program Files (x86)\Rockstar Games\filterscripts\rcon.pwn(203) : warning 202: number of arguments does not match definition



    Anmerkung:


    nachdem ich auf den server Connecte, schließt sich der Server. (Das schwarze Fenster)


    Bitte Hilfe xD

  • Dies:

    SendClientMessageToAll(0xFFFF00FF,"Der Spieler %s wurde vom Server gekickt. [Grund: 3 Fehlgeschlagende Rcon-Login-Versuche]",Playername);


    mit Folgendem ersetzen:

    new msg[162];
    GetPlayerName(playerid, msg, MAX_PLAYER_NAME);
    format(msg, sizeof(msg), "{333333}Der Spieler %s wurde vom Server gekickt. {FF0000}[Grund: 3 Fehlgeschlagende Rcon-Login-Versuche]", msg);
    SendClientMessageToAll(0, msg);


  • #define MAX_RCON_WARNINGS (3)


    public OnPlayerDisconnect(playerid, reason)
    {
    DeletePVar(playerid, "___warnings");
    /// ....
    }


    public OnRconLoginAttempt(ip[], password[], success)
    {
    new playerid = INVALID_PLAYER_ID, playerIP[16]; for(new li, mP = GetMaxPlayers(); li < mP; li++) { GetPlayerIp(li, playerIP, 16); if(!strcmp(ip, playerIP)) { playerid = li; break; } }
    if(!success) {
    SetPVarInt(playerid, "___warnings", 1 + GetPVarInt(playerid, "___warnings"));
    if(GetPVarInt(playerid, "___warnings") >= MAX_RCON_WARNINGS) {
    new msg[162];
    GetPlayerName(playerid, msg, MAX_PLAYER_NAME);
    format(msg, sizeof(msg), "{333333}Der Spieler %s wurde vom Server gekickt. {FF0000}[Grund: 3 Fehlgeschlagende Rcon-Login- Versuche]", msg);
    SendClientMessageToAll(0, msg);
    Kick(playerid);
    }
    } else DeletePVar(playerid, "___warnings");
    /// ...
    }

    Einmal editiert, zuletzt von d30af26d ()

  • Wenn ich den Code so eingebe ist die schrift dann total verpixelt und Schwarz:


    "{0xFFFF00FF}Der Spieler %s w..... (0xFFFF00FF ist die FarbID für Geld im SA:MP ColorPicker)


    anstatt


    {333333}Der Spieler %s w



    wie kann ich da jetzt die Farbe in der Nachricht ändern?


    EDIT: Es ist HTML, weiß wie ich das mache dnake schön für alles :) du solltest mal VIP werden oda so xD. Wo ist die Thanks Funk.? Würde dir 1000 Thanks geben :D