Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 6 из 6
  1. #1
    Аватар для Skipter
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.10.2016
    Сообщений
    41
    Репутация:
    0 ±

    tdw_dialog и динамический template

    Приветствую, господа.

    Решил попробовать использовать TDW Dialog library от VVWVV. Принципе все изначально понравилось, но возникла одна проблема, которая поставила меня в ступор.

    Допустим, есть какая-то функция SomeFunc в которой, например, используется cache_get_row_count, и цикл на rows. Но каким же образом мне формировать диалог, если переменная rows не будет видна в template, который должен находится з-за пабликом? Глобальная переменная? Это уже мазохизм какой-то будет...

    1. public SomeFunc() {
    2.  
    3. new
    4. rows;
    5.  
    6. cache_get_row_count(rows);
    7.  
    8. for(new i; i < rows; i ++) {
    9. // и что дальше?
    10. }
    11. }


    Как бы это выглядело на стандартном процессоре диалогов:

    1. public SomeFunc(playerid) {
    2.  
    3. new
    4. rows;
    5.  
    6. cache_get_row_count(rows);
    7.  
    8. for(new i; i < rows; i ++) {
    9. format(string, sizeof string, "%s\n%s", string, massive_var);
    10. }
    11. return ShowPlayerDialog(playerid, DIALOG_STYLE_LIST, "test", string, "button1", "");
    12. }

  2. #2
    Аватар для Geebrox
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.08.2015
    Адрес
    Ташкент
    Сообщений
    375
    Репутация:
    97 ±
    Можно подробнее что ты хочешь сделать и что не получается? Я не очень понял проблему, но возможно тебе нужно использовать аргументы функции.
    Респект:
    @DeimoS
    @ziggi
    @Daniel_Cortez

  3. #3
    Аватар для Skipter
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.10.2016
    Сообщений
    41
    Репутация:
    0 ±
    В базу вписаны какие-то значения. Мне нужно их оттуда достать и вывести в диалог. Я делаю SELECT запрос. И в паблике, который указал в аргументе mysql_tquery, делаю цикл(в примерах выше), но дальше - тупик.

    Если в обычном обработчике диалогов это делается через format + ShowPlayerDialog, то здесь же нужно составлять template, который должен находится отдельно и там формировать диалог, но переменная rows для него "вне зоны видимости".

    Если не понятно, то попробуй просто написать код, который достал бы те значения и запихнул их в диалог, используя tdw_dialog.

  4. #4
    Аватар для Geebrox
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.08.2015
    Адрес
    Ташкент
    Сообщений
    375
    Репутация:
    97 ±
    Цитата Сообщение от Skipter Посмотреть сообщение
    В базу вписаны какие-то значения. Мне нужно их оттуда достать и вывести в диалог. Я делаю SELECT запрос. И в паблике, который указал в аргументе mysql_tquery, делаю цикл(в примерах выше), но дальше - тупик.

    Если в обычном обработчике диалогов это делается через format + ShowPlayerDialog, то здесь же нужно составлять template, который должен находится отдельно и там формировать диалог, но переменная rows для него "вне зоны видимости".

    Если не понятно, то попробуй просто написать код, который достал бы те значения и запихнул их в диалог, используя tdw_dialog.
    что мешает передать переменную rows как аргумент для template? как указанно в примере tdw_dialog:
    PHP код:
    dialog [<атрибуты>] название_функции(аргументы)
    {
        
    // код..

    исходя из этого:

    PHP код:
    dialog [templateимя_функции(playeridrows)
    {
        
    //обработка

    Респект:
    @DeimoS
    @ziggi
    @Daniel_Cortez

  5. Пользователь сказал cпасибо:
    Skipter (24.01.2019)
  6. #5
    Аватар для Skipter
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.10.2016
    Сообщений
    41
    Репутация:
    0 ±
    1. new variable;
    2. variable = 24;
    3. ShowDialog(playerid, dfunc: DIALOG_TEST);

    1. dialog [template] DIALOG_TEST(playerid, variable)
    2. {
    3. printf("var: %d", variable);
    4. }

    Результат: 12
    Последний раз редактировалось Skipter; 24.01.2019 в 22:29.

  7. #6
    Аватар для Skipter
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.10.2016
    Сообщений
    41
    Репутация:
    0 ±
    Проблема решена.

    Форматируем текст и напрямую вызываем OpenDialog без template.

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •