Bonsoir, je suis actuellement en train de faire (du moins essayer ) un système d'essence pour mon serveur. J'utilise un fichier pour chargé les positions des stations essences, Produits, Produits Max ect ..., mais quand le fichier sauvegarde (Ce met a jour) il semble y avoir un problème car tout et mélangé et lors du lancement suivant du GM tout et beugé.
Voici les codes:
<?php
enum StationSysteme
{
sName[64],
Float:sPosX,
Float:sPosY,
Float:sPosZ,
Float:sLivX,
Float:sLivY,
Float:sLivZ,
sProduits,
sMaxProduits,
sCaisse
}
new StationInfo[9][StationSysteme];
forward LoadStation();
public LoadStation()
{
new string[256];
new arrCoords[10][256];
new strFromFile2[256];
new File: file = fopen("station.txt", io_read);
if (file)
{
new idx;
idx = 0;
while (idx < sizeof(StationInfo))
{
fread(file, strFromFile2);
split(strFromFile2, arrCoords, '|');
strmid(StationInfo[idx][sName], arrCoords[0], 0, strlen(arrCoords[0]), 255);
StationInfo[idx][sPosX] = floatstr(arrCoords[1]);
StationInfo[idx][sPosY] = floatstr(arrCoords[2]);
StationInfo[idx][sPosZ] = floatstr(arrCoords[3]);
StationInfo[idx][sLivX] = floatstr(arrCoords[4]);
StationInfo[idx][sLivY] = floatstr(arrCoords[5]);
StationInfo[idx][sLivZ] = floatstr(arrCoords[6]);
StationInfo[idx][sProduits] = strval(arrCoords[7]);
StationInfo[idx][sMaxProduits] = strval(arrCoords[8]);
StationInfo[idx][sCaisse] = strval(arrCoords[9]);
Create3DTextLabel("|POINT DE LIVRAISON|\nUtiliser /vider", COLOR_ADMIN, StationInfo[idx][sLivX], StationInfo[idx][sLivY], StationInfo[idx][sLivZ], 5.0, 0, 0);
AddStaticPickup(1225, 1, StationInfo[idx][sPosX], StationInfo[idx][sPosY], StationInfo[idx][sPosZ], -1);
format(string, sizeof(string), "NOM: \n%s\nProduits: %d/%d\nBesoin de: %d", StationInfo[idx][sName],StationInfo[idx][sProduits],StationInfo[idx][sMaxProduits],(StationInfo[idx][sMaxProduits]-StationInfo[idx][sProduits]));
Create3DTextLabel(string,COLOR_ADMIN,StationInfo[idx][sPosX],StationInfo[idx][sPosY],StationInfo[idx][sPosZ],40.0,0, 1);
printf("ID: %d | Nom: %s | Produits: %d/%d | Caisse: %d\n",
idx,
StationInfo[idx][sName],
StationInfo[idx][sProduits],
StationInfo[idx][sMaxProduits],
StationInfo[idx][sCaisse]);
idx++;
}
fclose(file);
}
return 1;
}
forward SaveStation();
public SaveStation()
{
new idx;
new File: file2;
while (idx < sizeof(StationInfo))
{
new coordsstring[512];
format(coordsstring, sizeof(coordsstring), "%s|%f|%f|%f|%f|%f|%f|%d|%d|%d\n",
StationInfo[idx][sName],
StationInfo[idx][sPosX],
StationInfo[idx][sPosY],
StationInfo[idx][sPosZ],
StationInfo[idx][sLivX],
StationInfo[idx][sLivY],
StationInfo[idx][sLivZ],
StationInfo[idx][sProduits],
StationInfo[idx][sMaxProduits],
StationInfo[idx][sCaisse]);
if(idx == 0)
{
file2 = fopen("station.txt", io_write);
}
else
{
file2 = fopen("station.txt", io_append);
}
fwrite(file2, coordsstring);
idx++;
fclose(file2);
}
return 1;
}
?>
Voila, si vous aviez une petite idée pour me permettre de résoudre ce problème je vous en serait reconnaissant !
Vincent.