| Дмитрий | 
Дата: Вторник, 27.03.2012, 23:12 | Сообщение # 1 | Сообщить о нерабочей теме 
 |   
 
 
  
| Регистрация: | 03.12.2011
  |  
| Страна: |  Российская Федерация |   
| Репутация: | 
  14
 |  
| Сообщений: |   1421 |   
| Награды: | 
 
4
+
 |  
| Статус: | 
  |  
 
 | Многие платят большую сумму денег чтобы им вырезали авто рынок с SAMP-BG 3.5    Вот вам урок как самому сделать себе такой авто рынок...    И так начнем:  
   Мы идем в  
   Code new PlayerInfo[MAX_PLAYERS][pInfo];   
   И добовляем в нем 2 строчки  
   Code   pCarKey,            pCarKey2,       new PlayerInfo[MAX_PLAYERS][pInfo];      
   Чтоб было у вас также как выше  
   Для начала мы создадим 4 форварда  
   Code forward LoadAuto();//згрузка авто       forward SaveAuto();//сохранение авто      forward TuneCar();//сохраниние тюнинга авто       forward CarEnter(playerid,carid);      
   Далее мы создадим  
   Code new Autoinfo;    
   enum aInfo       {            aStats,//куплена или нет            aModel,// модель            Float:aAutoX,//корды            Float:aAutoY,            Float:aAutoZ,            Float:aAutoAngle,            aColor1,//цвета            aColor2,            aOwner[MAX_PLAYER_NAME],//владелец            aPrice,//цена            aKey,//уровень            aLock,//штраф            aPaintJob,       };     
   new AutoInfo[MAX_VEHICLES][aInfo];      
   Следуюшиее делаем чтобы когда вы садитесь в машину которая на продажу высвечивалось диалоговое окно.  
   Code 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,"Принять","Отмена");            }            return 1;       }   
   Cоздаем далее паблик  
   Code 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 для сохранения тюнинга на авто  
   Code public LoadAuto()       {            new arrCoords[26][64];            new strFromFile2[256];            new File: file = fopen("careta.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("careta.cfg", io_write);                }                else                {                    file2 = fopen("careta.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() Вставляем вот это  
   Code     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);                }            }  
  From Russia With Love!
 |  
| 
 
 | 
 |   
 | 
| Дмитрий | 
Дата: Вторник, 27.03.2012, 23:12 | Сообщение # 2 | Сообщить о нерабочей теме 
 |   
 
 
  
| Регистрация: | 03.12.2011
  |  
| Страна: |  Российская Федерация |   
| Репутация: | 
  14
 |  
| Сообщений: |   1421 |   
| Награды: | 
 
4
+
 |  
