nefart.tcl - Вот такой не фарт у вас на канале.

Решение вопросов при работе с TCL скриптами.

Модератор: Модераторы

nefart.tcl - Вот такой не фарт у вас на канале.

Сообщение tvrsh » 28 ноя 2009 20:16

Название: nefart.tcl
Версия: 1.1
Автор: tvrsh
Описание: Скрипт постит в канал истории с сайта http://www.nefart.ru
Поддержка Suzi: Да
Пример работы:
<tvrsh> !nefart
<@bionic> Нефарт №: 11880, Добавлен: 13.08.2009 - 21:33, Добавил: ZloiZaochnik, Раздел: Разное, В натуре не фарт!: 767, Сам виноват!: 540.
<@bionic> Сегодня взломали мой почтовый ящик, как следствие, пропала немалая сумма на яндекс деньгах (около 1к) и почти все пароли. Вот такой не фарт!(
<@bionic> ###

Дополнительная информация:
Работает как по команде так и по таймеру. Время между автовыводами задается в nefart(auto). Если равно 0 то автовывод отключен.
Ссылка на скрипт: nefart.tcl
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: nefart.tcl - Вот такой не фарт у вас на канале.

Сообщение wr` » 24 сен 2012 12:50

заметил что сбивается таймер,ставишь например на 2 минуты,работает нормально,но потом либо по два сразу выдает,либо позже,обычно это после того как делаю rehash
Аватара пользователя
wr`
 
Сообщения: 121
Зарегистрирован: 26 май 2009 21:17
Благодарил (а): 19 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21+suzi

Re: nefart.tcl - Вот такой не фарт у вас на канале.

Сообщение tvrsh » 25 сен 2012 10:57

Jake писал(а):не подскажите как поставить антифлуд в этот скрипт ?

В разделе TCL скрипты, в объявлениях есть тема Ограничение на запуск скрипта. В ней очень подробно все расписано. Пробуй, если будут ошибки, то показывай, спрашивай.

Добавлено спустя 7 минут 15 секунд:
wr` писал(а):заметил что сбивается таймер,ставишь например на 2 минуты,работает нормально,но потом либо по два сразу выдает,либо позже,обычно это после того как делаю rehash

Перед
if {$nefart(auto) > "0"} {
    utimer $nefart(auto) ::nefart::auto
}
добавь
TCL: [ Скачать ] [ Скрыть ]
# Процедура остановки таймеров, запускающих *::nefart::* процедуры.
proc ::nefart::killtm { } {
    foreach tms "[utimers]" {
        if {([llength $tms] != 0)} {
            if {[string match -nocase "*::nefart::*" $tms]} {
                killutimer [lindex $tms 2]
            }
            unset tms
        }
    }
}
# Запуск этой процедуры.
::nefart::killtm

Должно убивать все существующие таймеры во время загрузки скрипта при рехаше.
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: nefart.tcl - Вот такой не фарт у вас на канале.

Сообщение Jake » 25 сен 2012 11:42

tvrsh писал(а):В разделе TCL скрипты, в объявлениях есть тема Ограничение на запуск скрипта. В ней очень подробно все расписано. Пробуй, если будут ошибки, то показывай, спрашивай.

Пробывал первый вариант, безуспешно. Подскажи, какими строчками кода начинается начало процедуры и проверка наличия канальных флагов, а то я в TCL вообще не разбираюсь (

попробывал ещё раз, вот такая фигня вылазиет:
[
20:10:04] «testing» [ERROR] невозможно прочитать "chan": переменная не существует
[20:10:04] «testing» [ERROR] при выполнении
[20:10:04] «testing» [ERROR] "info exists cmd(lasttime,$chan)"
[20:10:04] «testing» [ERROR] вызванное из
[20:10:04] «testing» [ERROR] "if {[info exists cmd(lasttime,$chan)] && [expr $cmd(lasttime,$chan) + $cmd(delay)] > [clock seconds]} {
[20:10:04] «testing» [ERROR] putserv "NOTICE $nick :Запрос не ..."
[20:10:04] «testing» [ERROR] Показано 6 строк, всего 12.
Jake
 
Сообщения: 26
Зарегистрирован: 21 май 2012 11:17
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21+suzi

Re: nefart.tcl - Вот такой не фарт у вас на канале.

Сообщение tvrsh » 27 сен 2012 12:51

1. После
set nefart(auto) 0

добавь
set nefart(delay) 15


2. После
    if {![channel get $chan nefart]} {
        return 0
    }

добавь
TCL: [ Скачать ] [ Скрыть ]
if {[info exists nefart(lasttime,$chan)] && [expr $nefart(lasttime,$chan) + $nefart(delay)] > [clock seconds]} {
    putserv "NOTICE $nick :Запрос не чаще одного раза в $nefart(delay) [lindex {. секунду секунды секунд} [numgrp $nefart(delay)]]."
    putserv "NOTICE $nick :Подождите [expr $nefart(delay) - [expr [clock seconds] - $nefart(lasttime,$chan)]] [lindex {. секунду секунды секунд} [numgrp [expr $nefart(delay) - [expr [clock seconds] - $nefart(lasttime,$chan)]]]] до следующего запроса."
    return 0
}


3. После
putserv "PRIVMSG $chan : \00301$asplitr$asplitr$asplitr"

добавь
set nefart(lasttime,$chan) [clock seconds]


4. Перед
putlog "nefart.ru.tcl v$nefart(version) by $nefart(author) loaded."

добавь
TCL: [ Скачать ] [ Скрыть ]
proc numgrp {number} {
    switch -glob -- "$number" {
        *11 {return 3}
        *12 {return 3}
        *13 {return 3}
        *14 {return 3}
        *1 {return 1}
        *2 {return 2}
        *3 {return 2}
        *4 {return 2}
        default {return 3}
    }
}


Проверяй.
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.

За это сообщение автора tvrsh поблагодарил:
Jake (27 сен 2012 14:07)
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: nefart.tcl - Вот такой не фарт у вас на канале.

Сообщение Jake » 27 сен 2012 14:39

и ещё .... бывает вылезают какие-то теги вида "<a href="/19991/">#19991</a>" в сообщениях:
[22:36:01] «@user» !нефарт
[22:36:02] «@Bot» Нефарт №: 20022, Добавлен: 23.11.2009 - 16:34, Добавил: adante, Раздел: Секс, В натуре не фарт!: 942, Сам виноват!: 3291.
[22:36:03] «@Bot» <a href="/19991/">#19991</a> напомнило... Года 4 назад я встречался с девушкой-би. Естесственно, в один прекрасный момент мы решили попробовать втроем - я, она и ее подруга. Опыта втроем ни у кого не было. Решили дунуть немножко, чтобы расслабиться. В итоге секс-таки
[22:36:03] «@Bot» получился... у них. А я сидел на диване и тупо ржал. Забыл, что меня от травы плющит намного сильнее, чем обычных людей. Это был грандиозный нефарт.
[22:36:03] «@Bot» •••
Jake
 
Сообщения: 26
Зарегистрирован: 21 май 2012 11:17
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21+suzi

Re: nefart.tcl - Вот такой не фарт у вас на канале.

Сообщение tvrsh » 27 сен 2012 15:01

Перед
set nefartt [string map {"&quot;" "'"} $nefartt]

добавь
regsub -all -- {<a .*?>|</a>} $nefartt "\002" nefartt
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Пред.

Вернуться в TCL скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

cron