myDC.ru

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

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

> Помогите с одним вопросиком по скрипту (Отправка каждой строки от бота)

Теги
Нет тегов для показа
DrakonSP
сообщение 15.1.2010, 20:04
Сообщение #1


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

Группа: Пользователи
Сообщений: 107
Регистрация: 23.11.2008
Из: Сергиев Посад
Пользователь №: 1 178
Спасибо сказали: 9 раз




Вообщем имееться код

Нажать для просмотра
Код
elseif cmd == tCmd.SearchNick then
    local nick  = string.match(data, "%b<>%s*%p%S+%s(%S+)$")
    if nick then
        local msg = ""
        local results = 0
        for i in pairs(tUserNicks) do
            for i2 in pairs(tUserNicks[i]) do
                if string.find(i2:lower(),nick:lower()) then
                        msg = msg..BuildStats(i,true)
                        results = results+1
                        break
                    end
                end
            end
            if results == 0 then
            Core.SendToUser(user,"<"..sBot.."> Информация по нику "..nick.." не найдена в базе.")
            else
                msg = "Результат поиска по нику '"..nick.."'.".." Всего найдено записей: "..results..
                msg
            Core.SendPmToNick(user.sNick,sBot,msg)
            end
        else
            Core.SendToUser(user,"<"..sBot.."> Ошибка: Нужно ввести ник или часть ника. Введите "..sPrefix..tCmd.SearchNick.." <Ник>")
        end
        return true

Этот код являеться частью функции ChatArrival(user,data)
А эта фунция являеться частью скрипта StatPX 1.04
Это так для доп. информации.

Вообщем теперь сам вопрос...
Как сделать так что бы определёная строчка сообщения выводимой скриптом отправлялась от бота?
В этом коде есть участок, который отвечает за отправку сообщения (в данном случае о поиске пользователя) в приват.
Нажать для просмотра
Код
        if results == 0 then
            Core.SendToUser(user,"<"..sBot.."> Информация по нику "..nick.." не найдена в базе.")
        else
            msg = "Результат поиска по нику '"..nick.."'.".." Всего найдено записей: "..results..
            msg
            Core.SendPmToNick(user.sNick,sBot,msg)
        end

при этом бот выводит сообщение ввиде:
Цитата
[время] <бот_хаба> Результат поиска по нику "Ник_юзера". Всего найдено записей: "число_записей"
Информация о нике

И это выглядит так
Нажать для просмотра
Цитата
[20:51:03] <Hub-Bot> Результат поиска по нику 'toopizza'. Всего найдено записей: 1
===================================================
Статистика пользователя 'toopizza'
===================================================
- Ник: toopizza
- IP: 89.222.214.82
- Ранг: Рядовой

Общее время проведения на хабе 29 мин.
Среднее время проведения на хабе 7 мин. в сутки

Первый визит на хаб 12 янв в 01:10
Пришёл на хаб 15 янв в 16:49
Покинул хаб 15 янв в 16:50

С данного IP-адреса заходили под никами:
- toopizza - 5 раз(а)
- DrakonSP - 2 раз(а)
===================================================

я же хочу что бы было как то так:
Цитата
[время] <бот_хаба> Результат поиска по нику "Ник_юзера".
[время] <бот_хаба> Всего найдено записей "число_записей"
[время] <бот_хаба> Информация о нике.

Для этого я попытался переделать код следующим образом:
Нажать для просмотра
Код
        if results == 0 then
            Core.SendToUser(user,"<"..sBot.."> Информация по нику "..nick.." не найдена в базе.")
        else
            msg = "Результат поиска по нику '"..nick.."'."
            Core.SendPmToNick(user.sNick,sBot,msg)
            msg = "Всего найдено записей: "..results..
            msg
            Core.SendPmToNick(user.sNick,sBot,msg)
        end

И получил следующий результат:
Цитата
[время] <бот_хаба> Результат поиска по нику "ник_юзера".
[время] <бот_хаба> Всего найдено записей: "число_записей"Результат поиска по нику "ник_юзера".

Почему то вообще перестала отображаться Информация о нике
И 2 раза выводится сообщение "Результат поиска по нику "ник_юзера"."
Вообщем я прошу помогите как сделать так что бы всё норм выводилось.
Спасибо.
Go to the top of the page
+Quote Post
Wariner
сообщение 15.1.2010, 20:21
Сообщение #2


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




я не понял а в чём вопрос то?
Go to the top of the page
+Quote Post
Saymon21
сообщение 15.1.2010, 20:34
Сообщение #3


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




в начало скрипта sBot = "имя бота"

к сообщниям так же приделывай <"..sBot..">
Go to the top of the page
+Quote Post
DrakonSP
сообщение 15.1.2010, 20:46
Сообщение #4


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

Группа: Пользователи
Сообщений: 107
Регистрация: 23.11.2008
Из: Сергиев Посад
Пользователь №: 1 178
Спасибо сказали: 9 раз




Цитата(Хабыч @ 15.1.2010, 21:34) *
в начало скрипта sBot = "имя бота"

к сообщниям так же приделывай <"..sBot..">

Так от тупо пишет имя бота вначале строки
А мне надо что бы бот отправлял это сообщение
Go to the top of the page
+Quote Post
Saymon21
сообщение 15.1.2010, 20:49
Сообщение #5


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




говори конкретней что тебе нужно?

можеш и так поставить если я так понял sBot = SetMan.GetString(21)
таким обрабом имя бота будет братся из настроек птоки
Go to the top of the page
+Quote Post
DrakonSP
сообщение 15.1.2010, 20:53
Сообщение #6


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

Группа: Пользователи
Сообщений: 107
Регистрация: 23.11.2008
Из: Сергиев Посад
Пользователь №: 1 178
Спасибо сказали: 9 раз




Цитата(Хабыч @ 15.1.2010, 21:49) *
говори конкретней что тебе нужно?

можеш и так поставить если я так понял sBot = SetMan.GetString(21)

Что бы отображалось не вот так
Нажать
Цитата
[20:51:03] <Hub-Bot> Результат поиска по нику 'toopizza'. Всего найдено записей: 1
===================================================
Статистика пользователя 'toopizza'
===================================================
- Ник: toopizza
- IP: 89.222.214.82
- Ранг: Рядовой

Общее время проведения на хабе 29 мин.
Среднее время проведения на хабе 7 мин. в сутки

Первый визит на хаб 12 янв в 01:10
Пришёл на хаб 15 янв в 16:49
Покинул хаб 15 янв в 16:50

С данного IP-адреса заходили под никами:
- toopizza - 5 раз(а)
- DrakonSP - 2 раз(а)
===================================================


А вот так
Нажать
Цитата
[20:51:03] <Hub-Bot> Результат поиска по нику 'toopizza'.
[20:51:03] <Hub-Bot> Всего найдено записей: 1
[20:51:03] <Hub-Bot>
===================================================
Статистика пользователя 'toopizza'
===================================================
- Ник: toopizza
- IP: 89.222.214.82
- Ранг: Рядовой

Общее время проведения на хабе 29 мин.
Среднее время проведения на хабе 7 мин. в сутки

Первый визит на хаб 12 янв в 01:10
Пришёл на хаб 15 янв в 16:49
Покинул хаб 15 янв в 16:50

С данного IP-адреса заходили под никами:
- toopizza - 5 раз(а)
- DrakonSP - 2 раз(а)
===================================================

Go to the top of the page
+Quote Post
Saymon21
сообщение 15.1.2010, 20:56
Сообщение #7


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




ну я не телепат, даже не знаю что за скрипт ты делаешь. я тебе показал как, ищи где нужно в скрипте добавить big_smile.gif
Go to the top of the page
+Quote Post
DrakonSP
сообщение 15.1.2010, 20:57
Сообщение #8


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

Группа: Пользователи
Сообщений: 107
Регистрация: 23.11.2008
Из: Сергиев Посад
Пользователь №: 1 178
Спасибо сказали: 9 раз




Цитата(Хабыч @ 15.1.2010, 21:56) *
ну я не телепат, даже не знаю что за скрипт ты делаешь. я тебе показал как, ищи где нужно в скрипте добавить big_smile.gif

Т.е. sBot = SetMan.GetString(21) обеспечит мне то что я хочу если я провильно его расположу в скрипте?

Блин я же в первом посте всё написал!
Go to the top of the page
+Quote Post
Saymon21
сообщение 15.1.2010, 20:59
Сообщение #9


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




да. не надо капсить!!! блин ищи где инфа вся и добавляй <"..sBot.."> только зачем всё это не пойму...

Код
msg = "<"..sBot.."> Результат поиска по нику '"..nick.."'."
            Core.SendPmToNick(user.sNick,sBot,msg)
            msg = "<"..sBot.."> Всего найдено записей: "..results..

думаю так должно работать
Go to the top of the page
+Quote Post
DrakonSP
сообщение 15.1.2010, 21:20
Сообщение #10


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

Группа: Пользователи
Сообщений: 107
Регистрация: 23.11.2008
Из: Сергиев Посад
Пользователь №: 1 178
Спасибо сказали: 9 раз




Цитата(Хабыч @ 15.1.2010, 21:59) *
да. не надо капсить!!! блин ищи где инфа вся и добавляй <"..sBot.."> только зачем всё это не пойму...

Код
msg = "<"..sBot.."> Результат поиска по нику '"..nick.."'."
            Core.SendPmToNick(user.sNick,sBot,msg)
            msg = "<"..sBot.."> Всего найдено записей: "..results..

думаю так должно работать

неа =))
Фишка в том что <"..sBot.."> просто пишет имя бота перед сообщением
А мне надо что бы бот отпралял это сообщение
Делаю вот так
Код
        else
            msg = "<Результат поиска по нику '"..nick.."'."
            Core.SendPmToNick(user.sNick,sBot,msg)
            msg = "<Всего найдено записей: "..results..
            msg
            Core.SendPmToNick(user.sNick,sBot,msg)
        end

и получаю в DC++ фиг с маслом =))
Цитата
[21:14:52] <Hub-Bot> <Hub-Bot> Результат поиска по нику 'toopizza'.
[21:14:52] <Hub-Bot> <Hub-Bot> Всего найдено записей: 1Результат поиска по нику 'toopizza'.

т.е. впринципе бот отправил сообщение "Всего найдено записей: 1"
но почему то к самой концовке этого сообщения добавил первой, а инфу о юзере скушал на обед
Go to the top of the page
+Quote Post
Saymon21
сообщение 15.1.2010, 21:23
Сообщение #11


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




Не надо цитироватиь так посты! big_smile.gif дай выложи всю свою работу попробую глянуть
Go to the top of the page
+Quote Post
DrakonSP
сообщение 15.1.2010, 21:38
Сообщение #12


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

Группа: Пользователи
Сообщений: 107
Регистрация: 23.11.2008
Из: Сергиев Посад
Пользователь №: 1 178
Спасибо сказали: 9 раз




Да я выложу если не разберусь сейчас
А то просто идея пришла одна...

Сделал...
Код
        else
            Core.SendPmToNick(user.sNick,sBot,"Результат поиска по нику '"..nick.."'")
            Core.SendPmToNick(user.sNick,sBot,"Всего найдено записей: "..results.."")
            Core.SendPmToNick(user.sNick,sBot,msg)
        end

Вместо прежнего...
Код
        else
            msg = "Результат поиска по нику '"..nick.."'.".." Всего найдено записей: "..results..
            msg
            Core.SendPmToNick(user.sNick,sBot,msg)
        end

Не думал что будет настолько простой код =))
Но опять же разочарован в том что это будет не очень практично например для большого текста
Если кто то знает способ по практичней чем этот отпишитесь =))
Или киньте сюда чисто функцию которая бы заменяла на "msg" текст "Результат поиска по нику '"..nick.."'"
Как это сделанно выше.
А сам текст был написан внутри этой функции или выведен в отдельный текстовый файл, что очень удобно.
Go to the top of the page
+Quote Post
Wariner
сообщение 15.1.2010, 22:29
Сообщение #13


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




Извиняюсь бред какой то написан... выражайтесь точно что вам надо. разбиение на строчки уже сделаны так что ещё?!
Go to the top of the page
+Quote Post
DrakonSP
сообщение 15.1.2010, 22:53
Сообщение #14


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

Группа: Пользователи
Сообщений: 107
Регистрация: 23.11.2008
Из: Сергиев Посад
Пользователь №: 1 178
Спасибо сказали: 9 раз




Цитата(Wariner @ 15.1.2010, 22:29) *
Извиняюсь бред какой то написан... выражайтесь точно что вам надо. разбиение на строчки уже сделаны так что ещё?!

Вот код вывода поиска по нику в скрипте StatPX 1.04
Нажмите для просмотра
Код
elseif cmd == tCmd.SearchNick then
    local nick  = string.match(data, "%b<>%s*%p%S+%s(%S+)$")
    if nick then
        local msg = ""
        local results = 0
        for i in pairs(tUserNicks) do
            for i2 in pairs(tUserNicks[i]) do
                if string.find(i2:lower(),nick:lower()) then
                    msg = msg..BuildStats(i,true)
                    results = results+1
                    break
                end
            end
        end
        if results == 0 then
            Core.SendToUser(user,"<"..sBot.."> Информация по нику "..nick.." не найдена в базе.")
        else
            Core.SendPmToNick(user.sNick,sBot,"Результат поиска по нику '"..nick.."'")
            Core.SendPmToNick(user.sNick,sBot,"Всего найдено записей: "..results.."")
            Core.SendPmToNick(user.sNick,sBot,msg)
        end

строчка
Код
Core.SendPmToNick(user.sNick,sBot,msg)
выводит в PM информацию о юзере
В свою очередь информация находиться в функции BuildStats(IP,Ext)
Нажмите для просмотра
Код
function BuildStats(IP,Ext)
    if tUserStat[IP] then
        local iAverage = os.difftime(os.time(os.date("*t")), tUserStat[IP].FirstVisit)/(60*60*24)
        if iAverage < 1 then iAverage = 1 end
        local sMsg =
        "\n"..string.rep("=", 51).."\n"..
        " Статистика пользователя '"..tUserStat[IP].Name.."'"..
        "\n"..string.rep("=", 51).."\n"..
        " - Ник: "..tUserStat[IP].Name.."\n"..
        " - IP: "..IP.."\n"..
        " - Ранг: "..GetRank(IP).."\n\n"..
        " Общее время проведения на хабе "..
        MinutesToTime(tUserStat[IP].TotalTime, true).."\n"..
        " Среднее время проведения на хабе "..
        MinutesToTime((tUserStat[IP].TotalTime/iAverage), true).." в сутки".."\n"
        if Ext then
            sMsg = sMsg..
        "\n"..
        " Первый визит на хаб "..GetDate(tUserStat[IP].FirstVisit).."\n"..
        " Пришёл на хаб "..GetDate(tUserStat[IP].Enter).."\n"
            if tUserStat[IP].Online < 1 then
                sMsg = sMsg..
        " Покинул хаб "..GetDate(tUserStat[IP].Leave).."\n"
            end
            sMsg = sMsg..
        "\n"..
        " С данного IP-адреса заходили под никами:".."\n"
            if tUserNicks[IP] then
                for nick in pairs(tUserNicks[IP]) do
                    sMsg = sMsg..
        " - "..nick.."  -  "..tUserNicks[IP][nick].." раз(а)".."\n"
                end
            end
        end
        sMsg = sMsg..
        ""..string.rep("=", 51).."\n"
        return sMsg
    else
        return nil
    end
end

Вопрос в том что бы вывести всю информацию (Текст, возможно даже большого обьёма) в текстовый файл.
Это даст практичность в редактировании данных (Текста)
Т.к. текст будет находиться не в самом скрипте, а вотдельном файле.
Если переделать к примеру весь скрипт, то есть такой плюс что скрипт будет меньше кушать памяти и будет более быстро работать.
Как то так.
Go to the top of the page
+Quote Post
Wariner
сообщение 15.1.2010, 23:08
Сообщение #15


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




От этого скрипт меньше кушать не станет, если не начнёт ещё больше...
Go to the top of the page
+Quote Post
Saymon21
сообщение 15.1.2010, 23:11
Сообщение #16


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




извеняюсь если что но я старался обьяснить так как я понял изначально.

сорри за оффтоп
Go to the top of the page
+Quote Post
DrakonSP
сообщение 15.1.2010, 23:13
Сообщение #17


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

Группа: Пользователи
Сообщений: 107
Регистрация: 23.11.2008
Из: Сергиев Посад
Пользователь №: 1 178
Спасибо сказали: 9 раз




Цитата(Wariner @ 15.1.2010, 23:08) *
От этого скрипт меньше кушать не станет, если не начнёт ещё больше...

Может Вы и правы.
Но врятле будет кушать больше.
И в конце концов это удобно.
Go to the top of the page
+Quote Post
Nickolya
сообщение 16.1.2010, 16:26
Сообщение #18


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Вместо
Код
msg = "Результат поиска по нику '"..nick.."'.".." Всего найдено записей: "..results..
                msg
            Core.SendPmToNick(user.sNick,sBot,msg)
сделать
Код
            Core.SendPmToNick(user.sNick,sBot,"Результат поиска по нику '"..nick.."'.")
            Core.SendPmToNick(user.sNick,sBot,"Всего найдено записей: "..results)
            Core.SendPmToNick(user.sNick,sBot,msg)
в чем проблема у вас и зачем заводить тему не в ту степь я не понимаю. Если не разбираетесь в вопросе лучше не помогать, а то еще больше запутываете человека, не переоценивайте себя.
Go to the top of the page
+Quote Post
DrakonSP
сообщение 16.1.2010, 21:02
Сообщение #19


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

Группа: Пользователи
Сообщений: 107
Регистрация: 23.11.2008
Из: Сергиев Посад
Пользователь №: 1 178
Спасибо сказали: 9 раз




Цитата(Nickolya @ 16.1.2010, 16:26) *
Вместо
Код
msg = "Результат поиска по нику '"..nick.."'.".." Всего найдено записей: "..results..
                msg
            Core.SendPmToNick(user.sNick,sBot,msg)
сделать
Код
            Core.SendPmToNick(user.sNick,sBot,"Результат поиска по нику '"..nick.."'.")
            Core.SendPmToNick(user.sNick,sBot,"Всего найдено записей: "..results)
            Core.SendPmToNick(user.sNick,sBot,msg)
в чем проблема у вас и зачем заводить тему не в ту степь я не понимаю. Если не разбираетесь в вопросе лучше не помогать, а то еще больше запутываете человека, не переоценивайте себя.

Спс я уже разобрался несколькими постами выше =))
Go to the top of the page
+Quote Post

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

Collapse

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

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts А бывают такой скрипт бота?
Скрипт который создает виртуалных юзеров, но с реальными шарами
5 MarkDark 7 308 26.12.2017, 10:47 Посл. сообщение: мамин_парень
No New Posts Помогите собрать пакет хаб софта для прошивки роутера OpenWRT (РЕШЕНО)
ptokax и opendchub
2 мамин_парень 5 764 5.5.2017, 5:21 Посл. сообщение: мамин_парень
No new ПОМОГИТЕ
Как дать определенному нику права администратора в любом скрипте ?
25 probest 23 081 18.1.2015, 1:17 Посл. сообщение: probest
No New Posts От: ПОМОГИТЕ
От темы с ID: 5730
0 dimetro 3 938 17.1.2015, 23:57 Посл. сообщение: dimetro
No New Posts Topic has attachmentsПомогите !
3 Dani_Filth 6 808 4.10.2014, 14:52 Посл. сообщение: Артём
No New Posts Topic has attachmentsПомогите Новичку разобрать со скрипами.
НЕ могу понять,после того как загрузил скрипт,его ещё надо настраивать
2 Prizrak333 6 154 27.4.2014, 10:53 Посл. сообщение: Prizrak333
No New Posts помогите мне пожалуйста настроить dc++
1 sdncn 5 962 29.9.2013, 9:37 Посл. сообщение: Delia
No new Помогите с Хабом!
26 cpr 30 757 7.2.2013, 17:20 Посл. сообщение: DEN 007
No New Posts Помогите разобрать ситуацию с хабом, создал хаб на птокеX 0.5.0.0
Помогите разобрать ситуацию с хабом
12 mambob 13 801 30.1.2013, 0:03 Посл. сообщение: Yamakasi
No New Posts Помогите наполнить Юзерами свежий хаб Help
Help me please
1 mambob 4 671 20.1.2013, 3:42 Посл. сообщение: Артём
No New Posts помогите с ip_zone4_min
2 ruslanlee 7 109 9.1.2013, 20:43 Посл. сообщение: ruslanlee
No New Posts Помогите со скриптом! Плачу!
help
2 jekasumy 5 764 19.10.2012, 23:10 Посл. сообщение: jekasumy
No New Posts От: помогите переделать скрипт для Ptokax
От темы с ID: 5237
0 Infern0_05 5 129 14.9.2012, 15:46 Посл. сообщение: Infern0_05
No New Posts Помогите выбрать скрипт
RSS читалка
0 dj hoodo 5 734 9.9.2012, 4:27 Посл. сообщение: dj hoodo
No New Posts помогите мне народ!
1
3 _Герой_ 7 998 6.7.2012, 13:44 Посл. сообщение: KCAHDEP

 



RSS Сейчас: 29.3.2024, 12:07