Гайд LOGS | Логи для вашего сервера [MYSQL]

#HunterScripts

Потрачен
Автор темы
15
8
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Здравствуйте, уважаемые пользователи Blast.hk!

Этот урок несет за собой смысл научить Вас создавать лог действий администратора с помощью СУБД MySQL.

Принцип:
Администратор кикает игрока Ivan_Ivanov с причиной: "noob", данное действие записывается в Базу Данных, где главный администратор сервера может просмотреть действия своих администраторов.
При определенных знаниях MySQL и PHP, можно вывести в отдельную php-страницу для удобства.




Начнем.
1. Создаем в своей Базе Данных таблицу "logsadmin"


Далее переходим непосредственно в мод.
2. Создаём в любом месте:

C++:
stock Adminlog(admin, player, action[], amount, reason[])
{
    new query[512];
    format(query, sizeof(query), "INSERT INTO `logsadmin` (`admin`, `adminIP`, `player`, `action`, `amount`, `reason`, `date`) VALUES ( '%s', '%s', '%s', '%s', '%d', '%s', NOW() )",
    Name(admin), GetIp(admin), Name(player), action, amount, reason);
    mysql_function_query(1, query, true, "", "");
}


Пояснения:
admin = Ник-нейм администратора.
player = Игрок, над которым совершались действия. (Пример: кикнут игрок Ivan_Ivanov - записываем его)
action[] = Действия. (Пример: Kick)
amount = Значение. (Пример: Игрок Ivan_Ivanov посажен в тюрьму на 30 минут - записываем значение 30)
reason[] = Причина. (Пример: Игрок Ivan_Ivanov кикнут с причиной: "noob" - записываем "noob")
`logsadmin` = Ваша таблица для записи.
Name(admin) = Моя функция распознавания ника, можете заменить на своё.
GetIp(admin) = Моя функция распознавания IP-адреса, можете заменить на своё.



Ко всем командам мы добавляем:
C++:
Adminlog(playerid, params[0], "KICK,BAN,WARN и т.д.", 0, params[1]); // Записываем в базу ID администратора (выше: admin), ID кикнутого игрока (выше: player), действие над игроком (выше: action[]), значение (выше: amount), причина (выше: reason[]).


Надеюсь, я всё правильно и понятно объяснил.
Если у Вас возникают вопросы по данной теме, Вы можете мне их задать.

Модераторы, если данная тема уже имеется, просьба понять и простить.

Автор идеи и написания урока: Mazzilla
 
У

Удалённый пользователь 236316

Гость
Мне кажется 512 ячеек много слишком, можно поменьше сделать
 

#HunterScripts

Потрачен
Автор темы
15
8
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

Vovich

HOT
Проверенный
717
197
Нерациональное использование информации.
Кто вообще так БД проектирует?
У тебя один администратор, который может совершить действие, а значит итого более рационально создать таблицу с информацией про администратором и в каскаде связать ее с другой таблицей, уже в которой будет действие, а при надобности выводить две таблицы.
Почему? Потому что запросы будут обрабатываться намного быстрее, и размер будет меньше, то есть в случае бэкапа тоже нужно будет меньше ждать времени, и меньше вероятность того, что что-то пойдет не так.
И кроме того записи нужно было делать транзакциями, ведь в случае ошибки, данные потеряются, как старые так и новые, и возможны неполадки в работе.