Hey,
ich scheitere gerade an der einfachsten Logik und bin irgendwie am verzweifeln.
Ich habe folgenden Befehl:
new Float:X,Float:Y,Float:Z;new nachricht[128], text[128];new pActor,Farbe;GetActorPos(pActor,X,Y,Z);if (sscanf(params, "iss",pActor,Farbe,text))return SendClientMessage(playerid,COLOR_WHITE, "[hilfe] -");format(nachricht, sizeof(nachricht),"%s",text);Create3DTextLabel(nachricht,Farbe,X,Y,Z+0.3,5.0,0);
So jetzt das Problem: Der Befehl lautet InGame dann: /textdraw [ID des Actor] [Farbe] [Text], das Problem ist, wenn ich die Farbe eingebe, die ich oben definiert habe z.B. #define COLOR_WHITE 0xFFFFFFAA und probiere dann dort in dem Befehl einzugeben(Mit COLOR_WHITE) kommt immer ein schwarzer Text InGame. (Text und mit der ID funktioniert alles)
Wo liegt der Fehler?
PS: Hab erst angefangen mit dem Scripten, bitte nicht all zu streng sein mit dem Code^^
Ich bedanke mich im Voraus für die Hilfe
Alles anzeigen
Sowas kann nicht funktionieren.
COLOR_WHITE ist nicht das selbe wie "COLOR_WHITE"
Das eine ist eine definition, das andere ist ein string.
Du kannst entweder den benutzer einen Farbcode eingeben lassen, oder du machst es so:
new Float:X, Float:Y, Float:Z,
nachricht[128], text[128],
pActor, Farbe[32], colorcode;
if (sscanf(params, "is[32]s[128]", pActor, Farbe, text)) return SendClientMessage(playerid, COLOR_WHITE, "[hilfe] -");
GetActorPos(pActor, X, Y, Z);
format(nachricht, sizeof(nachricht), "%s", text);
if (!strcmp(Farbe, "weiß", true)) colorcode = COLOR_WHITE;
else if (!strcmp(Farbe, "schwarz", true)) colorcode = COLOR_BLACK;
else if (!strcmp(Farbe, "rot", true)) colorcode = COLOR_RED;
// etc.
else return SendClientMessage(playerid, COLOR_WHITE, "Ungültige Farbe.");
Create3DTextLabel(nachricht, colorcode, X, Y, Z+0.3, 5.0, 0);