Question

elishanky
Новичок

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

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
trevison
Активный

в 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
elishanky
Новичок

@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
break
Новичок

@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

    • ВасилийСталин
      By ВасилийСталин
      VERDICT PROJECT - V:ACE
       
      Соревновательный проект на платформе SA-MP, вдохновлённый духом Counter-Strike: тактические перестрелки, честный рейтинг и ванильное PVP.
      В разработке, не используются ресурсы, из открытых источников. Всё строится с нуля, собственный игровой мод, полностью кастомный интерфейс и игровой лаунчер.
      Что мы разрабатываем:
       
      - Рейтинговый режим с подбором по ELO. Равные соперники, честные матчи, путь от новичка до вершины таблицы.
      - Полностью кастомный интерфейс (CEF): меню, лобби, магазин и статистика такого уровня, какого на SA-MP почти не встретишь.
      - Легионеры - уникальные оперативники с индивидуальным дизайном и редкостью, открываются через боевой пропуск или чёрные ячейки (кейсы).
      - Скины на оружие и кейсы - коллекционная система в духе CS. -> В активной разработке
      - Киберспортивные команды: теги, ростеры, матчи команда против команды.
      - Тренировка аима, система рангов, ежедневные награды и не только.
       
      Продуманный баланс и внимание к деталям ванильного сражения - то, ради чего мы за это взялись.
      Проект уже на серьёзной стадии разработки. Мы открываем сообщество раньше официального анонса, чтобы первые скриншоты, новости и дата старта достались тем, кто был с нами с самого начала. Мы всегда рады открытой критике, или советам - сделаем игру лучше для всех!
      Подписывайтесь, чтобы не пропустить официальное заявление о запуске и первые материалы проекта.
       
      Группа VK: https://vk.ru/verdictcs
      Официальная почта: verdictproject@mail.ru
    • Kevin_McCarthy
      By Kevin_McCarthy
      🔒 ОТКРЫТИЕ НАБОРА НА ЗАКРЫТОЕ БЕТА-ТЕСТИРОВАНИЕ (ЗБТ)!
      Друзья! Мы выходим на самый ответственный этап разработки Brilliant RP. Проект уже практически готов к полноценному запуску, но перед тем как открыть двери для всех игроков, нам нужно тщательно проверить каждую систему, каждую работу и каждую строчку кода.
      Именно поэтому мы объявляем о старте Закрытого Бета-Тестирования!
      🏆 ТОП-3 ТЕСТЕРА ПОЛУЧАТ КРУТЫЕ ПРИЗЫ!
      Мы высоко ценим время и вклад каждого участника. Тестеры, которые проявят наибольшую активность, найдут больше всего уникальных багов и подробно опишут их в нашей Google-форме, получат ценные награды:
      🥇 1 МЕСТО: 3000 рублей на кошелек, 100.000$ игровой валюты, и Diamond VIP на 30 дней
      🥈 2 МЕСТО: 2000 рублей на кошелек, 75.000$ игровой валюты, и Diamond VIP на 30 дней
      🥉 3 МЕСТО: 1000 рублей на кошелек, 50.000$ игровой валюты, и Diamond VIP на 30 дней
      📝 Как стать участником ЗБТ?
      Заполни заявку на участие: 👉 https://vk.ru/gtasamp_brilliantrp
      Дождись одобрения.
    • OOLOAIS
      By OOLOAIS
      Ищу скрипт для самп/crmp который может скопировать акссесуары с аризоны/родины пж помогите