[Question] Прошу помощи: как вывести игроку статистику игроков его фракции
#1

Столкнулся со следующей проблемой: Как вывести игроку статистику игроков его фракции онлайн в диалоге?

Натолкните меня в нужную сторону. P.S. Переменные string & sendername заявлены глобально.
Существующая попытка реализации:

PHP Code:
                new teamnumber;
                if (
PlayerInfo[playerid][pLeader] != 0teamnumber PlayerInfo[playerid][pLeader];
                else if (
PlayerInfo[playerid][pMember] != 0teamnumber PlayerInfo[playerid][pMember];
                else
                {
                    return 
SendClientMessage(playeridCOLOR_GRAD1"Вы не состоите во фракции.");
                }
                for(new 
0GetMaxPlayers(); i++)
                {
                    if (
IsPlayerConnected(i))
                    {
                        
GetPlayerName(isendernamesizeof(sendername));
                        if (
PlayerInfo[i][pLeader] == teamnumberformat(stringsizeof(string), "%s. Лидер.\n",sendernamePlayerInfo[i][pRank]);
                        else if (
PlayerInfo[i][pMember] == teamnumberformat(stringsizeof(string), "%s. Ранг: %d. Выговоров: [%d/3]\n",sendernamePlayerInfo[i][pRank], PlayerInfo[i][pFWarns]);
                    }
                }
                
ShowPlayerDialog(playerid,11111DIALOG_STYLE_MSGBOX"Участники Вашей фракции онлайн."string"ОКЕЙ"""); 
Спасибо.

P.S.S. Думаю вот использовать strcat...
Reply
#2

Правильно думаешь
Reply
#3

Попробовал. Получилась белиберда.

Как сделать корректнее?
Reply
#4

Quote:
Originally Posted by Eo
View Post
Попробовал. Получилась белиберда.

Как сделать корректнее?
Покажи, что у тебя вышло. В первом твоём сообщении этого нет.
Reply
#5

PHP Code:
                new teamnumber;
                if (
PlayerInfo[playerid][pLeader] != 0teamnumber PlayerInfo[playerid][pLeader];
                else if (
PlayerInfo[playerid][pMember] != 0teamnumber PlayerInfo[playerid][pMember];
                else
                {
                    return 
SendClientMessage(playeridCOLOR_GRAD1"Вы не состоите во фракции.");
                }
                new 
tmp[145]; // Допустим.
                
for(new 0GetMaxPlayers(); i++)
                {
                    if (
IsPlayerConnected(i))
                    {
                        
GetPlayerName(isendernamesizeof(sendername));
                        if (
PlayerInfo[i][pLeader] == teamnumberformat(stringsizeof(string), "%s. Лидер.\n",sendernamePlayerInfo[i][pRank]);
                        else if (
PlayerInfo[i][pMember] == teamnumberformat(stringsizeof(string), "%s. Ранг: %d. Выговоров: [%d/3]\n",sendernamePlayerInfo[i][pRank], PlayerInfo[i][pFWarns]);
                        
strcat(tmp,string);
                    }
                }
                
ShowPlayerDialog(playerid,11111DIALOG_STYLE_MSGBOX"Участники Вашей фракции онлайн."tmp"ОКЕЙ"""); 
Reply
#6

Quote:
Originally Posted by Eo
View Post
PHP Code:
                new teamnumber;
                if (
PlayerInfo[playerid][pLeader] != 0teamnumber PlayerInfo[playerid][pLeader];
                else if (
PlayerInfo[playerid][pMember] != 0teamnumber PlayerInfo[playerid][pMember];
                else
                {
                    return 
SendClientMessage(playeridCOLOR_GRAD1"Вы не состоите во фракции.");
                }
                new 
tmp[145]; // Допустим.
                
for(new 0GetMaxPlayers(); i++)
                {
                    if (
IsPlayerConnected(i))
                    {
                        
GetPlayerName(isendernamesizeof(sendername));
                        if (
PlayerInfo[i][pLeader] == teamnumberformat(stringsizeof(string), "%s. Лидер.\n",sendernamePlayerInfo[i][pRank]);
                        else if (
PlayerInfo[i][pMember] == teamnumberformat(stringsizeof(string), "%s. Ранг: %d. Выговоров: [%d/3]\n",sendernamePlayerInfo[i][pRank], PlayerInfo[i][pFWarns]);
                        
strcat(tmp,string);
                    }
                }
                
ShowPlayerDialog(playerid,11111DIALOG_STYLE_MSGBOX"Участники Вашей фракции онлайн."tmp"ОКЕЙ"""); 
И в чём проблема, что именно не работает?
Reply
#7

Примерный вид выводимого диалога:

Участники Вашей фракции онлайн.
Eo[0]. Лидер.
Eo[0]. Лидер.
Eo[0]. Лидер.
Eo[0]. Лидер.
Eo[0]. Лидер.
Eo[0]. Лидер.
Eo[0]. Лидер.
Eo[0]. Лидер.
Eo[0]. Лидер.

"Окей".
Reply
#8

pawn Code:
new teamnumber;
                if (PlayerInfo[playerid][pLeader] != 0) teamnumber = PlayerInfo[playerid][pLeader];
                else if (PlayerInfo[playerid][pMember] != 0) teamnumber = PlayerInfo[playerid][pMember];
                else
                {
                    return SendClientMessage(playerid, COLOR_GRAD1, "Вы не состоите во фракции.");
                }
                new tmp[145]; // Допустим.
                for(new i = 0; i < GetMaxPlayers(); i++)
                {
                    if (IsPlayerConnected(i))
                    {
                        GetPlayerName(i, sendername, sizeof(sendername));
                        if (PlayerInfo[i][pLeader] == teamnumber) format(string, sizeof(string), "%s. Лидер.\n",sendername, PlayerInfo[i][pRank]);
                        else if (PlayerInfo[i][pMember] == teamnumber) format(string, sizeof(string), "%s. Ранг: %d. Выговоров: [%d/3]\n",sendername, PlayerInfo[i][pRank], PlayerInfo[i][pFWarns]);
                        else continue;
                        strcat(tmp,string);
                    }
                }
                ShowPlayerDialog(playerid,11111, DIALOG_STYLE_MSGBOX, "Участники Вашей фракции онлайн.", tmp, "ОКЕЙ", "");
Попробуй это.
Reply
#9

format(string, sizeof(string), "%s. Лидер.\n",sendername, PlayerInfo[i][pRank]);
Зачем так делать? Кол-во параметров больше чем %s или %d
Reply
#10

Косяк. Бывает.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)