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

TS Posted (edited) · Report post

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Kirill_Bess
      By Kirill_Bess
      Приветствую
      При запуске сервера на хостинге выдаёт ошибку [Unknown] 
      При запуске сервера через приложение samp-server.exe выдаёт ошибки плагинов,но я не знаю как из исправить подскажите пожалуйста
      Сразу спасибо за помощь
      Вот логи:

    • Decard
      By Decard
      D: honest-roleplay_main/.build/include/pregress2 (23) fatal error 111 user error: cloud not locate a_samp.inc file, please check your server includes
       
      Как это исправить у мене a_samp в самом вверху мода