Jump to content

Náhodná barva vozidla - Originální barvy


Roox

Recommended Posts

Zdravím, už nějakou dobu skldádám do kupy originální barvy vozidel a dnes jsem to konečně dodělal. Funguje to tak, že to zjistí model vozidla a vybere náhodné barvy.

 

Nejprve si vložte někam nahoru do módu tuto definici barev k autům.

 

new OriginalColors[212][19] =
{
{8,		4,1, 123,1, 113,1, 101,1, 75,1, 62,1, 40,1, 36,1},
{8,		41,41, 47,47, 52,52, 66,66, 74,74, 87,87, 91,91, 113,113},
{8,		10,10, 13,13, 22,22, 30,30, 39,39, 90,90, 98,98, 110,110},
{8,		36,1, 37,1, 30,1, 28,1, 25,1, 40,1, 101,1, 113,1},
{8,		113,39, 119,50, 123,92, 109,100, 101,101, 95,105, 83,110, 66,25},
{8,		11,1, 24,1, 36,1, 40,1, 75,1, 91,1, 123,1, 4,1},
{1,		1,1},
{1,		3,1},
{1,		26,26},
{1,		1,1},
{8,		4,1, 9,1, 10,1, 25,1, 36,1, 40,1, 45,1, 84,1},
{8,		12,1, 64,1, 123,1, 116,1, 112,1, 106,1, 80,1, 75,1},
{8,		9,1, 10,8, 11,1, 25,8, 27,1, 29,8, 30,1, 37,8},
{8,		87,1, 88,1, 91,1, 105,1, 109,1, 119,1, 4,1, 25,1},
{8,		25,1, 28,1, 43,1, 67,1, 72,1, 9,1, 95,1, 24,1},
{8,		20,1, 25,1, 36,1, 40,1, 62,1, 75,1, 92,1, 0,1},
{1,		1,3},
{1,     1,1},
{8,		119,119, 117,227, 114,114, 108,108, 95,95, 81,81, 61,61, 41,41},
{8,		45,75, 47,76, 33,75, 13,76, 54,75, 69,76, 59,75, 87,76},
{1,		6,1},
{8,		4,1, 13,1, 25,1, 30,1, 36,1, 40,1, 75,1, 95,1},
{7,		96,25, 97,25, 101,25, 111,31, 113,36, 83,57, 67,59},
{6,		1,16, 1,56, 1,17, 1,53, 1,5, 1,35},
{8,		1,0, 2,2, 3,2, 3,6, 6,16, 15,30, 24,53, 35,61},
{1,		43,0},
{8,		37,37, 42,42, 53,53, 62,62, 7,7, 10,10, 11,11, 15,15},
{1,		0,1},
{1,		4,75},
{8,		12,12, 13,13, 14,14, 1,2, 2,1, 1,3, 3,1, 10,10},
{1,		46,26},
{8,		71,59, 75,59, 92,72, 47,74, 55,83, 59,83, 71,87, 82,87},
{1,		43,0},
{1,		43,0},
{7,		1,1, 12,12, 2,2, 6,6, 4,4, 46,46, 53,53},
{1,     -1,-1},
{7,		83,1, 87,1, 92,1, 95,1, 109,1, 119,45, 11,1},
{8,		54,7, 79,7, 87,7, 95,16, 98,20, 105,20, 123,20, 125,21},
{1,		6,76},
{8,		57,8, 8,17, 43,21, 54,38, 67,8, 37,78, 65,79, 25,78},
{8,		34,34, 32,32, 20,20, 110,110, 66,66, 84,84, 118,118, 121,121},
{8,		2,96, 79,42, 82,54, 67,86, 126,96, 70,96, 110,54, 67,98},
{8,		0,0, 11,105, 25,109, 36,0, 40,36, 75,36, 0,36, 0,109},
{8,		4,1, 20,1, 24,1, 25,1, 36,1, 40,1, 54,1, 84,1},
{6,		32,36, 32,42, 32,53, 32,66, 32,14, 32,32},
{8,		34,34, 35,35, 37,37, 39,39, 41,41, 43,43, 45,45, 47,47},
{1,     -1,-1},
{1,		75,2},
{1,		3,6},
{1,		1,74},
{1,     -1,-1},
{8,		123,123, 125,125, 36,36, 16,16, 18,18, 46,46, 61,61, 75,75},
{8,		1,3, 1,5, 1,16, 1,22, 1,35, 1,44, 1,53, 1,57},
{1,		56,56},
{1,		26,26},
{8,		84,15, 84,58, 84,31, 32,74, 43,31, 1,31, 77,31, 32,74},
{8,		84,63, 91,63, 102,65, 105,72, 110,93, 121,93, 12,95, 23,1},
{8,		58,1, 2,1, 63,1, 18,1, 32,1, 45,1, 13,1, 34,1},
{8,		91,1, 101,1, 109,1, 113,1, 4,1, 25,1, 30,1, 36,1},
{1,     -1,-1},
{8,		1,3, 1,9, 1,18, 1,30, 17,23, 46,23, 46,32, 57,34},
{8,		36,1, 37,1, 43,1, 53,1, 61,1, 75,1, 79,1, 88,1},
{8,		12,12, 13,13, 14,14, 1,2, 2,1, 1,3, 3,1, 10,10},
{8,		79,79, 84,84, 7,7, 11,11, 19,19, 22,22, 36,36, 53,53},
{1,		14,75},
{1,		14,75},
{8,		67,76, 68,76, 78,76, 2,76, 16,76, 18,76, 25,76, 45,88},
{8,		51,1, 58,8, 60,1, 68,8, 2,1, 13,8, 22,1, 36,8},
{4,		6,6, 46,46, 53,53, 3,3},
{1,		1,3},
{1,		43,0},
{8,		120,117, 103,111, 120,114, 74,91, 120,112, 74,83, 120,113, 66,71},
{2,		56,15, 56,53},
{2,		56,15, 56,53},
{8,		97,1, 81,1, 105,1, 110,1, 91,1, 74,1, 84,1, 83,1},
{8,		2,39, 9,39, 17,1, 21,1, 33,0, 37,0, 41,29, 56,29},
{8,		6,7, 7,6, 1,6, 89,91, 119,117, 103,102, 77,87, 71,77},
{8,		92,1, 94,1, 101,1, 121,1, 0,1, 22,1, 36,1, 75,1},
{8,		72,1, 66,1, 59,1, 45,1, 40,1, 39,1, 35,1, 20,1},
{8,		27,36, 59,36, 60,35, 55,41, 54,31, 49,23, 45,32, 40,29},
{7,		73,45, 12,12, 2,2, 6,6, 4,4, 46,46, 53,53},
{8,		1,1, 3,3, 6,6, 46,46, 65,9, 14,1, 12,9, 26,1},
{8,		41,41, 48,48, 52,52, 64,64, 71,71, 85,85, 10,10, 62,62},
{1,     -1,-1},
{4,		12,35, 50,32, 40,26, 66,36},
{7,		1,73, 1,74, 1,75, 1,76, 1,77, 1,78, 1,79},
{1,		1,1},
{8,		26,14, 29,42, 26,57, 54,29, 26,3, 3,29, 12,39, 74,35},
{1,     -1,-1},
{6,		13,118, 14,123, 120,123, 112,120, 84,110, 76,102},
{1,		0,0},
{6,		40,65, 71,72, 52,66, 64,72, 30,72, 60,72},
{8,		30,26, 77,26, 81,27, 24,55, 28,56, 49,59, 52,69, 71,107},
{1,		36,13},
{8,		36,117, 36,13, 42,30, 42,33, 54,36, 75,79, 92,101, 98,109},
{8,		123,124, 119,122, 118,117, 116,115, 114,108, 101,106, 88,99, 5,6},
{8,		74,72, 66,72, 53,56, 37,19, 22,22, 20,20, 9,14, 0,0},
{1,     1,1},
{8,		11,123, 13,120, 20,117, 24,112, 27,107, 36,105, 37,107, 43,93},
{8,		109,25, 109,32, 112,32, 10,32, 30,44, 32,52, 84,66, 84,69},
{8,		75,84, 40,84, 40,110, 28,119, 25,119, 21,119, 13,119, 4,119},
{1,		14,75},
{8,		7,94, 36,88, 51,75, 53,75 ,58,67, 75,67, 75,61, 79,62},
{8,		83,66, 87,74, 87,75, 98,83, 101,100, 103,101, 117,116, 123,36},
{8,		51,39, 57,38, 45,29, 34,9, 65,9, 14,1, 12,9, 26,1},
{6,		13,118, 14,123, 120,123, 112,120, 84,110, 76,102},
{5,		3,3, 6,6, 7,7, 52,52, 76,76},
{8,		37,37, 42,42, 53,53, 62,62, 7,7, 10,10, 11,11, 15,15},
{1,		1,1},
{8,		7,1, 74,1, 61,1, 16,1, 25,1, 30,1, 36,1, 53,1},
{8,		43,43, 46,46, 39,39, 28,28, 16,16, 6,6, 5,5, 2,2},
{8,		3,90, 4,90, 7,68, 8,66, 12,60, 27,97, 34,51, 37,51},
{8,		17,39, 15,123, 32,112, 45,88, 52,71, 57,67, 61,96, 96,96},
{8,		38,51, 21,36, 21,34, 30,34, 54,34, 55,20, 48,18, 51,6},
{8,		26,26, 28,28, 44,44, 51,51, 57,57, 72,72, 106,106, 112,112},
{8,		13,76, 24,77, 63,78, 42,76, 54,77, 39,78, 11,76, 62,77},
{8,		116,1, 119,1, 122,1, 4,1, 9,1, 24,1, 27,1, 36,1},
{8,		37,36, 36,36, 40,36, 43,41, 47,41, 51,72, 54,75, 55,84},
{8,		2,39, 9,39, 17,1, 21,1, 33,0, 37,0, 41,29, 56,29},
{1,     1,1},
{1,     1,1},
{8,		74,74, 75,13, 87,118, 92,3, 115,118, 25,118, 36,0, 118,118},
{8,		3,3, 3,8, 6,25, 7,79, 8,82, 36,105, 39,106, 51,118},
{1,		0,1},
{1,     1,1},
{7,		1,1, 17,20, 18,20, 22,30, 36,43, 44,51, 52,54},
{8,		2,39, 9,39, 17,1, 21,1, 33,0, 37,0, 41,29, 56,29},
{8,		52,1, 53,1, 66,1, 75,1, 76,1, 81,1, 95,1, 109,1},
{1,     0,1},
{8,		37,37, 42,42, 53,53, 62,62, 7,7, 10,10, 11,11, 15,15},
{8,		110,1, 111,1, 112,1, 114,1, 119,1, 122,1, 4,1, 13,1},
{6,		2,35, 36,2, 51,53, 91,2, 11,22, 40,35},
{1,     1,1},
{8,		73,1, 74,1, 75,1, 77,1, 79,1, 83,1, 84,1, 91,1},
{8,		37,37, 42,42, 53,53, 62,62, 7,7, 10,10, 11,11, 15,15},
{8,		3,1, 28,1, 31,1, 55,1, 66,1, 97,1, 123,1, 118,1},
{8,		9,1, 12,1, 26,96, 30,96, 32,1, 37,1, 57,96, 71,96},
{1,		1,1},
{1,		1,1},
{7,		96,67, 86,70, 79,74, 70,86, 61,98, 75,75, 75,91},
{8,		37,37, 42,42, 53,53, 62,62, 7,7, 10,10, 11,11, 15,15},
{8,		51,1, 58,8, 60,1, 68,8, 2,1, 13,8, 22,1, 36,8},
{8,		13,118, 24,118, 31,93, 32,92, 45,92, 113,92, 119,113, 122,113},
{8,		76,8, 32,8, 43,8, 67,8, 11,11, 8,90, 2,2, 83,13},
{1,		3,1},
{8,		50,1, 47,1, 44,96, 40,96, 39,1, 30,1, 28,96, 9,96},
{8,		62,37, 78,38, 2,62, 3,87, 2,78, 113,78, 119,62, 7,78},
{8,		122,1, 123,1, 125,1, 10,1, 24,1, 37,1, 55,1, 66,1},
{1,		1,1},
{8,		74,39, 72,39, 75,39, 79,39, 83,36, 84,36, 89,35, 91,35},
{8,		37,37, 42,42, 53,53, 62,62, 7,7, 10,10, 11,11, 15,15},
{8,		67,1, 72,1, 75,1, 83,1, 91,1, 101,1, 109,1, 20,1},
{3,		56,56, 49,49, 26,124},
{8,		38,9, 55,23, 61,74, 71,87, 91,87, 98,114, 102,119, 111,3},
{8,		53,32, 15,32, 45,32, 34,30, 65,32, 14,32, 12,32, 43,32},
{8,		51,1, 58,1, 60,1, 68,1, 2,1, 13,1, 22,1, 36,1},
{1,		1,1},
{1,		1,1},
{8,		112,1, 116,1, 117,1, 24,1, 30,1, 35,1, 36,1, 40,1},
{8,		51,1, 58,8, 60,1, 68,8, 2,1, 13,8, 22,1, 36,8},
{8,		52,39, 9,39, 17,1, 21,1, 33,0, 37,0, 41,29, 56,29},
{8,		57,8, 8,17, 43,21, 54,38, 67,8, 37,78, 65,79, 25,78},
{8,		36,1, 35,1, 17,1, 11,1, 116,1, 113,1, 101,1, 92,1},
{1,		1,6},
{1,     1,1},
{8,		37,37, 42,42, 53,53, 62,62, 7,7, 10,10, 11,11, 15,15},
{8,		109,1, 30,8, 95,1, 84,8, 83,1, 72,8, 71,1, 52,8},
{8,		97,96, 88,64, 90,96, 93,64, 97,96, 99,81, 102,114, 114,1},
{8,		2,39, 9,39, 17,1, 21,1, 33,0, 37,0, 41,29, 56,29},
{1,     1,1},
{1,		1,1},
{6,		2,35, 36,2, 51,53, 91,2, 11,22, 40,35},
{8,		94,1, 101,1, 116,1, 117,1, 4,1, 25,1, 30,1, 37,1},
{8,		91,38, 115,43, 85,6, 79,7, 78,8, 77,18, 79,18, 86,24},
{1,		26,26},
{8,		12,1, 19,96, 31,64, 25,96, 38,1, 51,96, 57,1, 66,96},
{8,		67,1, 68,96, 72,1, 74,8, 75,96, 76,8, 79,1, 84,96},
{6,		1,3, 8,7, 8,10, 8,16, 23,31, 40,44},
{1,		1,1},
{8,		37,37, 42,42, 53,53, 62,62, 7,7, 10,10, 11,11, 15,15},
{9,		92,92, 81,81, 67,67, 66,66, 61,61, 53,53, 51,51, 47,47, 43,43},
{8,		54,1, 58,1, 66,1, 72,1, 75,1, 87,1, 101,1, 36,1},
{8,		41,10, 41,20, 49,11, 56,123, 110,113, 112,116, 114,118, 119,101},
{1,		1,1},
{1,     -1,-1},
{8,		37,37, 42,42, 53,53, 62,62, 7,7, 10,10, 11,11, 15,15},
{8,		119,1, 122,1, 8,1, 10,1, 13,1, 25,1, 27,1, 32,1},
{8,		36,1, 40,1, 43,1, 53,1, 72,1, 75,1, 95,1, 101,1},
{1,		1,1},
{8,		37,37, 31,31, 23,23, 22,22, 7,7, 124,124, 114,114, 112,112},
{1,     1,1},
{1,     -1,-1},
{1,		1,1},
{8,		51,1, 58,8, 60,1, 68,8, 2,1, 13,8, 22,1, 36,8},
{1,     1,1},
{1,		112,20},
{1,		0,1},
{1,		0,1},
{1,		0,1},
{1,     0,1},
{8,		81,8, 32,8, 43,8, 67,8, 11,11, 8,90, 2,2, 83,13},
{1,		1,1},
{8,		58,1, 69,1, 75,77, 18,1, 32,1, 45,45, 13,1, 34,1},
{8,		58,1, 69,1, 75,77, 18,1, 32,1, 45,45, 13,1, 34,1},
{8,		67,76, 68,76, 78,76, 2,76, 16,76, 18,76, 25,76, 45,88},
{8,		61,8, 32,8, 43,8, 67,8, 11,11, 8,90, 2,2, 83,13},
{1,     1,1},
{1,     1,1},
{1,     1,1},
{1,		36,36},
{1,     1,1},
{1,     1,1}
};

 

 

