Function CreatePlayer3DTextLabel creates a 3D Text Label only for a specific player.
Function CreatePlayer3DTextLabel was added in 0.3a and will not work in earlier versions!
drawdistance seems to be a lot smaller when spectating.
If text[] is empty, the server/clients next to the text might crash!

(playerid, text[], color, Float:X, Float:Y, Float:Z, Float:DrawDistance, attachedplayer, attachedvehicle, testLOS)
int playerid The player which should see the newly created 3DText Label.
string text The text to display.
int color The text color.
float X X-Coordinate (or offset if attached).
float Y Y-Coordinate (or offset if attached).
float Z Z-Coordinate (or offset if attached).
float Float:DrawDistance The distance where you are able to see the 3D Text Label.
int attachedplayer The player you want to attach the 3D Text Label to. (None: INVALID_PLAYER_ID).
int attachedvehicle The vehicle you want to attach the 3D Text Label to. (None: INVALID_VEHICLE_ID).
bool testLOS 0/1 Test the line-of-sight so this text can't be seen through walls.

Return Values:
The ID of the newly created Player 3D Text Label, or INVALID_3DTEXT_ID if the Player 3D Text Label limit (MAX_3DTEXT_PLAYER) was reached.

if(strcmp(cmd, "/playerlabel", true) == 0)
    new PlayerText3D:playertextid;
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos( playerid, X, Y, Z );
    playertextid = CreatePlayer3DTextLabel(playerid,"Hello\nI'm at your position",0x008080FF,X,Y,Z,40.0);
    return 1;

Related Functions
The following functions may be useful, as they are related to this function in one way or another.