Автор: denis 11.5.2010, 22:06
CODE
bot="xxx"
timer = 30 -- в минутах
messarray={
[[ ]],
}
function OnStartup()
tmr = TmrMan.AddTimer (timer*60*1000)
end
function OnTimer(tmr)
Core.SendToAll("<"..bot.."> "..messarray[math.random(1,#messarray)])
end
Можно сюда вставить ещё функцию запроса по команде?!
Автор: denis 12.5.2010, 17:11
[17:09] Синтаксис G:\xxx\scripts\xxx.lua:11: attempt to perform arithmetic on global 'timer' (a nil value)
Автор: Alexey 12.5.2010, 17:43
Замени
tmr = TmrMan.AddTimer (timer*60*1000)
на
tmr = TmrMan.AddTimer (iTimer*60*1000)
Автор: Ksan 12.5.2010, 18:25
Оп-с, забыл в одном месте исправить переменную.
В предыдущем сообщении подправил.
Автор: denis 12.5.2010, 21:10
пропускает команды в чат
[21:08:29] <xxx> ыв
[21:08:29] <Bad> !запрос<Bad> !запрос
менюшка не работает + отвечает на все фразы в чате(лишнее)
Ksan можешь просто добавить команду (без менюшки)
Автор: Артём 12.5.2010, 22:33
Если меню не нужно, удали
Код
function UserConnected(tUser)
Core.SendToUser(tUser, "$UserCommand 1 3 Запрос$<%[mynick]> !запрос|")
end
OpConnected,RegConnected = UserConnected,UserConnected
Автор: Ksan 12.5.2010, 22:33
Я не знаю, как ты базу заполнял, но у меня в таком виде работает нормально, и по запросу, и автоматом. Если попробуешь и снова не получится (не верю я, что не получится), то просто закомментишь строку отправления команды в меню.
А вот, собственно, и сам код:
Код
local sBot = "xxx"
local iTimer = 30 -- в минутах
tMessarray = {
" :huh: ",
" :ignoring: ",
" Через меню можно вызвать FAQ - ответы на частые вопросы.",
" Желающие зарегистрироваться в хабе могут это сделать через меню \"Регистрация\"",
}
math.randomseed(os.time())
function OnStartup()
tmr = TmrMan.AddTimer (iTimer*60*1000)
end
function OnTimer(tmr)
Core.SendToAll("<"..sBot.."> "..tMessarray[math.random(1,#tMessarray)])
end
function UserConnected(tUser)
Core.SendToUser(tUser, "$UserCommand 1 3 Запрос$<%[mynick]> !запрос&#*124;") -- в этой строке в конце нужно удалить звездочку *
end
OpConnected,RegConnected = UserConnected,UserConnected
function ChatArrival(tUser, sData)
local sData = sData:sub(1,-2)
local s,e, sMsg = sData:find("^%b<>%s(.*)$")
if sMsg:find("!запрос") then
Core.SendToAll("<"..sBot.."> "..tMessarray[math.random(1,#tMessarray)]) -- если надо отправить всем в чат
-- Core.SendToUser(tUser, "<"..bot.."> "..messarray[math.random(1,#messarray)]) -- если надо отправить только запрашивающему в чат, открываешь спереди эту строку и аналогично закрываешь (ставишь 2 этих знака --) предыдущую строку
return true
end
end
Для большей степени случайности добавил ещё одну строку:
Цитата
math.randomseed(os.time())
Да, чуть не забыл, в это строке надо удалить в конце звёздочку:
Код
Core.SendToUser(tUser, "$UserCommand 1 3 Запрос$<%[mynick]> !запрос&#*124;")
Думаю, из-за этого конца у тебя и не работало меню (я сам забыл в предыдущем скрипте пририсовать звёздочку)