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;
}
Ну и напоследок, по традиции скриншот. Команда получилась более-менее нормальной!
Жду ваших высказываний в комментариях
Последнее редактирование:
