Object editor - only saving last 7 objects :/
#6

Yep done but now when I save one object it creates like 34kb file with about 500 objects:

take a look where I'm at now:

pawn Код:
enum ObInfo
{
    ModelID,
    Float:oX,
    Float:oY,
    Float:oZ,
    Float:orX,
    Float:orY,
    Float:orZ,
};

new ObiektInfo[MAX_OBJECTS][ObInfo];
new ObiektCreator2[MAX_OBJECTS];
new SelectedOneP[MAX_PLAYERS];

public LoadObiekty()
{
    new arrCoords[29][64];
    new strFromFile2[256];
    new File: file = fopen("/Ustawienia/obiekty.cfg", io_read);
    if (file)
    {
        new idx;
        while (idx < sizeof(ObiektInfo))
        {
            fread(file, strFromFile2);
            split(strFromFile2, arrCoords, ',');
            ObiektInfo[idx][ModelID] = strval(arrCoords[0]);
            ObiektInfo[idx][oX] = floatstr(arrCoords[1]);
            ObiektInfo[idx][oY] = floatstr(arrCoords[2]);
            ObiektInfo[idx][oZ] = floatstr(arrCoords[3]);
            ObiektInfo[idx][orX] = floatstr(arrCoords[4]);
            ObiektInfo[idx][orY] = floatstr(arrCoords[5]);
            ObiektInfo[idx][orZ] = floatstr(arrCoords[6]);
            if(ObiektInfo[idx][oX] == 0 && ObiektInfo[idx][oY] == 0 && ObiektInfo[idx][oZ] == 0) { }
            else
            {
                ObiektCreator2[idx] = CreateObject(ObiektInfo[idx][ModelID],ObiektInfo[idx][oX],ObiektInfo[idx][oY],ObiektInfo[idx][oZ],ObiektInfo[idx][orX],ObiektInfo[idx][orY],ObiektInfo[idx][orZ]);
            }
            printf("Obiekt o ID:%d zostal zaladowany",ObiektInfo[idx][ModelID]);
            idx++;
        }
        printf("Zaladowano:%d obiektow",idx);
        fclose(file);
    }
    return 1;
}

public SaveObiekty()
{
    new idx;
    new File: file2;
    while (idx < sizeof(ObiektInfo))
    {
        new coordsstring[256];
        format(coordsstring, sizeof(coordsstring), "%d,%f,%f,%f,%f,%f,%d\n",
        ObiektInfo[idx][ModelID],
        ObiektInfo[idx][oX],
        ObiektInfo[idx][oY],
        ObiektInfo[idx][oZ],
        ObiektInfo[idx][orX],
        ObiektInfo[idx][orY],
        ObiektInfo[idx][orZ]);
        if(idx == 0)
        {
            file2 = fopen("/Ustawienia/obiekty.cfg", io_write);
        }
        else
        {
            file2 = fopen("/Ustawienia/obiekty.cfg", io_append);
        }
        fwrite(file2, coordsstring);
        idx++;
        fclose(file2);
    }
    return 1;
}

public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
{
    if(!IsValidObject(objectid)) return;
    MoveObject(objectid, fX, fY, fZ, 10.0, fRotX, fRotY, fRotZ);
    if(response == 0) //esc
    {
        new CreateFile09[35];
        format(CreateFile09,sizeof(CreateFile09),"/Ustawienia/settings.ini");
        for(new h = SelectedOneP[playerid]; h < sizeof(ObiektInfo); h++)
        {
    //      new h = SelectedOneP[playerid];
            ObiektInfo[h][oX] = 0;
            ObiektInfo[h][oY] = 0;
            ObiektInfo[h][oZ] = 0;
            ObiektInfo[h][orX] = 0;
            ObiektInfo[h][orY] = 0;
            ObiektInfo[h][orZ] = 0;
            CancelEdit(playerid);
            DestroyObject(ObiektCreator2[h]);
            SaveObiekty();
        }
    }
    if(response == 1)//save
    {
        new CreateFile09[35];
        format(CreateFile09,sizeof(CreateFile09),"/Ustawienia/settings.ini");
        for(new h = SelectedOneP[playerid]; h < sizeof(ObiektInfo); h++)
        {
        //  new h = SelectedOneP[playerid];
            ObiektInfo[h][oX] = fX;
            ObiektInfo[h][oY] = fY;
            ObiektInfo[h][oZ] = fZ;
            ObiektInfo[h][orX] = fRotX;
            ObiektInfo[h][orY] = fRotY;
            ObiektInfo[h][orZ] = fRotZ;
            SaveObiekty();
        }
    }
}

    if(strcmp(cmd, "/obiekt", true) == 0)
    {
        tmp = strtok (cmdtext,idx);
        if (!strlen(tmp))
        {
            SendClientMessage(playerid, COLOR_RED, "USAGE: /obiekt [1 - 1]");
            return 1;
        }
        new CreateFile09[35];
        format(CreateFile09,sizeof(CreateFile09),"/Ustawienia/settings.ini");
        new Float:pX,Float:pY,Float:pZ;
        GetPlayerPos(playerid, pX,pY,pZ);

            new h = 0;
            ObiektInfo[h][ModelID] = strval(tmp);
            ObiektInfo[h][oX] = pX;
            ObiektInfo[h][oY] = pY;
            ObiektInfo[h][oZ] = pZ;
            ObiektInfo[h][orX] = 0;
            ObiektInfo[h][orY] = 0;
            ObiektInfo[h][orZ] = 0;
            SelectedOneP[playerid] = h;
            ObiektCreator2[h] = CreateObject(strval(tmp),pX+1,pY+1,pZ,0,0,0);
            EditObject(playerid, ObiektCreator2[h]);
            h ++;

        return 1;
    }
Reply


Messages In This Thread
Object editor - only saving last 7 objects :/ - by HondaCBR - 13.04.2012, 21:19
Re: Object editor - only saving last 7 objects :/ - by WardenCS - 13.04.2012, 21:48
Re: Object editor - only saving last 7 objects :/ - by HondaCBR - 13.04.2012, 22:07
Re: Object editor - only saving last 7 objects :/ - by WardenCS - 13.04.2012, 22:10
Re: Object editor - only saving last 7 objects :/ - by ReneG - 13.04.2012, 22:16
Re: Object editor - only saving last 7 objects :/ - by HondaCBR - 13.04.2012, 22:27
Re: Object editor - only saving last 7 objects :/ - by ReneG - 13.04.2012, 23:22
Re: Object editor - only saving last 7 objects :/ - by HondaCBR - 14.04.2012, 10:30

Forum Jump:


Users browsing this thread: 1 Guest(s)