Heya,
hänge seit knapp 2 Tagen an einem problem, ich versuchs einfach mal kurz zu fassen in der Hoffnung das mir vielleicht doch irgend einer helfen kann.
Ich versuche ein bisschen mit SetObjectMaterialText herum und bin derzeitig dabei das InGame erstellen solch "Fliegender Texte" zu ermöglichen. Das problem ist nun das SetObjectMaterialText eine Text Farb Angabe im ARGB Format benötigt, funktionieren tut es nur wenn ich schon vordefinierte Farben in der Funktion direkt angebe (Sprich jeder Text hat die Farbe COLOUR_WHITE zb.)
Ich möchte jedoch das ich in meinem Command eine Farbe angebe (BLUE zb.) und diese dann über eine Funktion in einem ARGB Format ausgegeben wird, die Funktion dazu besteht auch schon. Das problem ist nur das die Farbe ein Integer sein muss, und wenn ich über meine Funktion die Farbe returne kommt komischerweise nie das raus was raus kommen sollte.
Kurz anhand meiner Schnipsel erklärt:
GetFarbe Funktion:
stock GetFarbe(farbe[])
{
new PremadeColors[][] =
{
{ 0xFF0000FF , "Red" },
{ 0xFFFFFFFF , "White" },
{ 0x00FFFFFF , "Cyan" },
{ 0xC0C0C0FF , "Silver" },
{ 0x0000FFFF , "Blue" },
{ 0x808080FF , "Grey" },
{ 0x0000A0FF , "DarkBlue" },
{ 0x000000FF , "Black" },
{ 0xADD8E6FF , "LightBlue" },
{ 0xFFA500FF , "Orange" },
{ 0x800080FF , "Purple" },
{ 0xA52A2AFF , "Brown" },
{ 0xFFFF00FF , "Yellow" },
{ 0x800000FF , "Maroon" },
{ 0x00FF00FF , "Lime" },
{ 0x008000FF , "Green" },
{ 0xFF00FFFF , "Fuchsia" },
{ 0x808000FF , "Olive" }
},cfgfarbe;
for(new x; x != sizeof(PremadeColors); x++) if(!strcmp(PremadeColors[x][1], farbe, true)){
cfgfarbe = PremadeColors[x][0];
return cfgfarbe;
}
return -1;
}
So returned es jedoch nur die Zahlen... Richtig funktioniert es nur im folgenden zusammenhang:
new newcolor[30]; format(newcolor, 30, "0x%04x%04x",GetFarbe(color) >>> 16, GetFarbe(color) & 0xFFFF);
Das problem ist nun aber das es nun ein String ist und daher ein argument missmatch fehler auftaucht wenn ich versuche den String als Farb angabe zu nutzen.
Meine Frage ist nun ob jemand eine Ahnung hat wie ich den Farbcode richtig als Integer ausgeben kann.