Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Скрипты для VerliHub _ Скрипт выводящий раз в час сообщение

Автор: Ahton 28.9.2013, 18:22

Всем привет! Нигде не могу найти скрипта, который бы раз в час выводил текст, который можно задать в скрипте, в общий чат. Может у кого нибудь есть такое? поделитесь? big_smile.gif

Автор: Ksan 28.9.2013, 18:58

Ahton, по-моему, таких кусков кода (сообщение в чат по таймеру) в скриптах форума сотня, не меньше..
Но вот ради практики написал на скорую руку спешал фор ю небольшой скриптик, делающий только то, что вы просите.

Код
local iTime = 3600  -- это 1 час

tMessages = { -- при необходимости только одного сообщения, можно в списке оставить только одно, либо написать все одинаковыми текстами
    [1] = "Тестовое сообщение номер 1",
    [2] = "Тестовое сообщение номер 2",
    [3] = "Тестовое сообщение номер 3",
}

function OnStartup()
    TmrMan.AddTimer(iTime*1000, "MessageToChat")
end

function MessageToChat()
    Core.SendToAll(tMessages[math.random(#tMessages)])
end

function OnError(s)
    Core.SendToOpChat(s)
end


Примечание: в таблицу можно вписать любое количество любых сообщений (разных), будет выводить в случайном порядке через каждый час одно из них. Если надо только одно-единственное, то в списке оставьте только одно, либо в каждый пункт впишите одно и то же сообщение.
В конце скрипта функция, отправляющая в опчат сообщение с ошибкой скрипта, если по ходу работы свалится.

Скрипт мной не проверен, напишите сюда, как проверите.

Автор: Артём 28.9.2013, 19:33

Ksan, и он будет на верли работать? shocked.gif

Автор: Ksan 28.9.2013, 22:05

Опс, не заметил. :(
Впрочем, не первый раз уже..
Надо как-то иначе организовать названия тем - надо, чтоб обязательно присутствовало ключевое слово - Птока, Верли, Русхаб и т.д.

Вот, попытался первый раз в жизни сделать скриптик для Верлихаба. big_smile.gif Переделка скрипта выше, написанного под Птоку.

Код
local iTime = 3600  -- это 1 час(в секундах)

tMessages = { -- при необходимости только одного сообщения, можно в списке оставить только одно, либо написать все одинаковыми текстами
    [1] = "Тестовое сообщение номер 1",
    [2] = "Тестовое сообщение номер 2",
    [3] = "Тестовое сообщение номер 3",
}
math.randomseed(os.time())

function Main()
    _, sBot = VH:GetConfig ("config", "hub_security")
    iTimer = 0
end

function VH_OnTimer()
    iTimer = iTimer + 1
    if iTimer >= iTime then
        VH:SendDataToAll(tMessages[math.random(#tMessages)]) -- но если надо от имени бота, то откройте  строку ниже, закомментив эту (спереди строки написав два дефиса, как строкой ниже сейчас)
--        VH:SendDataToAll("<"..sBot.."> "..tMessages[math.random(#tMessages)])
        iTimer = 0
    end
end

Сам не проверял по причине отсутствия наличия Верли. big_smile.gif