Система простых записей журнала действий

Активный
Статус
Сообщения
516
Лайки
32

8

месяц на сайте

Идея и назначение

Система сохраняет важные действия игроков в простой журнал в памяти.

Подходит для отладки и быстрой проверки недавних событий.


Суть реализации

1. Храним последние N записей лога в массиве строк.

2. Добавляем функцию добавления записи.

3. Команда /showlog показывает несколько последних строк.


Реализация

Код:
#define LOG_LINES 32

new LogBuffer[LOG_LINES][96];
new LogIndex;


stock AddLogEntry(const text[])
{
    format(LogBuffer[LogIndex], sizeof LogBuffer[], "%s", text);
    LogIndex++;
    if(LogIndex >= LOG_LINES) LogIndex = 0;
}


CMD:showlog(playerid)
{
    SendClientMessage(playerid, -1, "Последние строки журнала:");

    new idx = LogIndex;

    for(new i = 0; i < LOG_LINES; i++)
    {
        if(LogBuffer[idx][0] != '\0')
            SendClientMessage(playerid, -1, LogBuffer[idx]);

        idx++;
        if(idx >= LOG_LINES) idx = 0;
    }

    return 1;
}


Дополнительные идеи

1. Записывать в лог входы, выходы и команды игроков.

2. Сохранять журнал в файл при рестарте.

3. Ограничить просмотр лога только администраторам.
 

1 человек читают эту тему (Всего: 1, Пользователей: 0, Гостей: 1)

Сверху