Code:
;written by banjirian@ni3
;mybanjirian@yahoo.com
---
ON *:TEXT:*:#: { .signal -n goto.protect # $nick $1- }
ON *:NOTICE:*:#: { .signal -n goto.protect # $nick $1- }
ON *:ACTION:*:#: { .signal -n goto.protect # $nick $1- }
ON *:NICK:*:#: { .signal -n goto.nick # $nick $1- }
ON *:JOIN:*:#: { .signal -n goto.join # $nick $1- }
ON *:SIGNAL:*: { 
  if ($signal == goto.protect) {
    if (%banjirian.a == ON) {
      if ($2 == $me) return
      if ($me !isop $1) return
      if ($2 !isreg #) return
      var %banjirian.b = .signal -n d $1-2
      var %banjirian.c = /[[:cntrl:]]/g
      var %banjirian.d = /[[:upper:]]/g   
      var %banjirian.e = /[[:digit:]]/g
      var %banjirian.f = /[[:punct:]]/g
      var %banjirian.g = /[€-篏/g
      var %banjirian.h = /\b([censored]|suck|babi|puki|bitch|dick)\b/Si
      var %banjirian.i = /(http|\.com|\cjb.net|\.net|\.org|\.php|\.html)/Si
      .hinc -u5m ilines $+($1,$2) 1
      .hinc -u5m irepeat $+($2,@,$1,@,$hash($remove($3-,$chr(160),$chr(32)),32)) 1 
      if ($regex($3-,%banjirian.c) => %max.c) %banjirian.b %banjirian.c.reason
      if ($regex($3-,%banjirian.d) => %max.d) %banjirian.b %banjirian.d.reason
      if ($regex($3-,%banjirian.e) => %max.e) %banjirian.b %banjirian.e.reason
      if ($regex($3-,%t.symbol) => %max.f) %banjirian.b %banjirian.f.reason
      if ($len($3-) => %max.u) %banjirian.b %banjirian.u.reason
      if ($regex($3-,%banjirian.g) => %max.g) %banjirian.b %banjirian.g.reason
      if ($count($3-,$chr(160)) => %max.x) %banjirian.b %banjirian.x.reason
      if ($regex($3-,%banjirian.h)) %banjirian.b %banjirian.h.reason
      if ($regex($3-,%banjirian.i)) %banjirian.b %banjirian.i.reason
      if ($hget(i.lines,$+($1,$2)) => %max.w) %banjirian.b %banjirian.w.reason
      if ($hget(i.repeat,$+($2,@,$1,@,$hash($remove($3-,$chr(160),$chr(32)),32)) => %max.v) %banjirian.b %banjirian.v.reason
    }
  }
  if ($signal == goto.join) {
    if (%banjirian.j ON) {
      var %banjirian.b = .signal -n d $1-2
      if ($2 == $me) return
      if ($me !isop $1) return
      if ($2 !isreg #) return
      var %banjirian.k = $address($2,2)
      hinc -u10 i.join massjoin
      if ($hget(i.join,massjoin) => %banjirian.l) { %banjirian.b %banjirian.l.reason }
      hinc -u10 i.join $+(join.,$nick)
      if ($hget(i.join,$+(join.,$nick)) => %banjirian.m) {  %banjirian.b %banjirian.m.reason }
      hinc -u10 i.join $+(max.,%banjirian.k)
      if ($hget(i.join,$+(max.,%banjirian.k)) => %banjirian.s) { %banjirian.b %banjirian.s.reason }
      if ($len($nick) => %banjirian.n) { %banjirian.b %banjirian.n.reason }
    }
  }
  if ($signal == goto.nick) {
    if (%banjirian.t == ON) {
      var %banjirian.b = .signal -n goto.kick2 $1-2
      if ($2 == $me) return
      if ($newnick == $me) return
      if ($me !isop $1) return
      if ($newnick !isreg #) return
      if ($newnick == $me) return
      hinc -u5 i.nick nick.change
      if ($hget(i.nick,nick.change) => %banjirian.o) { %banjirian.b %banjirian.o.reason }
      var %banjirian.k = $address($newnick,2)
      hinc -u10 i.nick $+(nick.,%banjirian.k)
      if ($hget(i.nick,$+(nick.,%banjirian.k)) => %banjirian.p) { %banjirian.b %banjirian.p.reason }
      if ($len($newnick) => %banjirian.q) { %banjirian.b %banjirian.q.reason }
    }
  }
  if ($signal == goto.kick) {
    if ($2 ison $1) {
      .hinc -u15m d y  
      if ($hget(d,y) <= %banjirian.r) { !kick $1 $2 $3 }
      var %banjirian.k = $address($2,%ban.level)
      .mode $chan +b %banjirian.k 
    }
  }
  if ($signal == goto.kick2) {
    if ($newnick ison $1) {
      .hinc -u15m d x  
      if ($hget(d,x) <= %banjirian.r) { !kick $1 $newnick $3 }
      var %banjirian.k = $address($newnick,%ban.level)
      .mode $chan +b %banjirian.k 
    }
  }
}
menu * {
  Setup
  .kick limit:set %banjirian.r $$?=
  .ban level (1-9):.set %ban.level $$?=
  .ON TEXT/NOTICE/ACTION
  ..disable all:set %banjirian.a OFF
  ..enable all:set %banjirian.a ON
  ..max codes:set %max.c $$?=
  ..max capslock:set %max.d $$?=
  ..max number:set %max.e $$?=
  ..max symbol:set %max.f $$?=
  ..max longtext:set %max.u $$?=
  ..max ascii:set %max.g $$?=
  ..max blank:set %max.x $$?=
  ..max repeat:set %max.v $$?=
  ..max lines:set %max.w $$?=
  ..reason
  ..codes:set %banjirian.c.reason $$?=
  ..capslock:set %banjirian.d.reason $$?=
  ..number:set %banjirian.e.reason $$?=
  ..symbol:set %banjirian.f.reason $$?=
  ..lenght:set %banjirian.u.reason $$?=
  ..ascii:set %banjirian.g.reason $$?=
  ..blank:set %banjirian.x.reason $$?=
  ..badword:set %banjirian.h.reason $$?=
  ..advertise:set %banjirian.i.reason $$?=
  ..repeat:set %banjirian.w.reason $$?=
  ..lines:set %banjirian.v.reason $$?=
  .ON JOIN
  ..disable all:set %banjirian.j OFF
  ..enable all:set %banjirian.j ON
  ..max join in 10secs:set %banjirian.l $$?=
  ..max join / address in 10secs:set %banjirian.s $$?=
  ..max join / nick in 10secs:set %banjirian.m $$?=
  ..max nick lenght:set %banjirian.n $$?=
  ..reason
  ..mass join in 10secs:set %banjirian.l.reason $$?=
  ..mass join / address in 10secs:set %banjirian.s.reason $$?=
  ..mass join / nick in 10secs:set %banjirian.m.reason $$?=
  ..nick lenght:set %banjirian.n.reason $$?=
  .ON NICK
  ..disable all:set %banjirian.t OFF
  ..enable all:set %banjirian.t ON
  ..max nick change:set %banjirian.o $$?=
  ..max nick change / address:set %banjirian.p $$?=
  ..max nick lenght:set %banjirian.q $$?=
  ..reason
  ..mass nick change:set %banjirian.o.reason $$?=
  ..mass nick change / address:set %banjirian.p.reason $$?=
  ..nick lenght:set %banjirian.q.reason $$?=
}
  


Few hours ago my pals request pro scripts then i made it without test and my flood setup looks messy .. Gonna make dialog box soon or somebody could help me smile .. I just wanna know if codes above works or not .. and i need some comments from you to improve this codes smile thanks