Musíme vytvořit definice pro získání náhodné barvy.

stock RandomColor(model, bool:Type, Id) // Funkce na získání náhodné barvy
{
new Color; // Vytvoří proměnnou
if(Id == -1) // Když Id je -1
{
    new Random = (1 + random( OriginalColors[model - 400][0] )) *2; // Získá ID náhodné dvojce barev
	if(Type == true) Color = OriginalColors[model - 400][Random]; // Když je nastaveno získání na 1. barvu, změní první barvu
	else Color = OriginalColors[model - 400][Random+1]; // Jinak změní druhou
}
else // Když Id není -1
{
    if(Type == true) Color = OriginalColors[model - 400][id]; // Změní první barvu na náhodnou
	else Color = OriginalColors[model - 400][id+1]; // Změní druhou barvu na náhodnou
}

if(Color == -1) // Když je náhodná barva -1
{
	Color = random(126); // Vybere náhodnou barvu ze všech barev
}
return Color; // Vrátí barvu
}

stock GetRandomColorId(model) // Funkce na získání ID náhodné dvojce barev
{
new id = ((1 + random( OriginalColors[model - 400][0] ))*2)-1; // Získá náhodné ID barev
return id; // Vrátí ID barev
}

 

Dále, aby se vozidla vytvořená přes AddStaticVehicle vytvořila s náhodnou barvou, musíme vytvořit novou funkci..

forward AddStaticVehicleV(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:angle, color1, color2);
public AddStaticVehicleV(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:angle, color1, color2) // Vytvoří novou funkci
{
   new Id = GetRandomColorId(modelid); // Vybere ID náhodné barvy
   if(color1 == -1) // Když je první barva -1
{
	color1 = RandomColor(modelid, true, Id); // Změní první barvu na náhodnou
}

if(color2 == -1) // Když je druhá barva -1
{
    color2 = RandomColor(modelid, false, Id); // Změní druhou barvu na náhodnou
}

new veh = AddStaticVehicle(modelid, spawn_x, spawn_y, spawn_z, angle, color1, color2); // Vytvoří vozidlo
return veh; // Vrátí ID vozidla
}

 

Nyní když máme všechny definice, ukážeme si jednoduché použití:

AddStaticVehicleV(411, 0.0, 0.0, 0.0, 0.0, -1, -1);

Jako barvy jsme nastavili -1, aby se vybraly náhodné.

 

Pokud chcete zjistit dvojici barev, můžeme si ji vypsat:

new Id = GetRandomColorId(411);
printf("%d | %d", RandomColor(411, true, Id), RandomColor(411, false, Id));

 

To je vše, díky za pozornost.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...