dcmd mit alternativer Funktion

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
  • Ich hab mich grad mal hingesetzt und habe hier eine dcmd gebastelt, welche auch mit alternativen Funktionen klar kommt.
    Das heißt: Ihr benutzt dieses dcmd wie gewohnt, ausser, dass ich noch 2 weitere Parameter hinzugefügt habe: Alternativ Funktion, Alternativ Länge.


    Somit ist es möglich, dass man zB die Chat Funktionen "/autorufen" und "/ar" auf die gleiche Funktion dcmd_autorufen weiterleiten kann!
    Meiner meinung nach ist dies sehr praktisch, da ich man nun statt "/autoliste" auf meinen Server auch "/al" eingeben kann, ohne dass
    ich eine leere Funktion im Script erstellen muss. (Und dass sich alte User nicht umgewöhnen müssen).


    Naja, lange rede, kurzer Sinn ^^
    #define dcmd_alt(%1,%2,%3,%4,%5) if ((!strcmp((%3)[1], #%1, true, (%2))&&(((((%3)[(%2) + 1] == '\0')&&(dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == ' ')&&(dcmd_%1(playerid, (%3)[(%2) + 2]))))))||(!strcmp((%3)[1], #%4, true, (%5))&&(((((%3)[(%5) + 1] == '\0')&&(dcmd_%1(playerid, "")))||(((%3[(%5) + 1] == ' ')&&(dcmd_%1(playerid, (%3)[(%5) + 2])))))))) return 1


    Beispiel anhand des report Befehls:

    // Vorher
    dcmd (report, 6, cmdtext);
    // Nachher
    dcmd_alt (report, 6, cmdtext, r, 1); // "r" ist der alternative Befehl


    Wie man sieht, habe ich das Makro nach "dcmd_alt" umbenannt, so dass man nicht seinen ganzen Code umschreiben muss ;)


    Ich würde mich über Kommentare freuen ^^


    PS: Übrigens kann man damit ohne viel Arbeit alle Befehle zweisprachig machen :)


    MfG xMine

    90% der Breadfish Mitglieder sind kiddys, wenn du mir auch zustimmst dann kopiere diesen Text in deine Signatur!

    Einmal editiert, zuletzt von xMine ()