frage zu DCMD und SSCANF!!

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
  • hi,


    ist sscanf() voraussetzung für dcmd?


    heißt: muss ich auch sscanf() verwenden wenn ich mit dcmd arbeiten will? oder kann ich NUR mit dcmd auch arbeiten?



    mfg :D

  • sscanf is meines wissens ja nur dafür da, wenn du mit parametern arbeiten willst.


    wenn du dcmd für cmds ohne parameter benutzen willst, dann mach einfach


    dcmd_beispiel(playerid,params[])
    {
    #pragma unused params


    und dann einfach den cmd weiter

  • du musst bei parametern meistens mit sscanf arbeiten, außer du arbeitest nur mit PlayerID's als Parameter z.B. Kick [playerid]
    sonst geht es so (hier mal mein goto command) :
    dcmd_gotop(playerid, params[])
    {
    new
    Float:x, Float:y, Float:z,
    pID;
    if(sscanf(params, "u", pID))
    {
    return SendClientMessage(playerid, COLOR_RED, "Benutzung: /gotop PlayerID");
    }
    if(!IsPlayerConnected(pID))
    {
    return SendClientMessage(playerid,COLOR_RED,"Kein Spieler mit angegebener ID Online");
    }
    GetPlayerPos(pID, x, y , z);
    SetPlayerPos(playerid, x, y, z+2);
    SendClientMessage(pID,COLOR_WHITE,"AN ADMIN HAS TELEPORTED HIMSELF TO YOU");
    return 1;
    }

    Mfg GHOSTY

    :D Was schaut ihr mich alle an??? Ich bin auch nur eine Signatur :D

  • Sscanf ist keine Voraussetzung für Dcmd. Dcmd Befehle mit einem Parameter funktionieren auch ohne sscanf, allerdings benötigt man ab 2 Parametern oder mehr etwas um diese zu unterteilen, und das ist meist sscanf ;)

  • achso ^^



    naja ich hab mich das nur gefragt weil ich sscanf überhaupt nicht kapiere :D


    aber dcmd schon halbwegs...


    keinen plan wie sscanf funktioniert..



    noch ne kurze frage:


    was ist denn ein pragma??


    (also z.b. pragma unused params oder so..)



    mfg

  • und was ist der Integer params[]??


    wo kommt der vor und wo braucht man ihn?



    :D

  • Das setzt den integer params[] auf unbenutzt. ;)


    X(X(X( alleine schon am [] sieht man dass params ein String ist!


    Demnach

    Zitat

    String != Integer


    @ Jackpot der String 'Params' ist der Teil bei einem dcmd Befehl der nach dem eigentlichen Befehl kommt

    dcmd_test(playerid, params[])
    {
    #pragma unused params, playerid // Unterdrückt eine Warnung, laut der die Variable 'params' und 'playerid' nicht benutzt werden ;)
    return 1;
    }
    Und wenn du jetzt /test 1 eingibst, ist test der Befehl und 1 ist der Parameter der im String params[] gespeichert wird.

  • aaah ich glaub ich verstehe :D




    also dcmd_test definiert statt strcmp den befehl "/test".


    und in params wird gespeichert was du eingibts oder? also z.b beim gov-chat: "/gov text"


    params ist der "text", hab ich das richtig verstanden?




    und params unterdrückt im prinzip, wie du sagtest, nur die errormeldung, oder?




    :thumbup: wenn das so ist dann hast du super erklärt!



    nur noch eine frage:


    bleibt



    #pragma unused params, playerid
    return 1;



    immer gleich oder müssen da auch andere werte eingesetzt werdeN?

  • Du brauchst dieses pragma unused params wenn du eine der durch den Befehl oben erstellte Variablen nicht benutzt, da diese sonst eine Warnung erzeugen würden

    Zitat

    symbol 'xyz' is never used

  • achso also weil z.b bei /gov...


    man braucht den string damit man den text im spiel dann später verarbeiten kann


    aber im script ist der string (also params[]) noch nicht definiert..


    und damit keine warnung kommt das #pragma oder??



    und könnte man stock dann theoretisch auch benutzen?



    :D

  • Params[] steht ja auch erst im Befehl....
    dcmd_test(playerid, params[]) // <- der String
    und wofür willst du Stock benutzen? Mit Stock erstellt man Funktionen :pinch:

  • ja hab ich auch grad bemerkt ^^



    ich bin eben noch kein profi da kann man solche dummen fragen schon mal stellen :D



    aber ich glaub ich hab #pragma jetzt eh kapiert




    also danke für deine hilfe :thumbup:



    :D :D