PDA

Просмотр полной версии : [Вопрос] Формат строки



Killer
20.05.2017, 16:50
stock AZSProds(playerid)
{
new str[90], str2[2048], str3[30];
for(new i = 1; i <= TOTALBENZ; i++)
{
if(AZSProd[i][pToplivo] == 1) str3 = "Бензин";
else str3 = "Бензин";
format(str, sizeof(str), "Тест\tsss\tsss\n%i\t%i т\t%s\t%i\t%s\n",i,AZSProd[i][pTill],str3, AZSProd[i][pPrice], AZSProd[i][pName]);
strcat(str2, str);
}
if(TOTALBENZ == 0) return ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Заказы", "Новых заказов нет", "Закрыть", "");
ShowPlayerDialog(playerid,D_BIZZ+4, DIALOG_STYLE_TABLIST_HEADERS, "Список заказов", str2, "Взять", "Отмена");
return 1;
}

Как сделать, чтобы - Тест\tsss\tsss, не повторялись по несколько раз?

Нужно их отдельнить.

DeimoS
20.05.2017, 17:11
Просто вынеси текст за тело цикла и всё.
Хотя я бы сделал вообще так:


stock AZSProds(playerid)
{
static
string[2048],
title[] = "Тест\tsss\tsss\n";
string = title;

for(new i = 1; i <= TOTALBENZ; i++)
{
format(string, sizeof(string), "%s%i\t%i т\t%s\t%i\t%s\n",
string,
i,
AZSProd[i][pTill],
(AZSProd[i][pToplivo] == 1 ? ("Бензин") : ("Бензин")),
AZSProd[i][pPrice],
AZSProd[i][pName]);
}
if(strlen(string) == sizeof(title)-1)
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Заказы", "Новых заказов нет", "Закрыть", "");
else
ShowPlayerDialog(playerid,D_BIZZ+4, DIALOG_STYLE_TABLIST_HEADERS, "Список заказов", string, "Взять", "Отмена");
return 1;
}

Killer
20.05.2017, 17:34
Как в title увеличить кол-во строк, ибо не всё показывает

DeimoS
20.05.2017, 17:49
Как в title увеличить кол-во строк, ибо не всё показывает

В каком смысле? Количество столбцов в диалоге нужно увеличить? Если да, то

stock AZSProds(playerid)
{
static
string[2048],
title[] = "Тест\tsss\tsss\tsss\tsss\n";
string = title;

for(new i = 1; i <= TOTALBENZ; i++)
{
format(string, sizeof(string), "%s%i\t%i т\t%s\t%i\t%s\n",
string,
i,
AZSProd[i][pTill],
(AZSProd[i][pToplivo] == 1 ? ("Бензин") : ("Бензин")),
AZSProd[i][pPrice],
AZSProd[i][pName]);
}
if(strlen(string) == sizeof(title)-1)
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Заказы", "Новых заказов нет", "Закрыть", "");
else
ShowPlayerDialog(playerid,D_BIZZ+4, DIALOG_STYLE_TABLIST_HEADERS, "Список заказов", string, "Взять", "Отмена");
return 1;
}

Killer
20.05.2017, 17:58
Я пытался так увеличить количество столбцов, в итоге:
показывает максимум 4, остальные не показывает (возможно длинные, нужно размер регулировать).

DeimoS
20.05.2017, 18:09
Найди вот тут (http://wiki.sa-mp.com/wiki/Dialog_Styles) DIALOG_STYLE_TABLIST_HEADERS и прочти описание :)

Killer
20.05.2017, 20:06
Блин, я просто не обратил внимание, думал не ограниченное количество колонок( закройте