Ещё один шаблон который подойдёт для маленьких процедур, чтобы не создавать их кучу можно объединить в одну. Работает в привате и на канале, понимает команды выделенные цветом, можно задать команду из нескольких слов или маску.
Цитата
####################################################
# WindropClan @
http://windrop.clan.su # Автор:
# Версия: 1.0
# Описание:
# Команды:
####################################################
namespace eval
template3 {
setudef flag no[namespace tail [namespace current]]
bind pubm - * [namespace current]::block
proc block {nick uhost hand chan text} {
if {$chan != $nick && [channel get $chan no[namespace tail [namespace current]]]} {return}
set text [string tolower [string trim [string map { {}} [stripcodes bcur $text]]]]
if {[string match "
!text" $text] || [string match "
!текст" $text]} {
putserv "privmsg $chan :текст"
return}
if {[string match "
!time" $text] || [string match "
!время" $text]} {
putserv "privmsg $chan :[strftime "%a %e %b %Y - %X"]"
return}
}
bind msgm - * [namespace current]::blockp
proc blockp {nick uhost hand text} {block $nick $uhost $hand $nick $text; return}
}
Пример блока для текста с разными вариантами ответов:
Цитата
if {[string match "*есть кто живой*" $text] || [string match "*есть живые*" $text]} {
set otvet {"надеюсь, что я живой." "тебе зачем?" "нет, здесь одни боты." "ты первый нах!"}
putserv "privmsg $chan :$nick, [lindex $otvet [rand [llength $otvet]]]"
return}
В string match в кавычках можно задать маску символом "*" и "?" если знак вопроса должен быть в тексте то указывается он так "\\?". Текст пишите в нижнем регистре так как весь текст который поступает в этот скрипт переводится в нижний регистр.