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

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

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

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

Команда /warninfo - История Варнов Игрока

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

Adamchik

Новичок
Приветствую, уважаемые форумчане. Сегодня я решил выложить команду, вырезанную из мода Advance RP Copy by Leon v2.94, которая показывает статистику администратора - /warninfo.
Надеюсь Вам понравится, прошу не кидаться тапками


Создаем таблицу 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​


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