ChangeVehiclePaintjob

Материал из Pro-Pawn Wiki
Перейти к: навигация, поиск

Описание:

Изменяет рисунок, нанесённый на транспортное средство.

Параметры:

(vehicleid, paintjobid)

Параметры:

(vehicleid)
vehicleid ID транспортного средства.
paintjobid ID рисунка, который требуется нанести на авто. Значение 3 удалит текущий нанесённый рисунок.


Возвращаемое значение:

Всегда возвращает 1.

Info rhombus.png
Примечание
Если в параметре paintjobid указан ID 1 или 2, но для транспорта не существует рисунка под этим ID, текущий рисунок будет удалён, как и при указании ID 3.
Если в параметре paintjobid указано значение меньше 0 или больше 3, функция ничего не делает.


Bug.png
Баг SA-MP
Функция всегда возвращает 1, даже когда указан неправильный ID рисунка (меньше 0 или больше 3) или несуществующий ID транспорта.
Значение параметра paintjobid урезается до 1 байта. Как результат, значение 256 трактуется как 0, 2571, 5120, -2560, -2551 и т.д.


Пример использования:

CMD:randpaintjob(playerid, params[])
{
    new vehicleid = GetPlayerVehicleID(playerid);
    if (vehicleid == 0)
        return SendClientMessage(playerid, -1, "Ошибка: Вы не внутри транспортного средства.");

    // Получим доступное количество раскрасок для текущего ТС, используя собственную функцию (см. ниже).
    new num_paintjobs = GetNumberOfPaintjobsForVehicle(GetVehicleModel(vehicleid));
    if (num_paintjobs == 0)
        return SendClientMessage(playerid, -1, "Ошибка: Для текущего транспортного средства нет доступных раскрасок.");

    // Сменим раскраску и выведем сообщение.
    new rand_paintjob = random(num_paintjobs);
    ChangeVehiclePaintjob(vehicleid, rand_paintjob);
    new string[128];
    format(string, sizeof(string), "Вы сменили раскраску транспорта на %d.", rand_paintjob);
    return SendClientMessage(playerid, -1, string);
}

CMD:removepaintjob(playerid, params[])
{
    new vehicleid = GetPlayerVehicleID(playerid);
    if (vehicleid == 0)
        return SendClientMessage(playerid, -1, "Ошибка: Вы не внутри транспортного средства.");
    ChangeVehiclePaintjob(vehicleid, 3);
    return SendClientMessage(playerid, -1, "Раскраска успешно удалена.");
}

// Функция возвращает доступное количество раскрасок для транспортного средства
// (например, если функция вернула "3", значит доступны раскраски под ID от 0 до 2).
stock GetNumberOfPaintjobsForVehicle(vehiclemodel)
{
    switch(vehiclemodel)
    {
        case 483:
            return 1;
        case 575:
            return 2;
        case 534, 535, 536, 558, 559, 560, 561, 562, 565, 567, 576:
            return 3;
    }
    return 0;
}


См. также: