PDA

Просмотр полной версии : [Вопрос] Лидеры онлайн



DmX
01.02.2014, 12:16
Пробовал сделать лидеры онлайн, в итоге когда команду прописываю только 1 лидер записывается.



for(new i = 0; i < GetMaxPlayers(); i++)
{
if(PlayerInfo[i][pLead])
{
new string[124];
format(string,sizeof(string),"{FFFFFF}Лuдер %s %s[%d]\n",GetFracName(i),PlayerInfo[i][pName],i);
ShowPlayerDialog(playerid,0,0,"{00CC00}Лидеры онлайн:",string,"Принять","");
}
}

DeimoS
01.02.2014, 13:42
new string[124], strall[500];//Размер массива поменяй под нужный для отображения всех лидеров
for(new i = 0, j = GetMaxPlayers(); i < j; i++)
{
if(!IsPlayerConnected(i) || !PlayerInfo[i][pLead]) continue;
format(string,sizeof(string),"{FFFFFF}Лuдер %s %s[%d]\n",GetFracName(i),PlayerInfo[i][pName],i);
strcat(strall, string);
}
ShowPlayerDialog(playerid,0,0,"{00CC00}Лидеры онлайн:",strall,"Принять","");

Seregamil
01.02.2014, 14:15
new string[124], strall[500];
Это похоже на переливание воды из одной бочки в другую стаканом.
Не проще сразу отформатировать в одну переменную?

DeimoS
01.02.2014, 16:37
Это похоже на переливание воды из одной бочки в другую стаканом.
Не проще сразу отформатировать в одну переменную?
Как ты это себе представляешь?

UPD: Хотя можно так попробовать, но не проверял данный вариант

new string[500];//Размер массива поменяй под нужный для отображения всех лидеров
for(new i = 0, j = GetMaxPlayers(); i < j; i++)
{
if(!IsPlayerConnected(i) || !PlayerInfo[i][pLead]) continue;
format(string,sizeof(string),"%s{FFFFFF}Лuдер %s %s[%d]\n", string, GetFracName(i), PlayerInfo[i][pName],i);
}
ShowPlayerDialog(playerid,0,0,"{00CC00}Лидеры онлайн:",string,"Принять","");

Seregamil
01.02.2014, 16:40
Как ты это себе представляешь?

UPD: Хотя можно так попробовать, но не проверял данный вариант

new string[500];//Размер массива поменяй под нужный для отображения всех лидеров
for(new i = 0, j = GetMaxPlayers(); i < j; i++)
{
if(!IsPlayerConnected(i) || !PlayerInfo[i][pLead]) continue;
format(string,sizeof(string),"%s{FFFFFF}Лuдер %s %s[%d]\n", string, GetFracName(i), PlayerInfo[i][pName],i);
}
ShowPlayerDialog(playerid,0,0,"{00CC00}Лидеры онлайн:",string,"Принять","");

так и представляю, и этот вариант работоспособный.