Question

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

Вот коды 

Спойлер

Пикап

    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 скин (полевая форма)

Edited by Lt.Andrew

Share this post


Link to post

6 answers to this question

  • 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]);
}

 

 

Share this post


Link to post
  • 0

Хмммм...

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

доки.png

Share this post


Link to post
  • 0

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

Share this post


Link to post
  • 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]);
    }

 

Edited by Lt.Andrew

Share this post


Link to post
  • 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
};

 

Share this post


Link to post
  • 0

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

Share this post


Link to post
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Артём Профиков
      By Артём Профиков
      Скачал чистую Криминальную Россию beta 2.0, после добавлению любого объекта вылетает
      Вот строчки как я добавляю
      crteam.ide
      15000, avtosalon, avtosalon, 200, 0 crteam.ipl
      15000, avtosalon, 0, 1673.34351, 1671.97498, 14.84240, 0, 0, 0, 1, -1 И после этого начинает вылетать. Саму модель добавил в gta3.img. Кто знает из-за чего вылетает напишите пожалуйста
    • Tookie Johnson
      By Tookie Johnson
      Здравствуйте. Пишу РП мод с нуля. Поделитесь, пожалуйста, системой ввода реферала при регистрации и проверкой на ввод своего имени.