Общий подсчет сообщений |
Здравствуйте, гость ( Вход | Регистрация )
Общий подсчет сообщений |
6.3.2011, 8:17
Сообщение
#1
|
|
Освоившийся участник Группа: Пользователи Сообщений: 248 Регистрация: 14.7.2008 Из: Хабаровск Пользователь №: 193 Спасибо сказали: 40 раз |
Господа кто нибудь может сделать скрипт который будет подсчитать общее количество сообщений хаба, и отображать в Топике. То есть каждое сообщение юзера в чате +1 сообщение.
PS. ответы типо: Бред, Чушь, А зачем?, для чего? можно не писать. |
|
|
6.3.2011, 9:26
Сообщение
#2
|
|
Продвинутый участник Группа: Пользователи Сообщений: 176 Регистрация: 11.7.2008 Пользователь №: 171 Спасибо сказали: 182 раза |
Идея неплоха. Прикручу у себя на хабе.
|
|
|
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: Создал тему со скриптом здесь. |
|
|
Похожие темы
|
Сейчас: 23.11.2024, 12:05 |