/unban zeigt Server:Unknown Command

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
  • So müsste es klappen:


    ocmd:unban(playerid,params[])
    {
    new pID, string[256], console[256], Spielerdatei[256], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/accounts/%s.acc",name);
    if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Du hast nich den benötigten Adminrang!");
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,ROT,"Benutzung: /unban [Playername]");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,ROT,"Der Spieler ist nicht Online!");
    {
    new File:Playername=fopen(Spielerdatei, io_read);
    if(Playername)
    {
    if(dini_Int(Spielerdatei,"Ban")==0)
    {
    SendClientMessage(playerid,ROT,"Dieser Spieler ist nicht gebannt.");
    }
    else
    {
    format(string,sizeof(string),"AdmCmd: %s wurde von %s entbannt.",SpielerName(pID),SpielerName(playerid));
    format(console,sizeof(console),"AdmCmd: %s wurde von %s entbannt.\n",SpielerName(pID),SpielerName(playerid));
    SendClientMessageToAll(ROT,string);
    dini_IntSet(Spielerdatei,"Ban",0);
    SpielerSpeichern(pID);
    }
    }
    else
    {
    SendClientMessage(playerid,ROT,"Diesen Spieler gibt es nicht.");
    }
    }
    return 1;
    }

  • öhm if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,ROT,"Der Spieler ist nicht Online!"); 
    wenn er gebannt ist? ;D

    Einmal editiert, zuletzt von Rey ()

  • hmm er zeigt immer an das der spieler nicht gebannt ist


    Versuche grade new File:Playername=fopen(Spielerdatei, io_read);
    if((Playername)==false) aber dann kommt

    Zitat

    warning 213: tag mismatch

  • Wird mit dem Parameter "u" nicht ein Spieler ausgewählt, der auch online ist?
    Benutze einen string, dann musst du allerdings den Namen des Spielers genau richtig schreiben.


    format(Spielerdatei,sizeof(Spielerdatei),"/accounts/%s.acc",name);


    Hier wird der Pfad vom eigenen Namen gebildet, was aber dann natürlich auch keinen Sinn macht.


    Grüße,
    tonyalva

  • Naja ob er on ist ist ja egal er wird ja erst gekickt wenn er sich einloggt ;D


    Es soll ja nur gucken ob man die datei öffnen kann wenn das nicht der fall ist soll ja kommen "Diesen Spieler gibt es nicht."

  • if(sscanf(params,"s[22]",playername))return SendClientMessage(playerid,ROT,"Benutzung: /unban [Playername] (richtige Rechtschreibung erforderlich)");
    format(path,sizeof(path),"accounts/%s.acc",playername);
    if(!dini_Exists(path)) return SendClientMessage(playerid,Farbe,"Dieser Account existiert nicht!");


    Müsste so klappen.


    Grüße,
    tonyalva

  • if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,ROT,"Der Spieler ist nicht Online!");
    {
    new File:Playername=fopen(Spielerdatei, io_read);
    if(Playername)
    {


    Die 1. Klammer und das, was darauf folgt, kannst du dir sparen. :)


    Grüße,
    tony


  • hmm... du hast mich verwirrt :S


    ocmd:unban(playerid,params[])
    {
    new pID, string[256], path[128], console[256], Spielerdatei[256], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/accounts/%s.acc",name);
    if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Du hast nich den benötigten Adminrang!");
    if(sscanf(params,"s[22]",pID))return SendClientMessage(playerid,ROT,"Benutzung: /unban [Playername]");
    format(path,sizeof(path),"/accounts/%s.acc",SpielerName(pID));
    if(dini_Exists(path))
    {
    if(dini_Int(Spielerdatei,"Ban")==0)
    {
    SendClientMessage(playerid,ROT,"Dieser Spieler ist nicht gebannt.");
    }
    else
    {
    format(string,sizeof(string),"AdmCmd: %s wurde von %s entbannt.",SpielerName(pID),SpielerName(playerid));
    format(console,sizeof(console),"AdmCmd: %s wurde von %s entbannt.\n",SpielerName(pID),SpielerName(playerid));
    SendClientMessageToAll(ROT,string);
    dini_IntSet(Spielerdatei,"Ban",0);
    }
    }
    else
    {
    SendClientMessage(playerid,ROT,"Diesen Spieler gibt es nicht.");
    }
    return 1;
    }


    Wenn du magst kannst du das mal bearbeiten und sagen wieso es nicht funktioniert.

  • GetPlayerName(playerid,name,sizeof(name)); // Unnötig
    format(Spielerdatei,sizeof(Spielerdatei),"/accounts/%s.acc",name); // Unnötig, der eigene Account muss ja schon vorhanden sein
    if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Du hast nich den benötigten Adminrang!");
    if(sscanf(params,"s[22]",pID))return SendClientMessage(playerid,ROT,"Benutzung: /unban [Playername]");
    format(path,sizeof(path),"/accounts/%s.acc",SpielerName(pID)); // Da der Spieler nicht online ist, kann "SpielerName" auch nicht benutzt werden, man gibt den Namen ja schon direkt an


    Grüße,
    tony

  • okay imemr noch der gleiche fehler aber habe es so wie du gesagt hast


    ocmd:unban(playerid,params[])
    {
    new pID, string[256], path[128], console[256], Spielerdatei[256];
    if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Du hast nich den benötigten Adminrang!");
    if(sscanf(params,"s[22]",pID))return SendClientMessage(playerid,ROT,"Benutzung: /unban [Playername]");
    format(path,sizeof(path),"/accounts/%s.acc",pID);
    if(dini_Exists(path))
    {
    if(dini_Int(Spielerdatei,"Ban")==0)
    {
    SendClientMessage(playerid,ROT,"Dieser Spieler ist nicht gebannt.");
    }
    else
    {
    format(string,sizeof(string),"AdmCmd: %s wurde von %s entbannt.",SpielerName(pID),SpielerName(playerid));
    format(console,sizeof(console),"AdmCmd: %s wurde von %s entbannt.\n",SpielerName(pID),SpielerName(playerid));
    SendClientMessageToAll(ROT,string);
    dini_IntSet(Spielerdatei,"Ban",0);
    }
    }
    else
    {
    SendClientMessage(playerid,ROT,"Diesen Spieler gibt es nicht.");
    }
    return 1;
    }