sscanf string problem

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 hab ein kleines Problem bei einem Befehl mit sscanf und dcmd... hier mal der Code:



    Aber irgendwie funktioniert es gar nicht... ich hab es mal ohne den string noch gemacht, also nur die Userid/Name und das "level", dann ging der befehl auch... Wenn ich bei dem sscanf-Abschnitt aber

    Code
    sscanf(params, "uds", pid, level, reason)

    angebe, dann meldet er mir "sscanf warning: strings without a length are deprecated, please add a destination size". Bei Google hab ich das mit dem String nochmals nachgelesen, hab es in [64] gesetzt, und es geht eben nicht. Ich hab schon andere Zahlen probiert, z.B. 128 oder 500, aber auch das ging nicht. Keine Log-Meldung... Es passiert einfach gar nichts.

  • Schreibe deinen Befehl mal so, dann klappt das:
    dcmd_test(playerid,params[])
    {
    new pid,level,reason[64],output[145],SpielerName[MAX_PLAYER_NAME],sName[MAX_PLAYER_NAME];
    if(sscanf(params,"uds[64]",pid,level,reason))return SendClientMessage(playerid,-1,"/test [id][level][grund]");
    format(output, sizeof(output), "Ausführender: %s Argument: %d. Grund:", sName, level);
    SendClientMessage(pid, Rot, output);
    SendClientMessage(pid, Rot, reason);
    return 1;
    }

  • if(sscanf(params, "uds[64]", pid, level, reason)) 
    => DIe Parameter wurden nicht alle ausgefüllt



    if(!sscanf(params, "uds[64]", pid, level, reason))
    bzw:
    if(sscanf(params, "uds[64]", pid, level, reason))return SendClientMessage(playerid.-1,"/test [id][level][grund]");
    {
    //Wurden ausgefüllt
    }
    => Die Parameter wurden ausgefüllt