statslev.tcl

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

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

statslev.tcl

Сообщение Stefan » 30 ноя 2010 04:11

Может путь к каталогу статистики к изменениям ". TXT" вариант /statsmod.txt/.?

set data [::egglib::readdata "data/$::botnick.statsmod.dat"]


Вот весь скрипт :

TCL: [ Скачать ] [ Скрыть ]
#####################################################################################
#
#        :::[  T h e   R u s s i a n   E g g d r o p  R e s o u r c e  ]:::
#      ____                __                                                      
#     / __/___ _ ___ _ ___/ /____ ___   ___      ___   ____ ___ _     ____ __ __  
#    / _/ / _ `// _ `// _  // __// _ \ / _ \    / _ \ / __// _ `/    / __// // /  
#   /___/ \_, / \_, / \_,_//_/   \___// .__/ __ \___//_/   \_, / __ /_/   \___/    
#        /___/ /___/                 /_/    /_/           /___/ /_/                
#
#
#####################################################################################
#
# statslev.tcl
#
# Описание:
#    Выдает звание и уровень пользователя в зависимости от его общительности.
#       Отключать через флаг .chanset #chan +nopubstatslev
#       Остальные настройки втыкаем ниже.
#
# Автор: Deniska <deniska@eggdrop.org.ru>
#
# Поддержка: irc.eggdrop.org.ru @ #eggdrop
#
#####################################################################################
#######################
namespace eval statslev {}
foreach bind [binds "::statslev::*"] { catch {unbind [lindex $bind 0] [lindex $bind 1] [lindex $bind 2] [lindex $bind 4]} }
foreach p [array names statslev *] { catch {unset statslev($p) } }

setudef flag nopubstatslev


if { ![info exists egglib(ver)] } {
putlog "***********************************************"
putlog "             egglib_pub NOT FOUND !"
putlog "   Download last version of egglib_pub here:"
putlog "  http://eggdrop.org.ru/scripts/egglib_pub.zip"
putlog "***********************************************"
return
}
if { [expr {$egglib(ver) < 1.4}] } {
putlog "***********************************************"
putlog " YOUR VERSION OF egglib_pub IS TOO OLD !"
putlog "   Download last version of egglib_pub here:"
putlog "  http://eggdrop.org.ru/scripts/egglib_pub.zip"
putlog "***********************************************"
putlog " version installed : $egglib(ver)"
putlog " version required: 1.4"
return
}
#######################
# Аффтар
set statslev(author) "Deniska <deniska@eggdrop.org.ru>"

# Версия этого говноскрипта
set statslev(ver) "1.0"

# Сколько слов пользователь должен наболтать на один уровень
set statslev(level) "2000"

# За какой уровень какое звание будет даваться
# Первая строка - когда слов недостаточно даже на первый уровень
set statslev(rangs) {
        "Никто и ничто"
        "Начинающее трепло"
        "Болтун"
        "Опытный оратор"
}
#######################
bind pub - !звание ::statslev::prang
bind pub - !ранг   ::statslev::prang
bind pub - !rang   ::statslev::prang
bind msg - !звание ::statslev::mrang
bind msg - !ранг   ::statslev::mrang
bind msg - !rang   ::statslev::mrang

proc ::statslev::prang { nick uhost hand chan text } {
        global statslev

        if { [channel get $chan nopubstatslev] } { return }

        set data [::egglib::readdata "data/$::botnick.statsmod.dat"]   

        if { [llength $text] > 1 } {
        putserv "privmsg $chan :$nick, используй \002!звание\002 или \002!звание <имя>\002"
        return
        }

        if { $text == "" } {
        set vict [nick2hand $nick $chan]
        } else {
        set vict [nick2hand $text $chan]
        }      

        if { $vict == "" } {
        putserv "privmsg $chan :$nick, я не нашёл этого пользователя у себя в базе."
        return
        }

        set num [lsearch -regexp $data "$chan $vict.*?"]

        if { $num == "-1" } {
        putserv "privmsg $chan :$nick, у меня нет статистики на этого пользователя."
        return
        }

        set line [lindex $data $num]
        set userstat [lindex [split $line] 3]

        set userlevel 0

        while { $userstat > $statslev(level) } {
        set userstat [expr $userstat-$statslev(level)]
        incr userlevel
        }

        set outline [lindex $statslev(rangs) $userlevel]

        if { $outline == "" } {
        putserv "privmsg $chan :Звание на этот уровень не задано."
        return
        }

        putserv "privmsg $chan :$vict: уровень - $userlevel. Звание - $outline"
}
       
       
putlog "statslev.tcl $statslev(ver) by $statslev(author) loaded"
Stefan
 
Сообщения: 23
Зарегистрирован: 02 окт 2010 15:13
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

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

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

cron