myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
 
Ответить в данную темуНачать новую тему

> Общий подсчет сообщений

Теги
Нет тегов для показа
Invisible
сообщение 6.3.2011, 8:17
Сообщение #1


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 248
Регистрация: 14.7.2008
Из: Хабаровск
Пользователь №: 193
Спасибо сказали: 40 раз




Господа кто нибудь может сделать скрипт который будет подсчитать общее количество сообщений хаба, и отображать в Топике. То есть каждое сообщение юзера в чате +1 сообщение.

PS. ответы типо: Бред, Чушь, А зачем?, для чего? можно не писать.
Go to the top of the page
+Quote Post
Tsd
сообщение 6.3.2011, 9:26
Сообщение #2


Продвинутый участник
****

Группа: Пользователи
Сообщений: 176
Регистрация: 11.7.2008
Пользователь №: 171
Спасибо сказали: 182 раза




Идея неплоха. Прикручу у себя на хабе.

Go to the top of the page
+Quote Post
Ksan
сообщение 6.3.2011, 18:53
Сообщение #3


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 723
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 657 раз




Вот один из вариантов (название скрипта - MessCount.lua ) :
Сам скрипт ТУТ
Код
-- Скрипт показа общего числа сообщений чата в топике.
-- Автор: Ksan (aka Trans)
-- Дата: 06-03-2011
-- Где: г.Томск

-- Скрипт показа общего числа сообщений чата в топике.
-- При необходимости освободить топик для иных сообщений оператор может через меню отменить показ числа сообщений в топике. Потом сможет так же через то же меню восстановить.
-- Папка "MessCount" должна быть создана заранее.

local sBot = SetMan.GetString(21)
local bTopic = true
local sCountFile = Core.GetPtokaXPath().."scripts/MessCount/MessCount.txt"

tProfiles = {  -- Кто может ставить/отменять показ в топике
    [0]  = 1, -- Мастер
    [1]  = 1, -- ОПератор
    [2]  = 0, -- VIP
}

function OnStartup()
    dofile(sCountFile)
    if tMessCount == nil then
        tMessCount = { }
        tMessCount["MessCount"] = 0
    end  
end

function OpConnected(tUser)
    Core.SendToUser(tUser, "$UserCommand 1 3 << АДМИНКА >>\\Число сообщений в топик$<%[mynick]> !messcount&#*124;") -- тут звёздочку в конце удалить
end

function ChatArrival(tUser, sData)
--    Core.GetUserAllData(tUser)
    local sData = sData:sub(1,-2)
    local sCmd = sData:match("^%b<>%s+(%S+)")
    if tProfiles[tUser.iProfile] == 1 and sCmd == "!messcount" then
        bTopic = not bTopic
        if bTopic == true then
            Core.SendToUser(tUser, "<"..sBot.."> Число сообщений будет показываться в топике.")
        else
            Core.SendToUser(tUser, "<"..sBot.."> Число сообщений не будет показываться в топике.")
        end
        return true
    end
    tMessCount["MessCount"] = tMessCount["MessCount"] + 1
    if bTopic == true then
        SetMan.SetString(10, "В чате написано "..tMessCount["MessCount"].." сообщений")  -- сам текст можете править как вам угодно
    end
    SaveToFile(sCountFile, tMessCount, "tMessCount")
    collectgarbage()
--    return true
end

function OnExit()
    SaveToFile(sCountFile, tMessCount, "tMessCount")    
end

function SaveToFile(file , table , tablename)
    local handle = io.open(file,"w+")
    handle:write(Serialize(table, tablename))
    handle:flush()
    handle:close()
end

function Serialize(tTable, sTableName, sTab)
    assert(tTable, "tTable equals nil");
    assert(sTableName, "sTableName equals nil");
    assert(type(tTable) == "table", "tTable must be a table!");
    assert(type(sTableName) == "string", "sTableName must be a string!");
    sTab = sTab or "";
    sTmp = ""
    sTmp = sTmp..sTab..sTableName.." = {\n"
    for key, value in pairs(tTable) do
        local sKey = (type(key) == "string") and string.format("[%q]",key) or string.format("[%d]",key);
        if(type(value) == "table") then
            sTmp = sTmp..Serialize(value, sKey, sTab.."\t");
        else
            local sValue = (type(value) == "string") and string.format("%q",value) or tostring(value);
            sTmp = sTmp..sTab.."\t"..sKey.." = "..sValue
        end
        sTmp = sTmp..",\n"
    end
    sTmp = sTmp..sTab.."}"
    collectgarbage()
    return sTmp
end

Число сообщений будет сохраняться в файл, дабы при отключении скрипта или хаба сохранялось. Для этого надо заранее в папке "scripts" создать папку "MessCount" (только папку!). При первом запуске файл сам создастся.
При необходимости освободить топик для иных сообщений оператор может через меню отменить показ числа сообщений в топике. Потом сможет так же через то же меню восстановить показ.
В скрипте в коде отправки команды в меню в самом конце вставил *, её надо удалить перед запуском скрипта.

UPD: Создал тему со скриптом здесь.


Спасибо сказали:
Go to the top of the page
+Quote Post

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts Topic has attachmentsВывод последний N сообщений чата при входе
Verlihub
2 Vizunchik 10 027 13.9.2014, 9:53 Посл. сообщение: Ahton
No new Подлагивает чат при написании сообщений
40 po fenshyj' 33 611 6.6.2012, 19:14 Посл. сообщение: WINS
No new Скрипт рассылки сообщений
прошу помочь...
18 MaxFox 16 056 4.2.2012, 12:03 Посл. сообщение: MaxFox
No New Posts Скрипт рассылки сообщений
1 MaxFox 5 388 23.1.2012, 8:54 Посл. сообщение: MaxFox
No New Posts Скрипт рассылки сообщений
0 MaxFox 4 414 12.1.2012, 16:56 Посл. сообщение: MaxFox
No New Posts Скрипт вывода сообщений
2 Who.Is 7 502 5.7.2011, 20:02 Посл. сообщение: Who.Is
Closed дайте скрипт последнии 5 сообщений чата
4 Artem26 8 190 23.12.2010, 21:08 Посл. сообщение: Saymon21
No New Posts Перевод сообщений verlihub
1 Net_Strannik 7 104 7.11.2010, 1:19 Посл. сообщение: Nickolya
No New Posts Topic has attachmentsОтправка сообщений в диапазон IP
12 SAG 14 596 15.4.2010, 16:05 Посл. сообщение: SAG
No New Posts Рассылка PM сообщений заданному диапазону ip адресов.
Рассылка PM сообщений заданному диапазону ip адресов.
2 simxsim 7 129 13.10.2009, 15:02 Посл. сообщение: Wariner
No New Posts Topic has attachmentsПросмотр Чужих Личных Сообщений.
2 Dron_ 7 062 2.4.2009, 14:23 Посл. сообщение: vicious
No New Posts Topic has attachmentsСкрипт Отправки Сообщений В Оффлайн И Голосование За Kick Юзера
API2
4 =Quadro= 10 327 19.1.2009, 23:37 Посл. сообщение: Артём
No New Posts Помощь В Сокрытии Сообщений От Ника И Самого Ника...
3 *FoxMalder* 8 615 8.1.2009, 19:00 Посл. сообщение: *FoxMalder*
No New Posts Topic has attachmentsСчётчик Сообщений В N Минут
10 MEXAHuK 12 211 14.12.2008, 19:37 Посл. сообщение: Wariner
No New Posts Topic has attachmentsЗапрет Отправки N Сообщений Подряд?
7 epson950 10 659 7.11.2008, 12:49 Посл. сообщение: epson950

 



RSS Сейчас: 23.12.2024, 16:33