| Статус: | 
  |  
 
 | далее в public OnPlayerCommandText(playerid, cmdtext[])  
   Code     if(strcmp(cmd, "/addveh", true) == 0)//для создание авто и игры            {                if(IsPlayerConnected(playerid))                {                    if(PlayerInfo[playerid][pAdmin] >= 5)                    {                          new vehicleid = GetPlayerVehicleID(playerid);                        if(!IsPlayerInAnyVehicle(playerid))                        {                            SendClientMessage(playerid,COLOR_GREY,"Тебе нужно быть в транспорте");                            return 1;                        }                        tmp = strtok(cmdtext, idx);                        if(!strlen(tmp))                        {                            SendClientMessage(playerid, COLOR_GRAD2, "ИНФО: /addveh [carid] [color1] [color2] [цена]");                            return 1;                        }                        new car;                        car = strval(tmp);                        if(car < 400 || car > 611) { SendClientMessage(playerid, COLOR_GREY, "От 400 до 611!"); return 1; }                        tmp = strtok(cmdtext, idx);                        if(!strlen(tmp))                        {                            SendClientMessage(playerid, COLOR_GRAD2, "ИНФО: /addveh [carid] [color1] [color2] [цена]");                            return 1;                        }                        new color1;                        color1 = strval(tmp);                        if(color1 < 0 || color1 > 300) { SendClientMessage(playerid, COLOR_GREY, "Цвет лишь от 0 до 300!"); return 1; }                        tmp = strtok(cmdtext, idx);                        if(!strlen(tmp))                        {                            SendClientMessage(playerid, COLOR_GRAD2, "ИНФО: /addveh [carid] [color1] [color2] [цена]");                            return 1;                        }                        new color2;                        color2 = strval(tmp);                        if(color2 < 0 || color2 > 300) { SendClientMessage(playerid, COLOR_GREY, "Цвет от 0 до 300!"); return 1; }                        tmp = strtok(cmdtext, idx);                        if(!strlen(tmp))                        {                            SendClientMessage(playerid, COLOR_GRAD2, "ИНФО: /addveh [carid] [color1] [color2] [цена]");                            return 1;                        }                        new price;                        price = strval(tmp);                        if(price < 1 ) { SendClientMessage(playerid, COLOR_GREY, "Цена не меньше $1"); return 1; }                        new levl;                        levl = strval(tmp);                        if(levl < 2 ) { SendClientMessage(playerid, COLOR_GREY, "Уровень должен быть не меньше 2"); return 1; }                        new Float:X,Float:Y,Float:Z,Float:Q;                        GetVehiclePos(GetPlayerVehicleID(playerid), X,Y,Z);                        GetVehicleZAngle(GetPlayerVehicleID(playerid),Q);                        AutoInfo[vehicleid][aStats]=0;                        AutoInfo[vehicleid][aModel]=car;                        AutoInfo[vehicleid][aAutoX]=X;                        AutoInfo[vehicleid][aAutoY]=Y;                        AutoInfo[vehicleid][aAutoZ]=Z;                        AutoInfo[vehicleid][aAutoAngle]=Q;                        AutoInfo[vehicleid][aColor1]=color1;                        AutoInfo[vehicleid][aColor2]=color2;                        AutoInfo[vehicleid][aPrice]=price;                        AutoInfo[vehicleid][aKey]=levl;                        AutoInfo[vehicleid][a0]=0;                        AutoInfo[vehicleid][a1]=0;                        AutoInfo[vehicleid][a2]=0;                        AutoInfo[vehicleid][a3]=0;                        AutoInfo[vehicleid][a4]=0;                        AutoInfo[vehicleid][a5]=0;                        AutoInfo[vehicleid][a6]=0;                        AutoInfo[vehicleid][a7]=0;                        AutoInfo[vehicleid][a8]=0;                        AutoInfo[vehicleid][a9]=0;                        AutoInfo[vehicleid][a10]=0;                        AutoInfo[vehicleid][a11]=0;                        AutoInfo[vehicleid][a12]=0;                        AutoInfo[vehicleid][a13]=0;                        AutoInfo[vehicleid][aPaintJob]=0;                        strmid(AutoInfo[CAR_PROD][aOwner], "The State", 0, 9, 999);                        SaveAuto();                        format(string, sizeof(string), "* Машина на продажу создана.");                        SendClientMessage(playerid, COLOR_GREY, string);                    }                    return 1;                }                return 1;            }   
   и  
   Code   if (strcmp(cmd, "/park", true) == 0)//для парка авто            {                if(IsPlayerConnected(playerid))                {                    if(PlayerInfo[playerid][pCarKey2] == 0 && PlayerInfo[playerid][pCarKey] == 0)                    {                        SendClientMessage(playerid,COLOR_GREY,"У вас нет тачки");                        return 1;                    }                    if(IsPlayerInAnyVehicle(playerid))                    {                        new cari = GetPlayerVehicleID(playerid);                        if(cari == PlayerInfo[playerid][pCarKey2] || cari == PlayerInfo[playerid][pCarKey])                        {                            RemovePlayerFromVehicle(playerid);                            TogglePlayerControllable(playerid, 1);                            new Float:xcar, Float:ycar, Float:zcar, Float:ancar;                            new mods = GetVehicleModel(cari);                            GetVehicleZAngle(cari, ancar);                            GetVehiclePos(cari,xcar,ycar,zcar);                            DestroyVehicle(cari);                            CreateVehicle(mods,xcar,ycar,zcar,ancar,AutoInfo[cari][aColor1],AutoInfo[cari][aColor2],SPAWN_CARS);                            AutoInfo[cari][aAutoX] = xcar;                            AutoInfo[cari][aAutoY] = ycar;                            AutoInfo[cari][aAutoZ] = zcar;                            AutoInfo[cari][aAutoAngle] = ancar;                            SaveAuto();                            if(AutoInfo[cari][a0] != 0)                            {                                AddVehicleComponent(cari, AutoInfo[cari][a0]);                            }                            if(AutoInfo[cari][a1] != 0)                            {                                AddVehicleComponent(cari, AutoInfo[cari][a1]);                            }                            if(AutoInfo[cari][a2] != 0)                            {                                AddVehicleComponent(cari, AutoInfo[cari][a2]);                            }                            if(AutoInfo[cari][a3] != 0)                            {                                AddVehicleComponent(cari, AutoInfo[cari][a3]);                            }                            if(AutoInfo[cari][a4] != 0)                            {                                AddVehicleComponent(cari, AutoInfo[cari][a4]);                            }                            if(AutoInfo[cari][a5] != 0)                            {                                AddVehicleComponent(cari, AutoInfo[cari][a5]);                            }                            if(AutoInfo[cari][a6] != 0)                            {                                AddVehicleComponent(cari, AutoInfo[cari][a6]);                            }                            if(AutoInfo[cari][a7] != 0)                            {                                AddVehicleComponent(cari, AutoInfo[cari][a7]);                            }                            if(AutoInfo[cari][a8] != 0)                            {                                AddVehicleComponent(cari, AutoInfo[cari][a8]);                            }                            if(AutoInfo[cari][a9] != 0)                            {                                AddVehicleComponent(cari, AutoInfo[cari][a9]);                            }                            if(AutoInfo[cari][a10] != 0)                            {                                AddVehicleComponent(cari, AutoInfo[cari][a10]);                            }                            if(AutoInfo[cari][a11] != 0)                            {                                AddVehicleComponent(cari, AutoInfo[cari][a11]);                            }                            if(AutoInfo[cari][a12] != 0)                            {                                AddVehicleComponent(cari, AutoInfo[cari][a12]);                            }                            if(AutoInfo[cari][a13] != 0)                            {                                AddVehicleComponent(cari, AutoInfo[cari][a13]);                            }                            if(AutoInfo[cari][aPaintJob] != 0)                            {                                ChangeVehiclePaintjob(cari,AutoInfo[cari][aPaintJob]);                            }                            SendClientMessage(playerid,COLOR_YELLOW,"Транспорт припаркован!");                        }                        else                        {                            SendClientMessage(playerid,COLOR_GREY,"Вы не в своей купленной тачке");                        }                    }                    else                    {                        SendClientMessage(playerid,COLOR_GREY,"Вы не в тачке");                    }                }                return 1;            }     
  From Russia With Love!
 |  
| 
 
 | 
 |   
 |