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

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

MyDC.ru _ Служебные скрипты [PtokaX] _ Chathistory By Mutor

Автор: DemoN 13.8.2008, 9:45

Ведет историю чата, есть менюха, команды, стирание истории, вывод истории по дням и тп. Проверено на PtokaX 0.4.1.1! Взял его с сайта Мутора и перевел) bad_smile.gif

 ChatHist.lua ( 14.66 килобайт ) : 819
 

Автор: DEM0N 13.8.2008, 14:52

а можно зделать чтобы он не в пм отправлял а в обычный чат? и чтобы просто было написано
последние 10сообщений чата:
и 10сообшений и всё
заранее благодарен

Автор: danil_dem 8.11.2008, 11:51

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

Автор: Sirius 8.2.2009, 22:05

[21:01] Синтаксис E:\Ptokax\scripts\ChatHist.lua:159: attempt to index a nil value

Автор: Liiion911 23.2.2009, 9:35

2 вопроса, зачем встраивать антирекламу в него ?.... 2 штуки получается у меня 1я отдельный скрипт скан привата и чата, вторая уже чистое сканит в этом скрипте ))

дадада, если этот скрипт выше поставить в списке чем антирекламу то пройдет.. но все-таки )) :Pъ


scripts\ChatHist.lua:143: attempt to index a nil value

и скрипт выруьается )) я не знаком с апи 2 и давно не читал LUA поэтому надеюсь на вас ))

Автор: Gate001 18.10.2009, 13:18

Просьба знающим людям помочь.
Попытался слегка модифицировать скриптик под себя, моя модификация в аттаче.
Не нравится в нем несколько вещей:
1. Выводит историю в след. виде:

Цитата
19 10/18/09 01:52p <Тишка> постоянно
20 10/18/09 01:52p <Тишка> я хз как исправить то
21 10/18/09 01:52p <IRON> я исправлю
22 10/18/09 01:52p <Тишка> остальное все поправила, сейчас выложу на форуме тогда
23 10/18/09 01:52p <IRON> давай
24 10/18/09 01:54p <Тишка> выложила
25 10/18/09 01:55p <Тишка> а новый год...смысл в том, что он не срабатывает пока не напишешь следующее сообщение
26 10/18/09 01:55p <IRON> Тишка: сча, я с историей чата разберусь и займусь
27 10/18/09 01:55p <Тишка> угу, а я убегаю пока тогда. до вечера
28 10/18/09 01:56p <IRON> до вечера

