Тюнинг с сохранением

Описание: Уроки по скриптингу
Модератор: SJplayer

SJplayer M
Автор темы, Модератор
Модератор
Аватара
SJplayer M
Автор темы, Модератор
Модератор
Сообщения: 196
Зарегистрирован: 25 мая 2013
С нами: 10 лет 10 месяцев

#1 SJplayer » 18 февраля 2017, 12:08

Автор Myrka
Выкладываю вам тюнинг с сохранением. Данный тюнинг находится в Южном, у автомехаников
в enum CarInfo(ну или как у вас там, я не знаю)

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

cWheels,
cNitro,
cHydraulics,
cStereo


В public OnPlayerCommandText

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

if(strcmp(cmdtext"/tunecar",true) == 0)
{
    
//if(PlayerInfo[playerid][pMember]== 25 ||PlayerInfo[playerid][pLeader]==25)
    
if(IsPlayerInRangeOfPoint(playerid,7.0,2179.6506,-1821.7126,18.8102))  //IZ UZHNOOGO
    
{
        if(
GetRealID(GetPlayerVehicleID(playerid)) != -1)
        {
            if(!
IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playeridCOLOR_GRAD2"Вы должны быть в автомобиле");
            
ShowPlayerDialog(playerid,689,DIALOG_STYLE_LIST,"Салон тюнинг","Диски (30000 тысяч)\nГидравлика (60000 тысяч)\nАзот (60000 тысяч)\nСтереo (60000 тысяч)","OK","Отмена");
            return 
true;
        }
    }
    else
    {
        
SendClientMessage(playerid, -1"Вы должны быть в мастерской чтоб тюнинговать автомобиль!");
    }


в public OnDialogResponse

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

else if(dialogid == 689)
{
    if(
response)
    {
        new 
car GetPlayerVehicleID(playerid);
        switch(
listitem)
        {
        case 
0ShowPlayerDialog(playerid,670,DIALOG_STYLE_LIST,"Выбор дисков","Shadow\nMega\nRimshine\nWires\nClassic\nTwist\nCutter\nGrove\nAtomic\nOffroad\nItal Import\nDollar\nAhab\nVirtual\nAccess","Выбор","Отмена");
        case 
1: { AddVehicleComponent(car1087); CarInfo[GetRealID(car)][cHydraulics] = 1087; }
        case 
2: { AddVehicleComponent(car1010); CarInfo[GetRealID(car)][cNitro] = 1010; }
        case 
3: { AddVehicleComponent(car1086);  CarInfo[GetRealID(car)][cStereo] = 1086; }
        }
        if(
listitem != 0)
        {
            
SendClientMessage(playerid,COLOR_LIGHTBLUE,"Вы поставили деталь.");
            
SetPVarInt(playerid,"kupil",1);
            
GiveMoney(playerid,-60000);
        }
        
SaveCar(GetRealID(car));
    }
}
else if(
dialogid == 670)
{
    new 
car GetPlayerVehicleID(playerid);
    if(
response)
    {
        switch(
listitem)
        {
        case 
0AddVehicleComponent(car1073);
        case 
1AddVehicleComponent(car1074);
        case 
2AddVehicleComponent(car1075);
        case 
3AddVehicleComponent(car1076);
        case 
4AddVehicleComponent(car1077);
        case 
5AddVehicleComponent(car1078);
        case 
6AddVehicleComponent(car1079);
        case 
7AddVehicleComponent(car1081);
        case 
8AddVehicleComponent(car1085);
        case 
9AddVehicleComponent(car1025);
        case 
10AddVehicleComponent(car1082);
        case 
11AddVehicleComponent(car1083);
        case 
12AddVehicleComponent(car1084);
        case 
13AddVehicleComponent(car1096);
        case 
14AddVehicleComponent(car1097);
        case 
15AddVehicleComponent(car1098);
        }
        
CarInfo[GetRealID(car)][cWheels] =  GetVehicleComponentInSlot(carCARMODTYPE_WHEELS);
        
SendClientMessage(playerid,COLOR_LIGHTBLUE,"Вы поставили диски на этот автомобиль.");
        
GiveMoney(playerid,-30000);
    }
    
SaveCar(GetRealID(car));


В stock LoadCar(загрузки автомобиля)

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

ini_getInteger(iniOpen"cWheels"CarInfo[car][cWheels]);
ini_getInteger(iniOpen"cStereo"CarInfo[car][cStereo]);
ini_getInteger(iniOpen"cNitro"CarInfo[car][cNitro]);
ini_getInteger(iniOpen"cHydraulics"CarInfo[car][cHydraulics]); 


также в этом же стоке, в конец добавьте

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

SetTuneCar(CarInfo[car][cID]); 


В конец мода

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

stock SetTuneCar(carid)
{
    if(
CarInfo[GetRealID(carid)][cWheels] != 0AddVehicleComponent(carid,CarInfo[GetRealID(carid)][cWheels]);
    if(
CarInfo[GetRealID(carid)][cStereo] != 0AddVehicleComponent(carid,CarInfo[GetRealID(carid)][cStereo]);
    if(
CarInfo[GetRealID(carid)][cNitro] != 0AddVehicleComponent(carid,CarInfo[GetRealID(carid)][cNitro]);
    if(
CarInfo[GetRealID(carid)][cHydraulics] != 0AddVehicleComponent(carid,CarInfo[GetRealID(carid)][cHydraulics]);
    {
    }
    if(
CarInfo[GetRealID(carid)][cLock] == 1)
    {
        for(new 
i<= GetMaxPlayers(); i++)
        {
            if(
IsPlayerConnected(i))
            {
                
SetVehicleParamsForPlayer(carid,i,0,1);
            }
        }
    }
    return 
true;


В public OnVehicleSpawn

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

SetTuneCar(vehicleid); 


в /savecars (если есть, если нету, не бойтесь, все равно все будет работать)

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

CarInfo[AllCars][cWheels] = 0;
CarInfo[AllCars][cStereo] = 0;
CarInfo[AllCars][cNitro] = 0;
CarInfo[AllCars][cHydraulics] = 0


в stock SaveCar(сохранения авто)

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

ini_setInteger(iniOpen"cWheels"CarInfo[car][cWheels]);
ini_setInteger(iniOpen"cStereo"CarInfo[car][cStereo]);
ini_setInteger(iniOpen"cNitro"CarInfo[car][cNitro]);
ini_setInteger(iniOpen"cHydraulics"CarInfo[car][cHydraulics]); 


В stock CreateCar(создания авто)

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

ini_setInteger(iniOpen"cWheels"CarInfo[car][cWheels]);
ini_setInteger(iniOpen"cStereo"CarInfo[car][cStereo]);
ini_setInteger(iniOpen"cNitro"CarInfo[car][cNitro]);
ini_setInteger(iniOpen"cHydraulics"CarInfo[car][cHydraulics]); 


Также добавьте текст, что бы игроки видели, что им вводить

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

CreateDynamic3DTextLabel("{FFC800}Введите команду {FFFFFF}/tunecar {FFC800}для тюнинга авто."COLOR_3DTEXT2179.6506,-1821.7126,18.81030.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,1,-1,-1,-1,30.0);
 


Вернуться в «Уроки»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 12 гостей