SA-MP Forums Archive
[Question] Прошу помощи: как вывести игроку статистику игроков его фракции - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: [Question] Прошу помощи: как вывести игроку статистику игроков его фракции (/showthread.php?tid=298156)



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

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

Натолкните меня в нужную сторону. 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...


Re: [Question] Прошу помощи. - Crystal_Speed - 19.11.2011

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


Re: [Question] Прошу помощи. - Eo - 19.11.2011

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

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


Re: [Question] Прошу помощи. - Norck - 19.11.2011

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

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


Re: [Question] Прошу помощи. - Eo - 19.11.2011

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"ОКЕЙ"""); 



Re: [Question] Прошу помощи. - Norck - 19.11.2011

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"ОКЕЙ"""); 
И в чём проблема, что именно не работает?


Re: [Question] Прошу помощи. - Eo - 19.11.2011

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

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

"Окей".


Re: [Question] Прошу помощи. - Norck - 19.11.2011

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, "ОКЕЙ", "");
Попробуй это.


Re: [Question] Прошу помощи. - DiSE - 20.11.2011

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


Re: [Question] Прошу помощи: как вывести игроку статистику игроков его фракции - Eo - 20.11.2011

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