Beiträge von |-|auke

    Entweder selbst suchen, oder selbst machen.
    Aber bevor du gleich einen weiteren Thread aufmachst, und fragst "Wie mach ich nen Navi" lern die Grundlagen!
    Da führt kein Weg dran vorbei.

    Na klar bringt es was, alle timer in einen zu setzen. Es macht genau das selbe, und bietet mehr Performance.
    Und wenn du sowieso einen Timer hast, der mit einem Intervall von 1 sekunde läuft, dann kannst du doch einfach eine Abfrage einbauen.

    if(stunde==20&&minute=20&&sekunde==20)

    einfach eine Abfrage davor machen:

    new bool:cmdsLocked[MAX_PLAYERS];


    public OnPlayerCommandText(playerid, cmdtext[]) {
    if(!cmdsLocked[playerid]) {
    if(!strcmp("/cmd",cmdtext,false)) return 0;
    }
    }

    Meinst du 2 Spalten?
    [table=2]
    [*]Zeile 1, Spalte 1[*]Zeile 1, Spalte 2
    [*]Zeile 2, Spalte 1[*]Zeile 2, Spalte 2
    [*]Zeile 3, Spalte 1[*]Zeile 3, Spalte 2
    [/table]


    Code
    [table=2] <- Gibt die Anzahl der Spalten an
    [*]Zeile 1, Spalte 1[*]Zeile 1, Spalte 2
    [*]Zeile 2, Spalte 1[*]Zeile 2, Spalte 2
    [*]Zeile 3, Spalte 1[*]Zeile 3, Spalte 2
    [/table]

    [table=3]
    [*]Zeile 1, Spalte 1[*]Zeile 1, Spalte 2[*]Zeile 1, Spalte 3
    [*]Zeile 2, Spalte 1[*]Zeile 2, Spalte 2[*]Zeile 2, Spalte 3
    [*]Zeile 3, Spalte 1[*]Zeile 3, Spalte 2[*]Zeile 3, Spalte 3
    [*]Zeile 4, Spalte 1[*]Zeile 4, Spalte 2[*]Zeile 4, Spalte 3
    [*]Zeile 5, Spalte 1[*]Zeile 5, Spalte 2[*]Zeile 5, Spalte 3
    [/table]


    Code
    [table=3]
    [*]Zeile 1, Spalte 1[*]Zeile 1, Spalte 2[*]Zeile 1, Spalte 3
    [*]Zeile 2, Spalte 1[*]Zeile 2, Spalte 2[*]Zeile 2, Spalte 3
    [*]Zeile 3, Spalte 1[*]Zeile 3, Spalte 2[*]Zeile 3, Spalte 3
    [*]Zeile 4, Spalte 1[*]Zeile 4, Spalte 2[*]Zeile 4, Spalte 3
    [*]Zeile 5, Spalte 1[*]Zeile 5, Spalte 2[*]Zeile 5, Spalte 3
    [/table]


    Sollte selbsterklärend sein. ;)

    Der Testcode ist ein komplett leeres Script, nur mit der jeweiligen CMD Variante. Sobald der Befehl eingegangen ist (also immer unter OnPlayerCommandText) wird mein Messplugin aktiviert. Sobald der Befehl beim Ausführen ist, wird wieder gestoppt. Mit dem Plugin kann ich auf auf ca. 0,3 Mikrosekunden genau messen ;)



    Dass es einen Test schon im Englischem Board gab wusste ich nicht, aber es gibt ja auch viele, die z.B. ihre eigenen unterschiedlichen Haussysteme Scripten, die aber alle gewissermaßen den selben Zweck erfüllen. :)

    @ Goldkiller: wie ich schon geschrieben habe, sind diese Tests mit meinen Plugin gemacht worden.
    Wie kommst du auf Nanosekunden? Genauer als Microsekunden gebe ich das nirgends an...


    Wenn ihr wollt, kann ich die Tests bald nochmal öfters wiederholen.

    Bis zu 8 LED´s lassen sich gut mit 16x PIC Prozessoren ansteuern. PIC´s sind gut für Anfänger, da sie flash sind, und einen eigenen internen 4MHZ Quarzoszillator haben. Somit braucht man die nicht mal in Schwingung bringen. - Einfach Strom ran, und es läuft ;)

    Der Nachteil bei diesem ist, dass er recht ungenau sein kann.
    Es ist zwar eine gute Möglichkeit, um schnell etwas im Script zu testen, aber mit genauen Messungen ist das wohl etwas schwieriger. Mit meinem Test könnte ich sogar die Abweichung bei einem 1ms Timer messen ;)


    Eigentlich ist dieser Thread nur das, was oben steht. - Ein Vergleich von Geschwindigkeit zwischen den CMD Methoden.

    Zum Testen habe ich mir eine art Benchmark Plugin geschrieben.
    Ich werde mir mal überlegen, wie ich 100 echte Befehle ausführen kann.
    Allerdings sieht man bei 10 Durchläufen ja schon kleine Unterschiede ;)


    Als nächstes werde ich wohl mal zcmd und den Vorschlag von dead ausprobieren.



    @ Trooper: Mir ging es jetzt nur um die knallharten Fakten :D Was man daraus macht, kann jeder für sich selbst entscheiden ;)

    Hey Leute,
    da ja viele meinen DCMD sei schneller als der Vergleich mit STRCMP, und auch andersherum, habe ich mal einen Test gemacht.
    Ich habe hier im Forum noch keinen solchen Test gefunden, desshalb wollte ich euch meine Ergebnisse im Showroom zeigen.


    [table=7]
    [*].[*]DCMD[*]STRCMP[*]ZCMD[*]D-O-C*[*]OCMD[*]YCMD
    [*]Schnellster Befehl[*]3,38 ms[*]3,37 ms[*]3,82 ms[*]3,45 ms[*]3,63 ms[*]3,96 ms
    [*]Langsamster Befehl[*]5,52 ms[*]5,99 ms[*]5,03 ms[*]5,36 ms[*]5,29 ms[*]5,81 ms
    [*]Messungen insgesamt durchgeführt[*]10[*]10[*]10[*]10[*]10[*]10
    [*]Durchschnitt[*]4,62 ms[*]4,83 ms[*]4,34 ms[*]4,51 ms[*]4,62 ms[*]4,73 ms
    [/table]
    *D-O-C = Double-O-Commands


    Der knappe Gewinner ist somit ZCMD


    Damit die Messung möglichst präzise wurde, habe ich die Tests auf einem leeren Gamemode mit 1 Spieler gemacht.
    Der Server war Localhost.


    Auf Wunsch teste ich gerne auch noch andere Varianten. ;)


    Edit: ZCMD getestet
    Edit2: Fehler behoben
    Edit3: Double-O-Commands hinzugefügt
    Edit4: OCMD hinzugefügt
    Edit5: YCMD hinzugefügt
    Edit6: Tabelle korrigiert
    Edit7: Überschrift angepasst
    Edit8: Layoutfehler korrigiert

    Und genau das, was diese Funktionen machen, kannst du auch machen. Dafür musst du nur ein ganz bischen MySQL lernen.

    new temp[256],query[128];
    mysql_query("SELECT * FROM spieler ORDER BY SpielerID DESC LIMIT 20");
    mysql_store_result();
    if(mysql_num_rows()>0)
    {
    while(mysql_fetch_row(temp))
    {
    mysql_get_field("SpielerGeld", temp);
    printf("%d",strval(temp));
    }
    }

    Das müsste so gehen.