PDA

Просмотр полной версии : [Вопрос] Баг в команде



iDiego
20.12.2014, 22:16
В общем, при вводе команде /admins, показывает Ник того игрока, кто ввёл 2 раза.
К примеру, iDiego вводит команду, и там:
Админы в сети:
iDiego (id: 0)
iDiego (id: 1)
В то время, что в игре онлайн два игрока, тобишь два администратора.
Вот команда:

CMD:admins(playerid, params[])
{
{
new str[256],full = 0;
SendClientMessage(playerid, 0xFFCC00AA, "Администрация в сети:");
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(p_info[i][p_admin] > 0)
{
new admrank[60];
if(p_info[i][p_admin] == 1){format(admrank,60,"{FF0000}[A] {FFFFFF}Модератор");}
else if(p_info[i][p_admin] == 2){format(admrank,60,"{FF0000}[A] {FFFFFF}Младший администратор");}
else if(p_info[i][p_admin] == 3){format(admrank,60,"{FF0000}[A] {FFFFFF}Администратор");}
else if(p_info[i][p_admin] == 4){format(admrank,60,"{FF0000}[A] {FFFFFF}Старший администратор");}
else if(p_info[i][p_admin] == 5){format(admrank,60,"{FF0000}[A] {FFFFFF}Зам. гл.администратра");}
else if(p_info[i][p_admin] == 7){format(admrank,60,"{FF0000}[A] {FFFFFF}Главный администратор");}
else if(p_info[i][p_admin] == 1337){format(admrank,60,"{FF0000}[A] {FFFFFF}Основатель");}
else if(p_info[i][p_admin] == 1339){format(admrank,60,"{FF0000}[A] {FFFFFF}Скриптер №2");}
else if(p_info[i][p_admin] == 1340){format(admrank,60,"{FF0000}[A] {FFFFFF}Скриптер");}
full++;
format(str,sizeof(str),"%s (ID: %d) - %s\n",p_info[playerid][p_nick],i,admrank);
SendClientMessage(playerid, 0xFFCC00AA, str);
}
}
if(full == 0) SendClientMessage(playerid, 0xFFCC00AA, "Администраторов нет в сети!");
}
return 1;
}
И еще, если не трудно, то подскажите, как сделать, чтобы при вводе команды, сбоку от Ника показывалось, АФК ли игрок.
К примеру: iDiego (id: 0) - AFK, если не афк - то пусто.
Сток сис-мы афк:

public AFKSystem()
{
for(new playerid;playerid < MAX_PLAYERS;playerid++)
{
if(IsPlayerConnected(playerid))
{
if(plafk[playerid] == 0) plafk[playerid] -= 1;
else if(plafk[playerid] == -1)
{
plafk[playerid] = 1;
new string[128];
format(string, sizeof(string), "АФК: %s", ConvertSeconds(plafk[playerid]));
SetPlayerChatBubble(playerid, string, 0xFFCC00AA, 10.0, 70000000);
}
else if(plafk[playerid] > 0)
{
new string[255];
plafk[playerid] += 1;
format(string, sizeof(string), "АФК: %s", ConvertSeconds(plafk[playerid]));
SetPlayerChatBubble(playerid, string, 0xFFCC00AA, 10.0, 70000000);
}
}
}
}

Osetin
20.12.2014, 22:23
CMD:admins(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] < 1)
return 1;

new
str[50];

SendClientMessage(playerid, C_GREEN, "Админы онлайн:");

foreach(Player, i)
{
if(PlayerInfo[i][pAdmin] < 1)
continue;

format(str, sizeof(str), "%s%s[%d] (%d lvl)", plafk[i] ? ("[AFK] ") : (""), sendername(i), i, PlayerInfo[i][pAdmin]);
SendClientMessage(playerid, C_YELLOW, str);
}
return 1;
}

Вам уже отвечали же...

http://pro-pawn.ru/showthread.php?10645

iDiego
20.12.2014, 22:35
Вам уже отвечали же...

http://pro-pawn.ru/showthread.php?10645

Всё точно также..

L0ndl3m
20.12.2014, 22:56
p_info[playerid][p_nick]
заменяете на

p_info[i][p_nick]
и всё.

iDiego
20.12.2014, 22:58
p_info[playerid][p_nick]
заменяете на

p_info[i][p_nick]
и всё.

Благодарю.