Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

/admins [Advance Role Play]

Статус
В этой теме нельзя размещать новые ответы.

$continue$

Умник
Доброго времени суток, уважаемые посетители портала Pawno-Info!
Сегодня я выложу функциональную команду /admins как на Advance Role Play.
К глобальным переменным:
PHP:
new array_write_id_player_specate[MAX_PLAYERS] = { INVALID_PLAYER_ID, ... };
В команду слежки за игроком:
PHP:
array_write_id_player_specate[playerid] = /* присвоем id игрока за которым следим */;
К командам:
PHP:
// DC_CMD (Daniel_Cortez)
CMD:admins(playerid) /* if(strcmp(cmd, "/admins", true) == 0) */
{
	new player_name_admins[MAX_PLAYER_NAME],
		string_five_admins[MAX_PLAYER_NAME + (13 + 4 * 2)],
		str_specate_admins_to_player[10],
		array_string_all_admins[512],
		string_admins[MAX_PLAYER_NAME + (13 + 4 * 2) + 33]; // Подсчитать
	if(player_info[playerid][pAdmin] == 0) return SendClientMessage(playerid, - 1, "У Вас нет прав использовать данную команду!"); // Ставим свою проверку на админку
	SendClientMessage(playerid, 0x33CC00AA, "Админы онлайн:");
	foreach(new i : Player) // for(new i = GetMaxPlayers()-1; i != -1; i--)
	{
	 	if(/* При цикле for !IsPlayerConnected(i) || */player_info[i][pAdmin] == 0 || /* Ставим свою проверку на авторизацию */) continue;
		GetPlayerName(i, player_name_admins, sizeof(player_name_admins));
		if(player_info[i][pAdmin] != 5)
		{
			format(string_five_admins, sizeof(string_five_admins), "%s[%d] (%d lvl)", player_name_admins, i, player_info[i][pAdmin]);
		}
		if(array_write_id_player_specate[i] != INVALID_PLAYER_ID)
  		{
			format(str_specate_admins_to_player, sizeof(str_specate_admins_to_player), "> /sp %d", array_write_id_player_specate[i]);
		}
		format(string_admins, sizeof(string_admins), "%s %s %s", player_info[i][pAdmin] == 5 ? ("Главный администратор") : string_five_admins, array_write_id_player_specate[i] != INVALID_PLAYER_ID ? str_specate_admins_to_player : (""), player_in_afk[i] == true ? ("{ff0000}AFK") : ("")); // Ставим свою проверку на АФК
  		strcat(array_string_all_admins, string_admins);
	}
	return SendClientMessage(playerid, 0x33CC00AA, array_string_all_admins);
}
OnPlayerDisconnect:
PHP:
		if(array_write_id_player_specate[playerid] != INVALID_PLAYER_ID)
		{
			array_write_id_player_specate[playerid] = INVALID_PLAYER_ID;
		}
                // Так же надо сделать, когда игрок за кем следим оффаеться
В команду окончание слежки:
PHP:
array_write_id_player_specate[playerid] = INVALID_PLAYER_ID;


P.S: Команда не тестировалась, оригинальный скрин /admins с Advance:

Так же приму идей для уроков/команд, писать в ЛС)

Автор: я ($continue$)

Просьба кто попробует использовать - отписать о работоспособности, по мере возможности приложить скрин:)
Заранее спасибо:)
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу