Houses not saving owner name
#1

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".

Code:
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.");
}
Thank you very much in advance!
Reply
#2

bumpppppp
Reply
#3

Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
        if(strcmp(cmd, "/savehouses", true) == 0)
	{
             SaveHouses();
             return 1;
        }
        return 1;
}
/savehouses before closing your server. Or else it won't auto save unless you place
Код:
SaveHouses();
on
Код:
public OnGameModeExit()
and use "exit" on console to exit rather just quitting the console.
Reply
#4

FiXed
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)