Command mit mehreren Optionen

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


    eine Frage: Ich möchte mehrere DM Areas machen. Da ich aber nicht solche langen Commands wie: "/dm_wüste_1" machen möchte, will ich es lieber so:


    Code
    /dm wüste 1


    Außerdem soll ein Text erscheinen, wenn man nur "/dm" eintippt, in welchem steht welche Optionen möglich sind.
    Ist das möglich?

  • Ja natürlich das geht auch mit Hilfe von strtok und strval


    new
    string[128],
    idx;
    string = strtok(cmdtext, idx);
    if(strcmp(string,"dm",true) == 0)
    {
    new
    number;
    string = strtok(cmdtext, idx);
    if(string[0] == 0)
    {
    // 1. Parameter ("Wüste") fehlt
    return 1;
    }
    string = strtok(cmdtext, idx);
    if(string[0] == 0)
    {
    // 2. Parameter (Zahl) fehlt
    return 1;
    }
    number = strval(string);
    // ... Zum überprüfen dann einfach ...
    if(strcmp(string,"wüste",true) == 0)
    {
    if(number == 1)
    {
    // Spieler hat /dm Wüste 1 eingeben
    }
    }
    }


    // strtok


    strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
    index++;
    }


    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
    }

  • Danke, aber irgendwas ist falsch.


  • Tobsen, glaube nicht dass dass ein Klammerfehler ist.

  • Mach doch den Command


    /dm


    SendclientMessage blavlalal


    und dannach halt die anderen befehle neu als dann den Cmd


    /dm wüste


    Sendclientmessage(playerid, Farbe, " Es gibt Wüste 1 und 2 ");


    dann den cmd


    /dm wüste 1


    Setplayerpos lalalal


    /dm wüste 2


    Setplayerpos llllalalal

    Ich wurde angesteckt:


    o.o
    o-o
    8|
    ^^


    So nun steckt euch auch an::