Заводишь переменную, которая бы означала номер страницы.
После делаешь такую функцию:
PHP код:
stock ShowBusinessList(playerid, page, max_page = 20)
{
if(page <= 0)
page = 1;
static
string[4096+1];
new last_iter = page*max_page+1,// У page минимальное значение должно быть не меньше 1 (указывай 1 при открытии диалога, а не 0)
i = last_iter-max_page-1;
if(last_iter > sizeof(BizInfo))
last_iter = sizeof(BizInfo);
string[0] = '\0';
for(; i < last_iter; i++)
{
format(string, sizeof(string), "%sБизнес %s бла бла бла\n", string, BizInfo[i][bizName]);
}
if(last_iter < sizeof(BizInfo))// Если максимальный ID итерации меньше числа бизнесов
{
strcat(string, "\nДалее");//Добавим кнопку "Далее"
}
if(page > 1)// Если страница больше одной
{
strcat(string, "\nНазад");//Добавим кнопку "Назад"
}
ShowPlayerDialog(playerid, ..., DIALOG_STYLE_LIST, "Бизнесы", string, "Выбрать", "Закрыть");
SetPVarInt(playerid, "BizPage", page);
return 1;
}
И в обработке делаешь так:
PHP код:
if(dialogid == ...)
{
if(!response)
return DeletePVar(playerid, "BizPage");
if(!strcmp(inputtext, "Далее"))
{
ShowBusinessList(playerid, GetPVarInt(playerid, "BizPage")+1);
}
else if(!strcmp(inputtext, "Назад"))
{
ShowBusinessList(playerid, GetPVarInt(playerid, "BizPage")-1);
}
else
{
listitem = listitem*page;// Узнаём ID бизнеса и записываем его в переменную listitem
// Тут делаем все нужные действия с бизнесом
}
return 1;
}
Общий принцип таков