• 04 Juin 2026, 04:37:43


Auteur Sujet: Problème de Textdraw avec variable appliquée à un joueur  (Lu 1485 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne LePtitClown

  • [M2R]LePtitClown
  • *
  • Bandit
  • Messages: 342
    • Voir le profil
Slt

Comme le titre du sujet l'indique, je n'arrive pas à afficher un textdraw contenant une variable à un joueur en particulier. En effet, tous les joueurs ont une valeur différente pour cette variable.
Voici mon code:

new Text:EtoilesTD[MAX_PLAYERS];//tout en haut évidemment

public OnPlayerConnect(playerid)
{
//TDDDDDDDDDDDDDDDDDD
EtoilesTD[playerid] = TextDrawCreate(498.000000, 98.000000, "etoiles");
TextDrawBackgroundColor(EtoilesTD[playerid], 255);
TextDrawFont(EtoilesTD[playerid], 3);
TextDrawLetterSize(EtoilesTD[playerid], 0.439999, 1.899999);
TextDrawColor(EtoilesTD[playerid], -10092289);
TextDrawSetOutline(EtoilesTD[playerid], 0);
TextDrawSetProportional(EtoilesTD[playerid], 1);
TextDrawSetShadow(EtoilesTD[playerid], 1);
        TextDrawShowForPlayer(playerid, EtoilesTD[playerid]);
        return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
TextDrawHideForPlayer(playerid, EtoilesTD[playerid]);
        return 1;
}



stock majetoiles(playerid)//Ce script est appelé à chaque modification de la variable etoiles[playerid]
{
format(string3, sizeof string3, "%d etoiles", etoiles[playerid]);
TextDrawSetString(EtoilesTD[playerid], string3);
}

Lors des tests avec deux personnes, l'un des 2 joueurs voyaient apparaitre la valeur de la variable de l'autre tout le long. Une seul valeur était donc affichée pour les 2 joueurs.

Si vous avez des réponses à mes questions, ça me dépannerait bien. :P
Merci d'avance
« Modifié: 07 Avril 2012, 13:37:43 par LePtitClown »

Hors ligne Xolokos

  • PAWN/XHTML/CSS/PHP/SQL/JS
  • *
  • Grand Banditisme
  • What are you waiting for ?
  • Messages: 681
    • Voir le profil
Re : Problème de Textdraw avec variable appliquée à un joueur
« Réponse #1 le: 07 Avril 2012, 15:37:57 »
Detruit le texte a sa sortie du jeu et tout en haut met :
#undef MAX_PLAYERS
#define MAX_PLAYERS 55
Le 55 étant le nombres de joueur que tu as au maximum sur ton serveur +1 donc si tu a 50 slot tu met 51-52 pour faire des économies de mémoire...
Ensuite tu le montre au joueur comme tu a déjà fais je pense que ensuite tu applique un :      TextDrawSetString(EtoilesTD[playerid], "~y~]");Et non recréer le texte ?
Nippah !

Hors ligne LePtitClown

  • [M2R]LePtitClown
  • *
  • Bandit
  • Messages: 342
    • Voir le profil
Re : Problème de Textdraw avec variable appliquée à un joueur
« Réponse #2 le: 09 Avril 2012, 10:34:57 »
Hélas non, ce SetString a l'air de mettre à jour tous les Textdraw et non un seul. J'ai réussi à trouver une impasse mais elle bouffe sûrement énormément de mémoire vu que je recrée le Textdraw du joueur à chaque modification de la valeur.


A+ :)

Hors ligne Xolokos

  • PAWN/XHTML/CSS/PHP/SQL/JS
  • *
  • Grand Banditisme
  • What are you waiting for ?
  • Messages: 681
    • Voir le profil
Re : Problème de Textdraw avec variable appliquée à un joueur
« Réponse #3 le: 09 Avril 2012, 11:05:26 »
Bizarre j'avais eu le même problème et je l'avais rectifié comme ça sinon essaye ça :
stock majetoiles(playerid, nombre)
{
        etoiles[playerid]=nombre;
format(string3, sizeof string3, "%d etoiles", etoiles[playerid]);
TextDrawSetString(EtoilesTD[playerid], string3);
}

Et a la connexion met un settimerex pour la création des TextDraw ce fasse 1 seconde après la connexion joueur j'ai pu remarqué que quelques fois SA:MP zapper des bous de code...

Sinon recréer le texte a chaque fois bouffe énormément de mémoire comme tu le dis...
Nippah !