GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: ApocKalipsS le 03 Février 2010, 19:17:08

Titre: 3DTextLabel bug.
Posté par: ApocKalipsS le 03 Février 2010, 19:17:08
Salut,
Il y a un bug avec les Texts Labels...
Voilà mon code que j'ai mit dans OnPlayerConnect :

for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
new name1[MAX_PLAYER_NAME];
GetPlayerName(i, name1, sizeof(name1));
new coordsstring[156];
format(coordsstring, sizeof(coordsstring), "%s\nID: %d",name1, playerid);
    NomJoueur[i] = CreatePlayer3DTextLabel(i,string,COLOR_WHITE,0,0,0,10.0,i,INVALID_VEHICLE_ID,0);
}
}

Il ne fonctionne pas, Help !  :)
Titre: Re : 3DTextLabel bug.
Posté par: Dark_revan le 03 Février 2010, 20:30:47
Qu'elle est ton bug ?

ps: CreatePlayer3DTextLabel je croit qu'il se crée a la place du joueur et qu'il n'est pas attacher au joueur essaye de tester avec des cmds.
Si c'est alors ton joueur creer ton text quand il se connect c'est à dire dans le vide.

++
Titre: Re : 3DTextLabel bug.
Posté par: MrFredo le 04 Février 2010, 14:47:08
CreatePlayer3DTextLabel cree un label pour le joueur uniquement les autre ne le veront pas tu doit donc utiliser Create3DTextLabel, ensuite il faut aussi l'attacher au joueur si tu veux que le texte suive le joueur avec Attach3DTextLabelToPlayer
Titre: Re : 3DTextLabel bug.
Posté par: ApocKalipsS le 04 Février 2010, 17:25:28
J'ai fait ça et ça ne marche pas non plus.
Titre: Re : 3DTextLabel bug.
Posté par: MrFredo le 04 Février 2010, 20:02:13
Tu t'y prend certainement mal :)

Montre moi ton script de creation du label et d'attachement a un joueur que j'i jete un coup d'oeil
Titre: Re : 3DTextLabel bug.
Posté par: S!m le 04 Février 2010, 23:13:21
Salut,

d'après ce que j'en comprend tu désire montrer le nom des joueurs et leur ID au-dessus de leur tête, tu devrais pllutôt t'y prendre ainsi:


new Text3D:PlayerNameText[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
    new string[MAX_PLAYER_NAME + 10];
    GetPlayerName(playerid, string, MAX_PLAYER_NAME);
    format(string, 10, "%s\nID: %d", string, playerid);
    PlayerNameText[playerid] = Create3DTextLabel(string, COLOR_WHITE, 0.0, 0.0, 0.0, 50.0, 0, 1);
    Attach3DTextLabelToPlayer(PlayerNameText[playerid],  playerid, 0.0, 0.0, 1.5);//ajuster la hauteur
    return 1;
}

public OnPlayerDisconnect(playerid)
{
    if(PlayerNameText[playerid])
    {
        Delete3DTextLabel(PlayerNameText[playerid]);
        PlayerNameText[playerid] = Text3D:0;
    }
    return 1;
}

il te faudra surement adapter légèrement mais ça donne une bonne idée

++Sim++
Titre: Re : 3DTextLabel bug.
Posté par: ApocKalipsS le 05 Février 2010, 22:14:18
Ca marche, mais voilà mon code :
format(string1, 10, "%s\nLevel: %d\nXP:", string1, Level[playerid], XP[playerid]);
    PlayerNameText[playerid] = Create3DTextLabel(string1, COLOR_WHITE, 0.0, 0.0, 0.0, 50.0, 0, 1);

Et je vois ça :
Mon Nom
Level:

Je ne vois pas mon level, ni le mot XP: ...
Help !
Titre: Re : 3DTextLabel bug.
Posté par: S!m le 05 Février 2010, 23:06:00
Salut,

petite erreur, ton string est trop petit, augmente le à environ 64 ou 96 et change le second paramètre de ton format pour sizeof(tonstring) tonstring étant ta variable texte

++Sim++
Titre: Re : 3DTextLabel bug.
Posté par: ApocKalipsS le 06 Février 2010, 08:35:19
Arf, je suis bête...
Merci Sim !  :D