Wie erstelle ich einen Befehl mit dem ich 3DLabels mit Text und Farbe erstellen kann?
Zum Beispiel /label <text> <farbe>
Danke, lol
Wie erstelle ich einen Befehl mit dem ich 3DLabels mit Text und Farbe erstellen kann?
Zum Beispiel /label <text> <farbe>
Danke, lol
ocmd:label(playerid,params[])
{
new text[30],farbe[10],Float:Pos[3],string[128];
if(sscanf(params,"s[30]s[10]",text,farbe))return SendClientMessage(playerid,-1,"/label [Text][Farbe]");
GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
format(string,128,"%s",text);
if(!strcmp(farbe,"rot"),true)return Create3DTextLabel(string,rot,Pos[0],Pos[1],Pos[2],20,0);
//usw...
return 1;
}
Du musst halt doch die Farbe rot definieren
Ich glaube das sollte so klappen.
http://wiki.sa-mp.com/wiki/GetPlayerPos
http://wiki.sa-mp.com/wiki/Create3DTextLabel
Den Rest könnte man sich dann auch selber beibringen...
http://forum.sa-mp.com/showthread.php?t=259368
http://forum.sa-mp.com/showthread.php?t=191820
http://forum.sa-mp.com/showthread.php?t=478529
http://forum.sa-mp.com/showthread.php?t=166714
http://forum.sa-mp.com/showthread.php?t=470652
Sollte genügend Auswahl sein.
Enum: Wenn, dann so: Was du gepostet hast wird nicht funktionieren, sondern immer dann, wenn die Farbe nicht "rot" ist.
ocmd:label(playerid,params[])
{
new text[30],farbe[10],Float:Pos[3];
if(sscanf(params,"s[30]s[10]",text,farbe))return SendClientMessage(playerid,-1,"/label [Text][Farbe]");
GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
if(!strcmp(farbe,"rot"),true))return Create3DTextLabel(text,rot,Pos[0],Pos[1],Pos[2],20,0);
//usw...
return 1;
}
Wie kann ich denn das zuletzt erstellte Label löschen bzw mit einem cmd alles löschen?
Wie kann ich denn das zuletzt erstellte Label löschen bzw mit einem cmd alles löschen?
Wie oben schon erwähnt, schau dir doch mal die Funktionen an.
Wie oben schon erwähnt, schau dir doch mal die Funktionen an.
Nun, ich habe meine 3DLabels nicht definiert, also kann ich Delete3DTextLabel nicht anwenden?
Nun, ich habe meine 3DLabels nicht definiert, also kann ich Delete3DTextLabel nicht anwenden?
Logische Denkweise, definier sie doch einfach?
Create3DTextLabel returnt beim erstellen die ID, die könntest du dann ja im Chat ausgeben lassen
dcmd(addlabel,8,cmdtext);
return 1;
}
dcmd_addlabel(playerid,params[])
{
new string[160],Float: X, Float: Y, Float: Z,text[100],distance;
GetPlayerPos(playerid, X,Y,Z);
if(sscanf(params,"sd",text,distance)) return SendClientMessage(playerid,0xFB9204FF,"USAGE: /addlabel [text][distance]");
Create3DTextLabel(text,0x03B8FCFF,X,Y,Z,distance,GetPlayerVirtualWorld(playerid));
format(string,sizeof(string),"Create3DTextLabel("%s",0x03B8FCFF,%f, %f, %f,%d,%d);",text,X,Y,Z,distance,GetPlayerVirtualWorld(playerid));
SaveToLog("labels",string);
return 1;
Habe alles versucht mein letztes Label zu löschen, sowie alle anderen zu gleich, ich habe einfach keine Ahnung
Kann mir jemand bitte weiterhelfen?
new Text3D:Label = Create3DTextLabel(....
Delete3DTextlabel(Label);
Jetzt solltest du normalerweise Wissen wie es geht
Nur mal so by the way: Kommst du aus Fulda? Wegen deinem Namen?
dcmd_setlabel(playerid,params[])
{
new string[160],Float: X, Float: Y, Float: Z,text[100],distance;
GetPlayerPos(playerid, X,Y,Z);
if(sscanf(params,"ds",distance,text))
return 1; SendClientMessage(playerid,COLOR_WHITE,"* Use /setlabel [Distance] [Text] to set your 3D Label on your position. ");
Create3DTextLabel(text,0x03B8FCFF,X,Y,Z,distance,GetPlayerVirtualWorld(playerid));
format(string,sizeof(string),"Create3DTextLabel("%s",0x03B8FCFF,%f, %f, %f,%d,%d);",text,X,Y,Z,distance,GetPlayerVirtualWorld(playerid));
SaveToLog("labels",string);
return 1;
}
Wenn ich /setlabel eingebe, erscheint keine Meldung wie der Befehl einzugeben ist.
Erst nach dem richtigen Ausführen des Befehls, erscheint die Meldung "* Use /setlabel [Distance] [Text] to set your 3D Label on your position. "
Warum?
Änder "return 1; " in "return" und häng die komplette zeile an die if Zeile obendrüber.
Return 1 überspringt die ganze Funktion.
Edit: Ah, habs jetzt, dankesehr