anisim
Новичок
Репутация: 0
Posts: 21
|
 |
« on: 6 November 2007, 08:45 » |
|
Как перехватывать сообщения других где иммется ваш ник? напр поставвить автоответ на слапы...
|
|
|
Logged
|
|
|
|
runkoff
|
 |
« Reply #1 on: 6 November 2007, 10:29 » |
|
Как перехватывать сообщения других где иммется ваш ник? напр поставвить автоответ на слапы...
event(OnChannelMessage,antimat) { if($str.find($3, $me) > -1) { # реагируем на ник в сообщении say $0", ты посмел меня потревожить? Знай смерд, мне не до тебя!" } } $3 - это текст сообщения $0 - это ник от кого получено сообщение поскольку обращаясь не посредственно к тебе, люди обычно ставят твой ник в начале сообщения, то проверку можно изменить. чтобы не реагировать на сообщения когда тебя просто упоминают в тексте. например: if($str.find($3, $me) = 0) Проверять можно не только наличие ника в сообщении, но и каких то шаблонов характерных для слапа
|
|
|
Logged
|
|
|
|
anisim
Новичок
Репутация: 0
Posts: 21
|
 |
« Reply #2 on: 6 November 2007, 16:41 » |
|
(OnChannelMessage,antimat)
а как сообытие это сделать штобы одной кнопочкой (напр "ctrl+a") включать/выключать?
|
|
|
Logged
|
|
|
|
Maximusya
|
 |
« Reply #3 on: 6 November 2007, 20:00 » |
|
Есть событие OnHighlight Оно возникает, если включена функция подсветки (по умолчанию подсвечивается ваш ник, но есть диалог настроек, в котором можно внести в список подсвечиваемых слов и другие слова - я, например, внес туда разные формы написания своего ника, на разных языках и тп.) По параметрам, передаваемым в это с событие - читай /help onhighlight))
|
|
|
Logged
|
|
|
|
anisim
Новичок
Репутация: 0
Posts: 21
|
 |
« Reply #4 on: 7 November 2007, 08:21 » |
|
нет я вот поставил на сообщения типа на мой ник. Но он срабатывает при каждом обращении на меня [13:09:46] <+АНЮ> An6Ism ~»как дела? [13:09:46] An6Ism АНЮ, шо ты там меня трогаешь? , хочу сделать (напр "ctrl+a")чтобы выключать и включать эту функцию, иногда мне та надо такие сообщения. хотел чтобы если в сообщении мой ник стоит в начале текста то не срабатывала, но есть моменты когда у кого то скрипты сделаны иначе, например: [13:09:46] <+АНЮ> >> An6Ism << ~»как дела? [13:09:46] An6Ism АНЮ, шо ты там меня трогаешь? в таких случаях опять жэ срабатывает
|
|
|
Logged
|
|
|
|
runkoff
|
 |
« Reply #5 on: 7 November 2007, 09:10 » |
|
добавь флаг в виде глобальной переменной и обрабатывай сообщений только если он включен. event(OnChannelMessage,antimat) { if(%MyFlag == 1) { if($str.find($3, $me) > -1) { # реагируем на ник в сообщении say $0", ты посмел меня потревожить? Знай смерд, мне не до тебя!" } } else { # echo "автоответ выключен" } } и кнопку для включения/выключения. смотри на -k="ctrl+a", действие будет срабатывать по нажатию ctrl+a action.create -t=generic -k="ctrl+a" ("MyAction1",$tr("My Action"),$tr("Put here a short description of your action"),"","") { if(%MyFlag == 1) %MyFlag = 0 else %MyFlag = 1 # echo "MyFlag = "%MyFlag } еще все это можно привязать к $away (читай в справке) или даже подумать как можно ко всему этому прикрутить onMeAway и onMeBack
|
|
|
Logged
|
|
|
|
upyx
Новичок
Репутация: 13
Gender: 
Posts: 43
Маленький, махнатый и умный.
|
 |
« Reply #6 on: 9 November 2007, 21:35 » |
|
%MyFlag = $(!%MyFlag) 
|
|
|
Logged
|
|
|
|
runkoff
|
 |
« Reply #7 on: 9 November 2007, 22:24 » |
|
дада, я именно это и имел ввиду 
|
|
|
Logged
|
|
|
|
virtuoz
Новичок
Репутация: 0
Posts: 2
|
 |
« Reply #8 on: 15 November 2007, 23:17 » |
|
простите, но нельзя ли на все это в собранном виде взглянуть, не могли бы как дополнение чтобы установить сделать =) а то совершенно непонятно как эту кнопочку добавить, в скриптостроении совершенно ничего не понимаю  при попытке выполнить выдает: [23:52:13] [KVS] Ошибка при выполнении: найдена пустая строка там где ожидается непустая [23:52:13] [KVS] в контексте скрипта "kvirc::corecall(run)", Строка 1, около символа 1
|
|
« Last Edit: 16 November 2007, 00:51 by virtuoz »
|
Logged
|
|
|
|
runkoff
|
 |
« Reply #9 on: 16 November 2007, 01:00 » |
|
простите, но нельзя ли на все это в собранном виде взглянуть, не могли бы как дополнение чтобы установить сделать =) а то совершенно непонятно как эту кнопочку добавить, в скриптостроении совершенно ничего не понимаю  прочти тему "как устанавливать скрипты", пригодится. http://www.kvirc.ru/forum/topic,147.0этот скрипт можно поставить по варианту 1 из той темы event(OnChannelMessage,antimat) - это создаст реакцию на сообщения пользователей в канал, тут доступны несколько переменных $0 = ник $1 = имя пользователя $2 = хост $3 = сообщений $4 = [target mode prefixes] action.create -t=generic -k="ctrl+a" ("MyAction1",$tr("My Action"),$tr("Put here a short description of your action"),"","") - это создаст кнопку. тут мы управляем глобальной переменной, ориентируясь на которую, мы определяем стоит отвечать пользователю или нет. вместо глобольной переменой которую мы переключаем вручную, можно использовать функции, которые зависят , например, от состояния away и т.п. Можно и дополнение написать, только задачу тогда поставь подробнее, а не просто хочу что б скрипт за меня отвечал всем. ЗЫ: скрипт 100% выполняемый, скорее всего ты где то опечатался.
|
|
|
Logged
|
|
|
|
virtuoz
Новичок
Репутация: 0
Posts: 2
|
 |
« Reply #10 on: 16 November 2007, 01:13 » |
|
про установку я первым делом прочитал, сам скрипт ставится, а вот кнопочка никак не создается, опечатки быть не может, поскольку копипастил просто, может это уже не в окошке теста сценариев надо делать? 
|
|
|
Logged
|
|
|
|
runkoff
|
 |
« Reply #11 on: 16 November 2007, 09:04 » |
|
про установку я первым делом прочитал, сам скрипт ставится, а вот кнопочка никак не создается, опечатки быть не может, поскольку копипастил просто, может это уже не в окошке теста сценариев надо делать?  для кнопки там не указаны иконки. последние два параметра, проставь там какую нить цифру, первая это для маленькой иконки, вторая для большой. action.create -t=generic -k="ctrl+a" ("MyAction1",$tr("My Action"),$tr("Put here a short description of your action"),"1","1") после того как кнопка появится в редакторе действий можешь вытащить ее на любую панель, или вызывать по ctrl+A
|
|
|
Logged
|
|
|
|
anisim
Новичок
Репутация: 0
Posts: 21
|
 |
« Reply #12 on: 22 November 2007, 21:50 » |
|
action.create -t=generic -k="ctrl+a" ("MyAction1",$tr("My Action"),$tr("Put here a short description of your action"),"1","1") это создает действие, это я понял
а где тут он узнает что именно OnChannelMessage,antimat это событие должен включать\выключать?
|
|
|
Logged
|
|
|
|
runkoff
|
 |
« Reply #13 on: 23 November 2007, 00:12 » |
|
а где тут он узнает что именно OnChannelMessage,antimat это событие должен включать\выключать?
тут не узнает, точнее имнно тут ему знать и не обязательно. тут мы изменяем значение глобальной переменной %MyFlag (значение глобальной переменной доступно в любом участке кода: в событиях, в действиях, в алиасах, в всплывающих меню). и посмотри в обработчике события, что мы первым делом проверяем?
|
|
|
Logged
|
|
|
|
Azag ToT
Новичок
Репутация: 2
Posts: 9
|
 |
« Reply #14 on: 25 March 2009, 21:29 » |
|
Вот мой вариант, активируемый алиасом. Сделан на основе скрипта из этой темы  if(%MyFlag == 1) %MyFlag = 0 else %MyFlag = 1 #=================================== if (%MyFlag == 1) { echo Автоответ включен } else { echo Автоответ выключен } #===================================
event(OnChannelMessage,antislap) { if (%MyFlag == 1) { if($str.find($3, $me) > -1) { //# реагируем на ник в сообщении say $0", ты посмел(а) меня потревожить? А вот фиг тебе. Меня за компом нет." } } }
|
|
|
Logged
|
|
|
|
|