Offban

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 eine Frage. Ich habe bei unserem Script den Befehl /offban versucht aus anderen Scripts zusammenzubasteln, aber irgendwie geht es nicht.



    if(strcmp(cmd, "/offban", true) == 0)
    {
    if (PlayerInfo[playerid][pAdmin] >= 5)
    {
    GetPlayerName(playerid, sendername, sizeof(sendername));
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_WHITE, "Benutzung: /offban [AccountName]");
    return 1;
    }
    new acc[64], acc2[64], year, month, day, readstr[128];
    format(acc,sizeof(acc),"/Accounts/%s.ini",giveplayer);
    format(acc2,sizeof(acc2),"/Accounts/%s.backup",giveplayer);
    if(!fexist(acc))
    {
    format(string,sizeof(string)," Der Account von %s existiert nicht!",giveplayer);
    SendClientMessage(playerid,COLOR_GRAD2,string);
    return 1;
    }


    new File:account = fopen(acc,io_read);
    new File:backup = fopen(acc2,io_write);
    while(fread(account,readstr))
    {
    fwrite(backup,readstr);
    }
    fclose(backup);
    fclose(account);


    new File:banaccount = fopen(acc,io_write);
    fwrite(banaccount,"Level=-999\n");
    fclose(banaccount);


    getdate(year, month, day);
    format(string, sizeof(string), "AdmCmd: %s's Account wurde von %s gebannt! (%d-%d-%d)",giveplayer,sendername,month,day,year);
    BanLog(string);
    format(string, sizeof(string), "AdmCmd: %s's Account wurde von %s gebannt!",giveplayer,sendername);
    ABroadCast(COLOR_LIGHTRED,string,1);
    }
    return 1;
    }


    Mit /offban soll das Level der angegebenden Person auf -999 gesetzt werden.


    Der Account von %s existiert nicht!




    Das Problem ist nur: Das ganze will nicht! Wenn man /offban (Und den Namen) eingibt, kommt immer:
    Der Account von existiert nicht!




    Danke für Hilfe :)


    MfG


    DirectX

  • if(strcmp(cmd, "/offban", true) == 0)
    {
    if (PlayerInfo[playerid][pAdmin] >= 5)
    {
    GetPlayerName(playerid, sendername, sizeof(sendername));
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_WHITE, "Benutzung: /offban [AccountName]");
    return 1;
    }
    new acc[64], acc2[64], year, month, day, readstr[128];
    format(acc,sizeof(acc),"/Accounts/%s.ini",giveplayer);
    format(acc2,sizeof(acc2),"/Accounts/%s.backup",giveplayer);
    if(!fexist(acc))
    {
    format(string,sizeof(string)," Der Account von %s existiert nicht!",giveplayer);
    SendClientMessage(playerid,COLOR_GRAD2,string);
    return 1;
    }


    new File:account = fopen(acc,io_read);
    new File:backup = fopen(acc2,io_write);
    while(fread(account,readstr))
    {
    fwrite(backup,readstr);
    }
    fclose(backup);
    fclose(account);


    new File:banaccount = fopen(acc,io_write);
    fwrite(banaccount,"Level=-999\n");
    fclose(banaccount);


    getdate(year, month, day);
    format(string, sizeof(string), "AdmCmd: %s's Account wurde von %s gebannt! (%d-%d-%d)",giveplayer,sendername,month,day,year);
    BanLog(string);
    format(string, sizeof(string), "AdmCmd: %s's Account wurde von %s gebannt!",giveplayer,sendername);
    ABroadCast(COLOR_LIGHTRED,string,1);
    }
    return 1;
    }


    Hab dir @DirectX den Code mal in einen übersichtlichen PWN-Code gemacht. ;)

  • Wieso machst du nicht einfach eine Abfrage ob er gesperrt ist.
    Wenn der Spieler (playerid) gesperrt ist ( ban = 1 ) soll der Spieler gekickt werden und eine Meldung erhalten das er gesperrt ist. ( wäre meiner Meinung nach klüger )
    Dann wär das alles nicht so Schwer weil man so kein Backup von der User File machen müsste usw.
    Wenn du da ein Problem mit hast schreib einfach nochmal in den Thread. ;):!:


    /e Grammatik Fehler


    Grüße,
    TimPhillip

  • Es soll auch noch Befehle geben wie /offunprison oder so. Desswegen. ;)