[Include] v_Control.inc || GetVehicleColor, SetVehicleColor ++
#1

Include упрощает работу с транспортом, создание, покраска, возможно узнать цвет (integer,string).
При написании было решено осуществить две версии include, изначально хотел поделиться покраской на TextDraw.
Так-как красит она по одному цвету за раз, решил выложить всю систему, но в include.


Версия 1.1
  • s_AddStaticVehicle(model, Float:X, Float:Y, Float:Z, Float:Angle, col1 = -1, col2 = -1, world = 0, int = 0);
    • model — модель машины (400 - 611)
    • X, Y, Z — координаты появления транспорта
    • Angle — угол поворота
    • col1 — первый цвет транспорта ( -1 означает рандомный из 255 )
    • col2 — второй цвет транспорта ( -1 означает рандомный из 255 )
    • world — виртуальный мир, в котором транспорт появится
    • int — ID интерьера, в котором транспорт появится

  • s_AddStaticVehicleEx(model, Float:X, Float:Y, Float:Z, Float:Angle, col1 = -1, col2 = -1, time = 0, world = 0, int = 0);
    • model — модель машины (400 - 611)
    • X, Y, Z — координаты появления транспорта
    • Angle — угол поворота
    • col1 — первый цвет транспорта ( -1 означает рандомный из 255 )
    • col2 — второй цвет транспорта ( -1 означает рандомный из 255 )
    • time — время до возвращения на место появление (X, Y, Z), после того как игрок покинет транспорт (в секундах)
    • world — виртуальный мир, в котором транспорт появится
    • int — ID интерьера, в котором транспорт появится

  • s_CreateVehicle(model,Float:X,Float:Y,Float:Z,Floa t:Angle,col1 = -1,col2 = -1,time = 0,death = 0,world = 0,int = 0);
    • model — модель машины (400 - 611)
    • X, Y, Z — координаты появления транспорта
    • Angle — угол поворота
    • col1 — первый цвет транспорта ( -1 означает рандомный из 255 )
    • col2 — второй цвет транспорта ( -1 означает рандомный из 255 )
    • time — время до возвращения на место появление (X, Y, Z), после того как игрок покинет транспорт (в секундах)
    • death — удалить транспорт по истечению времени time или уничтожении/респавне ( 0 - нет, 1 - да )
    • world — виртуальный мир, в котором транспорт появится
    • int — ID интерьера, в котором транспорт появится

  • SetVehicleColor(vehid, col1, col2)Установить два цвета (0 - 255) (0 - 255)

  • SetVehicleColor_1(vehid, color)Установить первый цвет (0 - 255)
  • SetVehicleColor_2(vehid, color)Установить второй цвет (0 - 255)

  • GetVehicleColor_1(vehid)Возвращает первый ID цвета (0 - 255)
  • GetVehicleColor_2(vehid)Возвращает второй ID цвета (0 - 255)

  • GetVehColToText_1(vehid)Возвращает первый цвет транспорта в строку, форматировать через {%06x}
  • GetVehColToText_2(vehid)Возвращает второй цвет транспорта в строку, форматировать через {%06x}


Версия 1.2 Данная версия содержит тот-же функционал, что и 1.1, + покраска на TextDraw
  • VehicleColor_Init()Загружаем покраску, использовать в OnGameModeInit или OnFilterScriptInit
  • VehicleColor_Exit()Выгружаем покраску, использовать в OnGameModeExit или OnFilterScriptExit

  • ShowChangleVehicleColor_1(playerid)Показать игроку меню покраски первого цвета
  • ShowChangleVehicleColor_2(playerid)Показать игроку меню покраски второго цвета
  • IsChangleVehicleColor(playerid)Проверяет, открыто ли меню у игрока, возвращает: 1 - да, 0 - нет

  • Правильное форматирование из GetVehColToText_1(vehid)
    PHP Code:
    new str[40];
    format(str,40,"{%06x} Этот текст цвета машины",GetVehColToText_1(vehicleid)); // форматируем цвет 1, %06x
    SendClientMessage(playerid,-1,str); // Оправляем сообщение игроку 

  • Mini GameMode
    PHP Code:
    #include <a_samp>
    #include <v_Control>
    main(){}
    public 
    OnGameModeInit()
    {
        
    VehicleColor_Init(); // загружаем покраску
        
        
    s_AddStaticVehicle(5412488.76, -1679.3912.960.03100);      // без таймера респавна
        
    s_AddStaticVehicleEx(5412492.76, -1679.3912.960.010200); // с таймером
        
    SetGameModeText("v_Control by SoNik))");
        
    AddPlayerClass(402490.8650,-1671.2910,13.3359,180.0,0,0,0,0,0,0);
        return 
    true;
    }
    public 
    OnGameModeExit()
    {
        
    VehicleColor_Exit(); // выгружаем покраску
        
    return true;
    }
    public 
    OnPlayerCommandText(playeridcmdtext[])
    {
        if(!
    strcmp(cmdtext"/col1"true)) ShowChangleVehicleColor_1(playerid); // показываем меню покраски первого цвета
        
    if(!strcmp(cmdtext"/col2"true)) ShowChangleVehicleColor_2(playerid); // показываем меню покраски второго цвета
        
    return true;
    }
    public 
    OnPlayerEnterVehicle(playeridvehicleidispassenger)
    {
        new 
    str[35];
        
    SendClientMessage(playerid,-1,"Введите /col1 или /col2 для покраски транспорта");
        
    format(str,35,"{%06x} Цвет 1: %d",GetVehColToText_1(vehicleid),GetVehicleColor_1(vehicleid)); // форматируем цвет 1, %06x
        
    SendClientMessage(playerid,-1,str); // Оправляем сообщение игроку
        
        
    format(str,35,"{%06x} Цвет 2: %d",GetVehColToText_2(vehicleid),GetVehicleColor_2(vehicleid)); // форматируем цвет 2, %06x
        
    SendClientMessage(playerid,-1,str); // Оправляем сообщение игроку
        
    return true;
    }
    public 
    OnPlayerSpawn(playerid)
    {
        
    SetPlayerPos(playerid2490.8650,-1671.2910,13.3359);
        
    SetPlayerFacingAngle(playerid180.0);
        
    SetCameraBehindPlayer(playerid);
        return 
    true;

  • ScreenShot покраски
Downloadархив (include, screenshot, gamemode)

Автор: SoNik))
Skype: sell.mells
Reply
#2

Не очень. ТД покраски мог бы сделать для 256 цветов.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)