Bender писал(а):А как сделать так чтобы пользователь с списка мог брать моды по команде в привате к примеру: !mod +W
bind msg - !mod userumode
proc userumode {nick uhost hand text} {
global lastbind
    set handlist "hand1 hand2 hand3 hand4 hand5"
    set modelist "+W +p"
    foreach handle [split $handlist] {
        if {$handle == [nick2hand $nick]} { 
            foreach mode [split $modelist] {
                if {$mode == $text} {
                    putserv "MODE $nick $text"
                    return 0
                }
            }
            putserv "NOTICE $nick :$nick, мода $text нет в списке допустимых к установке. Список модов: [string trimright [join $modelist ", "] ","]."
            return 0        
        }
    }
    putserv "NOTICE $nick :$nick, вам запрещено использовать команду $lastbind."
    return 0        
}
putlog "userumode.tcl loaded."
  Скрипт определяет хэндл того, кто использовал команду !mod с помощью команды 
nick2hand и если его хэндл есть в списке, то после этого проверяется есть ли указанный им мод в списке допустимых. Если все положительно то мод ставится. 
Учти, что маски можно подделать и мод может получить тот, кому он не предназначен.