Better Format

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


  • Dieses kleine Plug-in, hilft dir dabei mehr Ordnung in deinem Skript zu bringen.
    Es bietet momentane eine Übersichtliche Liste an Funktionen:



    SendClientMessageX - Als Ersatz für SendClientMessage
    PlayerTextDrawSetStringX - Als Ersatz für PlayerTextDrawSetString
    GameTextForPlayerX - Als Ersatz für GameTextForPlayer


    SendClientMessageToAllX - Als Ersatz für SendClientMessageToAll
    TextDrawSetStringX - Als Ersatz für TextDrawSetString
    GameTextForAllX - Als Ersatz für GameTextForAll
    (Mehr geplant, schreibe einfach darunter was für eine Funktion du benötigst!)


    Momentane, Benchmarks sind unschlüssig bei einigen ist die Performance gut bei einigen um die 200MS Langsamer als die Herkömmliche Art (array,format,sendclientmessage)...


    Hier, ist es ganz einfach den Spieler eine Nachricht mit mehreren Input's zu senden...



    Beispiel:


    Mit Better Format:
    public OnPlayerConnect(playerid) {


    new version[40], name[MAX_PLAYER_NAME];
    GetPlayerVersion(playerid, version, 40);
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);


    SendClientMessageX(playerid, 0xFFFFFFFF, "Hallo %s, deine momentane SA:MP Version ist: %s!", name, version);


    return 1;
    }


    Ohne Better Format:
    public OnPlayerConnect(playerid) {


    new version[40], name[MAX_PLAYER_NAME];
    GetPlayerVersion(playerid, version, 40);
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);


    #define _S_LENGTH (50 + MAX_PLAYER_NAME + 40)
    new msg [ _S_LENGTH ]; // Text Länge + EOS, Namenslänge, Versionslänge
    format ( msg, _S_LENGTH, "Hallo %s, deine momentane SA:MP Version ist: %s!", name, version);
    SendClientMessageX(playerid, 0xFFFFFFFF, msg);


    return 1;
    }


    Man sieht, mit Better Format ist schon mal viel mehr Übersichtlichkeit im Code und da C++ die Vorteile bietet das man Speicher ohne Große Probleme Dynamisch anlegen kann und danach wieder "auslöschen" ist Speicher gespart.
    // Später ist eine Version mit Fester Speicher Zuweisung geplant.


    Ohne viel Gerede ( da es nichts besonderes mehr zum sagen gibt):


    Downloads:
    @ Dateianhang

    Mirrors:
    PAWN Include File - Linux .so File - Windows .dll File - All- in- One Pack - Benchmark Filterscript



    Die Veröffentlichung ohne Sourcecode wurde von dem Moderator "BlackAce" genehmigt.

  • Immer diese Speedtests
    Man sparrt bestimmt 1 MS nach 12894 formats
    SUPER (sinnlos) !


    In SA-MP gibt es definitiv andere Bereiche zu beachten, wie man Schleifen etc. coded... im Gegensatz zu sowas :p


    Dennoch nützlich um schneller voran zu kommen, aber nicht für Speed :D

  • Die Idee fand ich an sich auch nicht schlecht es vereinfacht schon einiges zu dem ist es unter bestimmten Vorraussetzung auch um ein großes Stück schneller als die hier schon angesprochene format +SendClientMessage kombination und auch zuverlässiger als die Versionen die Pawn basierent geschrieben wurden.

  • Zitat von http://forum.sa-mp.de/gta-multiplayer-mods/san-andreas-multiplayer/scripting-base/showroom/5-regeln-f%C3%BCr-den-showroom/

    Sämtliche Dateien müssen mit der foreneigenen Dateianhang-Funktion hochgeladen werden. Wir empfehlen, auch Screenshots anzuhängen. Der Grund hierfür ist, dass die meisten Links der älteren Themen bereits offline sind und somit das komplette Thema sinnfrei ist.


    myu: bitte nachholen - danke.

  • Zitat

    Ist doch relativ ob man wenige ms spart oder nicht?

    Ja, wenn man sich überlegt der Benchmark führt den Code 100x10000 aus (1000000 mal)...
    Um jetzt schnell genau zu werden, es wird im normalen Einsatz kein großen Unterschied machen da du wohl unmöglich in einer Sequenz 1000000 eine Nachricht sendest oder anderes...


    Es wird bald eine neue Version folgen mit mehr Natives & kleine Optimierungen (200ms weniger Execution- Time unter Windows). (LINUX noch nicht getestet)


    myu: bitte nachholen - danke.


    Nachgeholt, Danke.

  • Total überflüssig, abgesehen davon das sie nur bei 10 Durchläufen 1ms schneller ist..
    Da nutze ich doch lieber format..


    #edit Jedoch gibt es auch noch eine andere Art das zu machen via define oder anderem? Ich möchte jetzt nicht wirklich wegen einer Funktion gleich ein Plugin mit laden..

  • en davon das sie nur bei 10 Durchläufen 1ms schneller ist..


    Aber stell dir vor es sind 100 durchläufe oder mehr? Es ist sehr gut und auch brauchbar 10/10

    [tabmenu][tab='Angebote','http://cdn3.iconfinder.com/data/icons/glyph/227/Tag-48.png']

    + Die Preise liegen bei 5-100+€ Ablauf:
    + Entweder ihr addet mich in Skype (PN vorher Schreiben) oder Ihr schreibt eine PN an mich (Betreff - Euer Wunsch z.B. Filterscript)
    + So nun schreibt ihr mir was ihr alles in dem Script haben wollt ich werd euch dann sagen ob ich es hinbekomme.
    + Dann machen wir ein groben Preis aus. Ich werde das Script erstellen und es zusammen mit dem Kunden Testen.



    [tab='Kontakt','http://cdn3.iconfinder.com/data/icons/line/36/person_add-48.png']
    edmix23

    + Bitte beim Adden angeben wer ihr seit oder per PN bescheid sagen!
    [tab='Zahlungs Methoden','https://cdn3.iconfinder.com/data/icons/line/36/check_money-32.png']
    +Paypal!
    +Direkte Banküberweisung

  • was habt ihr eig mit eurer geschwindigkeit?
    in pawn kann man an anderen stellen auf geschwindigkeit achten, wie der vorposter es schon meinte, wenn man mehrere durchläufe hat ist es sehr nützlich und spart zeit,
    zudem ist es einfacher und man kommt beim scripten auch schneller voran, also top