Family vehicles loading problem
#1

Hi..I'm having a little problem here i couldn't figure out.. maybe someone could help me out of this mess?

After I created family vehicles & saved them i tried to reload the gamemode.. and the vehicles are spawning 10 times on the same location.. means 10x10 just lots of vehicles spawn instead of just 5 that i created in the /fedit command.. Therefore to debug the situation i tried to save the families.cfg and then close the server & afterwards just load the file without saving new stuff. and the vehicles spawn only twice on the same location. Couldn't figure which does the problem the save or the load.
I'm having SaveFamilies(); "OnGameModeExit" & LoadFamilies(); "OnGameModeInit".

Here is saving families:

pawn Код:
stock SaveFamilies()
{
    new idx = 1, File:file;
    new string[1300];
    while(idx < MAX_FAMILIES)
    {
        format(string, sizeof(string), "%d|%s|%s|%d|%s|%d|%f|%f|%f|%d|%d|%d|%d|%s|%s|%s|%s|%s|%s|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%f|%f|%f|%f|%f|%f|%f|%f|%f|%f|%f|%f|%f|%f|%f|%f|%f|%f|%f|%f|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d\r\n",
        FamInfo[idx][fTaken],
        FamInfo[idx][fName],
        FamInfo[idx][fMOTD],
        FamInfo[idx][fColor],
        FamInfo[idx][fLeader],
        FamInfo[idx][fMembers],
        FamInfo[idx][fSafeX],
        FamInfo[idx][fSafeY],
        FamInfo[idx][fSafeZ],
        FamInfo[idx][fMoney],
        FamInfo[idx][fMats],
        FamInfo[idx][fWeed],
        FamInfo[idx][fCrack],
        FamInfo[idx][fRank1],
        FamInfo[idx][fRank2],
        FamInfo[idx][fRank3],
        FamInfo[idx][fRank4],
        FamInfo[idx][fRank5],
        FamInfo[idx][fRank6],
        FamInfo[idx][fSkins][0],
        FamInfo[idx][fSkins][1],
        FamInfo[idx][fSkins][2],
        FamInfo[idx][fSkins][3],
        FamInfo[idx][fSkins][4],
        FamInfo[idx][fSkins][5],
        FamInfo[idx][fSkins][6],
        FamInfo[idx][fStrikes],
        FamInfo[idx][fVehType][0], // Veh 1
        FamInfo[idx][fVehType][1], // Veh 2
        FamInfo[idx][fVehType][2], // Veh 3
        FamInfo[idx][fVehType][3], // Veh 4
        FamInfo[idx][fVehType][4], // Veh 5
        FamInfo[idx][fVehCoX][0], // Veh 1 Coords
        FamInfo[idx][fVehCoY][0],
        FamInfo[idx][fVehCoZ][0],
        FamInfo[idx][fVehCoX][1], // Veh 2 Coords
        FamInfo[idx][fVehCoY][1],
        FamInfo[idx][fVehCoZ][1],
        FamInfo[idx][fVehCoX][2], // Veh 3 Coords
        FamInfo[idx][fVehCoY][2],
        FamInfo[idx][fVehCoZ][2],
        FamInfo[idx][fVehCoX][3], // Veh 4 Coords
        FamInfo[idx][fVehCoY][3],
        FamInfo[idx][fVehCoZ][3],
        FamInfo[idx][fVehCoX][4], // Veh 5 Coords
        FamInfo[idx][fVehCoY][4],
        FamInfo[idx][fVehCoZ][4],
        FamInfo[idx][fVehRot][0],
        FamInfo[idx][fVehRot][1],
        FamInfo[idx][fVehRot][2],
        FamInfo[idx][fVehRot][3],
        FamInfo[idx][fVehRot][4],
        FamInfo[idx][fVehCol1][0],
        FamInfo[idx][fVehCol1][1],
        FamInfo[idx][fVehCol1][2],
        FamInfo[idx][fVehCol1][3],
        FamInfo[idx][fVehCol1][4],
        FamInfo[idx][fVehCol2][0],
        FamInfo[idx][fVehCol2][1],
        FamInfo[idx][fVehCol2][2],
        FamInfo[idx][fVehCol2][3],
        FamInfo[idx][fVehCol2][4]);
        if(idx == 1)
        {
            file = fopen("families.cfg", io_write);
        }
        else
        {
            file = fopen("families.cfg", io_append);
        }
        fwrite(file, string);
        fclose(file);
        idx++;
    }
    print("Families saved successfully.");
}
Here is the loading families:
pawn Код:
stock LoadFamilies()
{
    new finfo[62][48];
    new string[512];
    new File:file = fopen("families.cfg", io_read);
    if(file)
    {
        new idx = 1;
        while(idx < MAX_FAMILIES)
        {
            fread(file, string);
            split(string, finfo, '|');
            FamInfo[idx][fTaken] = strval(finfo[0]);
            format(FamInfo[idx][fName], 32, "%s", finfo[1]);
            format(FamInfo[idx][fMOTD], 64, "%s", finfo[2]);
            FamInfo[idx][fColor] = strval(finfo[3]);
            format(FamInfo[idx][fLeader], MAX_PLAYER_NAME, "%s", finfo[4]);
            FamInfo[idx][fMembers] = strval(finfo[5]);
            FamInfo[idx][fSafeX] = floatstr(finfo[6]);
            FamInfo[idx][fSafeY] = floatstr(finfo[7]);
            FamInfo[idx][fSafeZ] = floatstr(finfo[8]);
            FamInfo[idx][fMoney] = strval(finfo[9]);
            FamInfo[idx][fMats] = strval(finfo[10]);
            FamInfo[idx][fWeed] = strval(finfo[11]);
            FamInfo[idx][fCrack] = strval(finfo[12]);
            format(FamInfo[idx][fRank1], 32, "%s", finfo[13]);
            format(FamInfo[idx][fRank2], 32, "%s", finfo[14]);
            format(FamInfo[idx][fRank3], 32, "%s", finfo[15]);
            format(FamInfo[idx][fRank4], 32, "%s", finfo[16]);
            format(FamInfo[idx][fRank5], 32, "%s", finfo[17]);
            format(FamInfo[idx][fRank6], 32, "%s", finfo[18]);
            FamInfo[idx][fSkins][0] = strval(finfo[19]);
            FamInfo[idx][fSkins][1] = strval(finfo[20]);
            FamInfo[idx][fSkins][2] = strval(finfo[21]);
            FamInfo[idx][fSkins][3] = strval(finfo[22]);
            FamInfo[idx][fSkins][4] = strval(finfo[23]);
            FamInfo[idx][fSkins][5] = strval(finfo[24]);
            FamInfo[idx][fSkins][6] = strval(finfo[25]);
            FamInfo[idx][fStrikes] = strval(finfo[26]);
            FamInfo[idx][fVehType][0] = strval(finfo[27]);
            FamInfo[idx][fVehType][1] = strval(finfo[28]);
            FamInfo[idx][fVehType][2] = strval(finfo[29]);
            FamInfo[idx][fVehType][3] = strval(finfo[30]);
            FamInfo[idx][fVehType][4] = strval(finfo[31]);
            FamInfo[idx][fVehCoX][0] = floatstr(finfo[32]);
            FamInfo[idx][fVehCoY][0] = floatstr(finfo[33]);
            FamInfo[idx][fVehCoZ][0] = floatstr(finfo[34]);
            FamInfo[idx][fVehCoX][1] = floatstr(finfo[35]);
            FamInfo[idx][fVehCoY][1] = floatstr(finfo[36]);
            FamInfo[idx][fVehCoZ][1] = floatstr(finfo[37]);
            FamInfo[idx][fVehCoX][2] = floatstr(finfo[38]);
            FamInfo[idx][fVehCoY][2] = floatstr(finfo[39]);
            FamInfo[idx][fVehCoZ][2] = floatstr(finfo[40]);
            FamInfo[idx][fVehCoX][3] = floatstr(finfo[41]);
            FamInfo[idx][fVehCoY][3] = floatstr(finfo[42]);
            FamInfo[idx][fVehCoZ][3] = floatstr(finfo[43]);
            FamInfo[idx][fVehCoX][4] = floatstr(finfo[44]);
            FamInfo[idx][fVehCoY][4] = floatstr(finfo[45]);
            FamInfo[idx][fVehCoZ][4] = floatstr(finfo[46]);
            FamInfo[idx][fVehRot][0] = strval(finfo[47]); // Rot
            FamInfo[idx][fVehRot][1] = strval(finfo[48]);
            FamInfo[idx][fVehRot][2] = strval(finfo[49]);
            FamInfo[idx][fVehRot][3] = strval(finfo[50]);
            FamInfo[idx][fVehRot][4] = strval(finfo[51]);
            FamInfo[idx][fVehCol1][0] = strval(finfo[52]); // Colors
            FamInfo[idx][fVehCol1][1] = strval(finfo[53]);
            FamInfo[idx][fVehCol1][2] = strval(finfo[54]);
            FamInfo[idx][fVehCol1][3] = strval(finfo[55]);
            FamInfo[idx][fVehCol1][4] = strval(finfo[56]);
            FamInfo[idx][fVehCol2][0] = strval(finfo[57]);
            FamInfo[idx][fVehCol2][1] = strval(finfo[58]);
            FamInfo[idx][fVehCol2][2] = strval(finfo[59]);
            FamInfo[idx][fVehCol2][3] = strval(finfo[60]);
            FamInfo[idx][fVehCol2][4] = strval(finfo[61]);

            if(FamInfo[idx][fSafeX] != 0 && FamInfo[idx][fSafeY] != 0 && FamInfo[idx][fSafeZ] != 0)
            {
                FamInfo[idx][fPickup] = CreateDynamicPickup(1239, 1, FamInfo[idx][fSafeX], FamInfo[idx][fSafeY], FamInfo[idx][fSafeZ], -1);
                format(string, sizeof(string), "%s's Safe", FamInfo[idx][fName]);
                FamInfo[idx][fText] = CreateDynamic3DTextLabel(string, COLOR_WHITE, FamInfo[idx][fSafeX], FamInfo[idx][fSafeY], FamInfo[idx][fSafeZ]+0.3, 15);
            }
            for(new i=0; i<5; i++)
            {
                if(FamInfo[idx][fVehType][i])
                {
                    FamInfo[idx][fVeh][i] = CreateVehicle(FamInfo[idx][fVehType][i], FamInfo[idx][fVehCoX][i], FamInfo[idx][fVehCoY][i], FamInfo[idx][fVehCoZ][i], FamInfo[idx][fVehRot][i], FamInfo[idx][fVehCol1][i], FamInfo[idx][fVehCol2][i], 1200);
                    ChangeVehicleColor(FamInfo[idx][fVeh][i], FamInfo[idx][fVehCol1][i], FamInfo[idx][fVehCol2][i]);
                    Fam[FamInfo[idx][fVeh][i]] = idx;
                }
            }
            idx++;
        }
    }
    print("Families loaded successfully.");
    return 1;
}
Why this is happening any clue?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)