IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   TCL Scriptler (https://www.ircforumlari.net/tcl-scriptler/)
-   -   #bilgi kanalı için tcl (https://www.ircforumlari.net/tcl-scriptler/644752-bilgi-kanali-icin-tcl.html)

tolgabati 12 Kasım 2014 10:20

#bilgi kanalı için tcl
 
bind pub - !nick msg_nickban
proc msg_nickban {nick uhost handle chan arg} {
global botnick
set person [lindex $arg 0]
if {$person == $botnick} {return}
if {[isop $nick $chan] || [ishalfop $nick $chan] || [onchan $nick "#Opers"]} {
putquick "PRIVMSG IRC mode $chan +b $person"
putquick "kick $chan $person Kanal kurallarına uymadığınız tespit edildi. IP'niz banlandı."
}
}

Böyle bir kod var kanalda görevli olan op !nick deneme yazdığında kanaldaki deneme nickine bot nick ban atıyor.Şimdi bunu şöyle nasıl düzenleyebiliriz mesela komutu hangi op kime uyguladıysa #bilgi kanalına haber versin bot.

Örnek:

[01:00] <bot> deneme - NickDeğiş #kanal- Uygunsuz nick sebebi ( komutu uygulayan op)

tolgabati 12 Kasım 2014 16:31

Cevap: #bilgi kanalı için tcl
 
Tam anlaşılmadı galiba yani hangi kanalda hangi op hangi usere ban attı

Kablosuz NET 12 Kasım 2014 16:51

Cevap: #bilgi kanalı için tcl
 
Kod:

bind pub - !nick msg_nickban
proc msg_nickban {nick uhost handle chan arg} {
global botnick
set person [lindex $arg 0]
if {$person == $botnick} {return}
if {[isop $nick $chan] || [ishalfop $nick $chan] || [onchan $nick "#Opers"]} {
putquick "PRIVMSG IRC mode $chan +b $person"
putquick "kick $chan $person Kanal kurallarına uymadığınız tespit edildi. IP'niz banlandı."
putquick "PRIVMSG #bilgi $chan kanalında $person nickli üye $nick tarafından kanaldan atıldı."
}
}


Not: Botunuz bilgi kanalında olmak zorundadır.

saywhat 12 Kasım 2014 23:33

Cevap: #bilgi kanalı için tcl
 
bot 1.6.21 sürümü ise , bu sürümde (ve bir kullanıcıya Efnet'te yardım verirken görüldü ki 1.8 sürümünde de bu sorun var...) onchan ve botonchan komutlarıyla ilgili bir "bug" ,hata var şöyle ki ; bot ayrıldığı kanalla ilgili bilgiyi resetlemiyor ve bu nedenle orada olmamasına rağmen hala o sakladığı/silmediği veriye göre işlem yapmaya çalışabiliyor.

bu belirlenen "sorun" üzerine yukarıdaki gibi onchan yada botonchan komutları içeren scriptlerde "sıkıntı" yaşanmaması için (bot kanalda olmamasına rağmen hala "1" dönüyor "0" dönmesi gerekirken...) ,botunuz bu sürümlerden biri ise ,eggdrop geliştiricisi thommey'in bu sorunu onarmaya/gidermeye yönelik yazdığı şu scripti ,(mümkünse .conf dosyasında yüklenecek scriptler listesinin en üstlerinde source listesine ekleyin) yüklemelisiniz:

Kod:

# botonchan.tcl
# Track [botonchan]/[onchan] in a script, working around a bug in Eggdrop1.6.21
#
# (c) 2014 Thomas Sader
# ----------------------------------------------------------------------------
# "THE BEER-WARE LICENSE" (Revision 42):
# <thommey@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...].com> wrote this file. As long as you retain this notice you
# can do whatever you want with this stuff. If we meet some day, and you think
# this stuff is worth it, you can buy me a beer in return. - thommey
# ----------------------------------------------------------------------------

bind join - * onchan:join
# for some weird reason the part bind doesn't trigger if the bot parts on its own
#bind part - * onchan:part
bind out - "% sent" onchan:checkpart
bind kick - * onchan:kick
bind evnt - disconnect-server onchan:disconnect
proc setbotonchan {chan value} {
    global botonchan
    if {$value} {
        set botonchan($chan) 1
    } else {
        unset -nocomplain botonchan($chan)
    }
}
proc unsetbotonallchan {} {
    global botonchan
    if {![info exists botonchan]} {
        return
    }
    foreach chan [array names botonchan] {
        setbotonchan $chan 0
    }
}
proc onchan:join {nick host hand chan} {
    if {![isbotnick $nick]} { return }
    setbotonchan $chan 1
}
proc onchan:checkpart {queue text status} {
    if {[string toupper [lindex [split $text] 0]] eq "PART"} {
        onchan:part $::botnick - - [lindex [split $text] 1]
    }
}
proc onchan:part {nick host hand chan {reason ""}} {
    if {![isbotnick $nick]} { return }
    setbotonchan $chan 0
}
proc onchan:kick {nick host hand chan victim text} {
    if {![isbotnick $victim]} { return }
    setbotonchan $chan 0
}
proc onchan:disconnect {args} {
    unsetbotonallchan
}
proc botonchan {{chan "any"}} {
    global botonchan
    if {![info exists botonchan]} { return 0 }
    if {($chan eq "any" && ![llength [array names botonchan]]) || ![info exists botonchan($chan)]} { return 0 }
    return 1
}
# we also have to workaround [onchan] being 1 for old nicknames by embedding [botonchan] into it
if {[info commands _onchan] eq ""} { rename onchan _onchan }
proc onchan {nick {chan ""}} {
    if {$chan eq ""} {
        set chans [channels]
    } else {
        set chans [list $chan]
    }
    foreach c $chans {
        if {[botonchan $chan] && [_onchan $nick $chan]} { return 1 }
    }
    return 0
}

yukarıdaki sorunuz içinse,şöyle birşey :

Kod:

# rapor verilecek kanal.
set raporch "#rapor"

# komutu kullanma yetkisi olacak kişinin aynı zamanda bulunması aranan kanal.
set operch "#opers"

# uzaklaştırma sebebleri:
set sebep {
  "Kanal kurallarına uymadığınız tespit edildi. IP'niz banlandı."
  "canı öyle istemiş"
  "gözünün üstünde kaşın var..."
  "goooooooooooooolllllll"
  "bu tuşa basınca ne oluyordu acaba?"
  "ah elim kaydı..."
}

# ayar sonu...

proc msg_nickban {nick uhost hand chan text} {
    if {![isop $nick $chan] || ![ishalfop $nick $chan] && ![onchan $nick $::operch]} {
          puthelp "notice $nick :$::lastbind komutunu kullanmak için,$chan kanalında en az Halfop yada Op olmalı \
          ve $::operch kanalında bulunuyor olmak zorundasınız..."
          return
    }
   
    if {![botisop $chan] || ![botishalfop $chan]} {
          puthelp "notice $nick :$chan kanalında bunu yapmaya yetkim yok $nick"
          return
    }
   
          set person [filtre [lindex [split $text] 0]]
          set neden [subst -nocommands [lindex $::sebep [expr {int(rand()*[llength $::sebep])}]]]
          set zaman [clock format [clock seconds] -format "%d/%B/%Y %A %H:%M:%S" -locale tr_TR]
         
    if {[llength $person] eq "0"} {
          puthelp "notice $nick :kullanımı : $::lastbind <hedef>"
          return
    }
   
    if {$person eq $::botnick || [matchattr [nick2hand $person] mnoaf|mnoaf $chan]} {
          puthelp "notice $nick :bu kabul edilemez $nick..."
          return 0
    }
   
          pushmode $chan +b $person
          flushmode $chan
          putkick $chan $person :"$neden"
   
    if {[botonchan $::raporch]} {
          puthelp "privmsg $::raporch :$zaman $person nicki, \"$neden\" nedeniyle , $nick tarafından $chan kanalından uzaklaştırıldı."
          set iletildi 1
    } else {
          putlog "$::raporch kanalında olmadığımdan, bilgi iletilemedi..."
          set iletildi 0
    }
}

proc filtre {filter} {
    return [regsub -all -- $filter {[][*?\\]} {\\\0} filter]
}

bind pub - "!nick" msg_nickban

putlog "ok..."


tolgabati 13 Kasım 2014 11:43

Cevap: #bilgi kanalı için tcl
 
Kablosuz NET verdiğin kod işe yaradı teşekkür ederim birde bu komuttan op ve halfop konumunda olanların etkilenmemesi için ne yapmalıyız yani kanalda olan deneme halfop konumunda ise !nick deneme yaptığımızda etkilenmesin yani bot +b yapmasın

rascoLn 13 Kasım 2014 12:33

Cevap: #bilgi kanalı için tcl
 
Kod:

bind pub - !nick msg_nickban
proc msg_nickban {nick uhost handle chan arg} {
global botnick
set person [lindex $arg 0]
if {$person == $botnick} {return}
if {[isop $nick $chan] || [ishalfop $nick $chan] || [onchan $nick "#Opers"]} {
İf {![ishalfop $person $chan] && ![isop $person $chan]} {
putquick "PRIVMSG IRC mode $chan +b $person"
putquick "kick $chan $person Kanal kurallarına uymadığınız tespit edildi. IP'niz banlandı."
putquick "PRIVMSG #bilgi $chan kanalında $person nickli üye $nick tarafından kanaldan atıldı."
}
}
}

Op ve halfoplar muaf tutulur..

tolgabati 13 Kasım 2014 16:05

Cevap: #bilgi kanalı için tcl
 
dediğiniz gibi yaptım bu seferde hiç çalışmıyor kimseyi atmıyor kanaldan

--IRCForumlari.NET ; Flood Engellendi -->-> Yeni yazılan mesaj 16:05 -->-> Daha önceki mesaj 15:30 --

bu konuda yardımcı olabilecek bir arkadaş varmı acaba

tolgabati 13 Kasım 2014 22:07

Cevap: #bilgi kanalı için tcl
 
Kablosuz NET bu konu hakkında bilgin varmı acaba ?

--IRCForumlari.NET ; Flood Engellendi -->-> Yeni yazılan mesaj 22:07 -->-> Daha önceki mesaj 22:06 --

Alıntı:

rascoLn Nickli Üyeden Alıntı (Mesaj 1041540902)
Kod:

bind pub - !nick msg_nickban
proc msg_nickban {nick uhost handle chan arg} {
global botnick
set person [lindex $arg 0]
if {$person == $botnick} {return}
if {[isop $nick $chan] || [ishalfop $nick $chan] || [onchan $nick "#Opers"]} {
İf {![ishalfop $person $chan] && ![isop $person $chan]} {
putquick "PRIVMSG IRC mode $chan +b $person"
putquick "kick $chan $person Kanal kurallarına uymadığınız tespit edildi. IP'niz banlandı."
putquick "PRIVMSG #bilgi $chan kanalında $person nickli üye $nick tarafından kanaldan atıldı."
}
}
}

Op ve halfoplar muaf tutulur..



dediğiniz gibi yaptım bu seferde hiç çalışmıyor kimseyi atmıyor kanaldan

rascoLn 14 Kasım 2014 01:01

Cevap: #bilgi kanalı için tcl
 
kod calısıyor yalnız bastaki "if" ' i "İf" olarak yazmısım ondan calismamistir. Tekrardan copy / paste yapıp deneyebilirsiniz..

Kod:

bind pub - !nick msg_nickban
proc msg_nickban {nick uhost handle chan arg} {
global botnick
set person [lindex $arg 0]
if {$person == $botnick} {return}
if {[isop $nick $chan] || [ishalfop $nick $chan] || [onchan $nick "#Opers"]} {
if {![ishalfop $person $chan] && ![isop $person $chan]} {
putquick "PRIVMSG IRC mode $chan +b $person"
putquick "kick $chan $person Kanal kurallarına uymadığınız tespit edildi. IP'niz banlandı."
putquick "PRIVMSG #bilgi $chan kanalında $person nickli üye $nick tarafından kanaldan atıldı."
}
}
}


tolgabati 14 Kasım 2014 01:53

Cevap: #bilgi kanalı için tcl
 
Alıntı:

rascoLn Nickli Üyeden Alıntı (Mesaj 1041541371)
kod calısıyor yalnız bastaki "if" ' i "İf" olarak yazmısım ondan calismamistir. Tekrardan copy / paste yapıp deneyebilirsiniz..

Kod:

bind pub - !nick msg_nickban
proc msg_nickban {nick uhost handle chan arg} {
global botnick
set person [lindex $arg 0]
if {$person == $botnick} {return}
if {[isop $nick $chan] || [ishalfop $nick $chan] || [onchan $nick "#Opers"]} {
if {![ishalfop $person $chan] && ![isop $person $chan]} {
putquick "PRIVMSG IRC mode $chan +b $person"
putquick "kick $chan $person Kanal kurallarına uymadığınız tespit edildi. IP'niz banlandı."
putquick "PRIVMSG #bilgi $chan kanalında $person nickli üye $nick tarafından kanaldan atıldı."
}
}
}


Çok teşekkür ederim tıkır tıkır çalışıyor şuan.Size zahmet olmassa bir şey daha rica edicem şimdi ScanX eggdrop bot kanalda birine ban attığı zaman mesela 5 dakika banlandınız diyor ve tam 5 dakika sonra saniyesi saniyesine o banı kaldırıyor.Ama ben ne kadar uğraşsamda !nick ban atıyorum bota .chanset #kanal ban-time 10) diye tanıtıyorum yada conf dosyasına global-ban-time 10 set-ban-time 10 bunların hiç birisi tam verimli değil attığı banı 10dak 20sn yada 10 dak 50sn gibi tutarsız bir biçimde banı açıyor.Bunu nasıl ScanX deki bot gibi ayarlıyabiliriz.

rascoLn 14 Kasım 2014 14:04

Cevap: #bilgi kanalı için tcl
 
Şöyle bir kod yaptım işine yarar umarım

Kod:

bind pub - !nick msg_nickban

proc msg_nickban {nick uhost handle chan arg} {
global botnick

# Oto-Ban Zamanı
set ::autoban "1"

# Bilgi Verilecek Kanal
set ::bkanal "#bilgi"

set person [lindex $arg 0]
set ::bantime [lindex $arg 1]
set ::kanal $chan
if {$person == $botnick} {return}
if {[isop $nick $chan] || [ishalfop $nick $chan] || [onchan $nick "#Opers"]} {
if {![ishalfop $person $chan] && ![isop $person $chan]} {
putquick "whois $person"
bind raw - 311 whois
}
}
}

proc whois { from keyword arg } {
set anick [lindex $arg 0]
set bnick [lindex $arg 1]
set banip [lindex $arg 3]
putquick "privmsg irc mode $::kanal +b $banip"
if { $::bantime == ""} {
putquick "kick $::kanal $bnick :\0031Kanal kurallarına uymadığınız tespit edildi. (\0034 $::autoban dakika\0031 ) IP'niz banlandı. \0034<\002\0033 autoban time\002\0034 >"
putquick "PRIVMSG $::bkanal :$::kanal kanalında $bnick nickli üye $anick tarafından kanaldan atıldı."
} else {
putquick "kick $::kanal $bnick :\0031Kanal kurallarına uymadığınız tespit edildi. (\0034 $::bantime dakika\0031 ) IP'niz banlandı. \0034<\002\0033 manuel time\002\0034 >"
putquick "PRIVMSG $::bkanal :$::kanal kanalında $bnick nickli üye $anick tarafından kanaldan atıldı."
}
if { $::bantime != "" } {
timer $::bantime [list putquick "privmsg irc mode $::kanal -b $banip"]
} else {
timer $::autoban [list putquick "privmsg irc mode $::kanal -b $banip"]
}
}


saywhat 15 Kasım 2014 16:35

Cevap: #bilgi kanalı için tcl
 
ban'ı mode .. +b ... yerine ,newchanban -> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] komutuyla uygulayabilirsiniz.

tolgabati 17 Kasım 2014 08:23

Cevap: #bilgi kanalı için tcl
 
Alıntı:

rascoLn Nickli Üyeden Alıntı (Mesaj 1041541700)
Şöyle bir kod yaptım işine yarar umarım

Kod:

bind pub - !nick msg_nickban

proc msg_nickban {nick uhost handle chan arg} {
global botnick

# Oto-Ban Zamanı
set ::autoban "1"

# Bilgi Verilecek Kanal
set ::bkanal "#bilgi"

set person [lindex $arg 0]
set ::bantime [lindex $arg 1]
set ::kanal $chan
if {$person == $botnick} {return}
if {[isop $nick $chan] || [ishalfop $nick $chan] || [onchan $nick "#Opers"]} {
if {![ishalfop $person $chan] && ![isop $person $chan]} {
putquick "whois $person"
bind raw - 311 whois
}
}
}

proc whois { from keyword arg } {
set anick [lindex $arg 0]
set bnick [lindex $arg 1]
set banip [lindex $arg 3]
putquick "privmsg irc mode $::kanal +b $banip"
if { $::bantime == ""} {
putquick "kick $::kanal $bnick :\0031Kanal kurallarına uymadığınız tespit edildi. (\0034 $::autoban dakika\0031 ) IP'niz banlandı. \0034<\002\0033 autoban time\002\0034 >"
putquick "PRIVMSG $::bkanal :$::kanal kanalında $bnick nickli üye $anick tarafından kanaldan atıldı."
} else {
putquick "kick $::kanal $bnick :\0031Kanal kurallarına uymadığınız tespit edildi. (\0034 $::bantime dakika\0031 ) IP'niz banlandı. \0034<\002\0033 manuel time\002\0034 >"
putquick "PRIVMSG $::bkanal :$::kanal kanalında $bnick nickli üye $anick tarafından kanaldan atıldı."
}
if { $::bantime != "" } {
timer $::bantime [list putquick "privmsg irc mode $::kanal -b $banip"]
} else {
timer $::autoban [list putquick "privmsg irc mode $::kanal -b $banip"]
}
}


Şimdi denedim ama yine aynı şekilde tutarsız banlar 30sn 20 sn gibi değişken sürelerde açılıyor.Mesela 22.10.15 te ban atıldı 22.11.15 te açılmıyor ScanX botta tam olarak bunu yapmışlar diyelimki ban süresini 5 dak ayarladın tam olarak ban 300 saniye sonra açılıyor nasıl yapmışlar anlamadım

saywhat 17 Kasım 2014 09:10

Cevap: #bilgi kanalı için tcl
 
tekrar yazayım bari hadi...
newchanban -> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

timer vs kullanmaya gerek olmadan, sunucuya komut/mode göndermeden, bu newchanban komutuyla kişiye atılan ban direk botun .user / kullanıcı dosyasına işlenir. süre belirtilmezse 60 dakika , 0 olarak belirtilirse "sticky" yani süresiz ban bunun dışında kaç yazarsanız o kadar dakika ban kullanıcı listesine işlenmiş ve kişiye uygulanmış olur. o süre doluncada kaldırılır.

newchanban local yani adı geçen kanalda ban için kullanılır. newban , global/yani botun olduğu tüm kanallarda geçerli olur.timer ile uygulanmaya çalışıldığında, saniye* bazında geçikmeler yaşanması doğaldır.

kullanıcı dosyasına işlenirse bu saniyelerle ölçülen gecikmeler olmayacak,bot için daha öncelikli* bir işlem haline gelecektir.aksi uygulamalarda bot , -> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] "queues" (sıralama/sıralandırma") diye çevirebileceğimiz bir "yapılacak işleri aciliyet/önem açısından sıraya sokar ki bu sayede kaynakların en ekonomik şekilde kullanılması sağlanmış olur.

scanx'in daha dakik olduğunu söylüyorsunuz. açın scanx.tcl dosyasını ve newchanban aratın,ben bakmadım ve hiç kullanmadım da, büyük ihtimalle newchanban yahut global olması için newban komutlarıyla uygulanıyordur.

bot dışardan bakılınca bir iş yapmıyormuş gibi gelebilir. ancak gerçekte arka planda sürekli olarak iş yapar. neler olduğunu görmek istiyorsanız. raw-log ayarını .conf üzerinde 1 yapın .restart ettikten sonra , bota login olup : .console +bcdhjkmoprstvwx
komutu uygulayın o zaman botun gördüğü işlediği herşeyi görme takip etme imkanınız olur.

tolgabati 17 Kasım 2014 09:36

Cevap: #bilgi kanalı için tcl
 
Alıntı:

saywhat Nickli Üyeden Alıntı (Mesaj 1041543716)
tekrar yazayım bari hadi...
newchanban -> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

timer vs kullanmaya gerek olmadan, sunucuya komut/mode göndermeden, bu newchanban komutuyla kişiye atılan ban direk botun .user / kullanıcı dosyasına işlenir. süre belirtilmezse 60 dakika , 0 olarak belirtilirse "sticky" yani süresiz ban bunun dışında kaç yazarsanız o kadar dakika ban kullanıcı listesine işlenmiş ve kişiye uygulanmış olur. o süre doluncada kaldırılır.

newchanban local yani adı geçen kanalda ban için kullanılır. newban , global/yani botun olduğu tüm kanallarda geçerli olur.timer ile uygulanmaya çalışıldığında, saniye* bazında geçikmeler yaşanması doğaldır.

kullanıcı dosyasına işlenirse bu saniyelerle ölçülen gecikmeler olmayacak,bot için daha öncelikli* bir işlem haline gelecektir.aksi uygulamalarda bot , -> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] "queues" (sıralama/sıralandırma") diye çevirebileceğimiz bir "yapılacak işleri aciliyet/önem açısından sıraya sokar ki bu sayede kaynakların en ekonomik şekilde kullanılması sağlanmış olur.

scanx'in daha dakik olduğunu söylüyorsunuz. açın scanx.tcl dosyasını ve newchanban aratın,ben bakmadım ve hiç kullanmadım da, bahse varım ki newchanban yahut global olması için newban komutlarıyla uygulanıyordur.

bot dışardan bakılınca bir iş yapmıyormuş gibi gelebilir. ancak gerçekte arka planda sürekli olarak iş yapar. neler olduğunu görmek istiyorsanız. raw-log ayarını .conf üzerinde 1 yapın .restart ettikten sonra , bota login olup : .console +bcdhjkmoprstvwx
komutu uygulayın o zaman botun gördüğü işlediği herşeyi görme takip etme imkanınız olur.

Kod bilgim yok bir tane tcl ile çalışıyorum (!nick nickban)+(!sus kanalda kişiyi susturmak için)+(!yasak kişinin ip adresini banlayıp kanaldan atmak için)

--IRCForumlari.NET ; Flood Engellendi -->-> Yeni yazılan mesaj 09:36 -->-> Daha önceki mesaj 09:31 --

Kullandığım tcl bu


bind pub - !yasak msg_forbid
proc msg_forbid {nick uhost handle chan arg} {
global botnick
set person [lindex $arg 0]
set mask "[string range [lindex [split [getchanhost $person $chan] "@"] 1] 0 end]"
if {$person == $botnick} {return}
if {[isop $nick $chan] || [ishalfop $nick $chan] || [onchan $nick "#op"]} {
if {![ishalfop $person $chan] && ![isop $person $chan]} {
putquick "PRIVMSG IRC mode $chan +b [getchanhost $person $chan]"
putquick "kick $chan $person Kanal kurallarına uymadığınız tespit edildi. IP'niz banlandı."
putquick "PRIVMSG #bilgi $chan kanalında *****$person***** nickli üyeye -----$nick----- tarafından !yasak komutu uygulandı."
}
}
}
bind pub - !nick msg_nickban
proc msg_nickban {nick uhost handle chan arg} {
global botnick
set person [lindex $arg 0]
if {$person == $botnick} {return}
if {[isop $nick $chan] || [ishalfop $nick $chan] || [onchan $nick "#op"]} {
if {![ishalfop $person $chan] && ![isop $person $chan]} {
putquick "PRIVMSG IRC mode $chan +b $person"
putquick "kick $chan $person $person rumuzu sohbet kurallarına aykırıdır. /nick Yeninick komutu ile değiştiriniz."
putquick "PRIVMSG #bilgi $chan kanalında *****$person***** nickli üye -----$nick----- tarafından bad nick sebebi ile kanaldan atıldı."
}
}
}

bind pub - !sus msg_silence
proc msg_silence {nick uhost handle chan arg} {
global botnick
set person [lindex $arg 0]
set mask "[string range [lindex [split [getchanhost $person $chan] "@"] 1] 0 end]"
if {$person == $botnick} {return}
if {[isop $nick $chan] || [ishalfop $nick $chan] || [onchan $nick "#op"]} {
if {![ishalfop $person $chan] && ![isop $person $chan]} {
putquick "PRIVMSG IRC mode $chan +b ~q:[getchanhost $person $chan]"
putquick "NOTICE $person Kanal kurallarına uymadığınız tespit edildi. IP'niz banlandı."
putquick "PRIVMSG #bilgi $chan kanalında *****$person***** nickli üyeye -----$nick----- tarafından !Sus komutu uygulandı."
}
}
}

saywhat 17 Kasım 2014 10:12

Cevap: #bilgi kanalı için tcl
 
newchanban komutu uygulama şekli:


(not yukardaki sizin koddaki örneğe eklenecekse hostu alınacak $nick $person olarak girilmiş "hedef" alınandır.
buna göre [getchanhost $nick $chan] komutu [getchanhost $person $chan] olarak uygulanmalıdır. )
Kod:

newchanban $chan *!*@[lindex [split [getchanhost $person $chan] "@"] 1] $botnick "ban nedeni bu kısma gelecek" xx
xx olarak belirttiğim satır sonundaki kısma ban süresi gelir. 30 dakikaysa 30 ,300 ise 300 .. yukarda yazdığım gibi boş bırakılırsa öntanımlı olarak 60 dakika. 0 girilirse süresiz "sticky" banlı kullanıcı olarak bot.user dosyası içinde her kanal için ayrı kayıt tutulur buda #falanca-kanal
bans
... vs gibi işler. süresi dolunca silinir ...

peh yine global botnick satırı burada da karşıma çıktı... global botnick varsa prosedürde $botnick yoksa $::botnick


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 02:27.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk