Hallo,
Heute will ich euch zeigen wie man Spieler Nametags erstellt.
Inhalt :
1. Vorwort.
2. Funktionen
3. Script
1. Vorwort :
In diesem Tutorial versuche ich euch zu erklären, wie man (Spieler) Nametags erstellt
Ich werde außerdem Versuchen das Tutorial so übersichtlich wie Möglich zu gestalten.
2. Funktionen
getPedBonePosition
oder
getElementPosition
getDistanceBetweenPoints3D
3. Script
Als erstes fangen wir damit an, das wir ein Event hinzufügen.
Hierbei kann anstatt "onClientHUDRender" auch "onClientRender" oder "onClientPreRender" genutzt werden.
Nun Fügen wir eine for-schleife hinzu, die alle spieler durchgeht.
Optional könnte man hierbei getElementsByType("player",root,true) verwenden, wenn man es unbedingt "so" resourcenschonend wie nötig machen will.
Hierbei ist k der Index, und v halt der Spieler.
Als Nächstes fragen wir ab, ob der Spieler nicht der Lokale ist, denn für diesen wollen wir natürlich kein Nametag
Wenn das getan ist, fragen wir nun ab ob die distanz zu dem spieler auch unter einem Gewissen maß ist, nicht das wir den Spieler über die halbe map sehen.
local lx,ly,lz = getPedBonePosition(localPlayer,8)local x,y,z = getPedBonePosition(v,8)if getDistanceBetweenPoints3D(lx,ly,lz,x,y,z) < maximale sichtweite thenend
Nun müssen wir noch abfragen ob sich der spieler nicht hinter einer Mauer oder ähnlichem Befindet.
Nun kommt der Hauptteil, wir "Transformieren" die 3d kordinaten zu 2d Kordinaten via getScreenFromWorldPosition
außerdem bauen wir eine abfrage ein, ob diese auch vorhanden sind, nach dem Transformieren.
local x1,y1 = getScreenFromWorldPosition(x,y,z+0.5)local x2,y2 = getScreenFromWorldPosition(x,y,z+0.4)if x1 and y1 and x2 and y2 thenend
Wir addieren 0.5 zu z, da wir ihn ja über dem kopf haben wollen und nicht direkt "im" kopf
Wir brauchen außerdem 2 positionen einmal für den Namen und einmal für die HP bar.
Nun "drawen" wir den Nametag
Der Name würde jetzt schonmal da stehen, jetzt fehlt die HP bar.
Wir nehmen von x2 100 weg, da wir sie ja in der Mitte haben wollen.
Außerdem nehmen wir hierbei schwarz für die Farbe (tocolor(0,0,0,150))
Jetzt kommt die rote HP bar
Hierbei nehmen wir nur 98 von x2 weg, da wir sie ja mit einem abstand zum Schwarzen Rand haben wollen.
Dafür nehmen wir von y2 2 weg,da oben ja auch ein rand sein soll,
Hierbei wird aus der 200 eine 196 da rechts auch ein rand sein soll sowie unten daher wird aus der 25 eine 21.
Die Farbe wird ein Dunkleres Rot (tocolor(200,20,20,150))
jetzt müssen wir nurnoch machen das die hp bar auch in mit der HP von dem Spieler überenstimmt, das machen wir mit einem 3 Satz
Länge/100*hp
Der Nametag sollte jetzt in etwa so aussehen
Und euer Code wie folgt
Ich Hoffe mal das "Tutorial" war Hilfreich.
Bei Fragen denke ich mal, könnt ihr es in diesem Thread Posten, sofern es sich anbietet.
MfG