Доступ к готовым решениям

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

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

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

Функция [Функция] GetPlayerSkinColor(playerid)

oxygenium

Изучающий
Professional
Пользователь
Регистрация
5 Ноя 2013
Сообщения
957
Лучшие ответы
18
Репутация
445
Награды
3
P.S. Что то новый дизайн форума очень глючный, не могу выбрать нормальный префикс. Модераторы, поменяйте, если можно.
5 лет назад я выкладывал функцию, которая узнает цвет кожи игрока. Ссылка на старую тему: https://pawno-info.ru/threads/getplayerskincolor.252400/
Смотрел форум, увидел функцию, которая определяет, есть ли очки на скине, вспомнил про свою функцию и решил немного обновить ее, так как с того момента в SAMP завезли новые скины, а так же сделать функцию немного удобней.

GetPlayerSkinColor


Описание:

функция возвращает цвет кожи игрока, в зависимости от его скина

Параметры:

playeridID игрока, у которого хотим узнать цвет кожи

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

  • SKIN_COLOR_WHITE: Если цвет кожи белый
  • SKIN_COLOR_BLACK: Если цвет кожи черный
  • SKIN_COLOR_YELLOW: Если цвет кожи желтый (азиаты)
  • SKIN_COLOR_BROWN: Не знал как назвать, возвращает цвет кожи латиносов (Вагос, Рифа)

Скин с ID 74 пустой, но в игра считает его аналогичным скину 0 - CJ. Так что функция вернет SKIN_COLOR_BLACK

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


C++:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    new year, month, day, currentdate;
    currentdate = getdate(year, month, day);
    if(year == 1950 && GetPlayerSkinColor(playerid) == SKIN_COLOR_BLACK)
    {
        new vehiclemodel = GetVehicleModel(vehicleid);
        if(vehiclemodel == 431 || vehiclemodel == 437) // Автобус
        {
            RemovePlayerFromVehicle(playerid);
        }
    }
    return 1;
}

Сама функция:

В начало мода ко всем define:

C++:
#define SKIN_COLOR_WHITE     0
#define SKIN_COLOR_BLACK     1
#define SKIN_COLOR_YELLOW     2
#define SKIN_COLOR_BROWN     3
В конец мода ко всем функциям:

C++:
static stock GetPlayerSkinColor(const playerid)
{
    new skinid = GetPlayerSkin(playerid);
    switch(skinid)
    {
        case 0, 4, 5, 7, 9, 13, 14, 16..19, 21..25, 28, 35, 36, 40, 47, 51, 63..67, 74, 76, 79, 80, 83, 84, 86, 102..107, 139, 142..144, 149, 156, 163, 166, 168, 176, 182, 183, 190, 195, 207, 215, 219, 219..222, 238, 243..245, 253, 256, 260, 262, 265..267, 269..271, 273..275, 278, 284, 292, 293, 296..298, 307: return 1;
        case 11, 20, 38, 43, 44, 49, 57, 58, 69, 117, 118, 120, 169, 186, 224, 225, 237, 263: return 2;
        case 108..110, 114..116, 173..175: return 3;
        default: return 0;
    }
}
 
Сверху Снизу