Название скрипта: Бог-Говорун(хотя, сложно его так назвать) Версия API: API 1(первый скрипт) + API 2(второй скрипт) By: NRJ Описание скрипта: Просто отвечает на фразы из таблицы(Мгновенно). [curUser] == Ник того - кто произнес фразу на которую отреагировал скрипт.
Бот-Говорун(хотя так его называть даже язык не поворачивается), просто отвечает на фразы из таблицы(Мгновенно). [curUser] == Ник того - кто произнес фразу на которую отреагировал скрипт.
Так же, можно запретить боту реагировать на фразы юзеров с определенным ником.
Код
-- Таблица ников-исключений,чьи фразы бот не будет комментировоть TableName = { }
Может кому-нибудь может показаться полезным... API 1
P.S. Может у кого-нибудь есть более адекватный скрипт?
Есть вот держи болтуна http://mydc.ru/r/?http://hab-kylibyaka.at.ua/_fr/0/0833332.rar может подойдёт ) на 3.6 птоку .
Автор: vovansa 9.8.2008, 23:17
Хотелось бы что бы задержка по времени была (секунды 2-3) а то приедается )))))) когда мгновенно реагирует.
Автор: chicha 5.12.2008, 1:37
а под API 2 замутите?
Автор: Sephiroth_Lukaw 5.12.2008, 1:38
Ну, дык, он под API1.
Автор: chicha 5.12.2008, 1:40
я уже понял, мне бы под вторую
Автор: Sephiroth_Lukaw 5.12.2008, 4:56
Держите %-) Автозамена в текстовых редакторах рулит. В первом посте, есстесно.
Автор: chicha 6.12.2008, 1:28
Всё работает, но хотел узнать куда и как ники ставить для исключения, и слова исключения можно бы прикрутить, чтоб проверку по ним не делал. Например:
CODE
["Бот"]={ "[curUser], ща как укушу", "Я белая и пушистая", "Не дразните меня ", },
реагирует на слово работа.
Автор: Sephiroth_Lukaw 7.12.2008, 12:21
Цитата
у меня такой есть, но я не могу вписать в него свой ник, что бы во мной не разговаривал. Я уже писал об этом http://mydc.ru/ipb.html?s=&showtopic=2...post&p=6035
Ок. В первом посте пример привёл. Извиняюсь, что сразу не показал. Насчёт слов исключений тоже. P.S. Думаю, будет лучше, если кто-нибудь подправит описание темы с "API1 | Отвечает на фразы из таблицы", на "API1, API2 | Отвечает на фразы из таблицы" ^^"
Автор: chicha 7.12.2008, 17:28
CODE
["работа"]={}, ["бот"]={ "Ну и что?", },
Выходит ошибку и скрипт не работает Синтаксис S:\0.4.1.1\scripts\Govorun_API2.lua:140: bad argument #2 to 'random' (interval is empty)
Автор: Sephiroth_Lukaw 7.12.2008, 17:43
Ну, рассуж такие дела, в начале ChatArrival(или, после s,e,mess = string.find(data, "^%b<>%s(.*)$")) напиши
Код
for i, Val in pairs(iscl) do if(string.find(data, Val)) then return false -- return 0 для API1 end end
а перед таблицей trigs создай таблицу
Код
iscl = { "Работа", }
C учётом регистра будет.
Автор: chicha 7.12.2008, 18:21
Код
iscl = { "Работа", }
не работает, всё равно обращается к строке
Код
["бот"]={ "[curUser], сам ты бот", "Я живой как и ты", "ну и что?", },
, а ясли поставить запятую после
Код
iscl = { "Работа", },
то пристаёт к строке iscl
Автор: Sephiroth_Lukaw 7.12.2008, 19:02
Цитата
[21:04] <Sephiroth_Lukaw> Работа [21:04] <Sephiroth_Lukaw> работа [21:04] <Bot> Ну и что? [21:04] <Sephiroth_Lukaw> раб [21:04] <Sephiroth_Lukaw> бот [21:04] <Bot> Ну и что? [21:04] <Sephiroth_Lukaw> робот [21:04] <Bot> Ну и что? [21:04] <Sephiroth_Lukaw> Работа [21:04] <Sephiroth_Lukaw> Работа
Возможно сделать так чтоб бот мог вводить команды из других скриптов типа : бот погода - посылалась команда !погода в чат и чтоб это работало пытался так делать он команду отсылал в чат, но действия не просходило погоду не показывало. как это можно исправит и в чем проблема.
Автор: Setuper 21.1.2009, 0:31
Никак. Команды могут отправлять только пользователи.
Автор: Perspect 21.1.2009, 1:27
Всё же как то можно, нужно только подумать... Теоретически бот мог бы отправлять команды от имени того юзера, который например, в чате написал: Бот: анекдот. Тема актульная и имеет спрос.
Автор: Sephiroth_Lukaw 21.1.2009, 1:55
То, что отправляет бот - в ChatArrival не идёт, т.е. его команды пройдут, а скрипты никак не отреагируют. Как вариант, использовать другого - ВНЕШНЕГО бота.
Автор: Perspect 23.1.2009, 13:32
Как бы сделать, чтобы ответы "Говоруна" оставались бы в "Истории чата"?
тут уже упоминалось о задержке, сорри за флуд, но как же все таки с задержкой 3-5 сек сделать???
Автор: Gangster-Toni 28.1.2009, 16:41
Спасибо отличный скрипт!
Автор: Smoll 25.2.2009, 12:56
А вазможно зделать так, что бы в ответе можно было писать с Enter-ром??? А то когда ставиш Энтер выкидывает ошибку. На 0.4.1.1
Автор: Wariner 25.2.2009, 16:08
для переноса строк используй \r\n
Автор: Smoll 25.2.2009, 19:01
Цитата(Wariner @ 25.2.2009, 16:08)
для переноса строк используй \r\n
вот щя честно сказать это не проверил....... реально тупанул, но всеравно спасибо=)
Автор: Benvolyo 17.11.2009, 17:28
У меня с ним проблема. когда пытаюсь научить его ид описываю ему слов в таблицу он перестает на них реагировать.
Вот так подписывает это птока: Govorun_API2.lua:256: invalid pattern capture
Автор: Perspect 17.11.2009, 19:21
Хороший и НУЖНЫЙ скрипт, он меня спасает от новичков и идиотов.
Как бы объединить вопросы одной темы, заданные по-разному, в один блок?
["эт[ао] какой город"]={ "[curUser], а ты догадайся ", "[curUser], красивый город, можно сказать столица ", "[curUser], Крым, Симферополь :доволен:", },
["я куда попал[а?7]"]={ "[curUser], а ты догадайся ", "[curUser], красивый город, можно сказать столица ", "[curUser], Крым, Симферополь :доволен:", },
["хаб како[вг][ао] города[?7]"]={ "[curUser], а ты догадайся ", "[curUser], красивый город, можно сказать столица ", "[curUser], Крым, Симферополь :доволен:",
Объединить это нужно для экономии памяти. Много получается блоков, тематически схожих.
Автор: Alexey 18.11.2009, 17:05
Цитата(_LorD_ @ 23.1.2009, 23:08)
тут уже упоминалось о задержке, сорри за флуд, но как же все таки с задержкой 3-5 сек сделать???
Может тебе уже и неактуально, но тут как раз переделывал для другого человека, делюсь: Govorun_amod_API2.lua ( 2.84 килобайт )
: 60
Задержка динамическая, зависит от длины фразы сказавшего и длины фразы бота.
UPD: Теперь реагирует на случайное слово фразы из числа имеющихся в словаре, а не на первое в списке. Govorun_amod2_API2.lua ( 3.13 килобайт )
: 80
Автор: Noal 20.12.2009, 20:14
А есть подобный скрипт говоруна, но чтобы не сбивал команды. К примеру /me пошел делать то. Если в словарном запасе бота есть слово "пошел", он реагирует на него и сбивает тем самым команду пользователя. Можно что-то сделать, чтобы этого не было?
Автор: Uncle_Dif 20.12.2009, 21:20
Цитата(Sephiroth_Lukaw @ 29.7.2008, 7:11)
P.S. Может, у кого-нибудь, есть более адекватный скрипт?
Здесь, на форуме, есть бот БЛАНДИНКО.lua, он обучеемый, имеет задержку, какую поставишь сам, у меня работает стабильно. http://mydc.ru/ipb.html?act=attach&type=post&id=2570
У меня этот скрипт не идет. Ошибку не пишет. Если он конфликтует с лонли, то что именно лонли блокирует?
Автор: Alexey 21.12.2009, 7:02
Цитата(Noal @ 20.12.2009, 20:14)
А есть подобный скрипт говоруна, но чтобы не сбивал команды. К примеру /me пошел делать то. Если в словарном запасе бота есть слово "пошел", он реагирует на него и сбивает тем самым команду пользователя. Можно что-то сделать, чтобы этого не было?
Выше выложил обновлённую версию, в ней удали два знака тире в начале 102 строки:
Код
-- if sMsg:find" [/!%+]%S+" then return end
Автор: Noal 21.12.2009, 15:17
Огромное спасибо, помогло
Еще вопрос, как в твоем скрипте можно добавить функцию исключения слов, чтобы бот не реагировал на определенные фразы?
Автор: FallenAngel 21.12.2009, 19:41
Чуть выше Сева ведь описал как добавить слова исключения...
Автор: absent 7.2.2011, 1:28
если в апи1 можно сделать слово с пробелом например _бот_ -реагирует только на "бот" а не на слово "работа" то перекомпелированный в апи2 тупит и реагирует на все подряд