hey Leute ,
ich hab mir mal die Zeit genommen , denen von euch, die nicht wissen wie man einen Textdraw für Jeden macht der aber immer was anderes anzeigt,
halt "Speedometer Style",
Als erstes erstellt ihr wie bei einem normalen Textdraw die Variable,
so in etwa:
new Text:MeinDraw[MAX_PLAYERS];
diesmal wird sie für einen Index von 200 definiert also 200 mal diese Variable , nur nicht 200x genutzt (noch nicht)
So nun wollt ihr dort euren Textdraw erstellen, jetzt wird es etwas kompilizierter , da es 2 Methoden gibt,
davon nutze ich persöhnlich die erste Methode
Also wie gesagt Textdraw erstellen:
Die erste Methode, sie wird in OnGameModeInit rein gescriptet
Beispiel Methode 1:
for(new pl = 0;pl<MAX_PLAYERS;pl++)
{
MeinDraw[pl] = TextDrawCreate(43.000000,321.000000,"Irgendwas");
TextDrawAlignment(MeinDraw[pl],0);
TextDrawBackgroundColor(MeinDraw[pl],0x0000ff33);
TextDrawFont(MeinDraw[pl],2);
TextDrawLetterSize(MeinDraw[pl],0.499999,0.899999);
TextDrawColor(MeinDraw[pl],0x000000cc);
TextDrawSetProportional(MeinDraw[pl],1);
TextDrawSetShadow(MeinDraw[pl],1);
}
wie ihr seht wird in dieser Methode alles gleich in die 200 Slots erstellt also für alle 200 Spieler,
nur noch nicht angezeigt und verändert
So kommen wir nun einmal zu Methode Nummer 2:
Hier wird der Textdraw für den Spieler erst nach dem Betreten des Servers erstellt:
Beispiel Methode 2:
MeinDraw[playerid] = TextDrawCreate(43.000000,321.000000,"Irgendwas");
TextDrawAlignment(MeinDraw[playerid],0);
TextDrawBackgroundColor(MeinDraw[playerid],0x0000ff33);
TextDrawFont(MeinDraw[playerid],2);
TextDrawLetterSize(MeinDraw[playerid],0.499999,0.899999);
TextDrawColor(MeinDraw[playerid],0x000000cc);
TextDrawSetProportional(MeinDraw[playerid],1);
TextDrawSetShadow(MeinDraw[playerid],1);
wie ihr seht ganz normal nur mit playerid, muss ja für jeden Spieler sein
So ich denke wir können fortfahren, denn wir haben den Textdraw definiert und erstellt und das für alle Spieler
Jetzt kommen wir zum anzeigen des Textdraws, den folgenden Code könnt ihr überall wo ihr wollt verwenden,
wäre es ein Speedometer beim OnPlayerStateChange Code auf Status 2 also Fahrer
TextDrawShowForPlayer(playerid,MeinDraw[playerid]);
So wäre der Code für dieses Tut gewesen
wollt ihr ihn wieder ausblenden, käme folgendes in Frage:
TextDrawHideForPlayer(playerid,MeinDraw[playerid]);
So nun kommen wir zum Tipp für Textdraw User, ihr müsst einen Textdraw nicht
unbedingt verstecken und wieder anzeigen lassen um ihn zu Aktualisieren,
ihr nutzt in dem Fall einfach den Code:
TextDrawSetString(MeinDraw[playerid],"hier ist nun fuer den Spieler ein anderer text");
Nun steht nur für diesen Spieler ein anderer Text
Zum schluss möchte ich noch eins sagen, fuer die unter euch die Methode Nummer 2 nutzen, wäre
es Ratsam den textDraw zu zerstören mit:
TextDrawDestroy(MeinDraw[playerid]);
am besten bei OnPlayerDisconnect, ansonsten wars das, sollte in diesem Tut ein Fehler sein einfach nur
die Berichtigung Posten
Mfg. BlackFoX
Have FuN