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
-
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 ! :)
-
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.
++
-
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
-
J'ai fait ça et ça ne marche pas non plus.
-
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
-
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++
-
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 !
-
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++
-
Arf, je suis bête...
Merci Sim ! :D