Автор: Dan Claimant 23.6.2010, 0:21
Здравствуйте.
Перелопатил множество тем форума, и поиском и мануальным поиском с применением терпения, но не нашёл такой банальности, как готового скрипта для отключения других скриптов по времени.
Объясню ситуацию. У нас так завелось в правилах, что ругаться матом (как и во многих других местах) нельзя. Но мы всем операторским корпусом пошли на некоторые уступки перед пользователями, и разрешили материться ночью (типа, дети спят уже - теперь можно).
Совсем недавно решил перейти на PtokaX за его безграничные возможности в плане фишек с различными скриптами. До этого у нас стоял YnHub, который исправно резал мат по времени в диапазоне с 6:00 до 00:00
Вот собственно и вопрос, не помог бы кто-нить мне (а может быть и ещё кому-нить), и создать скрип, который будет отключать скрипт антимата с 00:00 до 6:00
Спасибо вам огромное заранее ))
П.С. На данный момент используется в качестве антимата скрипт Janus_HS_light_API2.lua
Автор: alex82 23.6.2010, 2:28
Код
sName = "antimat.lua" -- имя скрипта с которым работаем
iEnableHour = 16 -- час для включения скрипта
iDisableHour = 0 -- час для отключения
function OnStartup()
TmrMan.AddTimer(60000)
for _, tData in ipairs(ScriptMan.GetScripts()) do
if tData.sName == sName then
started,stopped = false,true
if tData.bEnabled then
started,stopped = true,false
end
return
end
end
assert(nil, "Скрипт \""..sName.."\" найден не был! Проверьте правильность настройки.")
end
function OnError()
ScriptMan.StopScript(ScriptMan.GetScript().sName)
end
function OnTimer()
local T = os.date("*t")
if stopped and T.hour == iEnableHour then
ScriptMan.StartScript(sName)
started,stopped = true,false
elseif started and T.hour == iDisableHour then
ScriptMan.StopScript(sName)
started,stopped = false,true
end
end
Код
sName = "antimat.lua"
function OnStartup()
TmrMan.AddTimer(60000)
end
function OnTimer()
local T = os.date("*t")
if stopped and T.hour == 6 then
ScriptMan.StartScript(sName)
started,stopped = true,false
elseif started and T.hour == 0 then
ScriptMan.StopScript(sName)
started,stopped = false,true
end
end
Автор: Ksan 23.6.2010, 2:49
Это легко организовать и в самом антимате - отключение и включение слежения за матами.
Автор: Dan Claimant 23.6.2010, 10:17
alex82, в момент старта скрипта выдало вот что:
Код
autoshutdown.lua:9: 'then' expected near 'end'
Цитата(Ksan @ 23.6.2010, 3:49)
Это легко организовать и в самом антимате - отключение и включение слежения за матами.
к сожалению, моих знаний в области lua (которых практически нет) маловато, чтобы организовать сие действие... при беглом просмотре Janus_HS_light_API2.lua никаких настроек по времени не нашёл...
Автор: Nickolya 23.6.2010, 12:11
Dan Claimant, я поправил код, попробуй теперь.
Автор: Dan Claimant 23.6.2010, 15:40
Nickolya, ну на сколько я понял алгоритм:
"если скрипт не запущен и время 6 - запустить "antimat.lua", а ежели запущен и время 0, тогда остановить "antimat.lua""
я установил время на "запустить в 16, если отключен", отключил антимат и оставил включённым этот скрипт - ничего не произошло... do nothing =)
Автор: Nickolya 23.6.2010, 19:08
А скрипт у тебя так и называется?
Код
sName = "antimat.lua"
Надо сменить эту настройку на имя твоего файла для работы скрипта. + Я внес 1 правку, скопируй код их поста
alex82'а выше заново.
Автор: Dan Claimant 23.6.2010, 20:06
спасибо огромеднейшее ))) теперь заработало...
ессно, я поменял "antimat.lua" на "Janus_HS_light_API2.lua", и в последней версии скрипта iDisableHour = 21
ровно в 21:00 по моим часам, скрипт выключился...
ещё раз спасибо. буду дальше наблюдать... а скрипт в эфир =)