GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: inbox le 31 Mai 2008, 16:38:04

Titre: Les points pour l'argent (Ex: 1.000.000)
Posté par: inbox le 31 Mai 2008, 16:38:04
Bonsoir,

Je me suis mis a faire un script avec les TextDraw
et je voudrais savoir si c'est possible de mettre l'argent avec les points ?

j'ai fait ceci
new Float:heal;
new Float:banque;
banque = bank[playerid];
heal = GetPlayerMoney(playerid);

format(string, sizeof(string), "~r~Argent: ~y~%.2f ~r~Banque: ~y~%.2f", heal,banque);
TextDrawSetString(info[playerid], string);

ca me donne bien un point mais quand le joueur arrive a plus de 500000000
ca me donne ca 5000000.00

au lieu d'avoir ca comment faire pour que l'argent soit a 50.000.000 ?

Merci
Cordialement,
Titre: Re : Les points pour l'argent (Ex: 1.000.000)
Posté par: Nikko™ le 01 Juin 2008, 19:56:46
Tu veu quoi exactement ? quand on a 500 d'argent, ca nous met 500 de score ??

++
nikko
Titre: Re : Les points pour l'argent (Ex: 1.000.000)
Posté par: MadFire le 01 Juin 2008, 20:38:55
Non il veut par exemple que si il ya 5 millions que ca lui fasse 5.000.000 et non 5000000  ;)
Titre: Re : Les points pour l'argent (Ex: 1.000.000)
Posté par: Nikko™ le 01 Juin 2008, 20:56:20
Que ca lui fasse 500.500.500 dans le tableau des scores ??

++
nikko
Titre: Re : Les points pour l'argent (Ex: 1.000.000)
Posté par: Bayshore le 01 Juin 2008, 20:57:53
Dans sa textdraw :)
Titre: Re : Les points pour l'argent (Ex: 1.000.000)
Posté par: 77190A le 01 Juin 2008, 20:58:14
je crois que 'est pas possible sa
a moins de modifier dans le pwn le gains de cash en tuant une personne ?
Titre: Re : Les points pour l'argent (Ex: 1.000.000)
Posté par: Nikko™ le 01 Juin 2008, 21:14:21
Ouai, a part un textdraw, cest pas possible de faire aparaitre des 100.100.111 dans le tableau des scores ..

++
nikko
Titre: Re:
Posté par: Bayshore le 01 Juin 2008, 21:20:06
nikko, il ne parle aucunement du score. :)


Code: (pawn) [Sélectionner]
new size = strlen(bank[playerid]);
new argent[size+10];    valstr(argent, bank[playerid])

if(size > 3)
{
if(size == 4)
{
strins(argent, ".", 1);
}
if(size == 5)
{
strins(argent, ".", 2);
}
if(size == 6
{
strins(argent, ".", 3);
}
if(size == 7)
{
strins(argent, ".", 1);strins(argent, ".", 4);
}
if(size == 8)
{
strins(argent, ".", 2);strins(argent, ".", 5);
}
if(size == 9)
{
strins(argent, ".", 3);strins(argent, ".", 6);
}
if(size == 10)
{
strins(argent, ".", 1);strins(argent, ".", 4);strins(argent, ".", 7);
}
if(size == 11)
{
strins(argent, ".", 2);strins(argent, ".", 5);strins(argent, ".", 8);
}
if(size == 12)
{
strins(argent, ".", 3);strins(argent, ".", 6);strins(argent, ".", 9);
}
} //fin if(size > 3)

Pas testé. :)


++
Alexandre
Titre: Re : Les points pour l'argent (Ex: 1.000.000)
Posté par: Syg le 02 Juin 2008, 14:22:55
Bien compliqué tout ça Alexandre.
Tout d'abord, tu n'as pas retenu la leçon sur les else devant les if ....
De plus :
- On ne peut pas faire de strlen sur une valeur numérique (bank[playerid]).
- On ne peut pas mettre de variable pour dimensioner un tableau (argent[size+10];).

Pour faire ce que tu veux faire inbox, il faut analyser un peu la chose.
Donc tu veux mettre un point pour separer les chiffres d'un nombre par groupe de trois en partant de la fin.
Pour faire ça, il faut partir de la fin de la chaine qui contient le nombre (boucle inversée).
On copie chaque chiffre dans une chaine temporaire et tous les 3 chiffres, on ajoute un '.' dans cette chaine temporaire.
Une fois qu'on a copié tous les chiffres, il ne reste plus qu'à retourner la chaine temporaire (puisqu'elle est à l'envers).
Je sais, ce n'est pas très clair mais ça devrait suffir pour donner une base.

Je ne donne pas le code, je laisse les codeurs en herbe essayer de le faire (ça c'est mon coté sadique  ;)).

++
Syg