[FRAGE]dcmd mehrere feste 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
  • Sry das ich schon wieder nen Thread mache aber hab ne Frage dessen Antwort ich wissen wollt ^^.
    Und zwar wen man zB busfahrer ist und es gibt 3 linien muss ich 3 cmd´s erstellen ?
    zB.:
    dcmd_linie1
    dcmd_linie2
    dcmd_linie3


    oder kann ich die fest machen und wen ja wie ??
    zB.:
    dcmd_linie
    sendclien..."/linie [NUMMER] SF = 1 | LV = 2 | LS = 3"
    und if(parameter =1)
    mache das
    oder if(parametter =2)
    ...


    oder wie ??

  • Das kannst du frei Entscheiden ^^ Es gibt ja leider auch Leute, die erstellen für jedes Tor einen eigenen Befehl wie /lspdtor, /lspdtor_new und Co, wo dann sich keiner mehr auskennt ^^ Also am besten ist es einfache und wenn es blöd klingt, einheitliche Befehle zu erstellen, da nicht viele die Nerven zB haben Befehle anders zu schreiben und Co ^^ Aber ansonsten kannst du ja von den GF-Befehlen nachschauen, wie die Parameter abgefragt werden bzw. nützt du sscanf von Y_Less.

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • es reicht ein befehl den du dann ausliest, kleines beispiel:
    dcmd_test(playerid, params[]) {
    new type[5];
    if(sscanf(params, "s",type)) {
    return SendClientMessage(playerid,COLOR_LIGHTRED,"USAGE: /test [rest]");
    }
    if (!strcmp(type, "hier", true, 4))
    {
    // was soll dann kommen wenn tyoe = hier ist
    }[
    else if (!strcmp(type, "dort", true, 4))
    {
    // was soll dann kommen wenn type = dort ist
    }
    else
    {
    // was soll dann kommen wenn type nichts von beiden ist
    }
    }


    so hab ich das immer gelöst und hat auch immer geklappt

    Ich helfe gerne, aber nur wenn die andere Person wenigstens versucht es zu schaffen.
    Solange sie nicht so dreist sind und mich beim Zocken zuspammen.

  • dcmd_liniee(playerid, params[]) {
    new line[5];
    if(sscanf(params, "d",line) || line < 1 || line > 3) return SendClientMessage(playerid,COLOR_LIGHTRED,"Benutze /linie [1-3]");
    switch(line)
    {
    case 0:
    case 1:
    }
    return 1;
    }

  • Oki danke so werd ich das dan machen also:

    dcmd_linie(playerid, params[]) {
    new type[5];
    if(sscanf(params, "d",type)) {
    return SendClientMessage(playerid,COLOR_LIGHTRED,"USAGE: /linie [NUMMER] SF = 1 | LV = 2 | LS = 3");
    }
    if (!strcmp(type, "1", true, 1))
    {
    // was soll dann kommen wenn type = 1 ist
    }
    else if (!strcmp(type, "1t", true, 1))
    {
    // was soll dann kommen wenn type =1t ist
    }
    else
    {
    // was soll dann kommen wenn type nichts von beiden ist
    }
    }

    und das mit dem tor ist simpel xD musste ja nur prüfen vor Welchem tor er steht ^^


    NeoPhoenix kannste mir das mal sagen was switch und case bringt ?? sry wo muss ich dan schreiben was passieren soll ??

  • Das wird aber so nicht funktionieren,denn
    Integer != String
    new type[5]; // Ist ein String
    if(sscanf(params, "d",type)) { // Hier sagst du aber Integer
    return SendClientMessage(playerid,COLOR_LIGHTRED,"USAGE: /linie [NUMMER] SF = 1 | LV = 2 | LS = 3");
    }
    if (!strcmp(type, "1", true, 1)) // Hier vergleichst du es aber wieder als String
    {
    // was soll dann kommen wenn type = 1 ist
    }
    else if (!strcmp(type, "1t", true, 1)) // Hier vergleichst du es auch als String
    {
    // was soll dann kommen wenn type =1t ist
    }
    else
    {
    // was soll dann kommen wenn type nichts von beiden ist
    }
    }

  • dcmd_liniee(playerid, params[]) {
    new line[5];
    if(sscanf(params, "d",line)) return SendClientMessage(playerid,COLOR_LIGHTRED,"Benutze /linie [1-3]");
    if(line == 1) { ... }
    else if(line == 2) { ... }
    else {SendClientMessage(playerid,COLOR_LIGHTRED,"Benutze /linie [1-3]");}
    return 1;
    }