Помогите с одним вопросиком по скрипту (Отправка каждой строки от бота) |
Здравствуйте, гость ( Вход | Регистрация )
Помогите с одним вопросиком по скрипту (Отправка каждой строки от бота) |
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 раза выводится сообщение "Результат поиска по нику "ник_юзера"." Вообщем я прошу помогите как сделать так что бы всё норм выводилось. Спасибо. |
|
|
15.1.2010, 20:21
Сообщение
#2
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
я не понял а в чём вопрос то?
|
|
|
15.1.2010, 20:34
Сообщение
#3
|
|
Site Reliability Engineer Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз |
в начало скрипта sBot = "имя бота"
к сообщниям так же приделывай <"..sBot.."> |
|
|
15.1.2010, 20:46
Сообщение
#4
|
|
Продвинутый участник Группа: Пользователи Сообщений: 107 Регистрация: 23.11.2008 Из: Сергиев Посад Пользователь №: 1 178 Спасибо сказали: 9 раз |
|
|
|
15.1.2010, 20:49
Сообщение
#5
|
|
Site Reliability Engineer Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз |
говори конкретней что тебе нужно?
можеш и так поставить если я так понял sBot = SetMan.GetString(21) таким обрабом имя бота будет братся из настроек птоки |
|
|
15.1.2010, 20:53
Сообщение
#6
|
|
Продвинутый участник Группа: Пользователи Сообщений: 107 Регистрация: 23.11.2008 Из: Сергиев Посад Пользователь №: 1 178 Спасибо сказали: 9 раз |
говори конкретней что тебе нужно? можеш и так поставить если я так понял 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 раз(а) =================================================== |
|
|
15.1.2010, 20:56
Сообщение
#7
|
|
Site Reliability Engineer Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз |
ну я не телепат, даже не знаю что за скрипт ты делаешь. я тебе показал как, ищи где нужно в скрипте добавить
|
|
|
15.1.2010, 20:57
Сообщение
#8
|
|
Продвинутый участник Группа: Пользователи Сообщений: 107 Регистрация: 23.11.2008 Из: Сергиев Посад Пользователь №: 1 178 Спасибо сказали: 9 раз |
|
|
|
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.. думаю так должно работать |
|
|
15.1.2010, 21:20
Сообщение
#10
|
|
Продвинутый участник Группа: Пользователи Сообщений: 107 Регистрация: 23.11.2008 Из: Сергиев Посад Пользователь №: 1 178 Спасибо сказали: 9 раз |
да. не надо капсить!!! блин ищи где инфа вся и добавляй <"..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" но почему то к самой концовке этого сообщения добавил первой, а инфу о юзере скушал на обед |
|
|
15.1.2010, 21:23
Сообщение
#11
|
|
Site Reliability Engineer Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз |
Не надо цитироватиь так посты! дай выложи всю свою работу попробую глянуть
|
|
|
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.."'" Как это сделанно выше. А сам текст был написан внутри этой функции или выведен в отдельный текстовый файл, что очень удобно. |
|
|
15.1.2010, 22:29
Сообщение
#13
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
Извиняюсь бред какой то написан... выражайтесь точно что вам надо. разбиение на строчки уже сделаны так что ещё?!
|
|
|
15.1.2010, 22:53
Сообщение
#14
|
|
Продвинутый участник Группа: Пользователи Сообщений: 107 Регистрация: 23.11.2008 Из: Сергиев Посад Пользователь №: 1 178 Спасибо сказали: 9 раз |
Извиняюсь бред какой то написан... выражайтесь точно что вам надо. разбиение на строчки уже сделаны так что ещё?! Вот код вывода поиска по нику в скрипте 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 Вопрос в том что бы вывести всю информацию (Текст, возможно даже большого обьёма) в текстовый файл. Это даст практичность в редактировании данных (Текста) Т.к. текст будет находиться не в самом скрипте, а вотдельном файле. Если переделать к примеру весь скрипт, то есть такой плюс что скрипт будет меньше кушать памяти и будет более быстро работать. Как то так. |
|
|
15.1.2010, 23:08
Сообщение
#15
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
От этого скрипт меньше кушать не станет, если не начнёт ещё больше...
|
|
|
15.1.2010, 23:11
Сообщение
#16
|
|
Site Reliability Engineer Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз |
извеняюсь если что но я старался обьяснить так как я понял изначально.
сорри за оффтоп |
|
|
15.1.2010, 23:13
Сообщение
#17
|
|
Продвинутый участник Группа: Пользователи Сообщений: 107 Регистрация: 23.11.2008 Из: Сергиев Посад Пользователь №: 1 178 Спасибо сказали: 9 раз |
|
|
|
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) |
|
|
16.1.2010, 21:02
Сообщение
#19
|
|
Продвинутый участник Группа: Пользователи Сообщений: 107 Регистрация: 23.11.2008 Из: Сергиев Посад Пользователь №: 1 178 Спасибо сказали: 9 раз |
Вместо Код 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) Спс я уже разобрался несколькими постами выше =)) |
|
|
Похожие темы
|
Сейчас: 27.11.2024, 4:54 |