Adamchik
Новичок
Приветствую, уважаемые форумчане. Сегодня я решил выложить команду, вырезанную из мода Advance RP Copy by Leon v2.94, которая показывает статистику администратора - /warninfo.
Надеюсь Вам понравится, прошу не кидаться тапками
Создаем таблицу warn и в ней создаем столбцы:
Надеюсь Вам понравится, прошу не кидаться тапками
Создаем таблицу warn и в ней создаем столбцы:
PHP:
nick, warn, date, time, anick, reason
Ко всем дефайнам:
PHP:
#define SCM SendClientMessage
#define SPD ShowPlayerDialog
В конец мода:
PHP:
forward warninfo(playerid);
public warninfo(playerid)
{
new rows, string[295], data[11], time[9], anick[24], reason[34];
cache_get_row_count(rows);
format(string, sizeof(string), "{ffcf00}Дата и время\t\t Кем выдан\tПричина{FFFFFF}\n\n");
for(new i = 0; i < rows; i++)
{
cache_get_value_name(i, "date", data, 11);
cache_get_value_name(i, "time", time, 9);
cache_get_value_name(i, "anick", anick, MAX_PLAYER_NAME);
cache_get_value_name(i, "reason", reason, 34);
format(string, sizeof(string), "%s%s %s\t%s\t%s\n", string, data, time, anick, reason);
}
SPD(playerid, 91, DIALOG_STYLE_MSGBOX, "{ff5500}Действующие предупреждения", string, "Закрыть", "");
return 1;
}
В загрузку аккаунта:
PHP:
if(player_info[playerid][WARN] > 0)
{
new string[64];
format(string, sizeof(string), "Количество предупреждений: %d из 3. Подробнее: {63cfff}/warninfo", player_info[playerid][WARN]);
SCM(playerid, 0xE96C16FF, string);
SCM(playerid, 0xE96C16FF, "После 3 предупреждения аккаунт будет заблокирован");
}
Ко всем командам:
PHP:
CMD:warninfo(playerid, params[])
{
if(player_info[playerid][ADMIN] != 0)
{
if(player_info[playerid][ADMIN] < 1) return 1;
if(sscanf(params, "d", params[0])) return SCM(playerid, COLOR_GREY, "Используйте /warninfo* [id игрока]");
if(GetPVarInt(params[0], "logged") != 1) return SCM(playerid, COLOR_LIGHTGREY, "Такого игрока нет");
if(player_info[params[0]][WARN] == 0) return SPD(playerid, 90, DIALOG_STYLE_MSGBOX, "{e23a02}Действующие предупреждения", "{FFFFFF}На аккаунте игрока нет действующих предупреждений (варнов)", "Закрыть", "");
static const fmt_query[] = "SELECT * FROM `warns` WHERE `nick` = '%s' ORDER BY `warn` DESC LIMIT %d";
new query[sizeof(fmt_query)+(-2+MAX_PLAYER_NAME)+(-2+1)];
format(query, sizeof(query), fmt_query, player_info[params[0]][NAME], player_info[params[0]][WARN]);
mysql_tquery(dbHandle, query, "awarninfo", "i", params[0]);
SetPVarInt(params[0], "warninfo", playerid);
}
else if(player_info[playerid][ADMIN] == 0)
{
if(player_info[playerid][WARN] == 0) return SPD(playerid, 90, DIALOG_STYLE_MSGBOX, "{e23a02}Действующие предупреждения", "{FFFFFF}На Вашем аккаунте нет действующих предупреждений (варнов)", "Закрыть", "");
static const fmt_query[] = "SELECT * FROM `warns` WHERE `nick` = '%s' ORDER BY `warn` DESC LIMIT %d";
new query[sizeof(fmt_query)+(-2+MAX_PLAYER_NAME)+(-2+1)];
format(query, sizeof(query), fmt_query, player_info[playerid][NAME], player_info[playerid][WARN]);
mysql_tquery(dbHandle, query, "warninfo", "i", playerid);
}
return 1;
}
Вставляем запрос в команду /warn:
PHP:
new Hour, Minute, Second;
gettime(Hour, Minute, Second);
format(string, sizeof(string), "INSERT INTO `warns` (`nick`, `warn`, `date`, `time`, `anick`, `reason`) VALUES ('%s', '%d', '%02d-%02d-%02d', '%02d:%02d:%02d', '%s', '%s')", player_info[params[0]][NAME], player_info[params[0]][WARN], Year, Month, Day, Hour, Minute, Second, player_info[playerid][NAME], params[1]);
mysql_query(dbHandle, string);
Ну и напоследок, по традиции пару скриншотов:
Автор сие чуда: Leon
Вырезал: Adamchik
Вырезал: Adamchik
Жду ваших высказываний в комментариях
