Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Система авто для [ALL]

Статус
В этой теме нельзя размещать новые ответы.

Vova_Jonson#

Умник
После #include <a_samp>
PHP код:
Код:
new LastCar;// Максимальное колличество авто  
enum vInfo  
{  
    vAdd,// Проверка на созданную машину  
        vID,// Ид Машины  
    vModel,// Модель Машины  
    Float:vVx,// Позиция X  
    Float:vVy,// Позиция Y  
    Float:vVz,// Позиция Z  
    Float:vVa,// Позиция A  
    vColor,// Цвет 1  
    vColor2,// Цвет 2  
}  
new Veh[MAX_VEHICLES][vInfo];
В public OnGameModeInit()
PHP код:
Код:
LoadVeh();// Загрузка Машин
В public OnPlayerCommandText(playerid, cmdtext[])
PHP код:
Код:
  new veh = GetPlayerVehicleID(playerid);  
    new string[256];  
    new cmd[128], tmp[128], idx;  
    cmd = strtok(cmdtext, idx);  
if(strcmp(cmd,"/addveh",true) == 0)  
    {  
         tmp = strtok(cmdtext,idx);  
        if(!strlen(tmp))  
        {  
              SendClientMessage(playerid,0xB4B5B7FF, "ПОМОЩЬ: /addveh [Модель Машины]");  
            return 1;  
        }  
        new addveh = strval(tmp);// Узнаём введёный ID машины  
        if(addveh < 400 || addveh > 610)// Делаем ограничение на доступные машины  
        {  
            SendClientMessage(playerid,0xB4B5B7FF, "ПОМОЩЬ: /addveh [Модель Машины]");  
            SendClientMessage(playerid,0xB4B5B7FF, "ПОМОЩЬ: Ид должен быть больше 400, и меньше 610");  
            return 1;  
        }  
           new Float:x,Float:y,Float:z,Float:a;// Массив для позиции  
        GetPlayerPos(playerid,x,y,z);// Узнаём позицию игрока  
        GetPlayerFacingAngle(playerid,a);// Узнаём угол поворота игрока  
        LastCar++;// Прибавляем к последней добавленной машине одну  
        Veh[LastCar][vAdd] = 1;// Устанавливаем проверку на созданную машину  
        Veh[LastCar][vModel] = addveh;// Устанавливаем модель машине  
        Veh[LastCar][vVx] = x;// Устанавливаем позицию  
        Veh[LastCar][vVy] = y;// Устанавливаем позицию  
        Veh[LastCar][vVz] = z;// Устанавливаем позицию  
        Veh[LastCar][vVa] = a;// Устанавливаем позицию  
        CreateVehicle(Veh[LastCar][vModel],Veh[LastCar][vVx],Veh[LastCar][vVy],Veh[LastCar][vVz],Veh[LastCar][vVa],1,1,6000000000);// Создаём машину на координатах  
        SaveVeh();// Сохраняем  
        format(string,sizeof(string),"* Вы создали машину %d, ид на сервере %d",addveh,LastCar);// Вывод  
          SendClientMessage(playerid,0xB4B5B7FF,string);// Выводим Текст  
        return 1;  
    }  
    if(strcmp(cmd,"/parkveh",true) == 0)  
    {  
        new Float:x,Float:y,Float:z;// Массив для позиции  
        new Float:a;// Массив для позиции  
        if(IsPlayerInVehicle(playerid, veh))// Если игрок в машине  
        {  
            GetVehiclePos(veh,x,y,z);// Узнаём позицию  
            GetVehicleZAngle(veh,a);// Узнаём угол поворота  
        }  
        else// Если нет  
        {  
              SendClientMessage(playerid,0xB4B5B7FF,"* Вы не в транспортном средстве.");  
            return 1;  
        }  
        Veh[veh][vVx] = x;// Устанавливаем позицию  
        Veh[veh][vVy] = y;// Устанавливаем позицию  
        Veh[veh][vVz] = z;// Устанавливаем позицию  
        Veh[veh][vVa] = a;// Устанавливаем позицию  
        SaveVeh();// Сохраненяем машину  
        return 1;  
    }  
    if(strcmp(cmd, "/avehcolor", true) == 0)  
    {  
         if(IsPlayerInAnyVehicle(playerid))  
           {  
               if(Player[playerid][pAdmin] > 0)// Если Игрок админ, то..  
               {  
                   tmp = strtok(cmdtext, idx);  
                if(!strlen(tmp))// Если не указали ид цвета  
                {  
                    SendClientMessage(playerid,0xB4B5B7FF,"ПОМОЩЬ: /avehcolor [Цвет 1] [Цвет 2]");  
                    return 1;  
                }  
                new color1;// Массив с цветом  
                color1 = strval(tmp);// Читаем введёный цвет  
                if(color1 < 0 && color1 > 126)// Если ид цвета недоступен  
                {  
                     SendClientMessage(playerid,0xB4B5B7FF,"* Неверный ID Цвета!");  
                       return 1;  
                }  
                tmp = strtok(cmdtext, idx);  
                if(!strlen(tmp))// Если введён один цвет  
                {  
                    SendClientMessage(playerid,0xB4B5B7FF,"ПОМОЩЬ: /vehcolor [Цвет 1] [Цвет 2]");  
                    return 1;  
                }  
                new color2;// Массив со вторым цветом  
                color2 = strval(tmp);// Читаем второй цвет  
                if(color2 < 0 && color2 > 126)// Если ид цвета недоступен  
                {  
                    SendClientMessage(playerid,0xB4B5B7FF,"* Неверный ID Цвета");  
                      return 1;  
                }  
                Veh[veh][vColor] = color1;// Устанавливаем машине цвет  
                Veh[veh][vColor2] = color2;// Устанавливаем машине второй цвет  
                  ChangeVehicleColor(veh,color1, color2);// Красим машину  
                 SaveVeh();// Сохраняем  
                return 1;  
            }  
            else// Если не админ..  
            {  
                SendClientMessage(playerid,0xB4B5B7FF,"* Вы не админ");//Выводим сообщение  
            }  
        }  
        return 1;  
    }
В конец мода
PHP код:
Код:
stock LoadVeh()  
{  
    new string[256],str[16],arrCoords[8][128];// Необходимые массивы  
    new iniFile = ini_openFile("vehicle.ini");// Выбираем файл для загрузки, и открываем  
    {  
        for(new v = 1; v < MAX_VEHICLES; v++)// Цикл Авто  
        {  
            format(str,sizeof(str),"vID %d",v);// Выбираем какой ид загружать  
            ini_getString(iniFile,str,string);// Загружаем ид  
            split(string,arrCoords,',');// Разделяем загруженные числа запятой  
            Veh[v][vAdd] = strval(arrCoords[0]);// Загружаем проверку на созданую машину  
            if(Veh[v][vAdd] != 0)// Если машина создана, то..  
            {  
                Veh[v][vModel] = strval(arrCoords[1]);// Загружаем модель  
                Veh[v][vVx] = floatstr(arrCoords[2]);// Загружаем позицию  
                Veh[v][vVy] = floatstr(arrCoords[3]);// Загружаем позицию  
                Veh[v][vVz] = floatstr(arrCoords[4]);// Загружаем позицию  
                Veh[v][vVa] = floatstr(arrCoords[5]);// Загружаем угол поворота  
                Veh[v][vColor] = strval(arrCoords[6]);// Загружаем цвет  
                Veh[v][vColor2] = strval(arrCoords[7]);// Загружаем второй цвет  
                LastCar++;// Прибавляем машину к общему колличеству  
            }  
        }  
        ini_closeFile(iniFile);// Закрываем файл  
    }  
}  

stock SaveVeh()  
{  
    new string[256],str[16];// Необходимые массивы  
    new iniFile = ini_openFile("vehicle.ini");// Выбираем файл для записи, и открываем  
    for(new v = 1; v < MAX_VEHICLES; v++)// Цикл авто  
    {  
        format(string,sizeof(string),"%d,%d,%f,%f,%f,%f,%d,%d",// Выбираем что записывать..  
        Veh[v][vAdd],// Проверка на созданную машину  
        Veh[v][vModel],// Модель машины  
        Veh[v][vVx],// Позиция x  
        Veh[v][vVy],// Позиция y  
        Veh[v][vVz],// Позиция z  
        Veh[v][vVa],// Угол поворота  
        Veh[v][vColor],// Цвет 1  
        Veh[v][vColor2]// Цвет 2  
        );  
        format(str,sizeof(str),"vID %d",v);// записываем ид машины  
        ini_setString(iniFile,str,string);// записываем ид машины  
     }  
     ini_closeFile(iniFile);// Закрываем файл  
}  
strtok(const string[], &index)  
{  
    new length = strlen(string);  
    while ((index < length) && (string[index] <= ' '))  
    {  
        index++;  
    }  

    new offset = index;  
    new result[20];  
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))  
    {  
        result[index - offset] = string[index];  
        index++;  
    }  
    result[index - offset] = EOS;  
    return result;  
}  

stock split(const strsrc[], strdest[][], delimiter)  
{  
    new i, li;  
    new aNum;  
    new len;  
    while(i <= strlen(strsrc)){  
        if(strsrc[i]==delimiter || i==strlen(strsrc)){  
            len = strmid(strdest[aNum], strsrc, li, i, 128);  
            strdest[aNum][len] = 0;  
            li = i+1;  
            aNum++;  
        }  
        i++;  
    }  
    return 1;  
}
В папке scriptfiles создайте файл vehicle.ini
 
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу