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

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

MyDC.ru _ Запросы скриптов для PtokaX _ Время Стран.(Городов)

Автор: Тёмич 22.7.2010, 12:21

Всем привет!
Помогите со скриптом, чтобы каждые 6 часов или каждые 3 часа выводило в чат время зарубежных городов.

Например:
Московское время: 00:00
Петропавловск-Камчатский: 08:00
Япония 06:00
и.т.п

Сделайте такой скрипт пожалуйста, я в скриптах нефурычу сов сем.
Заранее Буду вам Благодарен.

http://mydc.ru/r/?http://time.yandex.ru/

Автор: Ksan 23.7.2010, 10:04

Если ты админ, должен фурычить.
Там делов-то... Даже яндекс не нужен.
Всего лишь составляешь таблицу с городами и дельтами времени относительно твоего времени, московского или мирового..
Потом ежёчасно (ежешестичасово или как хочешь) показываешь свое время, берешь из таблицы внесенные города и связанные с ними разницы времени, складываешь с местным временем и выводишь в чат попарно..
Можешь не благодарить. big_smile.gif

Автор: Тёмич 23.7.2010, 10:18

спс но не фига я не понел воще можешь сделать скрипт

Автор: STIVAN 23.7.2010, 14:31

мда....

Автор: Тёмич 23.7.2010, 14:35

Ну пожалуйста, сделайте этот скрипт, пожалуйста... nothing_to_say.gif nothing_to_say.gif nothing_to_say.gif

Автор: Артём 23.7.2010, 22:57

STIVAN
флудишь гад, мало того что спамишь по хабам пользователей этого форума, так ещё и флудишь. anger.gif

Автор: Тёмич 24.7.2010, 9:19

Что не кто не может сделать скрипт??? still_dreaming.gif

Автор: alex82 24.7.2010, 12:26

Тёмич

Мексиканский суслик может развивать скорость до 300 км/ч. Но не хочет. big_smile.gif

Надеюсь, намек понятен?

Автор: Тёмич 24.7.2010, 13:58

неа

Автор: Alexey 24.7.2010, 18:02

Держи:  a_TimeZones.lua ( 1.27 килобайт ) : 57


Автор: OLGA 31.8.2010, 21:40

Как убрать вывод часов в чат через определённое время, а оставить просмотр только через меню?

Автор: Saymon 31.8.2010, 21:45

OLGA, Пробуй big_smile.gif

 a_TimeZones.lua ( 1.11 килобайт ) : 31
 

Автор: OLGA 31.8.2010, 21:51

Saymon спасибо тебе огромное за помощь.

Автор: OLGA 3.9.2010, 2:58

Вот смотрите, из другова скрипта бота в списке юзеров, мне нужна помощь по часам.
Вот есть такая строчка: "Московское время: HOURS:MINUTES]",
она прописаная в скрипте, отображает время компьютера. что дописать к этой строчке чтоб время показывалось увеличеным на нужное количество часов, так как надо отображат время разных часовых поясов. нужен именно этот скрипт.Помогите пожалуйста.

Автор: Ksan 3.9.2010, 4:57

Нужно показать всю строку либо выложить скрипт сюда, так не очень понятно, что надо изменить-добавить.
И ещё - время в списке юзеров - моветон. Понты, неудобство и грузит.
Лучше ставь скрипт из этой темы, пусть смотрят время через меню.

Автор: OLGA 3.9.2010, 9:53

просто мне не нравится как отоброжается время в Норильске. хочу чтоб отоброжалось как московское или если не возможно то сделать отоброжение московского как в Норильскен. вот скрипт сам. надо так же поправить отображение сдвига календаря относительно Норильского пояса.

Раскрывающийся текст
Код
-- Этот скрипт конвертирован программой PtokaX LUA API Конвертор v0.9. Русская версия 09/02/10 00:35:31
--[[
    Для оформления фраз из таблицы tFormat[i]["tPhrases"] можно использовать:
    ------------------------------------------------------------------------------------------------------------------
        HOURS        -    часы
        MINUTES            -    минуты
        SECONDS            -    секунды
        DAY        -    число
        WEEK        -    неделя
        MONTH        -    месяц
        YEAR        -    год
        HUB        -    название хаба
        SHARE        -    шара хаба
        USERS        -    кол-во юзеров на хабе
    ------------------------------------------------------------------------------------------------------------------
]]--
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Конфиг бота:
    
    -- Таблица с названиями месяцев
    tMonths = {".01.", ".02.", ".03.", ".04.", ".05.", ".06.", ".07.", ".08.", ".09.", ".10.", ".11.", ".12."}
