Da mir aufgefallen ist, dass diese Funktion nicht existiert und dies sehr schade ist, habe ich mal eine Include geschrieben, die diese Funktion implementiert.
Allgemeines:
Folgende Funktionen werden durch das Include geliefert:
native Attach3DTextLabelToObject(Text3D:id, objectid, Float:OffsetX, Float:OffsetY, Float:OffsetZ);
native Detach3DTextLabel(Text3D:id);
native AttachPlayer3DTextLabelToObject(playerid, PlayerText3D:id, objectid, Float:OffsetX, Float:OffsetY, Float:OffsetZ);
native DetachPlayer3DTextLabel(PlayerText3D:id);
Ich denke mal, die Attach Funktionen erklären sich von selbst
Was zu dem Detach zu sagen ist, falls ihr zuerst das Label an ein Objekt und dann z.B. an ein Auto attacht, müsst ihr es zuerst mit Detach lösen, sonst funktioniert das nicht!
Ich nutze einen Streamer:
Falls ihr einen Streamer nutzt, müsst ihr die Include unter der streamer Include einfügen (sprich so):
#include <streamer>
#include <attach> //<< muss unter der Streamer-Include stehen
Dann erkennt die Include das und verwendet andere Funktionen
Speed:
Also, wenn ihr 1000 3DTextLabeles erstellt und diese an 1000 Objekte attacht und sich dann alle in unterschiedliche Richtungen bewegen, selbst dann dauert ein Update aller Labels nur ~9ms!
Ich nutze ein Filterscript?
Wenn ihr die Include in einem Filterscript nutzt, müsst ihr das angeben und zwar so:
#define FILTERSCRIPT
#include <attach>
Download:
Source-Code: Pastebin
Direkter-Download: MediaFire
Schlusswort:
Ich hoffe einige von euch werden es mal brauchen
Falls ihr Fragen zu dem System oder der Anwendung hat, wenn Probleme auftreten oder ihr einen Kommentar abgeben wollt, einfach posten
mfg.
//Edit: Pastebin