PDA

Просмотр полной версии : [Вопрос] Как в команде /member вывести название ранга текстом, а не цифрой?



Ne_nub
22.08.2016, 18:59
Думаю многие слышали про сервер Stage RolePlay ( не реклама ), хотелось бы реализовать систему /members ( у них это /om ), где был виден ник игрока и полное звание во фракции ( на DIALOG_STYLE_LIST ).

Команда вообщем вот такая:


else if(strcmp(cmd,"/members",true)==0)
{
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_GREY, "* Вы нигде не состоите!");
SendClientMessage(playerid, 0x059BD3AA, "Члены организации Online:");
new countmute = 0;
foreach(Player,i)
{
if (PlayerInfo[i][pMember] == teamnumber && IsPlayerConnected(i) && PlayerInfo[i][pAdmin] < 11)
{
new afktext[50];
if(GetPVarInt(i, "AFK_Time") > 1) { afktext = "AFK"; }
else if(GetPVarInt(i, "AFK_Time") <= 5) { afktext = "В игре"; }
format(stringer, sizeof(stringer), "");
countmute++;
if (PlayerInfo[i][pLeader] == teamnumber) format(stringer, sizeof(stringer), "[%d] %s ранг: Лидер [%s] [%d/3 выг.]{FFFFFF}", i, PlayerInfo[i][pNames],afktext,PlayerInfo[playerid][pDonateAdd]); //PlayerInfo[targetid][pRank] == 2)
else if (PlayerInfo[i][pMember] == teamnumber) format(stringer, sizeof(stringer), "[%d] %s ранг: %d [%s] [%d/3 выг.]{FFFFFF}", i, PlayerInfo[i][pNames], PlayerInfo[i][pRank],afktext,PlayerInfo[playerid][pDonateRankTime]);
if (strlen(stringer) > 1) SendClientMessage(playerid, 0xC0E1EEFF, stringer);
}
}
if(countmute == 0) SendClientMessage(playerid, COLOR_GREY, "* Нет игроков!");
else SendMes(playerid, COLOR_WHITE, "Всего: %d человек", countmute);
}

У меня пишет только ранг цифрой, что не очень отлично. Пробовал создать stock, что-то не очень получилось.

1lyad
11.09.2016, 01:50
http://i.imgur.com/5iojTZM.jpg?1

Используй DIALOG_STYLE_TABLIST или DIALOG_STYLE_TABLIST_HEADER.
Делаешь 2 переменные стринга.
Создаешь цикл, в котором и проверяешь является ли игрок сотрудником организации игрока, который ввёл /members.
В этом же цикле делаешь проверку на состояние игрока.
Записываешь во вторую переменную стринга Данные об игроке, "id.\trank\tnickname\tсостояние\n"
Присоединяешь второй стринг к первому.
В конце выводишь диалог игроку.

Да поправят меня более опытные, если я что-то написал не так.