Вопросы по скриптам
|
|
|
Vladislav 02.10.11 10:35 #91
|
Изучить TCL и добавить в код то, что нужно.
Мне не интересно вносить изменения в данный скрипт, во-первых он старющий (2003 год), во-вторых в боте есть скрипт allprotection.tcl в котором подобного навалом, нужно только разобраться в настройках и включить то, что нужно и отключить то, что не нужно.
По поводу allprotection.tcl если скрипт не загружался ни разу то меняется в самом скрипте в строке:
Code lappend ap:udefs {ap:massjoin "0:0 mR-k join.flood 60"}
например так:
Code lappend ap:udefs {ap:massjoin "10:20 R-k join.flood 300"}
Если скрипт уже загружен, то нужно менять значения командой на канале: !set ap:massjoin "10:20 R-k join.flood 300"
Бот поставит мод R если будет 10 заходов в течении 20 секунд и уберёт его через 5 минут.
|
|
|
|
Divide 12.10.11 09:31 #92
|
как называется скрипт с "!пук" ?
|
|
|
|
Vladislav 12.10.11 15:40 #93
|
Если ты про ту команду что в боте, то это модуль social
|
|
|
|
Evil_Moderate 13.10.11 17:36 #94
|
Quote [20:35:14] Relaksa [~mechta@mirc.uni.cx] теперь известен как Грибной_дождик [20:35:15] Gemini [~bot@80.83.239.72] включил режим +b *!*mechta@mirc.uni.cx [20:35:16] Грибной_дождик [~mechta@mirc.uni.cx] кикнут на #мы by Gemini [~bot@80.83.239.72]: ...и спасибо за игру. я смотрел скрипт протекшен, но так и не нашел где хранятся баны, так же не нашел за что бан. где это исправить?
|
|
|
|
Vladislav 13.10.11 17:50 #95
|
allprotection.tcl выставляет бан на канал чтобы его снять достаточно снять бан с канала.
Если причина кика "...и спасибо за игру", то это какой-то скрипт который ставил ты, в сборке нет такой причины.
|
|
|
|
Evil_Moderate 13.10.11 17:55 #96
|
у меня не много добавленых скриптов, в них нет банов. Есть мысля что это бан поставленый мной другому пользователю , вопрос где хранятся записи бана.
|
|
|
|
Vladislav 13.10.11 18:16 #97
|
|
|
Evil_Moderate 23.10.11 22:11 #98
|
решил попробовать написать что нибудь свое и вот что получилось:
Code ###Эээээ... А куда это я попал?### bind pubm - "*куда*я*попал*" pub:raznfaqv proc pub:raznfaqv {nick uhost hand chan text} { if {![channel get $chan faqsystem]} { return } putserv "privmsg $chan :Вы попали на канал $chan посвященный наукам ктулхологии и криветковедению Если Вы мальчик напишите 1# если злой валасытый мужыГ - 2# если вы милая дефочка -3# если злая мигера -4# если вы не определились кто вы напишите -5# ежели вы не относите себя к выше указаным -6# ну а если чего-то стесняетесь -7# если вам нужна помощь в выборе -8# если нужна просто помощь -9# если кто-то еще - Alt+F4 :)"; return; }
на канале выглядит почему то так:
Quote 02:54:41 <Evil_Moderate> а куда это я попал? 02:54:44 <{O_o}> Вы сейчас на канале #inetvl посвященный наукам ктулхологии и криветковедению Если Вы мальчик напишите 1# если злой валасытый мужыГ - 2# если вы милая дефочка -3# если злая мигера -4# если вы не определились кто вы напишите -5# ежели вы не относите себя к выше указаным -6# ну а если чего-то стесняетесь -7# если вам нужна помощь в выборе -8# если нужна просто помощь -9# если кто-то еще - Alt+F4 :) 02:54:46 <{O_o}> Вы сейчас на канале #inetvl посвященный наукам ктулхологии и криветковедению Если Вы мальчик напишите 1# если злой валасытый мужыГ - 2# если вы милая дефочка -3# если злая мигера -4# если вы не определились кто вы напишите -5# ежели вы не относите себя к выше указаным -6# ну а если чего-то стесняетесь -7# если вам нужна помощь в выборе -8# если нужна просто помощь -9# если кто-то еще - Alt+F4 :)
дальше в скрипте идет следущее:
Code ###1### bind pubm - "*1#*" pub:raznfaqv1 proc pub:raznfaqv1 {nick uhost hand chan text} { if {![channel get $chan faqsystem]} { return } putserv "privmsg $chan :да ты клефый мальчиК $nick :)"; return; }
###2### bind pubm - "*2#*" pub:raznfaqv2 proc pub:raznfaqv2 {nick uhost hand chan text} { if {![channel get $chan faqsystem]} { return } putserv "privmsg $chan :йа боюсь тя $nick (пОбРеЙсО ЧтОлЬ) :)"; return; }
###3### bind pubm - "*3#*" pub:raznfaqv3 proc pub:raznfaqv3 {nick uhost hand chan text} { if {![channel get $chan faqsystem]} { return } putserv "privmsg $chan :$nick ДаФаЙ ЗнАкОмИтЬсО??? :)"; return; }
###4### bind pubm - "*4#*" pub:raznfaqv4 proc pub:raznfaqv4 {nick uhost hand chan text} { if {![channel get $chan faqsystem]} { return } set rnick [lindex $nicks [rand [llength $nicks]]] while {($rnick == $nick) || ($rnick == $botnick)} { set rnick [lindex $nicks [rand [llength $nicks]]] } putserv "privmsg $chan :СпРяТоЛсО оТ $nick За СпИнОй У $rnick :)"; return; }
###5### set sd(info) [::egglib::readdata data/sd.txt] bind pubm - "*5#*" pub:raznfaqv5 proc pub:raznfaqv5 {nick uhost hand chan text} { if {![channel get $chan faqsystem]} { return } putserv "privmsg $chan :$nick по моему скромному вычислению ты .... :) putserv "privmsg $chan :\00306[lindex $sd(info) [rand [llength $sd(info)]]] putserv "privmsg $chan : ;-)"; return; }
###6### bind pubm - "*6#*" pub:raznfaqv6 proc pub:raznfaqv6 {nick uhost hand chan text} { if {![channel get $chan faqsystem]} { return } putserv "privmsg $chan :$nick Оу ФаК Да Ты ОнО О_о :)"; return; }
###7### bind pubm - "*7#*" pub:raznfaqv7 proc pub:raznfaqv7 {nick uhost hand chan text} { if {![channel get $chan faqsystem]} { return } putserv "privmsg $chan :$nick ВаУ Да Ти СтЕфНяШкА :-[ :) putserv "privmsg $chan : ДаФаЙ ДлУжИтЬ $nick ??"; return; }
###8### bind pubm - "*8#*" pub:raznfaqv8 proc pub:raznfaqv8 {nick uhost hand chan text} { if {![channel get $chan faqsystem]} { return } putserv "privmsg $chan :$nick если ваш праздник 8 марта и вам дарят цветы и конфеты, вы очаровательная девушка!!! :) putserv "privmsg $chan :$nick если ваш праздник 23 февраля то вы определенно мужиК ЗашитнеГ!!!!! :)"; return; }
###9### bind pubm - "*9#*" pub:raznfaqv9 proc pub:raznfaqv9 {nick uhost hand chan text} { if {![channel get $chan faqsystem]} { return } putserv "privmsg $chan :$nick ЧеМ МоГу БыТь ПоЛеЗеН??? putserv "privmsg $chan :$nick мои команды !хелп :)"; return; }
но работают только 3 первых посдкажите мои ошибки
|
|
|
|
Vladislav 23.10.11 22:51 #99
|
Насчёт первого перезагрузи бота (!рестарт) если по прежнему два раза выводит то ищи бинд с процедурой pub:raznfaqv видимо их два.
В 4 не объявлена переменная $nicks видимо в ней должен быть список канала, перед
Code set rnick [lindex $nicks [rand [llength $nicks]]]
добавь
Code set nicks [chanlist $chan]
В других у тебя не хватает кавычек и нужно экранировать квадратные, фигурные скобки (\[ или \{)
Quote ###7### bind pubm - "*7#*" pub:raznfaqv7 proc pub:raznfaqv7 {nick uhost hand chan text} { if {![channel get $chan faqsystem]} { return } putserv "privmsg $chan :$nick ВаУ Да Ти СтЕфНяШкА :-\[ :)" putserv "privmsg $chan : ДаФаЙ ДлУжИтЬ $nick ??"; return; }
Бот пишет ошибку после выполнении команды, для большей информации можно набрать .set errorInfo или на канале !tcl $::errorInfo сразу после набора команды. Пример тут.
Более удачный вариант выложен тут, используй его для подобного.
|
|
|
|
Evil_Moderate 23.10.11 23:08 #100
|
спасибо подправил, в 4 пишет следущее : Quote [04:00:35] Tcl error [pub:raznfaqv4]: can't read "botnick": no such variable и с 5 по текстовому файлику не получается,остальное работает. Quote [04:01:19] Tcl error [pub:raznfaqv5]: extra characters after close-quote
|
|
|
|
Vladislav 23.10.11 23:28 #101
|
Обозначь переменную которую он не может найти:
Quote ###4### bind pubm - "*4#*" pub:raznfaqv4 proc pub:raznfaqv4 {nick uhost hand chan text} { global botnick
Выставь все кавычки и перенеси sd(info) в процедуру, проверь чтоб файл sd.txt был в data:
Quote ###5### bind pubm - "*5#*" pub:raznfaqv5 proc pub:raznfaqv5 {nick uhost hand chan text} { if {![channel get $chan faqsystem]} { return } set sd(info) [::egglib::readdata data/sd.txt] putserv "privmsg $chan :$nick по моему скромному вычислению ты .... :)" putserv "privmsg $chan :\00306[lindex $sd(info) [rand [llength $sd(info)]]]" putserv "privmsg $chan : ;-)"; return; }
|
|
|
|
Evil_Moderate 25.10.11 12:28 #102
|
Спасибо за помощь все прекрасно робит, в форуме вы отписывались как мегахал отучить от мата,попробовал. удалил файлы но он попрежнему заядло матерится :(
Сечас есть проблема с игрой казино,так как бинды совпадают их переименовал. но запуска так и не было
Quote 17:11:14 <%Evil_Moderate> !казино 17:11:24 <%Evil_Moderate> !tcl $::errorInfo 17:11:27 <%{O_o}> [ERROR 1.0ms] неизвестная команда "невозможно прочитать "state(sock)": нет такого элемента в массиве 17:11:28 <%{O_o}> [TCL] при выполнении 17:11:28 <%{O_o}> [TCL] "fileevent $state(sock) writable {}""
прикладываю сам файлик.
|
|
|
|
Vladislav 25.10.11 15:47 #103
|
Значит не правильно сделал, на форуме написано и как полностью очистить и как редактировать, помимо этого там есть антимат который не записывает мат.
Quote # Опция управления антиматом: # 0 - антимат отключен # 1 - будет игнорироватся запоминание фраз, но отвечать бот на такие фразы будет # 2 - будут полностью игнорироваться сообщения содержащие мат. set megahal(antimat) 0
А для казино нужен MySQL в сборке его нет. Сначала разберись с ним, прочти текстовые файлы в архиве который прикрепил.
|
|
|
|
Evil_Moderate 06.11.11 05:22 #104
|
столкнулся с проблемой,залил бота на шелл,настроил запустил.. чтоб не утруждать себя перередактированием некоторых скриптов,в частности биндов и указаных каналов и тп решил скопировать с компа на шелл с заменой в итоге все скрипты работающие через интернет (погода,гугл,перевод) отображаются крякозябрами. где что исправлять?
|
|
|
|
Vladislav 06.11.11 10:20 #105
|
Может быть бот не правильно запущен cp1251 должна быть в !info в двух местах, а может ты перенеся скрипты с компа сбил кодировку, тогда на шелле их нужно сохранить в cp1251.
|
|
|