Skip to main content

Lista de culori

Chat text and player color

Culorile din SA-MP sunt în general reprezentate în notație hexazecimală (deși pot fi folosite și numere întregi). Un text de chat sau culoarea unui jucător arată astfel: 0xRRGGBBAA.

RR este partea roșie a culorii, GG verde și BB albastru. AA este valoarea alfa. Dacă se folosește FF acolo, culoarea se va afișa fără transparență și dacă se folosește 00, va fi invizibilă.

Pentru codul Hex pentru aceste culori, accesați Hex colors page.

Valori alfa (transparență)

Următoarele imagini afișează efectul valorilor de transparență utilizate cu o cară albă sub marcajul playerului și lăsate la pictograma dischetă de salvare. Inclinații de 0x11 (zecimală 17) sunt utilizate pentru demonstrare, dar, desigur, puteți utiliza orice valoare. Image.png

Făcând matematică

Deoarece culorile sunt doar numere, este posibil să se calculeze cu ele, deși este posibil să nu aibă întotdeauna sens. De exemplu, este posibil să reglați vizibilitatea marcatorului radar al jucătorului (a se vedea mai sus) păstrând în același timp culoarea actuală, indiferent de ceea ce este.

SetPlayerMarkerVisibility(playerid, alpha = 0xFF)
{
new oldcolor, newcolor;

alpha = clamp(alpha, 0x00, 0xFF); // if an out-of-range value is supplied we'll fix it here first
oldcolor = GetPlayerColor(playerid); // get their color - Note: SetPlayerColor must have been used beforehand

newcolor = (oldcolor & ~0xFF) | alpha; // first we strip of all alpha data (& ~0xFF) and then we replace it with our desired value (| alpha)
return SetPlayerColor(playerid, newcolor); // returns 1 if it succeeded, 0 otherwise
}

Convert string to value with pawn

Deoarece culorile sunt doar numere, trebuie să le convertiți uneori dintr-un șir de intrare "RRGGBBAA" în numărul său. Acest lucru se poate face folosind sscanf sau următoarea funcție:

stock HexToInt(string[])
{
if (!string[0])
{
return 0;
}

new
cur = 1,
res = 0;

for (new i = strlen(string); i > 0; i--)
{
res += cur * (string[i - 1] - ((string[i - 1] < 58) ? (48) : (55)));
cur = cur * 16;
}
return res;
}

Foloseste HexToInt("RRGGBBAA") și veți obține un număr utilizabil ca rezultat pentru SetPlayerColor.

Incorporarea culorii

Este posibil să utilizați culori în text în mesajele clientului, dialogs, 3D text labels, object material texts si vehicle numberplates.

Este foarte asemănător cu culorile de la gametext, dar permite utilizarea oricărei culori.

caution

Acest tip de încorporare a culorilor nu funcționează în desenele text. Vezi si GameTextStyle.

Exemplu

{FFFFFF}Hello this is {00FF00}green {FFFFFF}and this is {FF0000}red

Salut, acesta este verde și acesta este roșu

Image.png

Alt exemplu

Image.png
Codul pentru linia de chat de mai sus arată astfel:

SendClientMessage(playerid, COLOR_WHITE, "Welcome to {00FF00}M{FFFFFF}a{FF0000}r{FFFFFF}c{00FF00}o{FFFFFF}'{FF0000}s {FFFFFF}B{00FF00}i{FFFFFF}s{FF0000}t{FFFFFF}r{00FF00}o{FFFFFF}!");

Puteți defini culorile de utilizat astfel:

#define COLOR_RED_EMBED "{FF0000}"

SendClientMessage(playerid, -1, "This is white and "COLOR_RED_EMBED"this is red.");

Sau

#define COLOR_RED_EMBED "FF0000"

SendClientMessage(playerid, -1, "This is white and {"COLOR_RED_EMBED"}this is red.");

Al doilea exemplu ar fi mai bun, deoarece este mai clar că se folosește încorporarea.

Folosind GetPlayerColor

Pentru a utiliza culoarea unui jucător ca culoare încorporată, trebuie mai întâi să eliminați valoarea alfa. Pentru a face acest lucru, efectuați o schimbare logică la dreapta.

new msg[128];
format(msg, sizeof(msg), "{ffffff}This is white and {%06x}this is the player's color!", GetPlayerColor(playerid) >>> 8);
SendClientMessage(playerid, 0xffffffff, msg);

%x este substituent pentru valori hexazecimale, 6 asigură că șirul de ieșire va avea întotdeauna șase caractere și 0 îl va bloca cu zerouri dacă nu este. Rețineți că GetPlayerColor funcționează corect numai dacă SetPlayerColor a fost folosit în prealabil.

Culorile folosite la încorporarea culorilor nu sunt asemănătoare culorilor hexagonale normale în Pion. Nu există nici un prefix '0x' și nici o valoare alfa (ultimele 2 cifre).

Color Pickers

GameText

Pentru culorile GameText puteți utiliza etichete speciale pentru a seta textul următor la o anumită culoare.

~r~    red
~g~ green
~b~ blue
~w~ white
~y~ yellow
~p~ purple
~l~ black
~h~ lighter color

Etichetele de culoare ale textului jocului pot fi folosite pentru a forma cu ușurință diferite culori. Culorile de mai jos nu sunt exact aceeași culoare cu etichetele de mai sus.

~y~                yellow
~r~~h~ light red
~r~~h~~h~ red pink
~r~~h~~h~~h~ dark pink
~r~~h~~h~~h~~h~ light red pink
~r~~h~~h~~h~~h~~h~ pink
~g~~h~ light green
~g~~h~~h~ more light green
~g~~h~~h~~h~ sea green
~g~~h~~h~~h~~h~ offwhite
~b~~h~ blue
~b~~h~~h~ purplish blue
~b~~h~~h~~h~ light blue
~y~~h~~h~ offwhite
~p~~h~ medium pink

Exemplu

~w~Hello this is ~b~blue ~w~and this is ~r~red

[Image.png

Acum aceste culori sunt destul de întunecate. Le puteți face mai luminoase folosind ** ~ h ~ ** după codul de culoare:

~w~Hello this is ~b~~h~blue ~w~and this is ~r~~h~red

[Image.png