Необходимо убрать числа, что идут слева от даты. Насколько я понял, эти числа-номер сообщения в базе данных скрипта.
За вывод отвечает следующий код:
Код
GetChat = function(lines)
    local x = lines
    if lines > #Cfg.Chat then
        x,lines = #Cfg.Chat,#Cfg.Chat
    end
    x = #Cfg.Chat - x
    local str = "\r\n\r\n <"..string.rep("-",70).."[ Последние ( "..(lines).." ) сообщений чата ]------------>\r\n"
    for i,v in ipairs(Cfg.Chat) do
        if i > x then
            str = str.."\r\n "..string.format("%"..string.len(#Cfg.Chat)..
            "s",i).." "..v[2].." "..v[3].." "..v[4]
        end
    end
    return str.."\r\n\r\n <"..string.rep("-",70).."[ Конец истории чата ]"..
    string.rep("-",4 + string.len(lines)).."-------->\r\n\r\n"
end

Конкретно, формирование строк, насколько я понял, идет вот тут:
Код
str = str.."\r\n "..string.format("%"..string.len(#Cfg.Chat)..
"s",i).." "..v[2].." "..v[3].." "..v[4]

Если просто выкинуть "s",i то скрипт перестает работать. Как быть?

2. Выводит время в след. виде:
Цитата
10/18/09 01:52p

Мне то оно ясно, что p просто означает после полудня, но очень хотелось бы заменить формат времени на 24-х часовой.
Насколько я понял, за это отвечает след. блок кода:

Код
        local t = {
        tonumber(os.date("%Y") + os.date("%j")),
        os.date("%m/%d/%y"),
        os.date("%I:%M")..string.sub(string.lower(os.date("%p")),1,1),
        data,
        }


3. Начало сообщения выглядит вот так:
Цитата
[14:07:25] Личка от [Летописец]: <[Летописец]>

<----------------------------------------------------------------------[ Последние ( 10 ) сообщений чата ]------------>

Нужно убрать лишнее имя бота и сделать вот так:
Цитата
[14:07:25] Личка от [Летописец]:

<----------------------------------------------------------------------[ Последние ( 10 ) сообщений чата ]------------>

Вот уж здесь запутался окончательно. Понимаю только что это где-то должно быть в функции ChatArrival, но где...
Код
ChatArrival = function(user, data)
    data = data:sub(1,-2)
    local _,_,to = data:find("^$To: (%S+) From:")
    local _,_,prefix = data:find("%b<> (["..SetMan.GetString(29).."])")
    if not prefix and not to then
        local op = ProfMan.GetProfile(user.iProfile).tProfilePermissions.bIsOP
        if not op and ChkAd(data) and Cfg.AaBlock > 0 then
            if Cfg.AaReply ~= "" then
                Core.SendToUser(user,"<"..Cfg.Bot..">"..Cfg.AaReply:gsub("%(user%)",user.sNick).."|")
            end
            if Cfg.AaBlock == 2 then
                return true
            else
                return false
            end
        end
        local t = {
        tonumber(os.date("%Y") + os.date("%j")),
        os.date("%m/%d/%y"),
        os.date("%I:%M")..string.sub(string.lower(os.date("%p")),1,1),
        data,
        }
        table.insert(Cfg.Chat,t)
        for x = 1, #Cfg.Chat -  Cfg.MaxChat do
            table.remove(Cfg.Chat,1)
        end
        SaveToFile(Cfg.File,Cfg.Chat,"Cfg.Chat")
    else
        local _,_,cmd = data:find("%b<> %p(%w+)")
        if cmd and Cmds[cmd] then
            if Cfg.Profiles[user.iProfile] and Cfg.Profiles[user.iProfile][1] == 1 then
                if to and to == Cfg.Bot then
                    return Core.SendPmToUser(user,Cfg.Bot,Cmds[cmd](user,data).."|"),true
                else
                    return Core.SendToUser(user,"<"..Cfg.Bot.."> "..Cmds[cmd](user,data).."|"),true
                end
            else
                if to and to == Cfg.Bot then
                    Core.SendPmToUser(user,Cfg.Bot,user.sNick..
                    " у вас нет прав использования этой команды.|")
                else
                    Core.SendToUser(user,"<"..Cfg.Bot.."> "..user.sNick..
                    " у вас нет прав использования этой команды.|")
                end
                return true
            end
        end
    end
end


4. Замечена ошибка-Если выдавать зареганым пользователям права то они имеют право удалять и всячески управлять историей. Если отобрать-история не высылается при заходе на хаб.
В принципе, думаю что смогу пофиксить эту сам. Но первые 3 без помощи не обойтись.

Как видите, насколько смог сам раскопал, но все к сожалению сам не смог сделать.

P.S: т.к нужно позарез и как можно быстрее, готов выделить семизначную асю для того, кто сделает или хотя бы поможет. Вроде как номерки еще остались, около 90 штук.

 chathist2.lua ( 14.09 килобайт ) : 39
 

Автор: Alexey 18.10.2009, 16:09

Когда-то поковырял для себя оригинальную муторовскую версию, сейчас возвращаться к этому нет желания, но первые 2 пункта в ней есть, а третий нереализуем.

Цитата(Sirius @ 8.2.2009, 23:05) *
[21:01] Синтаксис E:\Ptokax\scripts\ChatHist.lua:159: attempt to index a nil value

Эта ошибка тоже исправлена.

 ChatHistory107.lua ( 15.56 килобайт ) : 126



Автор: Gate001 18.10.2009, 18:25

Попытался запустить.

Цитата
18.10.2009 19:15:54 - /etc/ptokax/scripts/ChatHistory107.lua:231: bad argument #1 to 'ipairs' (table expected, got nil)
18.10.2009 19:17:24 - /etc/ptokax/scripts/ChatHistory107.lua:231: bad argument #1 to 'ipairs' (table expected, got nil)
18.10.2009 19:18:26 - /etc/ptokax/scripts/ChatHistory107.lua:231: bad argument #1 to 'ipairs' (table expected, got nil)

Сам скрипт вроде как включается.
Истории нет, меню нет.

Автор: Setuper 18.10.2009, 18:32

Автору темы: Нужно правильно оформить тему!

Автор: Alexey 18.10.2009, 21:26

Папка ChatHist, в которой скрипт пытается сохранять свои файлы, создана?

Автор: Gate001 19.10.2009, 16:08

Извиняюсь, совсем забыл.
Скрипт работает!!! Все что надо пашет!!!

Автор: ВАСЯ 23.12.2009, 0:25

Моя версия отличается отсутствием показа счетчика количества последних сообщений (лишнее нагромождение). В чат выводится просто имя бота "последние 10 сообщений в чате" и ниже сообщения. Имеется возможность выбора кому показывать. Кстати тут уже интересовались именно простой версией

Цитата(DEM0N @ 13.8.2008, 16:52) *
а можно зделать чтобы он не в пм отправлял а в обычный чат? и чтобы просто было написано
последние 10сообщений чата:
и 10сообшений и всё
заранее благодарен

Скрипт работал на PtokaX 0.3.6.0. После конвертации стал таким (см.ниже).
Проблема: выводит только одно последнее сообщение. Замена 1 в конце скрипта на true ничего не дает (был опыт, не поставил true вместо 1 и ничего не работало).
Подскажите пожалуйста где чего поменять?
Нажмите СЮДА для открытия просмотра кода скрипта
-- Этот скрипт конвертирован программой PtokaX LUA API Конвертор v0.9. Русская версия 12/23/09 07:22:08
--[[
Скрипт: Chat History On Entry
Версия: 1.03b
Поддержка: 5.1
Перевод и оптимизация: NRJ

ОПИСАНИЕ: Скрипт выводит последние x сообщений чата

]]--

------------------------------------ Конфигурация ------------------------------------
--------------------------------------------------------------------------------------

botname = "Последние 10 сообщений в чате" -- Имя бота
BadChars = {".","?","!","+","-",} --На какие префиксы скрипт не будет реагировать
maxhistory = 20 -- Максимум линий для чата в кеше
chatfile = "chathistory.dat"-- куда будут записываться логи чата

GetChat = "+история" -- Команда для показа последних сообщений; Например, +история 10 покажет последние 10 сообщений

-- Выбираем, для каких профилей будет доступна команда:
-- индекс профиля, история чата [0=нет 1=да], "Название профиля"
HistoryProfiles = {
[-1] = {0,"Незарегистрированные пользователи"},
[0] = {1,"Мастер"},
[1] = {1,"Оп"},
[2] = {1,"Вип"},
[3] = {1,"Зарегистрированные пользователи"},
}

--------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------

function OnStartup()
if loadfile(chatfile) == nil then
chathistory = {}
local when = os.date(" %B %d %Y в: %X")
local chat = "Файл лога главного чата создан: "
table.insert(chathistory,when..chat)
local f,e = io.open( chatfile, "w+" )
f:write( "return {\n"..string.format("%q",chat..when)..",\n}" )
f:close()
end
chathistory = dofile(chatfile)
--frmHub:RegBot(botname)
end

function OnExit()
savehistory()
end

function UserConnected(user)
Core.GetUserAllData(user)
if HistoryProfiles[user.iProfile] and HistoryProfiles[user.iProfile][1] == 1 then
local n = #chathistory
for i = 1, n do str = "\r\n"..chathistory[i] end
Core.SendToNick(user.sNick,"<"..botname.."> "..str.."\r\n")
end
end

OpConnected = UserConnected

function ChatArrival(user,data)
Core.GetUserAllData(user)
if string.sub(data, 1, 1) ~= "<" then end
local s,e,pre = string.find(data, "^%b<> (.)")
local s,e,cmd,lines = string.find(data, "^%b<>%s+(%S+)%s+(%d+)|$")
local when = os.date("[%H:%M] ")
local chat = string.sub(data, 1, -2)
if cmd and cmd == GetChat then
if lines ~= e then
GetChatLines(user, lines)
return true
else
Core.SendToNick(user.sNick,"<".."Пожалуйста.."> ".. укажите, сколько сообщений из лога главного чата вы хотите увидеть. Максимальное значение: "..maxhistory..".")
return true
end
else
for k,v in ipairs(BadChars) do
if pre == v then
return
end
end
table.insert(chathistory,when..chat)
if #chathistory > maxhistory then table.remove(chathistory, 1) end
savehistory()
end
end

function GetChatLines(user, linecount)
local n1 = #chathistory
local n2 = linecount
local n3 = n1 - (n2-1)
for i =n3,n1 do str = "\r\n"..chathistory[i] end
Core.SendPmToNick(user.sNick,botname,str.."\r\n")
end

function savehistory()
local f,e = io.open( chatfile, "w+" )
if f then
f:write("return {\n")
for i = 1, #chathistory do
f:write( "\t"..string.format("%q", chathistory[i])..",\r\n" )
end
f:write("}" )
f:close()
return 1
else
return nil
end
end
RegConnected = UserConnected

Автор: Артём 23.12.2009, 1:15

ВАСЯ
прикрепляй скрипт, а не пости код.

Автор: ВАСЯ 23.12.2009, 1:22

Артём, как прикажете big_smile.gif, только от вашего бурного участия в моих немногочисленных сообщениях на форуме толку пока что 0% ))). Замечания можно в личку кидать, дабы не флудить.
 chat_history.lua ( 3.27 килобайт ) : 67

