Автор: STRELOK 16.1.2010, 14:30
Название: Рекорды
Версия: 1.1
Автор: STRELOK
Описание: Скрипт рекордов хаба
Изменения:
Версия 1.1:
- Добавлена возможность выводить рекорды хаба при подключении пользователя
- Добавлена функция включения и отключения вывода сообщений о новых рекордах
Для работы скрипта нужно скачать модуль files http://mydc.ru/topic2937.html?view=findpost&p=25266
Автор: Otshelnik-Fm 16.1.2010, 22:56
Спамит рекорд бот. Сделай вывод не чаще раз в 30 минут - так будет удобней
Автор: STRELOK 17.1.2010, 7:09
Если не хочешь чтобы бот писал
Цитата
Новый рекорд...
то перед строками
Код
Core.SendToAll("Новый рекорд пользователей на хабе: "..sTotalUsers.." !", sBot)
и
Код
Core.SendToAll("Новый рекорд шары на хабе: "..DoShareUnits(sTotalShare).." !", sBot)
Поставь
--Добавлена
Версия 1.1:- Добавлена возможность выводить рекорды хаба при подключении пользователя
- Добавлена функция включения и отключения вывода сообщений о новых рекордах
Автор: Otshelnik-Fm 17.1.2010, 15:53
Закомментировать то я смог. Но нужно именно чтобы он писал о рекордах, но не так часто! А то как включил скрипт впервые он засрал сообщениями чат. Вот и было предложение чтобы не отключить его, а сделать вывод, ну к примеру, раз в полчаса-раз в час.
Автор: STRELOK 17.1.2010, 16:14
Цитата(Otshelnik-Fm @ 17.1.2010, 17:53)
Закомментировать то я смог. Но нужно именно чтобы он писал о рекордах, но не так часто! А то как включил скрипт впервые он засрал сообщениями чат. Вот и было предложение чтобы не отключить его, а сделать вывод, ну к примеру, раз в полчаса-раз в час.
Тогда и обновление рекордов будет происходить раз в 1 час или раз 30 минут, т.к. обновление таблицы рекордов происходит по таймеру. После того, как время таймера вышло, запускается функция
UpdateHubStats и соответственно происходит обновление таблицы, и выводится сообщение о новом рекорде, если число оказывается больше того, что находится в таблице.
Автор: Serx 17.1.2010, 17:52
А если просто завести ещё 1 таймер для проверки был ли установлен новый рекорд за время его срабатывания?
Т.е. пусть таблица рекордов обновляется как и прежде, а проверка события установления рекорда по таймеру раз в полчаса
Автор: STRELOK 17.1.2010, 19:13
Цитата(Serx @ 17.1.2010, 19:52)
А если просто завести ещё 1 таймер для проверки был ли установлен новый рекорд за время его срабатывания?
Т.е. пусть таблица рекордов обновляется как и прежде, а проверка события установления рекорда по таймеру раз в полчаса
Делать этого не хочу. т.к. не вижу в этом смысла. Кому надо, то вот что надо сделать:
В функцию
OnStartup() добавить:
Код
Core.AddTimer(2, 1800000, "ShowHubStats")
Функцию
UpdateHubStats() переписать на:
Код
function UpdateHubStats()
local sTotalUsers = Core.GetUsersCount()
local sTotalShare = Core.GetTotalShare()
if sTotalUsers > tHubStat.MaxUsers then
tHubStat.MaxUsers = sTotalUsers
tHubStat.MaxUsersTime = os.time(os.date("*t"))
Files.SaveTable(sFile, tHubStat, "tHubStat")
end
if sTotalShare > tHubStat.MaxShare then
tHubStat.MaxShare = sTotalShare
tHubStat.MaxShareTime = os.time(os.date("*t"))
Files.SaveTable(sFile, tHubStat, "tHubStat")
end
end
В самый конец скрипта добавить функцию:
Код
function ShowHubStats()
local sTotalUsers = Core.GetUsersCount()
local sTotalShare = Core.GetTotalShare()
if sTotalUsers > tHubStat.MaxUsers then
Core.SendToAll("Новый рекорд пользователей на хабе: "..sTotalUsers.." !", sBot)
end
if sTotalShare > tHubStat.MaxShare then
Core.SendToAll("Новый рекорд шары на хабе: "..DoShareUnits(sTotalShare).." !", sBot)
end
end
PS: Не проверял.