Вопросы

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");

 

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


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

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

  • 0
trevison
Активный

в OnDialogResponse

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

 

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

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


Ссылка на сообщение
  • 0
elishanky
Новичок

@trevison Так не б

  В 12/3/2023 в 15:17, trevison сказал:

в OnDialogResponse

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

 

Читать далее...  

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

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


Ссылка на сообщение
  • 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;
}

 

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

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


Ссылка на сообщение
  • 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` будет вызвана, и в зависимости от выбранного элемента будет выполнен соответствующий код. Вам нужно добавить свой код обработки для каждого варианта.

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


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

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

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

    • ANIME_TOP12YLTRA
      От ANIME_TOP12YLTRA
      Помогите пожалуйста у меня еррор при компиляции
      C:\RED RUSSIA GAMES - МОД\pawno\include\customtune.inc(179) : error 001: expected token: ";", but found "["
      C:\RED RUSSIA GAMES - МОД\pawno\include\customtune.inc(179) : error 029: invalid expression, assumed zero
      C:\RED RUSSIA GAMES - МОД\pawno\include\customtune.inc(179) : warning 221: label name "E_HANDLING_PARAMS" shadows tag name
      C:\RED RUSSIA GAMES - МОД\pawno\include\customtune.inc(179) : error 001: expected token: ";", but found "]"
      C:\RED RUSSIA GAMES - МОД\pawno\include\customtune.inc(179) : fatal error 107: too many error messages on one line
      Compilation aborted.
      Pawn compiler 3.2.3664              Copyright (c) 1997-2016, ITB CompuPhase

      4 Errors.
       
      код - g_VehHandlingInfo[veh][E_HANDLING_PARAMS:j] = 0.0;