Регистрация | Вход
[ Главная · Новые сообщения ]
Форум » Основной раздел » Мастерская » Вопросы по скриптам
Вопросы по скриптам
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 {}""


прикладываю сам файлик.
casino1.5.1b.zip (13.2 Kb)
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.
Форум » Основной раздел » Мастерская » Вопросы по скриптам
Поиск: