Описание:

Этот код позволит вам изменять и сохранять цвет автомобиля через сервер. Многие сталкивались с проблемой что МТА не правильно записывает номер цвета автомобиля. После чего очень нудно сидеть и в ручную через мод искать нужный автомобиль и ставить ему цвет. Тут же вы можете сделать это через сервер и сохранить результат. Может и есть для этого какие ни будь сервисы, но я не нашел.

Функционал:

Код:
RESPAWN_VEHICLE_TIME - время респавна автомобиля (в млс)
ADD_SIREN_FOR_VEHICLE - создать сирену на авто (0 - нет / 1 - да)
TYPE_VEHICLE_SAVE - как сохранить автомобиль (0 - CreateVehicle | 1 - AddStaticVehicle | 2 - AddStaticVehicleEx)

/osvc - запустить редактор цвета
/ucv [vehicldeid][color1][color2] - изменить цвет
/suvc - сохранить изменения в папку ../scriptfiles, файл будет называться updatecolorvehicle
Код:

PHP код:
#include <a_samp> //SA-MP 0.3.7
#include <dc_cmd> // Плагин DC_CMD желательно последней версии, возможно в будущем, когда ни будь, сделаю для стандартного движка
#include <sscanf2> // Плагин sscanf желательно последней версии

#define RESPAWN_VEHICLE_TIME    -1
#define ADD_SIREN_FOR_VEHICLE   0
#define TYPE_VEHICLE_SAVE       1

static
    
S_V_C_U[MAX_PLAYERS char],
    
S_V_C_U_N[MAX_VEHICLES char],
    
VehicleColor1[MAX_VEHICLES],
    
VehicleColor2[MAX_VEHICLES];

CMD:osvc(playerid)
{
    if(
S_V_C_U{playerid}) return 
        
SendClientMessage(playerid, -1, !"Вы уже запустили скрипт изменения цвета автомобиля.");

    new
        
string[15],
        
Text3D:SVC_Text3D;

    
S_V_C_U{playerid} = 1;

    for(new 
1GetVehiclePoolSize(); <= ai++)
    {
        
string[0] = EOS;
        
valstr(stringi);
        
strcat(string, !" - vehicleid");

        
#if defined streamer
            
SVC_Text3D CreateDynamic3DTextLabel(string0xFFFFFFFF0.00.00.025.0INVALID_PLAYER_IDi);
        
#else
            
SVC_Text3D Create3DTextLabel(string0xFFFFFFFF0.00.00.025.01);
            
Attach3DTextLabelToVehicle(SVC_Text3Di0.00.00.0);
        
#endif
    
}

    
SendClientMessage(playerid, -1, !"Около автомобиля стал показываться 3D текст с его ID.");
    
SendClientMessage(playerid, -1, !"Для изменения цвета - /ucv [vehicleid][color1][color2]");
    
SendClientMessage(playerid, -1, !"Сохранить изменения в папку ../scriptfiles/updatecolorvehicle - /suvc");

    return 
1;
}

CMD:ucv(playeridparams[], vehicleidcolor1color2)
{
    if(!
S_V_C_U{playerid}) return 
        
SendClientMessage(playerid, -1, !"Вы не запустили скрипт изменения цвета автомобиля.");

    if(
sscanf(params"ddd"vehicleidcolor1color2)) return
        
SendClientMessage(playerid, -1, !"Используйте - /ucv [vehicleid][color1][color2]");

    if(!
GetVehicleModel(vehicleid)) return
        
SendClientMessage(playerid, -1, !"Такого авто не существует.");

    
S_V_C_U_N{vehicleid} = 1;
    
ChangeVehicleColor(vehicleidcolor1color2);

    
VehicleColor1[vehicleid] = color1;
    
VehicleColor2[vehicleid] = color2;

    
SendClientMessage(playerid, -1, !"Цвет автомобиля изменен. Для сохранения - /suvc");
    
    return 
1;
}

CMD:suvc(playerid)
{
    if(!
S_V_C_U{playerid}) return 
        
SendClientMessage(playerid, -1, !"Вы не запустили скрипт изменения цвета автомобиля.");

    new 
        
File:OpenFileId fopen("updatecolorvehicle.txt"io_append),
        
string[120],
        
Float:x,
        
Float:y,
        
Float:z,
        
Float:a,
        
modelid;

    for(new 
1GetVehiclePoolSize(); <= bi++)
    {
        if(!
S_V_C_U_N{i}) 
            continue;

        
GetVehiclePos(ixyz);
        
GetVehicleZAngle(ia);

        
modelid GetVehicleModel(i);

        switch(
TYPE_VEHICLE_SAVE)
        {
            case 
0:
                
format(stringsizeof(string), "CreateVehicle(%d, %f, %f, %f, %f, %d, %d, %d, %d);\r\n"modelidxyzaVehicleColor1[i], VehicleColor2[i], RESPAWN_VEHICLE_TIMEADD_SIREN_FOR_VEHICLE);
            case 
1:
                
format(stringsizeof(string), "AddStaticVehicle(%d, %f, %f, %f, %f, %d, %d);\r\n"modelidxyzaVehicleColor1[i], VehicleColor2[i]);
            case 
2:
                
format(stringsizeof(string), "AddStaticVehicleEx(%d, %f, %f, %f, %f, %d, %d, %d, %d);\r\n"modelidxyzaVehicleColor1[i], VehicleColor2[i], RESPAWN_VEHICLE_TIMEADD_SIREN_FOR_VEHICLE);
        }

        
fwrite(OpenFileIdstring);
    }

    
fclose(OpenFileId);

    
SendClientMessage(playerid, -1, !"Автомобили сохранены.");

    return 
1;

Автор: _KROSCH

Авторские права: делайте что хотите