Простите не сильно разбираюсь в скриптах (вообще не разбираюсь), глупый вопрос...
Как поставить задержу на вывод ответа в Говоруне ?..
Пытался втюхивать :
"tmr = TmrMan.AddTimer (5000)
function OnTimer(tmr) "
в разные места основной функции... выходило какоето зацикливание , и бот писал 30 раз ответ в один момент ,и повторял каждые 5 секунд , через 5 секунд после ввода команды ключа.... собственно тело старого доброго говоруна
Код: Выделить всё
BotName = "Bot" -- имя бота
BotDesc = "Ня ^^" -- описание бота
BotEmail = "email" -- email бота
TableName = {
}
trigs = {
}
Rus={["А"]="а",["Б"]="б",["В"]="в",["Г"]="г",["Д"]="д",["Е"]="е",["Ё"]="ё",["Ж"]="ж",["З"]="з",["И"]="и",["Й"]="й",["К"]="к",["Л"]="л",["М"]="м",["Н"]="н",["О"]="о",["П"]="п",["Р"]="р",["С"]="с",["Т"]="т",["У"]="у",["Ф"]="ф",["Х"]="х",["Ц"]="ц",["Ч"]="ч",["Ш"]="ш",["Щ"]="щ",["Ъ"]="ъ",["Ы"]="ы",["Ь"]="ь",["Э"]="э",["Ю"]="ю",["Я"]="я"}
function OnStartup()
if (_VERSION == "Lua 5.1.1") or (_VERSION == "Lua 5.1") then
TableMaxSize = table.maxn
elseif (_VERSION == "Lua 5.0.2") then
TableMaxSize = table.getn
end
Core.RegBot(BotName, BotDesc, BotEmail, true)
end
function ChatArrival(curUser, data)
if TableName[curUser.sNick] ~=1 then if string.sub(data, 1, 1) then
data=string.sub(data,1,string.len(data)-1)
s,e,cmd,RestOfText = string.find( data, "%b<>%s+(%S+)%s+(.*)" )
if RestOfText == nil then
RestOfText = ""
s,e,cmd = string.find( data, "%b<>%s+(%S+)" )
end
end
s,e,mess = string.find(data, "^%b<>%s(.*)$")
for key in pairs(trigs) do
if mess then
for b,s in pairs(Rus) do
data=string.gsub(data , b, Rus[b])
if( string.find(data, key) ) then
answer, x = string.gsub(trigs[key][math.random(1,TableMaxSize(trigs[key]))], "%b[]", curUser.sNick)
Core.SendToAll("<"..curUser.sNick.."> "..cmd.." "..RestOfText)
Core.SendToAll("<"..BotName.."> "..answer )
return true
end
end
if( string.find( string.lower(mess), key) ) then
answer, x = string.gsub(trigs[key][math.random(1,TableMaxSize(trigs[key]))], "%b[]", curUser.sNick)
Core.SendToAll("<"..curUser.sNick.."> "..cmd.." "..RestOfText)
Core.SendToAll("<"..BotName.."> "..answer )
return true
end
end
end
end
end