H_Format - Formatierung in Funktionen

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
  • H_Format

    H_Format ist eine einfache kleine Include die beim Scripten viel Zeit sparen kann.

    H_Format übersetzt diese Funktionen

    • SendClientMessage(playerid, color, text[])
    • SendClientMessageToAll(color, text[])
    • SetGameModeText(text[])
    • UpdatePlayer3DTextLabelText(playerid, 3dTextLabel, color, text[])
    • Update3DTextLabelText(3dTextLabel, color, text[])
    • TextDrawSetString(textdraw, text[])
    • SetPVarString(playerid,"varname",text[])

    in Format-Funktionen.
    Somit ist die Formatierungsoption direkt in den Funktionen enthalten.
    So wie man es von z.B. der Funktion printf() kennt.


    Funktionen:

    • SendClientMessagef
      SendClientMessagef(playerid, color, format, { Float , _ } : ... );
    • SendClientMessageToAllf
      SendClientMessageToAllf(color, format, { Float , _ } : ... ); 
    • SetGameModeTextf
      SetGameModeTextf(format, { Float , _ } : ... ); 
    • UpdatePlayer3DTextLabelTextf
      UpdatePlayer3DTextLabelTextf(playerid, 3dTextLabel, color, format, { Float , _ } : ... ); 
    • Update3DTextLabelTextf
      Update3DTextLabelTextf(3dTextLabel, color, format, { Float , _ } : ... ); 
    • TextDrawSetStringf
      TextDrawSetStringf(textdraw, format, { Float , _ } : ... ); 
    • SetPVarStringf
      SetPVarStringf(playerid,"varname", format, { Float , _ } : ... ); 



    Hier ein paar Anwendungsbeispiele:

    Begrüßungsmeldung



    public OnPlayerSpawn(playerid)
    {
    new Playername[ MAX_PLAYER_NAME ];
    GetPlayerName(playerid, Playername, MAX_PLAYER_NAME);
    SendClientMessagef(playerid,0xFFFFFFFF,"Hallo %s! Willkommen auf unserem Server.", Playername);
    }

    Gamemodenamen ändern

    #define VERSION "v.1.0.1.2"


    public OnGameModeInit(){
    SetGameModeTextf("XYZ-Reallife %s",VERSION);
    }

    Benachrichtigung bei neuem Spieler

    public OnPlayerSpawn(playerid)
    {
    new Playername[ MAX_PLAYER_NAME ];
    GetPlayerName(playerid, Playername, MAX_PLAYER_NAME);
    SendClientMessageToAllf(0xFFFFFFFF,"%s hat sich eingeloggt.", Playername);
    }


    Platzhalter:
    Folgende Platzhalter können momentan genutzt werden:

    • %s = String
    • %d = Integer
    • %i = Integer
    • %f = Float


    Installation:

    • h_format.inc in den include Ordner von pawno einfügen
    • #include <h_format.inc> oben in deinem Gamemode unter #include <a_samp> einfügen
    • Schon können die Funktionen genutzt werden


    Download:

    PAWNit gratis nutzen?
    Geschenkcode: 2017VQXPKB8V3KA

    Hier könnte Ihre Werbung stehen.

    4 Mal editiert, zuletzt von |-|auke () aus folgendem Grund: Fehler in Beispielfunktion behoben - danke an SSL Beschreibung bearbeitet Überschrift

  • Naja die Funktion buggt mir ein bissle


    Beispiel:


    ocmd:test2(playerid,params[])
    {
    #pragma unused params
    new string[20] = "Jens";
    new Float:abc = 10.12;
    new a1 = 1, b1 = 10, c1 = 12, d1= 31;
    new Float:xy1 = 10.12;
    new Float:xz1 = 10.12;
    new string1[20] ="test";
    new string2[20] ="test12";
    SendClientMessagef(playerid,-1,"%s geht %f Kiometer weit und ist %d , %d , %d, %d, %f, %f, %s, %s",string,abc,a1,b1,c1,d1,xy1,xz1,string1,string2);
    SendClientMessagef(playerid,-1,"%s geht %f Kiometer weit und ist %d , %d",string,abc,a1,b1);
    return 1;
    }


    Beweis bild:



    Jedoch ist deine Funktion teilweise besser als die von Ryder im vergleich siehe Bild
    die obere Version ist von Hauke die untere von Ryder


  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Ich finde dein Werk wie immer hammer Hauke ;)


    Sowas in der Art wollte ich jetzt auch schreiben, aber du hast das ja schon erledigt ^^


    10/10 ! :love:


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Sry4pwn: Aber nur mit begrenzter Anzahl von Parametern. Mit einer Direktive wird das nur vom Preprocessor ersetzt. Hier macht es ein kleiner Algorithmus.
    @BlackAce-Junior: Geschwindigkeitstest und Ressourcentest habe ich noch nicht gemacht. Ich habe ehrlich gesagt nicht einmal geguckt ob es so Etwas schon gibt. :D


    Kaliber: Danke :)

    PAWNit gratis nutzen?
    Geschenkcode: 2017VQXPKB8V3KA

    Hier könnte Ihre Werbung stehen.

  • Ich Check ned warum es geht, aber es funktioniert auch mit mehr Parametern...
    Werde es wenn ich am pc bin mal reinstellen....


    soo... das sollte so funktionieren, also tut es 100% ig
    einfach ganz obn ins script, ich denke nicht, dass das andere ressourcenschonender ist oder ? ;D
    wer die andren teile auch formatiert haben will, kanns ja selbst machen ...
    //SendFormatmessage
    new stock scm_buf[144];
    native __SendClientMessage(playerid, color, const message[]) = SendClientMessage;
    native __SendClientMessageToAll(color, const message[]) = SendClientMessageToAll;


    #define SendClientMessage(%0,%1,%2,%3) \
    (format(scm_buf, sizeof scm_buf, %2,%3), __SendClientMessage(%0,%1,scm_buf))


    #define SendClientMessageToAll(%0,%1,%2) \
    (format(scm_buf, sizeof scm_buf, %1,%2), __SendClientMessageToAll(%0,scm_buf))

    Einmal editiert, zuletzt von Sry4pwn ()

  • Hay
    Ich finde diese Include sehr gut gemacht,
    Werde sie auch nutzen wenn ich mal wieder nen Script Beginne, aber da ich ein GF nutze, will ich lieber bei den normalen Funktionen bleiben mit Format, String[...]


    Aber gute arbeit 10/10 Punkten

    Stahlbau Azubi deswegen kaum Aktiv

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen