I'm having a minor problem with my house system, which seems to be pretty hard to fix. The house system works perfectly when buying the house, but when I restart the server it says "House is owned by the State". It still acts like I own it, I can still /lock and deposit/withdraw items from it but the owner name gets replaced with "The State".
pawn Код:
// House Settings
enum houseInfo
{
hLevel,
hPrice,
hStatus,
hOwner[32],
hID,
hAdress,
Float:hX,
Float:hY,
Float:hZ,
hMoney,
hMaterials,
hWeed,
hHeroin,
hSyringe,
hOpium,
hcocaine,
hSeeds,
hGun[5],
hGunAmmo[5],
hPickup,
Text3D:hText
}
new HouseInfo[MAX_HOUSES][houseInfo];
stock LoadHouses()
{
new binfo[25][32];
new string[256];
new File:file = fopen("houses.cfg", io_read);
if(file)
{
new idx = 1;
while(idx < MAX_HOUSES)
{
fread(file, string);
split(string, binfo, '|');
HouseInfo[idx][hLevel] = strval(binfo[0]);
HouseInfo[idx][hPrice] = strval(binfo[1]);
HouseInfo[idx][hStatus] = strval(binfo[2]);
format(HouseInfo[idx][hOwner], 32, "%s", binfo[3]);
HouseInfo[idx][hX] = floatstr(binfo[4]);
HouseInfo[idx][hY] = floatstr(binfo[5]);
HouseInfo[idx][hZ] = floatstr(binfo[6]);
HouseInfo[idx][hMoney] = strval(binfo[7]);
HouseInfo[idx][hMaterials] = strval(binfo[8]);
HouseInfo[idx][hWeed] = strval(binfo[9]);
HouseInfo[idx][hHeroin] = strval(binfo[10]);
HouseInfo[idx][hSyringe] = strval(binfo[11]);
HouseInfo[idx][hOpium] = strval(binfo[12]);
HouseInfo[idx][hcocaine] = strval(binfo[13]);
HouseInfo[idx][hSeeds] = strval(binfo[14]);
HouseInfo[idx][hGun][0] = strval(binfo[15]);
HouseInfo[idx][hGunAmmo][0] = strval(binfo[16]);
HouseInfo[idx][hGun][1] = strval(binfo[17]);
HouseInfo[idx][hGunAmmo][1] = strval(binfo[18]);
HouseInfo[idx][hGun][2] = strval(binfo[19]);
HouseInfo[idx][hGunAmmo][2] = strval(binfo[20]);
HouseInfo[idx][hGun][3] = strval(binfo[21]);
HouseInfo[idx][hGunAmmo][3] = strval(binfo[22]);
HouseInfo[idx][hGun][4] = strval(binfo[23]);
HouseInfo[idx][hGunAmmo][4] = strval(binfo[24]);
if(HouseInfo[idx][hLevel])
{
HouseInfo[idx][hPickup] = CreateDynamicPickup(1273, 1, HouseInfo[idx][hX], HouseInfo[idx][hY], HouseInfo[idx][hZ], 0);
if(!strcmp("The State", HouseInfo[idx][hOwner])) format(string, sizeof(string), "Owner: %s\nHouse Type: %s\nFor Sale\nPrice: $%d", HouseInfo[idx][hOwner], HT(idx), HouseInfo[idx][hPrice]);
else format(string, sizeof(string), "{00C0FF}House of %s\nHouse Type: %s\nStatus: %s", HouseInfo[idx][hOwner], HT(idx), RHS(idx));
HouseInfo[idx][hText] = CreateDynamic3DTextLabel(string, COLOR_WHITE, HouseInfo[idx][hX], HouseInfo[idx][hY], HouseInfo[idx][hZ]+0.3, 15);
}
idx++;
}
}
print("Houses loaded successfully.");
return 1;
}
stock SaveHouses()
{
new idx = 1, File:file;
new string[256];
while(idx < MAX_HOUSES)
{
format(string, sizeof(string), "%d|%d|%d|%s|%f|%f|%f|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d\r\n",
HouseInfo[idx][hLevel],
HouseInfo[idx][hPrice],
HouseInfo[idx][hStatus],
HouseInfo[idx][hOwner],
HouseInfo[idx][hX],
HouseInfo[idx][hY],
HouseInfo[idx][hZ],
HouseInfo[idx][hMoney],
HouseInfo[idx][hMaterials],
HouseInfo[idx][hWeed],
HouseInfo[idx][hcocaine],
HouseInfo[idx][hHeroin],
HouseInfo[idx][hOpium],
HouseInfo[idx][hSyringe],
HouseInfo[idx][hSeeds],
HouseInfo[idx][hGun][0],
HouseInfo[idx][hGunAmmo][0],
HouseInfo[idx][hGun][1],
HouseInfo[idx][hGunAmmo][1],
HouseInfo[idx][hGun][2],
HouseInfo[idx][hGunAmmo][2],
HouseInfo[idx][hGun][3],
HouseInfo[idx][hGunAmmo][3],
HouseInfo[idx][hGun][4],
HouseInfo[idx][hGunAmmo][4]
);
if(idx == 1)
{
file = fopen("houses.cfg", io_write);
}
else
{
file = fopen("houses.cfg", io_append);
}
fwrite(file, string);
fclose(file);
idx++;
}
print("Houses saved successfully.");
}
/savehouses before closing your server. Or else it won't auto save unless you place