Иконка ресурса

Online players logger 1.0.0

Palonez

бб братки
Сообщения
3,035
Реакции
1,837
  • Автор ресурса
  • #1
Palonez добавил(а) новый ресурс:

Online players logger - Записывает в определенное время всех игроков на сервере в файл

Логгирует текущих онлайн-игроков в файл, в таком виде:
C-подобный:
19:46 | НАЙДЕНО ИГРОКОВ: 6
Nickname1
Nickname1
Nickname1
Nickname1
Nickname1
Nickname1

21:24 | НАЙДЕНО ИГРОКОВ: 3
Nickname1
Nickname1
Nickname1

Узнать больше об этом ресурсе...
 

WeSTMan

А вот тут текст!
Сообщения
833
Реакции
516
Прикольно, можно без kill timer и null.
Просто в OnMapStart ставишь в таймере флаг TIMER_FLAG_NOMAPCHANGE и все)
А можно просто 1 раз запустить в OnPluginStart, ну это что касается оптимизации. И ещё не боишься, что while может быть бесконечным?
Сообщения автоматически склеены:

Дополнение: delete не убивает таймер, на сколько я помню
Сообщения автоматически склеены:

Надо использовать KillTimer
 

Palonez

бб братки
Сообщения
3,035
Реакции
1,837
  • Автор ресурса
  • #3
Надо использовать KillTimer
убивает и нулит, но я еще раз нулю для подстраховки
а KillTimer нужно правильно уметь пользоваться, знаю я про него и его самого

И ещё не боишься, что while может быть бесконечным?
например?

Просто в OnMapStart ставишь в таймере флаг TIMER_FLAG_NOMAPCHANGE и все)
я таким не пользуюсь, а делаю так как мне удобно
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
можно без kill timer и null.
можно, даже хэндл сохранять не требуется
можно просто 1 раз запустить в OnPluginStart
можно, но не нужно, кмк
delete не убивает таймер
убивает
Надо использовать KillTimer
не обязательно:
Kills a timer. Use this instead of CloseHandle() if you need more options.
Сообщения автоматически склеены:

Почистил и оптимизировал плагин:
  • Вместо KeyValues время хранится в ArrayList (решена проблема с дублями, плюс сортирую время по порядку).
    В конфиге без разницы какие указывать ключи (главное, чтобы не пустые, емнип). Плагин будет работать и с оригинальным конфигом.
  • При чтении конфига значения проверяются на корректность (нельзя указать отрицательные значения и часы больше 23 или минуты больше 59).
    Правда часы обязательно нужно указывать в виде 2 цифр (01, 02, ..., 23).
  • При удачной загрузке конфига в консоль сервера будет писать сколько корректных записей было обнаружено в конфиге.
    На всякий случай оставил в исходнике код, который выводит отладочную информацию в консоль сервера (чтобы активировать нужно в 4-й строке установить значение 1).
  • Упростил работу таймера и код записи игроков в лог (заодно будет в логе указываться дата, кроме времени).
Сообщения автоматически склеены:

SM1.11:
//// OnlinePlayersLog 1.1.0.sp
//
// Code size:         7164 bytes
// Data size:         2808 bytes
// Stack/heap size:      16848 bytes
// Total requirements:   26820 bytes
//
// Compilation Time: 0,22 sec
// ----------------------------------------

//// OnlinePlayersLog 1.0.0.sp
//
// Code size:         5516 bytes
// Data size:         2636 bytes
// Stack/heap size:      17404 bytes
// Total requirements:   25556 bytes
//
// Compilation Time: 0,22 sec
// ----------------------------------------
 

Вложения

  • OnlinePlayersLog 1.1.0.sp
    3.4 КБ · Просмотры: 11
Последнее редактирование:

Palonez

бб братки
Сообщения
3,035
Реакции
1,837
  • Автор ресурса
  • #5
можно, даже хэндл сохранять не требуется

можно, но не нужно, кмк

убивает

не обязательно:
Сообщения автоматически склеены:

Почистил и оптимизировал плагин:
  • Вместо KeyValues время хранится в ArrayList (решена проблема с дублями, плюс сортирую время по порядку).
    В конфиге без разницы какие указывать ключи (главное, чтобы не пустые, емнип). Плагин будет работать и с оригинальным конфигом.
  • При чтении конфига значения проверяются на корректность (нельзя указать отрицательные значения и часы больше 23 или минуты больше 59).
    Правда часы обязательно нужно указывать в виде 2 цифр (01, 02, ..., 23).
  • При удачной загрузке конфига в консоль сервера будет писать сколько корректных записей было обнаружено в конфиге.
    На всякий случай оставил в исходнике код, который выводит отладочную информацию в консоль сервера (чтобы активировать нужно в 4-й строке установить значение 1).
  • Упростил работу таймера и код записи игроков в лог (заодно будет в логе указываться дата, кроме времени).
Сообщения автоматически склеены:

SM1.11:
//// OnlinePlayersLog 1.1.0.sp
//
// Code size:         7164 bytes
// Data size:         2808 bytes
// Stack/heap size:      16848 bytes
// Total requirements:   26820 bytes
//
// Compilation Time: 0,22 sec
// ----------------------------------------

//// OnlinePlayersLog 1.0.0.sp
//
// Code size:         5516 bytes
// Data size:         2636 bytes
// Stack/heap size:      17404 bytes
// Total requirements:   25556 bytes
//
// Compilation Time: 0,22 sec
// ----------------------------------------
Там есть один косяк, он правда не роляет особо, но может записать неправильное время в нужный момент, т.к. проверка идет каждые 60 сек, то плагин/сервер может запуститься в случайный промежуток времени текущей минуты и условно в 23:31 плагин посчитает, что было 23:30, т.к. счетчик стартует не от XX:00
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
@Palonez, время там не округляется.
С xx:yy.00 по xx:yy.59 будет считаться, что в данный момент xx часов yy минут.
Может не сработать только если карта запустилась в указанную в конфиге минуту и таймер сработает только на следующую (ну и смысла писать в лог в момент загрузки нет: на сервере нет никого в этот момент).
 
Сверху Снизу