Sscanf Problem [Makeadmin]

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
  • Hey Leute,


    ich folgendes Problem, ich hab jetzt angefangen mit sscanf zu arbeiten, ich hab mal gleich ein Makeadmin Befehl versucht zu scripten.

    Keine Copy und Paste sondern auf eigene Faust. Mein Problem ist jetzt wenn ich /makeadmin eingebe kommt immer im Chat:

    "Benutze: /makeadmin [ID] [Level]"

    auch wenn ich die Bedingungen für den Befehl erfülle. Kommt immer diese nachricht ich hoffe ihr könnt helfen.

    Auch wenn ich die richtigen Sachen eingebe also: /makeadmin 0 6 kommt die Nachricht.

    Hier der Code:


    ocmd:makeadmin(playerid,params[])
    {
    new pID,adlevel,name[MAX_PLAYER_NAME],givename[MAX_PLAYER_NAME],str[128];
    if((GetPVarInt(playerid,"Eingeloggt") == 0))return SendClientMessage(playerid,WEIS,"Logge dich bitte zuerst ein!");
    if(SpielerInfo[playerid][pAdmin] <=5)return SendClientMessage(playerid,GRAU,"Du besitzt nicht die benötigten Rechte dafür!");
    if(sscanf(params,"ui",pID,adlevel))return SendClientMessage(playerid,GRAU,"Benutze: /makeadmin [ID] [Level]");
    GetPlayerName(playerid,name,sizeof(name)),GetPlayerName(pID,givename,sizeof(givename));
    format(str,sizeof(str),"[Info]: Du hast den Spieler %s den Adminrang %i gegeben!",givename,adlevel);
    SendClientMessage(playerid,HELLBLAU,str);
    format(str,sizeof(str),"[Info]: Administrator %s hat dir den Adminrang %i gegeben!",name,adlevel);
    SendClientMessage(pID,HELLBLAU,str);
    SpielerInfo[pID][pAdmin] = adlevel;
    SavePlayer(pID);
    return 1;
    }

  • Du hast wahrscheinlich noch sscanf in einer include oder direkt in deinem code als Funktion definiert. Suche danach mal, es sollte wirklich nur das plugin definiert und benutzt werden. Ist beides aktiv tuts nicht gescheit.


    Falls das Problem bestehen bleibt, rate ich dir strtok zu verwenden (nach ich auch wenn es tut). Ist zwar älter aber meiner Meinung nach besser.
    Wie auch immer, such danach mal, sscanf kann möglicherweise bereits im Code definiert sein.

  • Ich habs raus genommen jetzt gehts einiger maßen. Nur wenn ich jetzt z.B. /makeadmin 0 6 eingebe setzt er ID 0 auf Adminlevel 0
    Aber das Adminlevel wird auch nicht gesetzt deswegen versteht ich das nicht :/




    //EDIT


    Hat sich schon gelöst, ich hab einfach #include <sscanf> raus genommen und den stock hier eingefügt.
    http://wiki.sa-mp.com/wiki/Sscanf_code


    MfG

    Einmal editiert, zuletzt von _Advanced_ ()