Автор: Артём 23.12.2009, 1:32

big_smile1.gif , а не проще было в той же теме выложить?)))

Автор: ВАСЯ 23.12.2009, 12:25

Побродив по инету нашел тему откуда скачивал скрипт. Оказывается там изначально косяк:

открыть
function NewUserConnected(user)
if HistoryProfiles[user.iProfile] and HistoryProfiles[user.iProfile][1] == 1 then
local n = table.maxn(chathistory)
for i = 1, n do str = "\r\n"..chathistory[i] end
user:SendData(botname,str.."\r\n")
end
end

Видимо знающий человек написал про это:
"for i = 1, n do str11 = "\r\n"..chathistory[11] end
У тебя n раз делается ОДНО И ТО ЖЕ. пеерменная str11 принимает значение "\r\n"..chathistory[11]
Дальше думаю понятно =)"
Если бы нам было понятно, наверно мы (тупоголовые) не бродили бы по форумам с вопросами big_smile.gif.
В переведенном скрипте эти строчки выглядят так:
открыть
function UserConnected(user)
Core.GetUserAllData(user)
if HistoryProfiles[user.iProfile] and HistoryProfiles[user.iProfile][1] == 1 then
local n = #chathistory
for i = 1, n do str = "\r\n"..chathistory[i] end
Core.SendToNick(user.sNick,"<"..botname.."> "..str.."\r\n")
end
end

Подскажите, где собака порылась?

Автор: Setuper 23.12.2009, 14:17

for i = 1, n do str = str.."\r\n"..chathistory[i] end

Автор: ВАСЯ 23.12.2009, 15:45

Не проходит, так вообще не выводит

Автор: Setuper 23.12.2009, 15:47

Ну так инициализируй строку, чтобы проходило:

Код
local str = ""
for i = 1, n do str = str.."\r\n"..chathistory[i] end

Автор: ВАСЯ 23.12.2009, 16:58

Мозги уже опухли... ничего у меня не получается. Скачал все заново, сконвертировал, теперь без правки не работает и с правкой не работает. Думаю проще прилепить оригинал под PtokaX 0.3.6.0. Если кто займется правильным конвертированием и приведению в дееспособность, буду очень благодарен. Сложно что-то делать ничего не понимая в этом big_smile.gif
 chat_history_orig.lua ( 3.08 килобайт ) : 41

Автор: Setuper 23.12.2009, 17:29

За такую кривизну даже браться не хочется.


Не стал исправлять кривизну скрипта, однако подправил пару вещей:

Раскрывающийся текст
botname = "Последние 10 сообщений в чате" -- Имя бота
BadChars = {".","?","!","+","-",} --На какие префиксы скрипт не будет реагировать
maxhistory = 20 -- Максимум линий для чата в кеше
chatfile = "chathistory.dat"-- куда будут записываться логи чата

GetChat = "+история" -- Команда для показа последних сообщений; Например, +история 10 покажет последние 10 сообщений

-- Выбираем, для каких профилей будет доступна команда:
-- индекс профиля, история чата [0=нет 1=да], "Название профиля"
HistoryProfiles = {
[-1] = {0,"Незарегистрированные пользователи"},
[0] = {1,"Мастер"},
[1] = {1,"Оп"},
[2] = {1,"Вип"},
[3] = {1,"Зарегистрированные пользователи"},
}

--------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------

function OnStartup()
if loadfile(chatfile) == nil then
chathistory = {}
local when = os.date(" %B %d %Y в: %X")
local chat = "Файл лога главного чата создан: "
table.insert(chathistory,when..chat)
local f,e = io.open( chatfile, "w+" )
f:write( "return {\n"..string.format("%q",chat..when)..",\n}" )
f:close()
end
chathistory = dofile(chatfile)
--frmHub:RegBot(botname)
end

function OnExit()
savehistory()
end

function UserConnected(user)
Core.GetUserAllData(user)
if HistoryProfiles[user.iProfile] and HistoryProfiles[user.iProfile][1] == 1 then
local n = #chathistory
local str = ""
for i = 1, n do str = str.."\r\n"..chathistory[i] end
Core.SendToNick(user.sNick,"<"..botname.."> "..str.."\r\n")
end
end

OpConnected = UserConnected

function ChatArrival(user,data)
Core.GetUserAllData(user)
local s,e,pre = string.find(data, "^%b<> (.)")
local s,e,cmd,lines = string.find(data, "^%b<>%s+(%S+)%s+(%d+)|$")
local when = os.date("[%H:%M] ")
local chat = string.sub(data, 1, -2)
if cmd and cmd == GetChat then
if lines ~= e then
GetChatLines(user, lines)
return true
else
Core.SendToNick(user.sNick,"<".."Пожалуйста.."> ".. укажите, сколько сообщений из лога главного чата вы хотите увидеть. Максимальное значение: "..maxhistory..".")
return true
end
else
for k,v in ipairs(BadChars) do
if pre == v then
return
end
end
table.insert(chathistory,when..chat)
if #chathistory > maxhistory then table.remove(chathistory, 1) end
savehistory()
end
end

function GetChatLines(user, linecount)
local n1 = #chathistory
local n2 = linecount
local n3 = n1 - (n2-1)
local str = ""
for i =n3,n1 do str = str.."\r\n"..chathistory[i] end
Core.SendPmToNick(user.sNick,botname,str.."\r\n")
end

function savehistory()
local f,e = io.open( chatfile, "w+" )
if f then
f:write("return {\n")
for i = 1, #chathistory do
f:write( "\t"..string.format("%q", chathistory[i])..",\r\n" )
end
f:write("}" )
f:close()
return 1
else
return nil
end
end
RegConnected = UserConnected

Автор: ВАСЯ 23.12.2009, 18:34

Всё равно не работает.
Нашел здесь http://mydc.ru/topic1890.html старенький скрипт для PtokaX 0.3.6.0 - работает офигенно, даже под себя смог настроить и порадоваться (убрал рюшечки всякие полосочки для оформления сообщения, вобщем самое простое сообщение). Но после конвертации, как и следовало ожидать, на PtokaX 0.4.1.1 не работает.
Здесь http://mydc.ru/topic2343.html скрипт нормально не работает в паре с Хуббаботом. Собственно из этого топика выяснил, что надо местами с Хубой их менять ...
Короче опять испробывал кучу вариантов с конвертированием и перестановкой скриптов, даже просто по одному скрипту запускал на чистой PtokaX - ничего не получается. В итоге на форуме нет простой рабочей "Истории", которая могла бы работать в паре с Хуббаботом на PtokaX 0.4.1.1

Автор: Alexey 24.12.2009, 6:33

Цитата(ВАСЯ @ 23.12.2009, 18:34) *
В итоге на форуме нет простой рабочей "Истории", которая могла бы работать в паре с Хуббаботом на PtokaX 0.4.1.1

Ложь и провокация! Версия из седьмого поста этой темы у меня работает вместе с Хуббаботом на 041 Птоке.

PS: Да и обсуждать скрипт NRJ кагбэ не по сабжу. К сожалению, не нашёл смайла с табличкой :offtopic:

Автор: ВАСЯ 24.12.2009, 10:34

Цитата(Alexey @ 24.12.2009, 6:33) *
Ложь и провокация!

Вы так на кухне у себя разговаривайте.
Цитата(Alexey @ 24.12.2009, 6:33) *
Версия из седьмого поста этой темы у меня работает вместе с Хуббаботом на 041 Птоке.

Скачал, поставил. Если скрипт ставить до Хуббабота, то последние сообщения при входе на хаб идут до приветствия Хуббабота в самых первых строчках, т.к. после них идет приветствие хаба, то это не удобно (приветствие большое с правилами и строчки истории улетают вверх). После Хуббабота в списке PtokaX, скрипт при входе на хаб вообще не выводит никаких сообщений. На PtokaX 0.3.6.0 + Hubbabot 2.28 RC3 + ChatHistory работает более интересно: в положении до Хуббабота так же как описано выше, а вот после Хуббабота сообщения при входе идут как положено после приветствия хаба, но только юзерам Master и Operator независимо от настройки (ставил всем 1 - ничего не изменилось).
Проблема с новой PtokaX не у одного меня, почти во всех топиках на тему Chat History есть эта проблема.
Цитата(Alexey @ 24.12.2009, 6:33) *
PS: Да и обсуждать скрипт NRJ кагбэ не по сабжу. К сожалению, не нашёл смайла с табличкой :offtopic:

Мне фиолетово ваше отношение к NRJ, мне скрипт рабочий нужен.
P.S. Возможно у вас он работает в личку, меня интересует вариант с главным чатом при входе на хаб.

Автор: Wariner 24.12.2009, 19:09

ВАСЯ слишком много агрессии, если у вас не работает а у других нет возможно дело не в скрипте?

Например у меня на 0360 хубба конфликтовал со скриптами а на новой версии это совершенно не наблюдалось ;)

Автор: ВАСЯ 24.12.2009, 20:32

Агрессия там, где много знаков "!" в сообщениях, я же спокойно рассуждаю и делюсь тем, что наблюдаю. Ну если Вы как модератор это усмотрели, перед всеми искренне извиняюсь. Никаких помыслов "наехать" не было.
В ветке про Хуббабот информация что проблема не лечится, и нужно скрипт ChatHistory редактировать. Здесь проблем нет ни у кого, т.к. видимо работает.
Есть вариант, не знаю, может сочтут меня сумасшедшим, но делов 10 мин.: если кому не лень, скачайте чистую PtokaX GUI, hubbabot (с этого форума) и ChatHistory отсюда же. 10 сообщений должны выводиться при входе на хаб в окно общего чата после приветствия Хуббабота. Если у вас заработает, киньте это в архив и передайте через любой файлообменник. Если я увижу реально работающую конструкцию - пойду и убьюсь об стену.
Уже даже спортивный интерес возник решить эту проблему и узнать откуда ноги растут.

Автор: xXx-Portal 30.8.2010, 7:55

Можно сделать юзерам историю чата но без меню?


Автор: Артём 30.8.2010, 8:03

xXx-Portal, Можно!!! Но на форуме полно скриптов Историй чата без менюшки, а этот скрипт только с менюшкой нада использовать, ибо много чего через меню делается.

Автор: xXx-Portal 3.9.2010, 23:18

Цитата(Артём @ 30.8.2010, 9:03) *
xXx-Portal, Можно!!! Но на форуме полно скриптов Историй чата без менюшки, а этот скрипт только с менюшкой нада использовать, ибо много чего через меню делается.


кому меню кому нет...
лично у меня меню скрыто от всех кроме админов!

а историю видят токо зарегенные юзеры.

всё просто на ура СУПЕР скрипт! boss.gif

Автор: ramzes 11.3.2013, 23:49

А можете выложить версию под ptokax 0.5.0.0 ?

Автор: Saymon21 12.3.2013, 0:01

ramzes, А "эта версия" не работает?

Автор: Артём 12.3.2013, 2:25

ох, как же закумарили просящие скрипт под 0.5.0.0 не проверив его, хотя разницы нет. misdoubt.gif

Автор: Alexey 28.3.2014, 2:39

«Нам пишут...»

Цитата(Inkvizitor_ks @ 28.3.2014, 0:02)
скачал ваш переделаный скрипт из этого поста http://mydc.ru/index.html?showtopic=281&am...ost&p=22169
всё отлично! если не сложно - помогите с небольшой правкой, нужно в менюшке пункты удаления строки и очистки всего логав подменю упрятать(так как случайно можно нажать на удаление) )
если не сложно. заранее благодарю

Меняете
Код
return "Удалить историю чата",
на
Код
return "Подменю\\Удалить историю чата",

Аналогичным способом можно усложнить доступ и к другим пунктам меню.

PS: Такие вопросы лучше задавать в темах скриптов, а не через личные сообщения, — ведь ответ может быть интересен и другим посетителям форума.

Автор: Inkvizitor_ks 28.3.2014, 18:12

Большое спасибо за наставление baffle.gif
Исправляюсь, пишу в теме.
Еще один вопрос - возможно ли сделать в данном скрипте поиск логов за определённое число? (то есть поиск логов по дате)

Автор: Alexey 3.4.2014, 22:57

«Если очень захотеть — можно в космос полететь!»

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

Автор: Ystus 7.11.2016, 13:43

Цитата(Alexey @ 18.10.2009, 17:09) *
Когда-то поковырял для себя оригинальную муторовскую версию, сейчас возвращаться к этому нет желания, но первые 2 пункта в ней есть, а третий нереализуем.


Эта ошибка тоже исправлена.

 ChatHistory107.lua ( 15.56 килобайт ) : 126


Не работает Ваш скрипт
Синтаксис J:\Program Files (x86)\DC\scripts\chat_history_0.lua:291: attempt to index local 'handle' (a nil value)
stack traceback:
J:\Program Files (x86)\DC\scripts\chat_history_0.lua:291: in function 'SaveToFile'
J:\Program Files (x86)\DC\scripts\chat_history_0.lua:149: in function <J:\Program Files (x86)\DC\scripts\chat_history_0.lua:148>


Цитата(ВАСЯ @ 23.12.2009, 2:22) *
Артём, как прикажете big_smile.gif, только от вашего бурного участия в моих немногочисленных сообщениях на форуме толку пока что 0% ))). Замечания можно в личку кидать, дабы не флудить.
 chat_history.lua ( 3.27 килобайт ) : 67


[13:42:11] Синтаксис J:\Program Files (x86)\DC\scripts\chat_history_1.lua:1: unexpected symbol near ']'