dcmd - Mehrere Parameter

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.
    Ich würde gerne einem Spieler eine Waffe geben.
    Mit: /w [Playerid] [Waffenid] [Munition].
    Bis jetzt habe ich jedoch nur 1 Parameter benutzt also z.B. /heal [ID].
    Wie greife ich jetzt auf die anderen 2 Parameter zu?

  • Für mehrere Parameter kannst du (wenn du dcmd schon benutzt) sscanf nutzen.

    sscanf


    Diese Erweiterung zu dcmd erlaubt dir die einfache benutzung mehrerer Parameter.


    Wird genau so wie dcmd definiert, die Funktion an sich sieht aber so aus


    dcmd_weapon(playerid,params[])
    {
    new zielid;
    new waffe,munni;

    if(sscanf(params, "udd",zielid,waffe,munni))
    {
    return SendClientMessage(playerid,weiß,"Benutzung: /weapon [ID] [Waffen] [Munition]");
    }
    }

  • hier wird das ganze nochmal genau auf Deutsch erklärt:
    Commands mit Parametern


    bei sieht der command dann so aus:


    dcmd_weapon(playerid, params[])
    {
    new pID, weaponid, ammo;
    if(sscanf(params, "uii", pID, weaponid, ammo))
    return SendClientMessage(playerid, COLOR_RED, "USAGE: \"/weapon [ID] [weaponid] [ammo]\"");
    else
    {
    if(IsPlayerConnected(pID))
    GivePlayerWeapon(pID, weaponid, ammo);
    else
    SendClientMessage(playerid, COLOR_RED, "ERROR: Spieler nicht online");
    }
    return 1;
    }


    mfg

    Keine Scripting-Fragen per PM!

    2 Mal editiert, zuletzt von Crank93 ()

  • sscanf("SplitText","Format",{Variablen}...);

    • Text der zerlegt werden soll
    • Typen die zerlegt werden sollen sprich Zahl, String, Float
    • Variablen in die, die Werte kopiert werden sollen

    Zu beachten : Wenn eine Variable nicht den Typ der Rückgabe im Format entspricht gibt sscanf 0 wieder andernfalls 1 ( Falsch/Wahr )


    Es gibt auch andere Methode Parameter zu zerlegen da diese sich ja im Grund nur durch Spezielle Zeichen zersetzen wie Leer, Komma oder Sonstige Sonderzeichen,
    auch andere Zeichen können verwendet werden um Trennzeichen anzugeben.


    Viele nutzen auch strtok oder Split um Parameter zu trennen, die Ressourcenschonende Methode ist sscanf sprich kann man sscanf auch
    für andere aufgaben einsetzen wo Parameter getrennt werden sollen sprich kann diese Methode auch bei normalen Kommandos eingesetzt werden,
    viele meinen ja das man dies nur in dcmd oder anderen Methoden anwenden kann was aber nicht stimmt,
    so kann man auch Werte aus Dateien fischen und diese locker wiedergeben.


    So ich hoffe ich konnte dir mit dieser kurzen Erklärung helfen

    Mfg. BlackFoX_UD_ alias [BFX]Explosion