Для начала мы создадим 4 форварда
forward LoadAuto();//згрузка авто
forward SaveAuto();//сохранение авто
forward TuneCar();//сохраниние тюнинга авто
forward CarEnter(playerid,carid);
И так. Далее мы идем в

Код: Выделить всё
new PlayerInfo[MAX_PLAYERS][pInfo];

И добавляем в нем 2 строчки
Код: Выделить всё
    pCarKey,
     pCarKey2,
new PlayerInfo[MAX_PLAYERS][pInfo];

Чтоб было у вас также как выше
Далее мы создадим

Код: Выделить всё
new Autoinfo

Код: Выделить всё
enum aInfo
{
     aStats,//куплена или нет
     aModel,// модель
     Float:aAutoX,//корды
     Float:aAutoY,
     Float:aAutoZ,
     Float:aAutoAngle,
     aColor1,//цвета
     aColor2,
     aOwner[MAX_PLAYER_NAME],//владелец
     aPrice,//цена
     aKey,//уровень
     aLock,//штраф
     a0,//тюнинг
     a1,
     a2,
     a3,
     a4,
     a5,
     a6,
     a7,
     a8,
     a9,
     a10,
     a11,
     a12,
     a13,
     aPaintJob,
};

new AutoInfo[MAX_VEHICLES][aInfo];

Следующие делаем чтобы когда вы садитесь в машину которая на продажу высвечивалось диалоговое окно.

