Hilfe mit sscanf und ocmd Befehl

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,
    bei mehreren Befehlen dieser Art, also haben die gleiche Struktur funktioniert die Ausführung nicht.
    Wenn ich den Befehl mit den richtigen Rechten eingebe kommt nur:
    "Benutzen: /freischalten [Spielername/ID]"


    ocmd:freischalten(playerid,params[])
    {
    new pID, string[128], string2[128];
    if(GetPVarInt(playerid,"Adminlevel")>=2 || IsPlayerLeader(playerid,1) && GetPVarInt(playerid,"Rang")>=26)
    {
    if(sscanf(params,"ui",pID))return SendClientMessage(playerid,ROT,"Benutzen: /freischalten [Spielername/ID]");
    SetPVarInt(pID,"Fraktion",1);
    format(string,sizeof(string),"AdmCmd: Superadmin %s hat dich freigeschaltet!",SpielerName(playerid));
    SendClientMessage(pID,ROT,string);
    format(string2,sizeof(string2),"AdmCmd: Du hast Spieler %s freigeschaltet!",SpielerName(pID));
    SendClientMessage(playerid,ROT,string2);
    SpawnPlayer(pID);
    SpielerSpeichern(pID);
    }
    return 1;
    }



    Danke schonmal

  • Das liegt daran:

    if(sscanf(params,"ui",pID))return SendClientMessage(playerid,ROT,"Benutzen: /freischalten [Spielername/ID]");

    Du hast hier 2 parameter angegeben. nämlich "u" und "i" . Jedoch hast du nur einen Parameter deklariert... undzwar "u" .. du könntest das Problem ganz schnell lösen, indem du das "i" entfernst.. so z.B



    if(sscanf(params,"u",pID))return SendClientMessage(playerid,ROT,"Benutzen: /freischalten [Spielername/ID]");