• 08 Avril 2025, 11:16:10


Auteur Sujet: Floatdiv  (Lu 643 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Floatdiv
« le: 24 Février 2010, 17:18:45 »
Bonjour, j'ai créer un texdraw amovible en fonction de l'essence que j'ai, mais j'ai un soucis

dans la callback de mon timer j'ai créé ceci

if(JaugeCreated[i] == true)
{
TextDrawDestroy(EssenceJaugeQuibouge[i]);
}
            EssenceJaugeQuibouge[i] = TextDrawCreate(245.000000,402.000000,"_");
TextDrawUseBox(EssenceJaugeQuibouge[i],1);
TextDrawBoxColor(EssenceJaugeQuibouge[i],0xffffffff);
TextDrawTextSize(EssenceJaugeQuibouge[i], floatadd(241.0, floatdiv(Gas[vehicle], 1.000000)),0.000000);
//TextDrawTextSize(EssenceJaugeQuibouge,383.000000,0.000000);
TextDrawAlignment(EssenceJaugeQuibouge[i],0);
TextDrawBackgroundColor(EssenceJaugeQuibouge[i],0x000000ff);
TextDrawFont(EssenceJaugeQuibouge[i],3);
TextDrawLetterSize(EssenceJaugeQuibouge[i],1.000000,1.800000);
    TextDrawColor(EssenceJaugeQuibouge[i],0xffffffff);
    TextDrawSetOutline(EssenceJaugeQuibouge[i],1);
    TextDrawSetProportional(EssenceJaugeQuibouge[i],1);
    TextDrawSetShadow(EssenceJaugeQuibouge[i],1);
    JaugeCreated[i] = true;

Le probleme s'est que rien n'apparait, je pense que ça vien de la ligne

TextDrawTextSize(EssenceJaugeQuibouge[i], floatadd(241.0, floatdiv(Gas[vehicle], 1.000000)),0.000000);
Je ne sais pas par quelle valeur diviser mon essence pour que se soit correct. Merci de votre aide
Refait un Game mode a partir d'une page blanche



Mes partages:

Systeme de Radio avec Frequence Création

Ajouter des véhicule dans le LARP - Godfather Tuto

Anti Cheat "JunkBuster" traduit en FR Traduction

LARP Traduit FR, V0.3 Traduction

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Floatdiv
« Réponse #1 le: 25 Février 2010, 02:21:19 »
Sa,

simplement une petit  de math: X/1 = X

sinon moi j'utiliserais simplement la multiplication: X * 2

ps. 2 est une valeur hypothétique

++Sim++





Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : Floatdiv
« Réponse #2 le: 25 Février 2010, 13:31:56 »
Mais je ne sais pas a quoi la valeur dos correspondre, la différence entre les x de chaque extrémité ou autre.

Merci
Refait un Game mode a partir d'une page blanche



Mes partages:

Systeme de Radio avec Frequence Création

Ajouter des véhicule dans le LARP - Godfather Tuto

Anti Cheat "JunkBuster" traduit en FR Traduction

LARP Traduit FR, V0.3 Traduction

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Floatdiv
« Réponse #3 le: 01 Mars 2010, 14:59:42 »
Ce qu'il faudrait savoir c'est la valeur maximum de la variable Gas[vehicle].
Après, il suffit de convertir la valeur de la jauge en pourcentage de la valeur maximum.
Ensuite, le plus simple, c'est d'ajouter par exemple un underscore (_) pour chaque tranche 10% (ou pour chaque tranche de 5%).

Exemple :
Si la valeur max est 255, le pourcentage se calcule comme suit :
new Float:P;
P = 100.0*Gas[vehicle]/255.0;

Le nombre de underscores (_) dans la chaîne est donné par  : P/10 (P/5 si on veut des tranches de 5%)
On crée alors une chaîne avec le nombre de underscores voulu :
new TexteJauge[128];
for (i=0 ; i<P/10 ; i++)
{
   TexteJauge[i] = '_';
}
TexteJauge[i] = 0; // Fin de chaîne

Ceci permet d'éviter le destruction/création systématique du TextDraw.
Il suffit de de faire :
TextDrawSetString (EssenceJaugeQuibouge[i], TexteJauge);
NB : Le TextDraw EssenceJaugeQuibouge doit être crée pour chaque joueur, par exemple au moment de la connexion ou du spawn et ne sera jamais détruit jusqu'à la déconnexion du joueur.
Si on veut cacher le TextDraw, on utilisera la fonction TextDrawHideForPlayer puis TextDrawShowForPlayer pour l'afficher de nouveau

++
Syg
Courtesy of GtaManiac