• 06 Juin 2026, 02:08:57


Auteur Sujet: Probleme de Recuperation de donnée dans un fichier  (Lu 1981 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Probleme de Recuperation de donnée dans un fichier
« le: 15 Juin 2010, 17:03:02 »
Bonjour a toutes et a tous,

dans le but de ma guerre des gang j'ai modifier le systeme du larp.

Soucis, il ne me recupere pas la couleur dans le fichier.

for(new i = 0; i < sizeof(Turfs); i++)
{
    GangZoneShowForPlayer(playerid, i, TurfInfo[i][zColor]);
}

public LoadTurfs()
{
new arrCoords[9][64];
new strFromFile2[256];
new File: file = fopen("turfs.cfg", io_read);
if (file)
{
new idx;
while (idx < sizeof(TurfInfo))
{
fread(file, strFromFile2);
split(strFromFile2, arrCoords, ',');
TurfInfo[idx][zgang] = strval(arrCoords[0]);
strmid(TurfInfo[idx][zColor], arrCoords[1], 0, strlen(arrCoords[1]), 255);
TurfInfo[idx][zX] = floatstr(arrCoords[2]);
TurfInfo[idx][zY] = floatstr(arrCoords[3]);
TurfInfo[idx][zZ] = floatstr(arrCoords[4]);
TurfInfo[idx][zMinX] = floatstr(arrCoords[5]);
TurfInfo[idx][zMinY] = floatstr(arrCoords[6]);
TurfInfo[idx][zMaxX] = floatstr(arrCoords[7]);
TurfInfo[idx][zMaxY] = floatstr(arrCoords[8]);
idx++;
}
fclose(file);
}
return 1;
}

Couleur dans le fichier 0x003300AA

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 chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
Re : Probleme de Recuperation de donnée dans un fichier
« Réponse #1 le: 15 Juin 2010, 17:28:27 »
Met des printf voir ou sa merde.

Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : Probleme de Recuperation de donnée dans un fichier
« Réponse #2 le: 15 Juin 2010, 17:30:32 »
ça merde a la show forplayer, il concidere la couleur comme noir.

Pourtant elle ne l'est pas dans mon fichier
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 scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : Probleme de Recuperation de donnée dans un fichier
« Réponse #3 le: 23 Juin 2010, 17:55:40 »
up
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 chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
Re : Probleme de Recuperation de donnée dans un fichier
« Réponse #4 le: 23 Juin 2010, 18:35:51 »
Est-ce qu'il charge la boucle '' Tant que " ?

Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : Probleme de Recuperation de donnée dans un fichier
« Réponse #5 le: 23 Juin 2010, 19:21:00 »
tant que? O_o
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 chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
Re : Probleme de Recuperation de donnée dans un fichier
« Réponse #6 le: 23 Juin 2010, 21:33:18 »
tant que = while ^^

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Probleme de Recuperation de donnée dans un fichier
« Réponse #7 le: 23 Juin 2010, 22:50:58 »
Si ta couleur est stockée sous la forme 0x003300AA, elle ne sera pas comprise par le PAWN directement et il la traduira certainement par 0 (noir).
Cette forme est un représentation en ASCII d'une valeur hexadécimale, pour la convertir en nombre, il faut décortiquer le chaîne caractère par caractère.

Je te conseille de stocker cette couleur sous forme de nombre
Par exemple, 0x003300AA = 3342506, c'est la valeur 3342506 qu'il faut stocker dans le fichier. Tu pourras ensuite faire un strval dessus sans problème et utiliser le résultat directement dans la fonction GangZoneShowForPlayer.

++
Syg
Courtesy of GtaManiac

Hors ligne chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
Re : Probleme de Recuperation de donnée dans un fichier
« Réponse #8 le: 23 Juin 2010, 23:07:12 »
pourquoi ne pas stocker directement des nombres entre 0 et X couleurs comme sa dans le GM il définis chaque couleur qu'il veut, je pense qu'il n'a pas envie de mettre 30 couleurs différentes de toutes façons..

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Probleme de Recuperation de donnée dans un fichier
« Réponse #9 le: 23 Juin 2010, 23:18:22 »
Avec un fonction chiante à coder.
Pour chaque caractère de la chaîne après le 'x', il faut le convertir en décimal (0=0, 1=1, ..., a=A=10, ...., f=F=15).
Ensuite, il faut décalé le tout de 4 bits vers la gauche (ou multiplier par 16) puis passer au caractère suivant.
Je n'ai pas de code de cette fonction car elle n'a pas beaucoup d'utilité autre que de servir d'exercice.

En voici une que je viens de faire et qui fonctionne:
#include <a_samp>
ConvertirHexa (StrHexa[])
{
new i;
new ValQuartet; // Valeur pour les quatre bits que représentent un caractère de la chaîne
new Val;        // Valeur finale

/* Dans ce qui suit, on commence au caractère 2 car on saute le '0' et le 'x' du début de chaîne
  qui ne servent pas pour le calcul de la valeur */
for (i=2 ; i<strlen (StrHexa) ; i++)
{
/* On décale la valeur finale de 4 bits (c'est à dire d'un quartet) */
Val *= 16;

/* Si le caractère est un chiffre */
if (StrHexa[i]>='0' && StrHexa[i]<='9')
{
ValQuartet = StrHexa[i] - '0';
}
/* Si le caractère est un lettre minuscule entre a et f */
if (StrHexa[i]>='a' && StrHexa[i]<='f')
{
ValQuartet = StrHexa[i] - 'a' + 10;
}
/* Si le caractère est un lettre majuscule entre A et F */
if (StrHexa[i]>='A' && StrHexa[i]<='F')
{
ValQuartet = StrHexa[i] - 'A' + 10;
}

/* On stocke le quarte dans la valeur finale */
Val += ValQuartet;
}

/* On retourne la valeur finale */
return Val;
}

main ()
{
new Chaine[]="0x003300AA";
printf ("Valeur = %d", ConvertirHexa (Chaine));
}

public OnGameModeInit ()
{
return 1;
}

Sinon, on peut se servir de la calculatrice Windows en mode scientifique pour faire les conversions.

++
Syg


Courtesy of GtaManiac

Hors ligne chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
Re : Probleme de Recuperation de donnée dans un fichier
« Réponse #10 le: 23 Juin 2010, 23:22:53 »
Bravo Syg !

« Modifié: 23 Juin 2010, 23:27:44 par chneubeul »

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Re : Probleme de Recuperation de donnée dans un fichier
« Réponse #11 le: 23 Juin 2010, 23:31:30 »
Bravo Syg !
Bof, c'est mon métier donc ce n'est pas la peine de me féliciter. Je fais ce genre de truc à longueur de journée.
Mais merci quand même, ça fait toujours plaisir.

++
Syg
Courtesy of GtaManiac

Hors ligne chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
Re : Probleme de Recuperation de donnée dans un fichier
« Réponse #12 le: 23 Juin 2010, 23:33:56 »
Tu sais je suis un novice en code donc ce genre de truc je ne savais pas que c'étais possible j'ai encore beaucoup à apprendre ^^ Surtout en pawno qui est tellement mystérieux comme tu es très limités dans les codes ^^ j'en ai fait les frais x'P

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Probleme de Recuperation de donnée dans un fichier
« Réponse #13 le: 23 Juin 2010, 23:38:05 »
Le PAWN est limité en terme de nombre de fonction (je ne parle pas de SAMP).
Mais, comme pour le C, c'est ce qui fait sa puissance.

Avec presque rien, on fait presque tout.

++
Syg
Courtesy of GtaManiac

Hors ligne chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
Re : Probleme de Recuperation de donnée dans un fichier
« Réponse #14 le: 23 Juin 2010, 23:40:11 »
Ouais mais quand tu veux faire des systèmes qui demande de nouvelles fonction ben ouais tu le fais mais à ta manière avec des timers et sa fait moche ^^