Farben in SA:MP

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
  • Hallo,


    ich habe 2 Fragen zu Farben in SA:MP (Hexcodes und SAMP-Farbcodes).


    1:


    Ist es möglich Hexcodes bzw. beliebige Farben in Textdraws zu verwenden?
    ~r~, ~b~ usw. finde ich langweilig.


    Bsp.:


    TextDrawSetString(website, "{0043FF}www.{FFFFFF}txp.mysamp{0043FF}.de");


    2:


    Ist es möglich die SAMP-Farbcodes in Hexcodes umzuwandeln?
    Z.B. 0xFF0000FF in FF0000


    Ich möchte das dann so verwenden:


    new string[200], color;
    color = GetPlayerColor(playerid);
    //Hier muss der SAMP Farbcode dann in einen Hexcode umgewandelt werden
    format(string, sizeof(string), "Das ist ein {%s}Test",color);
    SendClientMes.....


    Hoffe ihr könnt mir helfen :)

  • Zu 2:


    Ja, ich weiß auch das man bei dem Colorpicker zwischen den zwei Codes wechseln kann.
    Ich glaube ihr versteht mein Problem nicht.


    Es sieht wie folgt aus:


    Bei GetPlayerColor wird nur der SAMP Farbcode zurückgegeben. Ich möchte aber die Farbe eines Spielers in
    einem String verwenden und muss den Code ja somit in einen Hexcode umwandeln.


    new string[200], color;
    color = GetPlayerColor(playerid);
    //Hier muss der SAMP Farbcode dann in einen Hexcode umgewandelt werden
    format(string, sizeof(string), "Das ist ein {%s}Test",color);
    SendClientMes.....

  • strdel ist hier die lösung :)

    Falsche Freunde: Fragen nach Kippen !
    Wahre Freunde: Sind der Grund, warum du keine Kippen hast !
    Falsche Freunde: Nennen deine Eltern Frau/Herr !
    Wahre Freunde: Nennen deine Eltern Mom/Dad !
    Falsche Freunde: Holen dich aus dem Knast und sagen dir, was getan hast, war falsch !
    Wahre Freunde: Sitzen in der Zelle neben dir und sagen: Scheiße...wir haben‘s verkackt...war aber verdammt lustig ! :P
    Falsche Freunde: Haben dich noch nie weinen sehen !
    Wahre Freunde: Weinen mit dir !
    Falsche Freunde: Werden dich stehen lassen, wenn die Menge das tut !
    Wahre Freunde: Werden der kompletten Menge den Arsch treten, die dich stehen gelassen hat ! c:
    Falsche Freunde: Bleiben für ne Weile !
    Wahre Freunde: Bleiben ein Leben lang !
    Falsche Freunde: Werden die Person, die Scheiße über dich erzählt, blöd vollabern !
    Wahre Freunde: Werden sie einfach ausknocken !
    Falsche Freunde: Werden das hier ignorieren !
    Wahre Freunde: Es Kopieren !


  • Ja, du kannst ja einfach eine Funktion schreiben die das macht, hier kurz ein stock der das machen würde (nicht getestet):


    stock HexinString(farbe[])
    {
    strdel(farbe, 0, 2);
    new y = (strlen(farbe)-2), z = strlen(farbe);
    strdel(farbe, y, z);
    return farbe;
    }


    //Beispiel:
    new farbe[16] = GetPlayerColor(playerid); //farbe = 0xFF4800FF
    farbe = HexinString(farbe); //farbe = FF4800
    //hier einfach einsetzen


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • Ah ok, danke. Habe es mal so gemacht (nicht Zeilen sparend :D)


    new string[50], colstring[20];
    new color;
    color = GetPlayerColor(playerid);
    format(colstring, sizeof(colstring), "%s", color);
    strdel(colstring, 0, 1);
    strdel(colstring, 7, 8);
    format(string, sizeof(string), "{%s} Test",colstring);
    SendClientMessage(playerid,0xFFFFFFFF, string);


    Das Problem ist nur, dass {%s} nicht als Hexcode erkannt wird und im Chat dann nur { } steht :D.
    Wie löse ich das?

  • //Edit:


    So habe es jetzt mal getestet:


    //code
    new color[16];
    color = "0xFF4800FF";
    printf("{%s} Test",HexinString(color));


    //stock
    stock HexinString(farbe[])
    {
    strdel(farbe, 0, 2);
    new y = (strlen(farbe)-2), z = strlen(farbe);
    strdel(farbe, y, z);
    return farbe;
    }


    So geht das ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

    Einmal editiert, zuletzt von Kaliber ()

  • Aber 0xFF4800FF soll ja eine beliebige Variable sein :o
    Und "0xFF4800FF" durch GetPlayerColor zu ersetzten geht glaube ich nicht.

  • (5873) : error 033: array must be indexed (variable "color")


    das wäre die Zeile:


    color = GetPlayerColor(playerid);