Rcon login meldung

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 liebe Scripter in der Runde.
    Wie kann man Scripten, dass man eine Meldung bekommt, wenn sich jemand als Rcon einloggt.
    Also die Admin sollten eine Meldung bekommen wie z.B. "%s hat sich ins RCON eingeloggt"
    und wenn man Failed sollte es auch anzeigen. "%s hat versucht sich ins RCON einzuloggen"


    Wäre das möglich?


    Mit freundlichen Grüßen,
    Dr.housse


    Mehr transparents zu der Community!
    Aber bitte künftig: Transparenz und nicht Transparents

  • Klar, es gibt da einen Callback


    public OnRconCommand(cmd[])
    {
    return 1;
    }



    überwiegend musst du dann hier arbeiten


    für den Rcon Login würde ich folgendes probieren



    [expander]ocmd:rcon login(playerid,params[])
    {
    new string[128];
    format(string,sizeof(string),"Der Spieler %s hat sich ins RCON eingeloggt/versucht sich einzuloggen",getPlayerName(playerid));
    SCMTOADMIN(-1,string);
    }[/expander]

  • if(success) //If the password was correct
    {
    for(new i=0; i<MAX_PLAYERS; i++) //Loop through all players
    {
    GetPlayerName(i, name, sizeof(name));
    if(!strcmp(i, name, true)) //If a player's IP is the IP that failed the login
    {
    printf("%s hat sich erfolgreich ins Rcon eingeloggt",name);
    new name[16];
    format(stringrcon, sizeof(stringrcon), "%s hat sich ins RCOn eingeloggt",name);
    ABroadCast(COLOR_RED,stringrcon,1);
    }
    }
    }
    Also ich habe das so, aber ich weiß ncht ob das richtig ist.
    Aber ich habe die befehle mit strcmp und nicht mit ocmd.
    Könntest du mir das verändern auf strcmp?
    //edit


    Mehr transparents zu der Community!
    Aber bitte künftig: Transparenz und nicht Transparents

  • Du musst es über die IP machen, nicht über den Name. Wie es im Beispiel ist.
    Der Name wird nicht in dem Callback mitgegeben, die IP schon. Das liegt daran, dass man sich auch über eine externe Konsole einloggen kann, und da hat man ja keinen Name.


    Einen RCON LOGIN Befehl gibt es schon:
    /rcon Login


    Der ist standardmäßig in jedem Server.

  • Aber wenn sich ein Hacker einloggt ins Rcon.
    Und ich nur die IP sehe dann ist es etwas Blöd..
    Weil ich weiß ja nicht, ob das jemand aus dem Admin Team ist oder nicht.


    if(success) //If the password was correct
    {
    for(new i=0; i<MAX_PLAYERS; i++) //Loop through all players
    {
    GetPlayerName(i, pip, sizeof(pip));
    if(!strcmp(ip, pip, true)) //If a player's IP is the IP that failed the login
    {
    printf("%s hat sich erfolgreich ins Rcon eingeloggt",ip);
    new ip[16];
    format(stringrcon, sizeof(stringrcon), "%s hat sich ins RCON eingeloggt",ip);
    ABroadCast(COLOR_RED,stringrcon,1);
    }
    }
    }


    So richtig?


    Mehr transparents zu der Community!
    Aber bitte künftig: Transparenz und nicht Transparents

  • GetPlayerName(i, pip, sizeof(pip));
    zu:
    GetPlayerIp(i, pip, sizeof(pip));


    Den Name kannst du dann rausfinden, wenn du die IP geprüft hast, bevor du die Nachricht ausgibst.



    if(success) //If the password was correct
    {
    for(new i=0; i<MAX_PLAYERS; i++) //Loop through all players
    {
    new pip[16];
    GetPlayerIp(i, pip, sizeof(pip));
    if(IsPlayerConnected(i) && !strcmp(ip, pip, true)) //If a player's IP is the IP that failed the login
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(i, name, MAX_PLAYER_NAME);
    printf("%s (%s) hat sich erfolgreich ins Rcon eingeloggt",name,ip);
    format(stringrcon, sizeof(stringrcon), "%s hat sich ins RCON eingeloggt",name);
    ABroadCast(COLOR_RED,stringrcon,1);
    }
    }
    }

  • Ich habe das so...
    public OnRconLoginAttempt(ip[], password[], success)
    {
    if(!success)
    {
    printf("FAILED RCON LOGIN BY IP %s USING PASSWORD %s",ip, password);
    new stringrcon[200];
    if(IsPlayerConnected(i) && !strcmp(ip, pip, true))
    {
    new name[MAX_PLAYER_NAME];
    new stringrcon[200];
    GetPlayerName(i, name, MAX_PLAYER_NAME);
    format(stringrcon, sizeof(stringrcon), "%s(%s) hat versucht sich ins RCON einzuloggen(BANN IHN)",name,ip);
    format(stringrcon, sizeof(stringrcon), "%s(%s) hat versucht sich ins RCON einzuloggen(BANN IHN)",name,ip);
    format(stringrcon, sizeof(stringrcon), "%s(%s) hat versucht sich ins RCON einzuloggen(BANN IHN)",name,ip);
    ABroadCast(COLOR_RED,stringrcon,1);
    }
    new pip[16];
    for(new i=0; i<MAX_PLAYERS; i++) //Loop through all players
    {
    if(PlayerInfo[i][pAdmin] >= 2000) { }
    else {
    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, "Das ist nur für Admins! Pech gehabt du Fischbaguette!"); //Send a message
    PlayerInfo[i][pGesperrt] = 1;
    Kick(i);
    }
    }
    }
    if(success) //If the password was correct
    {
    for(new i=0; i<MAX_PLAYERS; i++) //Loop through all players
    {
    new pip[16];
    GetPlayerIp(i, pip, sizeof(pip));
    if(IsPlayerConnected(i) && !strcmp(ip, pip, false)) //If a player's IP is the IP that failed the login
    {
    new name[MAX_PLAYER_NAME];
    new stringrcon[200];
    GetPlayerName(i, name, MAX_PLAYER_NAME);
    printf("%s (%s) hat sich erfolgreich ins Rcon eingeloggt",name,ip);
    format(stringrcon, sizeof(stringrcon), "%s hat sich ins RCON eingeloggt",name);
    ABroadCast(COLOR_RED,stringrcon,1);
    }
    }
    }
    return 1;
    }
    Aber es kommen Errors...
    26 Errors
    Klammer fehler oder so?

    //editIch habe es geschafft danke!


    Mehr transparents zu der Community!
    Aber bitte künftig: Transparenz und nicht Transparents

    Einmal editiert, zuletzt von Kevin_CaruZo ()