Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12
  1. #1
    Аватар для nikvlad
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.02.2016
    Сообщений
    94
    Репутация:
    2 ±

    Проблема с типом диалога DIALOG_STYLE_TABLIST_HEADERS

    Расскажу все по порядку: у меня есть система заказа продуктов в бизнес (человек вводит /business и заказывает продукты). Тому, кто работает развозчиком продуктов приходит оповещение (Есть заказ, введите /bizlist). Он вводит /bizlist и ему показывается заказ:
      Открыть/закрыть
    . Но, когда другой человек делает заказ из другого бизнеса, то заказ от другого человека замещает заказ от первого:
      Открыть/закрыть
    . А надо, чтобы они шли друг за другом:
      Открыть/закрыть
    .

    Вот код:
      Открыть/закрыть
    Код:
    stock ProductList(playerid)
    {
        static const //константы
            title[] = "Заказы", // заголовок
            head[] = "Бизнес\tПродуктов\tДоход\n", // подзаголовок
            body[] = "№ %i\t|%i шт. из 3000|\t%i\n"; // строки
        new // переменные
            str_title[sizeof(title)+1], // переменная заголовка
            str_body[(sizeof(head)+(sizeof(body))+1+1-2-2-2-2+3+4+5+(sizeof(body)))]; // переменная тела (подзаголовок,строки)
        format(str_title, sizeof(str_title), title, str_title); // форматируем в переменную str_title константу title. Получаем полноценный заголовок.
        format(str_body, sizeof(str_body), body, ProductInfo[TOTALPRODUCT][pBizzidprod]+1, ProductInfo[TOTALPRODUCT][pTillprod], ProductInfo[TOTALPRODUCT][pTillprod]+ProductInfo[TOTALPRODUCT][pTillprod]/2); // форматируем в переменную str_body константу body с параметрами ID бизнеса, заказано продуктов, оплата
    	strins(str_body, head, 0); // внедряем в переменную str_body (она отформатированна) константу head, причем head внедряется с 0 позиции.
    	if(TOTALPRODUCT == 0) return ShowPlayerDialog(playerid, 0, 0, "{96e300}Заказы", "Новых заказов нет.", "Закрыть", "");
    	ShowPlayerDialog(playerid, 5001, DIALOG_STYLE_TABLIST_HEADERS, str_title, str_body, "Принять", "Отмена");
    	return 1;
    }


    Помогите неумёхе, пожалуйста!

  2. #2
    Аватар для Desulaid
    Младший сержант

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    660
    Репутация:
    235 ±
    Это не помощь уже, а просьба, место которой на столе заказов(((9(9

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

    Статус
    Оффлайн
    Регистрация
    04.02.2016
    Сообщений
    94
    Репутация:
    2 ±
    Цитата Сообщение от Anton Styazhkin Посмотреть сообщение
    Это не помощь уже, а просьба, место которой на столе заказов(((9(9
    мне бы просто понять, почему так происходит

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

    Статус
    Оффлайн
    Регистрация
    04.05.2016
    Сообщений
    11
    Репутация:
    5 ±
    Код:
    stock ProductList(playerid)
    {
    	if(!TOTALPRODUCT) return ShowPlayerDialog(playerid, 0, 0, "{96e300}Заказы", "Новых заказов нет.", "Закрыть", "");
    	
    	new str_body[1024]; format(str_body, 32, "Бизнес\tПродуктов\tДоход\n");
    	for(new p = 0; p < TOTALPRODUCT; p++)
    	{
    		format(str_body, sizeof(str_body), "%s№ %i\t|%i шт. из 3000|\t%i\n", str_body, ProductInfo[p][pBizzidprod]+1, ProductInfo[p][pTillprod], ProductInfo[p][pTillprod]+ProductInfo[p][pTillprod]/2);
    	}
    	ShowPlayerDialog(playerid, 5001, DIALOG_STYLE_TABLIST_HEADERS, "{96e300}Заказы", str_body, "Принять", "Отмена");
    	return 1;
    }
    Не тестировал, но должно работать.)

    Это происходит потому, что ты не сделал цикл всех продуктов. Хотя не знаю что у тебя там в ProductInfo хранится.

    P.S. Размер переменных не вычислял. Нужно кол-во заказов умножать и т.п, а я ленивый)).
    Последний раз редактировалось SnyXes; 06.06.2016 в 00:34.

  5. Пользователь сказал cпасибо:
    nikvlad (07.06.2016)
  6. #5
    Аватар для $continue$
    Заблокирован

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,466
    Репутация:
    265 ±
    Нужно понять как эти заказы хранятся?

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

    Статус
    Оффлайн
    Регистрация
    04.02.2016
    Сообщений
    94
    Репутация:
    2 ±
    Цитата Сообщение от SnyXes Посмотреть сообщение
    Код:
    stock ProductList(playerid)
    {
    	if(!TOTALPRODUCT) return ShowPlayerDialog(playerid, 0, 0, "{96e300}Заказы", "Новых заказов нет.", "Закрыть", "");
    	
    	new str_body[1024]; format(str_body, 32, "Бизнес\tПродуктов\tДоход\n");
    	for(new p = 0; p < TOTALPRODUCT; p++)
    	{
    		format(str_body, sizeof(str_body), "%s№ %i\t|%i шт. из 3000|\t%i\n", str_body, ProductInfo[p][pBizzidprod]+1, ProductInfo[p][pTillprod], ProductInfo[p][pTillprod]+ProductInfo[p][pTillprod]/2);
    	}
    	ShowPlayerDialog(playerid, 5001, DIALOG_STYLE_TABLIST_HEADERS, "{96e300}Заказы", str_body, "Принять", "Отмена");
    	return 1;
    }
    Не тестировал, но должно работать.)

    Это происходит потому, что ты не сделал цикл всех продуктов. Хотя не знаю что у тебя там в ProductInfo хранится.

    P.S. Размер переменных не вычислял. Нужно кол-во заказов умножать и т.п, а я ленивый)).
    Я сделал по вашему коду, но появился такой артефакт:
      Открыть/закрыть

    То есть: когда заказывает 2-й человек, заменяются обе строки на новый заказ

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

    Статус
    Оффлайн
    Регистрация
    04.05.2016
    Сообщений
    11
    Репутация:
    5 ±
    Цитата Сообщение от nikvlad Посмотреть сообщение
    Я сделал по вашему коду, но появился такой артефакт:
      Открыть/закрыть

    То есть: когда заказывает 2-й человек, заменяются обе строки на новый заказ
    Покажи код, где добавляешь заказ (/business)

  9. Пользователь сказал cпасибо:
    nikvlad (07.06.2016)
  10. #8
    Аватар для nikvlad
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.02.2016
    Сообщений
    94
    Репутация:
    2 ±
    Цитата Сообщение от SnyXes Посмотреть сообщение
    Покажи код, где добавляешь заказ (/business)
    Код:
    			TOTALPRODUCT++;
    			ProductInfo[TOTALPRODUCT][pPriceprod] = products*2; // Цена за оплату (1 = 2)
    			ProductInfo[TOTALPRODUCT][pTillprod] = products;// Сколько продуктов было заказано
    			ProductInfo[TOTALPRODUCT][pBizzidprod] = bizid; // ID бизнеса
    			ProductInfo[TOTALPRODUCT][pStatusprod] = false; // Статус заказа. (При выполнении сделать 1)

  11. #9
    Аватар для SnyXes
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.05.2016
    Сообщений
    11
    Репутация:
    5 ±
    Код:
    stock ProductList(playerid)
    {
    	if(!TOTALPRODUCT) return ShowPlayerDialog(playerid, 0, 0, "{96e300}Заказы", "Новых заказов нет.", "Закрыть", "");
    	
    	new str_body[1024];
    	for(new p = 0; p < TOTALPRODUCT; p++)
    	{
    		format(str_body, sizeof(str_body), "%s\n№ %i\t|%i шт. из 3000|\t%i", str_body, ProductInfo[p][pBizzidprod]+1, ProductInfo[p][pTillprod], ProductInfo[p][pTillprod]+ProductInfo[p][pTillprod]/2);
    	}
            format(str_body, sizeof(str_body), "Бизнес\tПродуктов\tДоход\n%s", str_body);
    	ShowPlayerDialog(playerid, 5001, DIALOG_STYLE_TABLIST_HEADERS, "{96e300}Заказы", str_body, "Принять", "Отмена");
    	return 1;
    }
    Вот такой код у меня на сервере работает. Проверь.

  12. Пользователь сказал cпасибо:
    nikvlad (07.06.2016)
  13. #10
    Аватар для nikvlad
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.02.2016
    Сообщений
    94
    Репутация:
    2 ±
    Цитата Сообщение от SnyXes Посмотреть сообщение
    Код:
    stock ProductList(playerid)
    {
    	if(!TOTALPRODUCT) return ShowPlayerDialog(playerid, 0, 0, "{96e300}Заказы", "Новых заказов нет.", "Закрыть", "");
    	
    	new str_body[1024];
    	for(new p = 0; p < TOTALPRODUCT; p++)
    	{
    		format(str_body, sizeof(str_body), "%s\n№ %i\t|%i шт. из 3000|\t%i", str_body, ProductInfo[p][pBizzidprod]+1, ProductInfo[p][pTillprod], ProductInfo[p][pTillprod]+ProductInfo[p][pTillprod]/2);
    	}
            format(str_body, sizeof(str_body), "Бизнес\tПродуктов\tДоход\n%s", str_body);
    	ShowPlayerDialog(playerid, 5001, DIALOG_STYLE_TABLIST_HEADERS, "{96e300}Заказы", str_body, "Принять", "Отмена");
    	return 1;
    }
    Вот такой код у меня на сервере работает. Проверь.
    Не получается. Везде нулевые значения.

 

 
Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Ваши права

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