Автоочистка статистики

d3m37r4

111111
Сообщения
1,451
Реакции
1,177
Помог
10 раз(а)
Пока по-немногу изучаю Pawn, проникся идеей написать плагин автоматического сброса статистики через определенное количество месяцев в определенный день (в сети нашел только плагины сброса каждые n дней и сброс каждый месяц в определенный день). Проверку на сброс подсмотрел в csstats sql, за что автору плагина спасибо.
Получилось то, что представлено ниже под спойлером:
Код:
#include <amxmodx>

#define AUTORESET_DAY 2 // Какого числа делать сброс статистики.
#define AUTORESET_COUNT 2 // Число проверок (через сколько месяцев делать сброс статистики).
// Напр.: если 2, то проверяется первый месяц, второй, и на третий уже сброс.

public plugin_init() {
AutoStatsReset()
}

public AutoStatsReset() {
new szData[10], szCount[10]
get_time("%d", szData, charsmax(szData))

if(str_to_num(szData) == AUTORESET_DAY) {
szData[0] = 0
get_vaultdata("stats_clear", szData, charsmax(szData))
get_vaultdata("stats_count", szCount, charsmax(szCount))

new count = str_to_num(szCount)

if(!str_to_num(szData) && count == AUTORESET_COUNT) {
szCount[0] = 0
set_vaultdata("stats_clear", "1")
set_vaultdata("stats_count", "0")
// тут команда для очистки статистики
log_amx("Статистика сброшена, спустя %d мес.", count)
} else {
count ++
num_to_str(count, szCount, charsmax(szCount))
set_vaultdata("stats_clear","0")
set_vaultdata("stats_count", szCount)
log_amx("Статистика будет сброшена через %d мес.", AUTORESET_COUNT - count)
}
}
}

Перемудрил с условиями и запутался, не могу решить проблему со счетчиком проверок. Дело в том, что в день сброса статы, если карта меняется более одного раза, счетчик крутится и при AUTORESET_COUNT 2 за три смены карты уже сбрасывается стата.

Возможно ли как-то решить данную проблему?
2 Апр 2017
UPD. Пока писал первый пост, возникла идея, в определенный промежуток времени, например с 00ч:00 до 02ч:00 запускать таск и проверять минуты, и в определеное время чч:мм делать сброс, а после убирать таск, до следующего дня сброса. Сильно ли это будет грузить сервер? Возможны ли другие способы решения задачи?
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу