SScanf 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 yo,
    wollte mein Kick Befehl noch mit sscanf erweitern ich bekomme aber ein warning den ich nicht weg bekomme...
    error 035: argument type mismatch (argument 1)
    Bedeutet das nicht das ich was vergessen habe?
    (BSP; SendClientMessage(pID,string1)); (Also ohne Farbe)


    Spoiler anzeigen
    ocmd:kick(playerid,params)
    {
    if(GetPVarInt(playerid,"Admin")>=1)
    {
    new string1[250], string2[250], pID, grund[50];
    if(sscanf(params,"is",pID, grund))return SendClientMessage(playerid,rot,"[Benutze]: /kick [ID][Grund]");
    format(string1,sizeof(string1),"[ADM]: %s wurde von %s gekickt. Grund %s",SpielerName(pID),SpielerName(playerid),grund);
    SendClientMessageToAll(rot,string1);
    format(string2,sizeof(string2),"[ADM]: Du wurdesr von %s gekickt. Grund %s",SpielerName(playerid),grund);
    SendClientMessage(pID,rot,string2);
    Kick(pID);
    }
    else
    {
    SendClientMessage(playerid,rot,"Du bist kein Admin");
    }
    return 1;
    }


    Selbe ist halt auch beim Ban Befehl :S
    (Der Fehler ist in der sscanf Zeile!!)

  • Dachte der Fehler war in der sscanf Zeile, weil er weg war als ich ihn gelöscht habe.


    Indirekt lag er da auch.


    ocmd:kick(playerid,params)
    => params wird als Integer-Parameter von ocmd:kick angelegt. Integer = Ganze Zahlen.


    ocmd:kick(playerid,params[])
    => params wird als Array-Parameter von ocmd:kick angelegt. Array = Zeichenfolgen (zum Beispiel Strings). Da dort ja Buchstaben drin stehen, muss es das sein.


    Der Fehler entsteht nun, weil:
    if(sscanf(params,"is",pID, grund))
    sscanf erwartet im ersten Parameter (also dort wo "params" steht) ein Array. Hast du params nun als Integer (erstes Beispiel) deklariert, dann ist das für sscanf nicht verwendbar, somit entsteht dort die Fehlermeldung.



    PS: Vergesse bitte nicht den Thread auf erledigt zu setzen. Danke!

  • Jeffry....
    ich glaube du kannst in die Zukunft sehen <3



    Habe mir dabei gedacht: Hm dann setzt doch einfach mal bei jedem Befehl hinter params ein []...
    Nunja ich glaube du weißt was dann passiert.... ein derber Runtime Error.



    Da du es mir aber so geil erklärt hast, weiß ich was ich da gemacht habe und habe es wieder weggemacht und nun klappt wieder alles...
    Danke :)