Код: Выделить всё
public CarEnter(playerid,carid)
{
     if(AutoInfo[carid][aStats]==0)
     {
         new string[512];
         format(string,sizeof(string),"Уровень: %d\nСтоимость: %d\nВведите 2 цвета через запятую в окошко\nПример: [2,6] без квадратных скобок и пробелов!\nЕсли не введете, то цвет останется таким, какой установлен сейчас",
         AutoInfo[carid][aKey], AutoInfo[carid][aPrice]);
         ShowPlayerDialog(playerid,920,DIALOG_STYLE_INPUT,"Авторынок",string,"Принять","Отмена");
     }

Код: Выделить всё
Cоздаем далее паблик

Код: Выделить всё
public OnVehicleSpawn(vehicleid)
{
     if(AutoInfo[vehicleid][a0] != 0)
     {
         AddVehicleComponent(vehicleid, AutoInfo[vehicleid][a0]);
     }
     if(AutoInfo[vehicleid][a1] != 0)
     {
         AddVehicleComponent(vehicleid, AutoInfo[vehicleid][a1]);
     }
     if(AutoInfo[vehicleid][a2] != 0)
     {
         AddVehicleComponent(vehicleid, AutoInfo[vehicleid][a2]);
     }
     if(AutoInfo[vehicleid][a3] != 0)
     {
         AddVehicleComponent(vehicleid, AutoInfo[vehicleid][a3]);
     }
     if(AutoInfo[vehicleid][a4] != 0)
     {
         AddVehicleComponent(vehicleid, AutoInfo[vehicleid][a4]);
     }
     if(AutoInfo[vehicleid][a5] != 0)
     {
         AddVehicleComponent(vehicleid, AutoInfo[vehicleid][a5]);
     }
     if(AutoInfo[vehicleid][a6] != 0)
     {
         AddVehicleComponent(vehicleid, AutoInfo[vehicleid][a6]);
     }
     if(AutoInfo[vehicleid][a7] != 0)
     {
         AddVehicleComponent(vehicleid, AutoInfo[vehicleid][a7]);
     }
     if(AutoInfo[vehicleid][a8] != 0)
     {
         AddVehicleComponent(vehicleid, AutoInfo[vehicleid][a8]);
     }
     if(AutoInfo[vehicleid][a9] != 0)
     {
         AddVehicleComponent(vehicleid, AutoInfo[vehicleid][a9]);
     }
     if(AutoInfo[vehicleid][a10] != 0)
     {
         AddVehicleComponent(vehicleid, AutoInfo[vehicleid][a10]);
     }
     if(AutoInfo[vehicleid][a11] != 0)
     {
         AddVehicleComponent(vehicleid, AutoInfo[vehicleid][a11]);
     }
     if(AutoInfo[vehicleid][a12] != 0)
     {
         AddVehicleComponent(vehicleid, AutoInfo[vehicleid][a12]);
     }
     if(AutoInfo[vehicleid][a13] != 0)
     {
         AddVehicleComponent(vehicleid, AutoInfo[vehicleid][a13]);
     }
     if(AutoInfo[vehicleid][aPaintJob] != 0)
     {
         ChangeVehiclePaintjob(vehicleid,AutoInfo[vehicleid][aPaintJob]);
     }
     return 1;
}

Создае три паблика сразу 1 паблик для загрузки авто 2 для сохранения кооординатов 3 для сохранения тюнинга на авто

Код: Выделить всё
public LoadAuto()
{
     new arrCoords[26][64];
     new strFromFile2[256];
     new File: file = fopen("auto.cfg", io_read);
     if (file)
     {
         new idx;
         while (idx < 330)
         {
             fread(file, strFromFile2);
             split(strFromFile2, arrCoords, ',');
             AutoInfo[idx+1][aStats] = strval(arrCoords[0]);
             AutoInfo[idx+1][aModel] = strval(arrCoords[1]);
             AutoInfo[idx+1][aAutoX] = floatstr(arrCoords[2]);
             AutoInfo[idx+1][aAutoY] = floatstr(arrCoords[3]);
             AutoInfo[idx+1][aAutoZ] = floatstr(arrCoords[4]);
             AutoInfo[idx+1][aAutoAngle] = floatstr(arrCoords[5]);
             AutoInfo[idx+1][aColor1] = strval(arrCoords[6]);
             AutoInfo[idx+1][aColor2] = strval(arrCoords[7]);
             strmid(AutoInfo[idx+1][aOwner], arrCoords[8], 0, strlen(arrCoords[8]), 255);
             AutoInfo[idx+1][aPrice] = strval(arrCoords[9]);
             AutoInfo[idx+1][aKey] = strval(arrCoords[10]);
             AutoInfo[idx+1][a0] = strval(arrCoords[11]);
             AutoInfo[idx+1][a1] = strval(arrCoords[12]);
             AutoInfo[idx+1][a2] = strval(arrCoords[13]);
             AutoInfo[idx+1][a3] = strval(arrCoords[14]);
             AutoInfo[idx+1][a4] = strval(arrCoords[15]);
             AutoInfo[idx+1][a5] = strval(arrCoords[16]);
             AutoInfo[idx+1][a6] = strval(arrCoords[17]);
             AutoInfo[idx+1][a7] = strval(arrCoords[18]);
             AutoInfo[idx+1][a8] = strval(arrCoords[19]);
             AutoInfo[idx+1][a9] = strval(arrCoords[20]);
             AutoInfo[idx+1][a10] = strval(arrCoords[21]);
             AutoInfo[idx+1][a11] = strval(arrCoords[22]);
             AutoInfo[idx+1][a12] = strval(arrCoords[23]);
             AutoInfo[idx+1][a13] = strval(arrCoords[24]);
             AutoInfo[idx+1][aPaintJob] = strval(arrCoords[25]);
             idx++;
         }
         fclose(file);
     }
     return 1;
}

public SaveAuto()
{
     new idx;
     new File: file2;
     while (idx < 330)
     {
         new coordsstring[256];
         format(coordsstring, sizeof(coordsstring), "%d,%d,%f,%f,%f,%f,%d,%d,%s,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",
         AutoInfo[idx+1][aStats],
         AutoInfo[idx+1][aModel],
         AutoInfo[idx+1][aAutoX],
         AutoInfo[idx+1][aAutoY],
         AutoInfo[idx+1][aAutoZ],
         AutoInfo[idx+1][aAutoAngle],
         AutoInfo[idx+1][aColor1],
         AutoInfo[idx+1][aColor2],
         AutoInfo[idx+1][aOwner],
         AutoInfo[idx+1][aPrice],
         AutoInfo[idx+1][aKey],
         AutoInfo[idx+1][aLock],
         AutoInfo[idx+1][a0],
         AutoInfo[idx+1][a1],
         AutoInfo[idx+1][a2],
         AutoInfo[idx+1][a3],
         AutoInfo[idx+1][a4],
         AutoInfo[idx+1][a5],
         AutoInfo[idx+1][a6],
         AutoInfo[idx+1][a7],
         AutoInfo[idx+1][a8],
         AutoInfo[idx+1][a9],
         AutoInfo[idx+1][a10],
         AutoInfo[idx+1][a11],
         AutoInfo[idx+1][a12],
         AutoInfo[idx+1][a13],
         AutoInfo[idx+1][aPaintJob]);
         if(idx == 0)
         {
             file2 = fopen("auto.cfg", io_write);
         }
         else
         {
             file2 = fopen("auto.cfg", io_append);
         }
         fwrite(file2, coordsstring);
         idx++;
         fclose(file2);
     }
     return 1;
}

public TuneCar()
{
     for(new i = 0; i < 330; i++)
     {
         if(AutoInfo[i][a0] != 0)
         {
             AddVehicleComponent(i, AutoInfo[i][a0]);
         }
         if(AutoInfo[i][a1] != 0)
         {
             AddVehicleComponent(i, AutoInfo[i][a1]);
         }
         if(AutoInfo[i][a2] != 0)
         {
             AddVehicleComponent(i, AutoInfo[i][a2]);
         }
         if(AutoInfo[i][a3] != 0)
         {
             AddVehicleComponent(i, AutoInfo[i][a3]);
         }
         if(AutoInfo[i][a4] != 0)
         {
             AddVehicleComponent(i, AutoInfo[i][a4]);
         }
         if(AutoInfo[i][a5] != 0)
         {
             AddVehicleComponent(i, AutoInfo[i][a5]);
         }
         if(AutoInfo[i][a6] != 0)
         {
             AddVehicleComponent(i, AutoInfo[i][a6]);
         }
         if(AutoInfo[i][a7] != 0)
         {
             AddVehicleComponent(i, AutoInfo[i][a7]);
         }
         if(AutoInfo[i][a8] != 0)
         {
             AddVehicleComponent(i, AutoInfo[i][a8]);
         }
         if(AutoInfo[i][a9] != 0)
         {
             AddVehicleComponent(i, AutoInfo[i][a9]);
         }
         if(AutoInfo[i][a10] != 0)
         {
             AddVehicleComponent(i, AutoInfo[i][a10]);
         }
         if(AutoInfo[i][a11] != 0)
         {
             AddVehicleComponent(i, AutoInfo[i][a11]);
         }
         if(AutoInfo[i][a12] != 0)
         {
             AddVehicleComponent(i, AutoInfo[i][a12]);
         }
         if(AutoInfo[i][a13] != 0)
         {
             AddVehicleComponent(i, AutoInfo[i][a13]);
         }
         if(AutoInfo[i][aPaintJob] != 0)
         {
             ChangeVehiclePaintjob(i,AutoInfo[i][aPaintJob]);
         }
     }
     return 1;
}

Далее в паблике
Код: Выделить всё
OnGameModeInit()

Вставляем вот это

Код: Выделить всё
    for(new c=0;c<MAX_VEHICLES;c++)
     {
         Gas[c] = 100;
         AutoInfo[c][aStats] = -1;
         lockedcar[c] = 0;
     }
     LoadAuto();

Код: Выделить всё
   for(new h = 0; h < 330; h++)
     {
         CreateVehicle(AutoInfo[h][aModel], AutoInfo[h][aAutoX], AutoInfo[h][aAutoY], AutoInfo[h][aAutoZ], AutoInfo[h][aAutoAngle], AutoInfo[h][aColor1], AutoInfo[h][aColor2],SPAWN_CARS);
         if(AutoInfo[h][aStats] == 0)
         {
             new strings[256];
             format(strings,sizeof(strings),"Транспорт продается\nУровень: %d\nСтоимость: %d",AutoInfo[h][aKey],AutoInfo[h][aPrice]);
             nomer[h] = CreateDynamic3DTextLabel(strings, 0xBFF600FF, AutoInfo[h][aAutoX], AutoInfo[h][aAutoY], AutoInfo[h][aAutoZ], 15.0, INVALID_PLAYER_ID,h,0,-1,-1,-1,15.0);
         }
         else
         {
             new strings[256];
             format(strings,sizeof(strings),"ID: %d\nВладелец: %s",h,AutoInfo[h][aOwner]);
             nomer[h] = CreateDynamic3DTextLabel(strings, 0xBFF600FF, AutoInfo[h][aAutoX], AutoInfo[h][aAutoY], AutoInfo[h][aAutoZ], 15.0, INVALID_PLAYER_ID,h,0,-1,-1,-1,15.0);
         }
     }

автор:admin ставьте +