Account wird nicht richtig abgefragt

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,


    ein Problem mit meinem Unban System. - Sobald ich jemanden entbannen will dessen Account existiert zeigt er mir an das der Account nicht existiert, Accounts die nicht auf dem Server vorhanden sind werden auch nicht als existiert angezeigt, was jedoch richt ist.
    Kann mir jemand helfen?


    ocmd:unban(playerid,params[])
    {
    new name[MAX_PLAYER_NAME],Spielerdatei[128],string[128],pID;
    if(GetPVarInt(playerid,"Eingeloggt") == 0)return SendClientMessage(playerid,COLOR_GRAU,"Du bist nicht eingeloggt.");
    if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,COLOR_GRAU,"Du bist kein Team-Mitglied von "#SERVERNAME".");
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_GRAU,"Benutze: /unban [ID/Teilname]");
    GetPlayerName(playerid,name,sizeof(name));
    if(dini_Exists(Spielerdatei))
    {
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    format(string,sizeof(string),"Du hast den Spieler %s entbannt.",SpielerName(pID));
    SendClientMessage(playerid,COLOR_ROT,string);
    dini_Set(Spielerdatei,"Banngrund","Nicht vorhanden");
    dini_Set(Spielerdatei,"Dauer","Nicht vorhanden");
    SetPVarInt(pID,"Gebannt",0);
    }
    else
    {
    SendClientMessage(playerid,COLOR_ROT,"Der angegebene Account existiert nicht.");
    }
    return 1;
    }

  • ocmd:unban(playerid,params[])
    {
    new name[MAX_PLAYER_NAME],Spielerdatei[128],string[128],pID;
    if(GetPVarInt(playerid,"Eingeloggt") == 0)return SendClientMessage(playerid,COLOR_GRAU,"Du bist nicht eingeloggt.");
    if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,COLOR_GRAU,"Du bist kein Team-Mitglied von "#SERVERNAME".");
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_GRAU,"Benutze: /unban [ID/Teilname]");
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(dini_Exists(Spielerdatei))
    {
    format(string,sizeof(string),"Du hast den Spieler %s entbannt.",SpielerName(pID));
    SendClientMessage(playerid,COLOR_ROT,string);
    dini_Set(Spielerdatei,"Banngrund","Nicht vorhanden");
    dini_Set(Spielerdatei,"Dauer","Nicht vorhanden");
    SetPVarInt(pID,"Gebannt",0);
    }
    else
    {
    SendClientMessage(playerid,COLOR_ROT,"Der angegebene Account existiert nicht.");
    }
    return 1;
    }



    Dein Fehler war, dass du mit der Variable "Spielerdatei" gearbeitet hast, sie aber erst danach formatiert hast.

  • Jetzt kommt nur noch: Du hast den Spieler entbannt.
    Was ich als pID eingegeben habe wird nicht verwendet, auch Accounts die nicht auf dem Server existieren werden als entbannt dargestellt. - Gebannte Spieler werden auch nicht enbannt.
    Woran liegts?

  • Da der Spieler, der entbannt werden soll, nicht auf den Server gehen kann, darfst du das nicht mit der ID sondern musst das mit dem Namen machen. Probiere es mal so:



    ocmd:unban(playerid,params[])
    {
    new pName[MAX_PLAYER_NAME],Spielerdatei[128],string[128],pID;
    if(GetPVarInt(playerid,"Eingeloggt") == 0)return SendClientMessage(playerid,COLOR_GRAU,"Du bist nicht eingeloggt.");
    if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,COLOR_GRAU,"Du bist kein Team-Mitglied von "#SERVERNAME".");
    if(sscanf(params,"s",pName))return SendClientMessage(playerid,COLOR_GRAU,"Benutze: /unban [ID/Teilname]");
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",pName);
    if(dini_Exists(Spielerdatei))
    {
    format(string,sizeof(string),"Du hast den Spieler %s entbannt.",pName);
    SendClientMessage(playerid,COLOR_ROT,string);
    dini_Set(Spielerdatei,"Banngrund","Nicht vorhanden");
    dini_Set(Spielerdatei,"Dauer","Nicht vorhanden");
    }
    else
    {
    SendClientMessage(playerid,COLOR_ROT,"Der angegebene Account existiert nicht.");
    }
    return 1;
    }