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

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

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

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

Команда /astats - Статистика Администратора

Понравился ли Вам гайд?


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

Adamchik

Новичок
Приветствую, уважаемые форумчане. Сегодня я решил выложить свою команду, которая показывает статистику администратора - /astats.
Надеюсь Вам понравится, прошу не кидаться тапками


Создаем следующие столбцы в в таблице аккаунтов:​
PHP:
aban, awarn, akick, arep, amute
Ко всем enum:​
PHP:
enum player
{
	ABAN, //статистика банов админа
	AREP, //статистика репортов админа
	AKICK, //статистика киков админа
	AMUTE, //статистика мутов админа
	AWARN //статистика варнов админа
}
В загрузку аккаунта:​
PHP:
	    cache_get_value_name_int(0, "aban", player_info[playerid][ABAN]);
	    cache_get_value_name_int(0, "arep", player_info[playerid][AREP]);
	    cache_get_value_name_int(0, "akick", player_info[playerid][AKICK]);
	    cache_get_value_name_int(0, "amute", player_info[playerid][AMUTE]);
	    cache_get_value_name_int(0, "awarn", player_info[playerid][AWARN]);

Ко всем командам:​
PHP:
CMD:astats(playerid, params[])
{
	if(player_info[playerid][ADMIN] < 5) return 1;
	if(!IsPlayerConnected(playerid)) return SCM(playerid, COLOR_GREY, "Такого игрока нет");
	if(sscanf(params, "us[150]", params[0])) return SCM(playerid, COLOR_GREY, "Используйте /astats [ид игрока]");
	{
		if(player_info[playerid][ADMIN] == 0) return SCM(playerid, COLOR_GREY, "Данный игрок не является администратором");
		{
			new string_astats[256], string[256];
			format(string, sizeof(string), "{FF8000}Администратор: %s", player_info[params[0]][NAME]);
			strcat(string_astats, string);
			format(string, sizeof(string), "\n\n\n{eeff00}Количество забаненных: %d", player_info[params[0]][ABAN]);
			strcat(string_astats, string);
			format(string, sizeof(string), "\n\n{eeff00}Количество репортов: %d", player_info[params[0]][AREP]);
			strcat(string_astats, string);
			format(string, sizeof(string), "\n\n{eeff00}Количество киков: %d", player_info[params[0]][AKICK]);
			strcat(string_astats, string);
			format(string, sizeof(string), "\n\n{eeff00}Количество варнов: %d", player_info[params[0]][AWARN]);
			strcat(string_astats, string);
			format(string, sizeof(string), "\n\n{eeff00}Количество мутов: %d", player_info[params[0]][AMUTE]);
			strcat(string_astats, string);
			SPD(playerid, 5598, DIALOG_STYLE_MSGBOX, "{FF8000}Статистика администратора", string_astats, "Закрыть", "");
		}
	}
	return 1;
}

Теперь у каждой команды (/ban /kick /warn /mute /ans, обновляем статистику:​
PHP:
new query[64];
player_info[playerid][AREP] += 1;
format(query, sizeof(query), "UPDATE `accounts` SET `arep` = '%d' WHERE `id` = '%d'", player_info[playerid][AREP], player_info[playerid][ID]);
mysql_query(dbHandle, query);
new query[64];
player_info[playerid][AKICK] += 1;
format(query, sizeof(query), "UPDATE `accounts` SET `akick` = '%d' WHERE `id` = '%d'", player_info[playerid][AKICK], player_info[playerid][ID]);
mysql_query(dbHandle, query);
new query[64];
player_info[playerid][AWARN] += 1;
format(query, sizeof(query), "UPDATE `accounts` SET `awarn` = '%d' WHERE `id` = '%d'", player_info[playerid][AWARN], player_info[playerid][ID]);
mysql_query(dbHandle, query);
new query[64];
player_info[playerid][ABAN] += 1;
format(query, sizeof(query), "UPDATE `accounts` SET `aban` = '%d' WHERE `id` = '%d'", player_info[playerid][ABAN], player_info[playerid][ID]);
mysql_query(dbHandle, query);
new query[64];
player_info[playerid][AMUTE] += 1;
format(query, sizeof(query), "UPDATE `accounts` SET `amute` = '%d' WHERE `id` = '%d'", player_info[playerid][AMUTE], player_info[playerid][ID]);
mysql_query(dbHandle, query);
Как должна выглядеть команда:​
PHP:
CMD:ans(playerid, params[])
{
	if(player_info[playerid][ADMIN] < 1) return 1;
	if(sscanf(params, "ds[49]", params[0], params[1])) return SCM(playerid, COLOR_LIGHTGREY, "Используйте /ans [id игрока] [сообщение]");
	if(GetPVarInt(params[0], "logged") != 1) return SCM(playerid, COLOR_LIGHTGREY, "Такого игрока нет");
	new string[128];
	format(string, sizeof(string), "Администратор %s[%d] для %s[%d]: %s", player_info[playerid][NAME], playerid, player_info[params[0]][NAME], params[0], params[1]);
	SCM(params[0], 0xff9945FF, string);
	SCMA(0xff9945FF, string);
	PlayerPlaySound(params[0], 1085, 0.0, 0.0, 0.0);
	AdmLog("logs/answerlog.txt",string);
    new query[64];
	player_info[playerid][AREP] += 1;
	format(query, sizeof(query), "UPDATE `accounts` SET `arep` = '%d' WHERE `id` = '%d'", player_info[playerid][AREP], player_info[playerid][ID]);
	mysql_query(dbHandle, query);
	return 1;
}
Ну и напоследок, по традиции скриншот. Команда получилась более-менее нормальной!​


Жду ваших высказываний в комментариях​
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу