• 0
Sign in to follow this  
Followers 0
elishanky

[закрыто] Как выполнить действие в диалоге если есть предмет

Question

привет, как сделать действие если в диалоге есть такие предметы ?? Нажимай на них хочу делать действие 

CMD:flowerinfo(playerid)
{
    new txt[52],yashik[320];
    format(yashik, sizeof(yashik), "Вид:\Кол-Во\n");
    if(PlayerInfo[playerid][pCveti] != 0) { format(txt, 52"Тюльпаны\t%d\n", PlayerInfo[playerid][pCveti]), strcat(yashik, txt); }
    if(PlayerInfo[playerid][pRoses] != 0) { format(txt, 52"Розы\t%d\n", PlayerInfo[playerid][pRoses]); strcat(yashik, txt); }
    if(PlayerInfo[playerid][pCveti2] != 0) { format(txt, 52"Гвоздика\t%d\n", PlayerInfo[playerid][pCveti2]); strcat(yashik, txt); }
    ShowPlayerDialog(playerid,8585,DIALOG_STYLE_TABLIST_HEADERS,"Ящик с цветами",yashik,"Ok","Cancel");

 

Share this post


Link to post

4 answers to this question

  • 0

в OnDialogResponse

case 8585:
{
    if(!response) return true;
    switch(listitem) 
    {
        case 0:
        {
            // тюльпаны
        }
        case 1:
        {
            // розы
        }
        case 2:
        {
            // гвоздики
        }
    }
    return true;
}

 

Edited by trevison

Share this post


Link to post
  • 0

@trevison Так не б

1 час назад, trevison сказал:

в OnDialogResponse


case 8585:
{
    if(!response) return true;
    switch(listitem) 
    {
        case 0:
        {
            // тюльпаны
        }
        case 1:
        {
            // розы
        }
        case 2:
        {
            // гвоздики
        }
    }
    return true;
}

 

Так не работает . внимательней гляньте команду . Там цветы показывается когда есть, а если нет, то не показывает, а вместо case 0 может быть не тюльпаны, а другие цветы

Share this post


Link to post
  • 0

@elishanky 
 

// Stock's

stock GetString(const param1[], const param2[]) 
{
    return !strcmp(param1, param2, false);
}

// OnDialogResponse

case 8585:
{
    if(response)
    {
        if(GetString(inputtext, "Тюльпаны")) 
        {
            //  
        }
        else if(GetString(inputtext, "Розы"))
        {
            //  
        }
    }
    return 1;
}

 

Edited by break

Share this post


Link to post
  • 0

Для обработки действий при нажатии на определенные элементы в диалоге с использованием TABLIST_HEADERS, вам нужно использовать коллбэк-функцию `OnPlayerSelectedMenuRow`. В этой функции вы можете проверять выбранный элемент и выполнять соответствующие действия.

Примерный код может выглядеть следующим образом:
 

public OnPlayerSelectedMenuRow(playerid, row)
{
    if (row == 1// Тюльпаны
    {
        // Ваш код для обработки выбора "Тюльпаны"
        SendClientMessage(playerid, -1"Вы выбрали тюльпаны!");
    }
    else if (row == 2// Розы
    {
        // Ваш код для обработки выбора "Розы"
        SendClientMessage(playerid, -1"Вы выбрали розы!");
    }
    else if (row == 3// Гвоздика
    {
        // Ваш код для обработки выбора "Гвоздика"
        SendClientMessage(playerid, -1"Вы выбрали гвоздику!");
    }

    // Возвращаем 1, чтобы предотвратить закрытие диалога
    return 1;
}

CMD:flowerinfo(playerid)
{
    new txt[52], yashik[320];
    format(yashik, sizeof(yashik), "Вид:\tКол-во\n");

    if (PlayerInfo[playerid][pCveti] != 0) {
        format(txt, sizeof(txt), "Тюльпаны\t%d\n", PlayerInfo[playerid][pCveti]);
        strcat(yashik, txt);
    }
    if (PlayerInfo[playerid][pRoses] != 0) {
        format(txt, sizeof(txt), "Розы\t%d\n", PlayerInfo[playerid][pRoses]);
        strcat(yashik, txt);
    }
    if (PlayerInfo[playerid][pCveti2] != 0) {
        format(txt, sizeof(txt), "Гвоздика\t%d\n", PlayerInfo[playerid][pCveti2]);
        strcat(yashik, txt);
    }

    ShowPlayerDialog(playerid, 8585, DIALOG_STYLE_TABLIST_HEADERS, "Ящик с цветами", yashik, "Ok""Cancel");
    return 1;
}


```

В этом примере, когда игрок выбирает элемент в диалоге, функция `OnPlayerSelectedMenuRow` будет вызвана, и в зависимости от выбранного элемента будет выполнен соответствующий код. Вам нужно добавить свой код обработки для каждого варианта.

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Wiggins
      By Wiggins
      Доброго времени суток, нуждаюсь в помощи. Если есть люди, которые шарят в pawno, нужна помощь. Короче, мод ART RP, там в донате есть строка "Уникальные аксессуары", когда на него нажмешь, открывается TextDraw менью, нужно переделать это на обычную менью (/mm например, там обычная менью), буду рад, если поможете, за ранее спасибо.

      Если не ошибаюсь, строка текстдрав аксессуаров начинается с 1416 до 1443.
      art4.pwn