GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: DexX le 18 Juillet 2011, 01:22:25

Titre: Problème de chargement de données .ini
Posté par: DexX le 18 Juillet 2011, 01:22:25
Bonsoir,

Alors, j'ai fais un système de gestion de salaire par le maire.
Il peut éditer n'importe quel salaire depuis le jeu.
Cela sauvegarde bien dans le fichier .ini mais j'ai l'impression que sa le charge mal...

Car quand il tape la commande pour changer le salaire, sa lui affiche 0$ comme montant alors que dans le fichier ce n'est pas égale à 0.

Dès qu'on édite ce salaire et qu'on entre comme montant 1000 par exemple, si on retape la commande pour éditer, on voit bien 1000$.

Donc, je pense que le chargement du fichier se fait mal.

J'ai crée une commande pour recharger les donner de la mairie, donc rappeler la fonction Mairie_Chargement et sa remet tous à 0 sur le serveur. Donc on voit plus le 1000 par exemple. Mais les valeurs sont toujours présentent dans le fichier .ini.

Donc dans OnGameModeInit :

Mairie_Chargement();
forward Mairie_Chargement();
public Mairie_Chargement()
{
new arrCoords[11][64];
new strFromFile2[256];
new File: file = fopen("Mairie.ini", io_read);
if (file)
{
fread(file, strFromFile2);
split(strFromFile2, arrCoords, '|');
strmid(Mairie[Banque], arrCoords[0], 0, strlen(arrCoords[0]), 255);
strmid(Mairie[Salaire_RMI], arrCoords[1], 0, strlen(arrCoords[1]), 255);
strmid(Mairie[Salaire_SFPD], arrCoords[2], 0, strlen(arrCoords[2]), 255);
strmid(Mairie[Salaire_Mecanicien], arrCoords[3], 0, strlen(arrCoords[3]), 255);
strmid(Mairie[Salaire_Eboueur], arrCoords[4], 0, strlen(arrCoords[4]), 255);
strmid(Mairie[Salaire_Fermier], arrCoords[5], 0, strlen(arrCoords[5]), 255);
strmid(Mairie[Salaire_VendeurGlaces], arrCoords[6], 0, strlen(arrCoords[6]), 255);
strmid(Mairie[Salaire_Balayeur], arrCoords[7], 0, strlen(arrCoords[7]), 255);
strmid(Mairie[Salaire_PizzaBoy], arrCoords[8], 0, strlen(arrCoords[8]), 255);
strmid(Mairie[Permis_Voiture], arrCoords[9], 0, strlen(arrCoords[9]), 255);
strmid(Mairie[Permis_Code], arrCoords[10], 0, strlen(arrCoords[10]), 255);
}
fclose(file);
}

forward Mairie_Sauvegarde();
public Mairie_Sauvegarde()
{
new idx;
new File: file2;
new coordsstring[256];
format(coordsstring, sizeof(coordsstring), "%d\r\n%d\r\n%d\r\n%d\r\n%d\r\n%d\r\n%d\r\n%d\r\n%d\r\n%d\r\n%d",
Mairie[Banque],
Mairie[Salaire_RMI],
Mairie[Salaire_SFPD],
Mairie[Salaire_Mecanicien],
Mairie[Salaire_Eboueur],
Mairie[Salaire_Fermier],
Mairie[Salaire_VendeurGlaces],
Mairie[Salaire_Balayeur],
Mairie[Salaire_PizzaBoy],
Mairie[Permis_Voiture],
Mairie[Permis_Code]);
if(idx == 0)
{
file2 = fopen("Mairie.ini", io_write);
}
else
{
file2 = fopen("Mairie.ini", io_append);
}
fwrite(file2, coordsstring);
idx++;
fclose(file2);
}

Merci d'avance de vos aides ;).
Titre: Re : Problème de chargement de données .ini
Posté par: ApocKalipsS le 18 Juillet 2011, 10:22:56
TOn fichier a ses données séparées par des retour à la ligne, or toi tu les sépare par le caractère '|' :

split(strFromFile2, arrCoords, '|');

remplace par

split(strFromFile2, arrCoords, '\r\n');
Titre: Re : Problème de chargement de données .ini
Posté par: DexX le 18 Juillet 2011, 10:44:27
Hum ... J'avais pas fais attention à cela  ;).

Mais il ne prend pas à compte, car il me met cela :

Citer
error 027: invalid character constant
error 029: invalid expression, assumed zero
error 017: undefined symbol "n"
fatal error 107: too many error messages on one line

forward Mairie_Chargement();
public Mairie_Chargement()
{
new arrCoords[11][64];
new strFromFile2[256];
new File: file = fopen("Mairie.ini", io_read);
if (file)
{
fread(file, strFromFile2);
split(strFromFile2, arrCoords, '\r\n');
strmid(Mairie[Banque], arrCoords[0], 0, strlen(arrCoords[0]), 255);
strmid(Mairie[Salaire_RMI], arrCoords[1], 0, strlen(arrCoords[1]), 255);
strmid(Mairie[Salaire_SFPD], arrCoords[2], 0, strlen(arrCoords[2]), 255);
strmid(Mairie[Salaire_Mecanicien], arrCoords[3], 0, strlen(arrCoords[3]), 255);
strmid(Mairie[Salaire_Eboueur], arrCoords[4], 0, strlen(arrCoords[4]), 255);
strmid(Mairie[Salaire_Fermier], arrCoords[5], 0, strlen(arrCoords[5]), 255);
strmid(Mairie[Salaire_VendeurGlaces], arrCoords[6], 0, strlen(arrCoords[6]), 255);
strmid(Mairie[Salaire_Balayeur], arrCoords[7], 0, strlen(arrCoords[7]), 255);
strmid(Mairie[Salaire_PizzaBoy], arrCoords[8], 0, strlen(arrCoords[8]), 255);
strmid(Mairie[Permis_Voiture], arrCoords[9], 0, strlen(arrCoords[9]), 255);
strmid(Mairie[Permis_Code], arrCoords[10], 0, strlen(arrCoords[10]), 255);
}
fclose(file);
}
Titre: Re : Problème de chargement de données .ini
Posté par: ApocKalipsS le 18 Juillet 2011, 11:00:51
Essaye avec des double quotes.
Titre: Re : Problème de chargement de données .ini
Posté par: DexX le 18 Juillet 2011, 11:04:21
Bien, il me met sa :

Citer
error 035: argument type mismatch (argument 3)

split(strFromFile2, arrCoords, "\r\n");
Edit :

Problème résolu. J'ai trouvé une autre solution ;). Merci Apo ;).