GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Dark_revan le 24 Novembre 2008, 10:20:22
-
Bonjour voila j'ai un problème avec mon text draw il ne s'affiche pas du tout j'ai essayer avec une commandes et avec onplayerconnect mais rien n'y fait je pense que j'ai des erreurs mais je ne les trouve pas. si vous pourrier m'aider :)
forward barreInventaire(playerid,targetid);
public barreInventaire(playerid,targetid)
{
if(IsPlayerConnected(playerid)&&IsPlayerConnected(targetid))
{
barinventaire = TextDrawCreate(503.000000,111.000000,"Charge");
TextDrawAlignment(barinventaire,0);
TextDrawBackgroundColor(barinventaire,COLOR_BLUE);
TextDrawFont(barinventaire,3);
TextDrawLetterSize(barinventaire,1.000000,1.000000);
TextDrawColor(barinventaire,COLOR_RED);
TextDrawSetOutline(barinventaire,1);
TextDrawSetProportional(barinventaire,1);
TextDrawSetShadow(barinventaire,1);
}
return 1;
}
sa ses mon public et ensuite y a les commandes
if (strcmp(cmd, "/chargeon", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if (gPlayerLogged[playerid] != 0)
{
TextDrawShowForPlayer(playerid,barinventaire);
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " Vous n'êtes pas connecté !");
}
}
return 1;
}
if (strcmp(cmd, "/chargeoff", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if (gPlayerLogged[playerid] != 0)
{
TextDrawHideForPlayer(playerid,barinventaire);
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " Vous n'êtes pas connecté !");
}
}
return 1;
}
Merci de m'aider.
-
Faut pas mettre en haut du script un
new TEXT: textdraw balbla
?? :blink (je demande parce que je ne suis pas sur ^^ )
-
j'ai oublier de le mettre sr mon poste si je les mits.
new Text: barinventaire;
-
tu veut faire un text draw quand le joueur tape une commande ?
ou un texte genre sous la map ?
-
En faite je veut que mon texte cache la barre d'argent dans gta masi j'ai deja essayer sans commandes sa ne marche pas ni avec commandes alors j'ai demender de l'aide
-
Je viens de tester ton TextDraw dans mon mode à tout faire.
Il s'affiche correctement (il est illisible mais je le vois).
Vérifie que ton TextDraw est bien créé.
Je pense que le problème vient du test
if(IsPlayerConnected(playerid)&&IsPlayerConnected(targetid))
dans ta fonction barreInventaire.
Pour être sûr, crée ton TextDraw directement dans OnGameModeInit et fais un commande simple qui l'affiche :
if (strcmp(cmd, "/afftest", true) == 0)
{
TextDrawShowForPlayer(playerid,barinventaire);
return 1;
}
++
Syg
-
ok merci syg de m'aider :)
-
Bonsoir alors voila je vient de tester quand j'ai eu un peu de temps et j'ai voulu afficher mon text draw il marcher avec textdraw create et le text dedans mais quand j'ai voulu rajouter ceci:
format(string, sizeof(string), "%s a: %d/%d en charge ",sendername, PlayerInfo[playerid][pCharge],PlayerInfo[playerid][pCapacite]);
barinventaire = TextDrawCreate(530.000000,120.000000,string);
Si vous pourriez me dire comment le faire afficher et fontionner.
Merci d'avance :)
-
Pour mettre à jour la chaîne (texte) affichée par un TextDraw, il y a deux solutions :
1) -> Ancienne solution utilisée avant que la fonction TextDrawSetString existe
- Detruire le TextDraw précédent (TextDrawDestroy)
- Créer un nouveau TextDraw avec le nouveau texte (TextDrawCreate, ...)
- Affiché le TextDraw au(x) joueur(s) (TextDrawShowForPlayer ou TextDrawShowForAll)
2) -> La meilleure solution, certainement plus efficace que l'ancienne
- Cacher le TextDraw au(x) joueur(s) (TextDrawHideForPlayer ou TextDrawHideForAll)
- Utiliser la fonction TextDrawSetString pour mettre à jour le texte à afficher
- Affiché le TextDraw au(x) joueur(s) (TextDrawShowForPlayer ou TextDrawShowForAll)
++
Syg
-
Salut,
petite question juste comme ça, pourquoi le cacher pour le montrer environ 5ms plus tard...
sur mon serveur je ne me suis pas donné cette peine, ex-ce que ça cause des crash??J'imaginerais pas Syg se tromper lol
++Sim++
-
Je le cache, je change la chaîne et je le re-affiche.
Si je fais comme ça, c'est parce que sinon ça ne marchait pas (en version 0.2.2).
J'ai essayé de ne changé que la chaîne et elle n'a pas été mise à jour. La seule façon que j'avais trouvé pour que ça marche est celle que j'ai donnée.
Maintenant, il se peut qu'avec la version 0.2.X, le TextDrawSetString suffise, je n'ai pas refait le test.
Je vais donc le refaire pour l'occasion.
EDIT Syg : Effectivement, en 0.2.X, le TextDrawSetString suffit.
++
Syg
-
Merci j'ai trouver sa marche merci a vous les gars :)