--math.random (
    tTimeZones = {--[[{"Москва:    ", 0 },]]{"Норильск: ", 4,}} -- Часовые пояса
    
    -- Таблица с названиями дней недели
    tWeeks = {"Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота", "Воскресенье"}

    -- Таблица с названиями едениц измерения шар
    tShareUnits = {"Б", "КБ", "МБ", "ГБ", "ТБ", "ПБ"}

    -- Таблица с блоками информации:
    -- (каждый блок состоит из: ["iInteval"] = время_в_секундах_для_смены_информации, ["sWhatBeforeInfo"] = символ_перед_инфомацией, ["tPhrases"] = таблица_с_инфомацией)
    tFormat = {
        [1] = {
            ["iInteval"] = 10,
            ["sWhatBeforeInfo"] = "[",
            ["tPhrases"] = {
                               "---==СЕРЕБРО==--- DChub]",
                               "Хозяин хаба: Otmorozov]",
                               "Оператор хаба: Алексашка]",
                               "Московское время: HOURS:MINUTES]",
                   "WEEK DAY MONTH YEAR г.]",
                               "Norilsk]",
                               "Юзеров на хабе: USERS]",
                               "Общая шара хаба: SHARE]",
            },
        },
    }
local nMSKOffset    = 0  -- смещение локального часового пояса относительно Москвы
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
function OnStartup()
    nMSKOffset = nMSKOffset * 3600
    for i,v in ipairs(tTimeZones) do
        v[2] = v[2] * 3600
    end
    sBot = SetMan.GetString(21)
    sHub = SetMan.GetString(0)
    tNeedToSend = {}
    AddTempToTable()

    tmr = TmrMan.AddTimer(1000)
end

function OnExit()
    for i, v in pairs(tFormat) do
        Core.SendToAll("$Quit "..v["sInformation"])
end

function OnError()
    OnExit()
end

function UserConnected(curUser)
    Core.GetUserAllData(curUser)
    table.insert(tNeedToSend, curUser.sNick)
end

OpConnected = UserConnected

function GetNickListArrival(curUser,sData)
    Core.GetUserAllData(curUser)
    table.insert(tNeedToSend, curUser.sNick)
    end
end
RegConnected = UserConnected

function OnTimer(tmr)
    for i, v in pairs(tFormat) do
        tFormat[i]["iTimer"] = v["iTimer"] + 1
        if tFormat[i]["iTimer"] > v["iInteval"] then
            tFormat[i]["iTimer"] = 1
            tFormat[i]["iStatus"] = v["iStatus"] + 1
            if v["iStatus"] > #v["tPhrases"] then
                tFormat[i]["iStatus"] = 1
            end
            Core.SendToAll("$Quit "..tFormat[i]["sInformation"])
            tFormat[i]["sInformation"] = v["sWhatBeforeInfo"]..DoGsub(v["tPhrases"][v["iStatus"]])
            Core.SendToAll("$OpList "..tFormat[i]["sInformation"])
        end
    end
    if tNeedToSend ~= {} then
        SendBotToNewUsers()
        tNeedToSend = {}
    end
end

function AddTempToTable()
    for i, v in pairs(tFormat) do
        tFormat[i]["iStatus"] = 1
        tFormat[i]["iTimer"] = 1
        tFormat[i]["sInformation"] = v["sWhatBeforeInfo"]..DoGsub(v["tPhrases"][1])
        Core.SendToAll("$OpList "..tFormat[i]["sInformation"])
    end
end

function DoGsub(sMsg)
    local sMsg = string.gsub(sMsg, "HUB", sHub)
    local sMsg = string.gsub(sMsg, "HOURS", tonumber(os.date("%H")))
    local sMsg = string.gsub(sMsg, "MINUTES", os.date("%M"))
    local sMsg = string.gsub(sMsg, "SECONDS", os.date("%S"))
    local sMsg = string.gsub(sMsg, "DAY", tonumber(os.date("%d")))
    local sMsg = string.gsub(sMsg, "WEEK", tWeeks[tonumber(os.date("%w"))] or tWeeks[7])
    local sMsg = string.gsub(sMsg, "MONTH", tMonths[tonumber(os.date("%m"))])
    local sMsg = string.gsub(sMsg, "YEAR", (os.date("%Y")))
    local sMsg = string.gsub(sMsg, "SHARE", DoShareUnits())
    local sMsg = string.gsub(sMsg, "USERS", Core.GetUsersCount())
    local sMsg = string.gsub(sMsg, "Norilsk", GetTime())
    return sMsg
end

function SendBotToNewUsers()
    for i , v in pairs(tNeedToSend) do
        local sUser = Core.GetUser(v,true)
        if sUser then
            for k, y in pairs(tFormat) do
                Core.SendToNick(sUser.sNick,"$OpList "..y["sInformation"])
            end
        end
    end
end


function GetTime()        -- кусок функции для показа времени в Норильске
    local nTime = os.time() - nMSKOffset
    local sTime = ""
    for i,v in ipairs(tTimeZones) do
        sTime = sTime.."\n"..v[1]..os.date("%T, %d %b", v[2] + nTime)
    end
    return sTime
end

function DoShareUnits()
    local iSize = Core.GetCurrentSharedSize()
    local stSize = #tShareUnits
    local iSize = tonumber(iSize)
    local sUserNits = ""
    for index = 1, stSize do
        if iSize < 1024 then
            sUserNits = tShareUnits[index]
            break
        elseif index == stSize then
            sUserNits = tShareUnits[stSize]
        else
            iSize = iSize / 1024
        end
    end
    return string.gsub(string.format("%0.2f %s", iSize, sUserNits), "%.", ",")
end
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Автор: Ksan 4.9.2010, 0:25

Ответ твоей предыдущей просьбе, судя по скрипту, такой:
вместо

Код
"Московское время: HOURS:MINUTES]",
                   "WEEK DAY MONTH YEAR г.]",

надо
Код
"Московское время: HOURS-4:MINUTES]",
                   "WEEK DAY MONTH YEAR г.]",

Однако возникает коллизия - заполночь в пределах с 0:00 до 3:59 местного времени для Московского времени появятся отрицательные числа для часов. Чтоб это исключить, нужно значительно переделать скрипт. Значительно - имею в виду больше, чем просто добавить пару-другу букв или цифр. big_smile.gif Плюс ещё проблема аналогичного свойства - изменится дата для Москвы - на 1 день больше получится. И тоже решение непростое.
А теперь подумай - а оно надо тебе? Не умножайте количество сущностей без необходимости. А показ времени другого города (тем более, Москвы) излишество, сомневаюсь, что для кого-то это является проблемой.

Автор: Nickolya 4.9.2010, 1:39

Ksan, так делать нельзя... Решение дано в скрипте. Если интересно - взгляни код, выкладываемый мной. Что будет неясно - спрашивай на хабе big_smile.gif
Итак, скрипт, мною как-то сделанный немного перековеркали, не в лучшую сторону, я вам скажу. Немного его переписал. Теперь таблица с временными поясами выглядит так:

Код
     -- Часовые пояса, 1 параметр здесь служит приставкой для времени и даты, первый параметр - смещение относительно текущего времени:
    tTimeZones = {
        --{0, "MSK"},
        {4, "NRSK_"},
    }

Таблицу вывода надо переписать вот так:
Код
    tFormat = {
        [1] = {
            ["iInteval"] = 10,
            ["sWhatBeforeInfo"] = "[",
            ["tPhrases"] = {
                "---==СЕРЕБРО==--- DChub]",
                "Хозяин хаба: Otmorozov]",
                "Оператор хаба: Алексашка]",
                "Московское время: HOURS:MINUTES]",
                "WEEK DAY MONTH YEAR г.]",
                "Норильское время: NRSK_HOURS:NRSK_MINUTES]",
                "NRSK_WEEK NRSK_DAY NRSK_MONTH NRSK_YEAR г.]",
                "Юзеров на хабе: USERS]",
                "Общая шара хаба: SHARE]",
            },
        },
    }

Как видите, для городов, где смещен часовой пояс, мы добавляем приставку к заменяемому параметру из таблицы tTimeZones.

Сам скрипт с исправлениями прикрепляю:  Informer_.lua ( 5.8 килобайт ) : 25


P.S.: OLGA, на форуме можно прикладывать файлы к сообщениям, делайте это, обменники тут в моде, как и код на всю страницу. И вы случайно не сам мисьё Otmorozov? big_smile1.gif

Автор: Ksan 4.9.2010, 2:22

Ага, ты прав. Я смотрел поверхностно.
Но всё же не так всё легко получилось, как я и говорил.
А во всем остальном (я про риторику о ненужности) я прав, думаю. Я не сторонник излишеств. big_smile.gif

Автор: OLGA 5.9.2010, 0:45

Nickolya, у меня ник как и на форуме на своём хабе, а этот ник моего знакомого, у него свой хаб, он прост пытался помочь мне со скриптом, да ток немного ступил, нифига не получилось у негог, а ник успел свой вбить када тестил, я его потом в скрипте сменю. И спасибо тебе огромное за скрипт. Очень огромное спасибо. Ты настоящий друг и джентельмен.

Ksan, я знаю что скрипты грузят сильно компьютер, я и так стараюсь не ставить лишнее, просто под словом лишнее мы каждый понимаем своё. Ты вот на пример считаешь этот скрипт ненужный, а мне вот например он наоборот нужен.