Вопросы

Здравствуйте! Я решил изменить раздевалку для ВЧ в моде (хочу добавить несколько скинов), но не знаю как, можете помочь пожалуйста ?

Вот коды 

Спойлер

Пикап

    if(pickupid == armskin)
    {
        if(p_info[playerid][pMember] != TEAM_ARMY) return 1;
        if(p_info[playerid][pRank] < 4) return ShowPlayerDialogEx(playerid, 15419, DIALOG_STYLE_LIST, "{ebec86}>> Раздевалка", "1. Полевая\n2. Повседневная", "Выбрать", "Отмена");
        ShowPlayerDialogEx(playerid, 15419, DIALOG_STYLE_LIST, "{ebec86}>> Раздевалка", "1. Полевая\n2. Спортивная\n3. Парадная", "Выбрать", "Отмена");
    }

 

Спойлер

Диалог

 

    case 15419:
        {
            if(!response) return 1;
            static const list_skins[3] = {287,179,255};
            SetPlayerSkin(playerid, list_skins[listitem]);
            SendClientMessage(playerid, COLOR_GREEN, (listitem == 0) ? ("Вы переоделись в постовую форму") :
            (listitem == 1) ? ("Вы переоделись в спортивную форму") : ("Вы переоделись в парадную форму"));
        }

 

Мне нужно сделать так, чтобы 1 и 2 ранги могли видеть и брать соответственно лишь 73 скин (полевая форма) и 287 скин (боевая форма)

3 и 4ранги могли видеть и брать лишь 98 скин (полевая форма) и 287 скин (боевая форма)

5 ранг мог видеть и брать лишь 255 скин (офисная форма) и 206 скин (полевая форма)

6 и 7 ранги могли видеть и брать лишь 250 скин (офисная форма) и 206 скин (полевая форма)

8 и 9 ранги могли видеть и брать лишь 179 скин (офисная форма) и 206 скин (полевая форма)

10 ранг мог видеть и брать лишь 61 скин (офисная форма) и 206 скин (полевая форма)

Отредактировано пользователем Lt.Andrew

Поделиться сообщением


Ссылка на сообщение

6 ответов на этот вопрос

  • 0

@Lt.Andrew, что-нибудь вроде такого:

 

Спойлер

if (pickupid == armskin) {
    if (p_info[playerid][pMember] != TEAM_ARMY) {
        return true;
    }
    
    static const texts[][] = {
        "1. Полевая\n2. Боевая",
        "1. Офисная\n2. Полевая"
    };
    
    ShowPlayerDialogEx(playerid, 15419, DIALOG_STYLE_LIST, "{ebec86}>> Раздевалка", texts[p_info[playerid][pRank] >= 5], "Выбрать""Отмена");
}

case 15419: {
    if (!response) {
        return true;
    }
    
    static const skins[][] = {
        {73287}, // 1 rank
        {73287}, // 2 rank
        {98287}, // 3 rank
        {98287}, // 4 rank
        {255206}, // 5 rank
        {250206}, // 6 rank
        {250206}, // 7 rank
        {179206}, // 8 rank
        {179206}, // 9 rank
        {61206}, // 10 rank
    };
    
    SetPlayerSkin(playerid, skins[p_info[playerid][pRank] - 1][listitem]);
       
    static const messages[][] = {
        "Вы переоделись в полевую форму",
        "Вы переоделись в боевую форму",
        "Вы переоделись в офисную форму",
        "Вы переоделись в полевую форму"
    };
    
    new cond = p_info[playerid][pRank] >= 5;
    SendClientMessage(playerid, COLOR_GREEN, messages[2 * cond + listitem]);
}

 

 

Поделиться сообщением


Ссылка на сообщение
  • 0

Хмммм...

У меня при вставке этих кодов, выдаёт 2 ошибки.

доки.png

Поделиться сообщением


Ссылка на сообщение
  • 0

@Lt.Andrew, только что проверил – ошибок при компиляции нет. Укажите строки, которые не нравятся компилятору.

Поделиться сообщением


Ссылка на сообщение
  • 0

32723 в обоих ошибках

Вот эта строчка (отметил красным):

Спойлер

    case 15419: {
        if (!response) {
            return true;
         }

        static const skins[][] = {
            {73, 287}, // 1 rank
            {73, 287}, // 2 rank
            {98, 287}, // 3 rank
            {98, 287}, // 4 rank
            {255, 206}, // 5 rank
            {250, 206}, // 6 rank
            {250, 206}, // 7 rank
            {179, 206}, // 8 rank
            {179, 206}, // 9 rank
            {61, 206}, // 10 rank
            
           };

    SetPlayerSkin(playerid, skins[p_info[playerid][pRank] - 1][listitem]);

 

    static const messages[][] = {
        "Вы переоделись в полевую форму",
        "Вы переоделись в боевую форму",
        "Вы переоделись в офисную форму",
        "Вы переоделись в полевую форму"
    };

    new cond = p_info[playerid][pRank] >= 5;
    SendClientMessage(playerid, COLOR_GREEN, messages[2 * cond + listitem]);
    }

 

Отредактировано пользователем Lt.Andrew

Поделиться сообщением


Ссылка на сообщение
  • 0

@Lt.Andrew, ну, как вариант, задайте явно размер вектора массива и уберите запятую после последнего вектора:

static const skins[][2] = {
    {73287}, // 1 rank
    {73287}, // 2 rank
    {98287}, // 3 rank
    {98287}, // 4 rank
    {255206}, // 5 rank
    {250206}, // 6 rank
    {250206}, // 7 rank
    {179206}, // 8 rank
    {179206}, // 9 rank
    {61206// 10 rank
};

 

Поделиться сообщением


Ссылка на сообщение
  • 0

Хмммм...
Да, теперь всё заработало. Спасибо Вам большое! :3

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Артём Профиков
      От Артём Профиков
      У меня есть система подсказок вот так она выглядет
      ShowNotification(playerid, тип, "текст", время, "команда через /", "текст кнопки");
      Только есть вопрос как сделать так чтоб она активировалась в определенном радиусе? Заранее спасибо