; The contents of this script file are copyrighted by Insides Technologies, 2001. ; Definitions hereby supplied are owned by Insides Technologies and INSIDES - insides@qscripts.cjb.net, the script author. ; Please read the End User License Agreement supplied in order to understand the copy restrictions. ; Please contact the author of the script for any questions you might have. ; Thanks for understanding. On *:TEXT:*:?:{ pflood $nick text } On *:NOTICE:*:?:{ pflood $nick notice } On *:INVITE:#:{ pflood $nick invite } On *:OPEN:?:{ pflood $nick query } On *:CHAT:*:{ pflood $nick dchat } On @*:BAN:#:{ if ($banmask iswm $address($me,5)) && ($nick == $me) { mode $chan -b $banmask } if ($banmask iswm $address($me,5)) { mode $chan -b $banmask | mode $chan -o $nick | ppperform $nick ban | if ($ppval(ban,cip) == 1) { msgbox Banner IP : $address($nick,5) } } } CTCP *:*:?:{ pflood $nick ctcp } CTCP *:DCC*:?:{ ptflood $nick dcc } alias -l ppval { var %p $readini system\profiles\system.qc profiles current | set %p $remove($nopath(%p),.qc) | set %p system\ $+ %p $+ -pp.qx | return $readini %p $1 $2 } alias pflood { if ($nick == $me) { return } if ($istok(text notice invite query dchat fserver ctcp dcc,$2,32)) { goto $2 } :text if ($ppval($2,on) == 0) { return } if (%pp. [ $+ [ $1 ] $+ .text ] == $null) { set %pp. [ $+ [ $1 ] $+ .text.time ] $ctime } inc %pp. [ $+ [ $1 ] $+ .text ] set -u %time $ctime dec %time %pp. [ $+ [ $1 ] $+ .text.time ] if (%pp. [ $+ [ $1 ] $+ .text ] >= $ppval($2,par)) { if (%time <= $ppval($2,secs)) { ppperform $nick text } unset %pp. [ $+ [ $1 ] $+ .text ] | unset %pp. [ $+ [ $1 ] $+ .text.time ] } return :notice if ($ppval($2,on) == 0) { return } if (%pp. [ $+ [ $1 ] $+ .notice ] == $null) { set %pp. [ $+ [ $1 ] $+ .notice.time ] $ctime } inc %pp. [ $+ [ $1 ] $+ .notice ] set -u %time $ctime dec %time %pp. [ $+ [ $1 ] $+ .notice.time ] if (%pp. [ $+ [ $1 ] $+ .notice ] >= $ppval($2,par)) { if (%time <= $ppval($2,secs)) { ppperform $nick notice } unset %pp. [ $+ [ $1 ] $+ .notice ] | unset %pp. [ $+ [ $1 ] $+ .notice.time ] } return :invite if ($ppval($2,on) == 0) { return } if (%pp. [ $+ [ $1 ] $+ .invite ] == $null) { set %pp. [ $+ [ $1 ] $+ .invite.time ] $ctime } inc %pp. [ $+ [ $1 ] $+ .invite ] set -u %time $ctime dec %time %pp. [ $+ [ $1 ] $+ .invite.time ] if (%pp. [ $+ [ $1 ] $+ .invite ] >= $ppval($2,par)) { if (%time <= $ppval($2,secs)) { ppperform $nick invite } unset %pp. [ $+ [ $1 ] $+ .invite ] | unset %pp. [ $+ [ $1 ] $+ .invite.time ] } return :query if ($ppval($2,on) == 0) { return } if (%pp. [ $+ [ $1 ] $+ .query ] == $null) { set %pp. [ $+ [ $1 ] $+ .query.time ] $ctime } inc %pp. [ $+ [ $1 ] $+ .query ] set -u %time $ctime dec %time %pp. [ $+ [ $1 ] $+ .query.time ] if (%pp. [ $+ [ $1 ] $+ .query ] >= $ppval($2,par)) { if (%time <= $ppval($2,secs)) { ppperform $nick query } unset %pp. [ $+ [ $1 ] $+ .query ] | unset %pp. [ $+ [ $1 ] $+ .query.time ] } return :dchat if ($ppval($2,on) == 0) { return } if (%pp. [ $+ [ $1 ] $+ .dchat ] == $null) { set %pp. [ $+ [ $1 ] $+ .dchat.time ] $ctime } inc %pp. [ $+ [ $1 ] $+ .dchat ] set -u %time $ctime dec %time %pp. [ $+ [ $1 ] $+ .dchat.time ] if (%pp. [ $+ [ $1 ] $+ .dchat ] >= $ppval($2,par)) { if (%time <= $ppval($2,secs)) { ppperform $nick dchat } unset %pp. [ $+ [ $1 ] $+ .dchat ] | unset %pp. [ $+ [ $1 ] $+ .dchat.time ] } return :fserver if ($ppval($2,on) == 0) { return } if (%pp. [ $+ [ $1 ] $+ .fserver ] == $null) { set %pp. [ $+ [ $1 ] $+ .fserver.time ] $ctime } inc %pp. [ $+ [ $1 ] $+ .fserver ] set -u %time $ctime dec %time %pp. [ $+ [ $1 ] $+ .fserver.time ] if (%pp. [ $+ [ $1 ] $+ .fserver ] >= $ppval($2,par)) { if (%time <= $ppval($2,secs)) { ppperform $nick fserver } unset %pp. [ $+ [ $1 ] $+ .fserver ] | unset %pp. [ $+ [ $1 ] $+ .fserver.time ] } return :ctcp if ($ppval($2,on) == 0) { return } if (%pp. [ $+ [ $1 ] $+ .ctcp ] == $null) { set %pp. [ $+ [ $1 ] $+ .ctcp.time ] $ctime } inc %pp. [ $+ [ $1 ] $+ .ctcp ] set -u %time $ctime dec %time %pp. [ $+ [ $1 ] $+ .ctcp.time ] if (%pp. [ $+ [ $1 ] $+ .ctcp ] >= $ppval($2,par)) { if (%time <= $ppval($2,secs)) { ppperform $nick ctcp } unset %pp. [ $+ [ $1 ] $+ .ctcp ] | unset %pp. [ $+ [ $1 ] $+ .ctcp.time ] } return :dcc if ($ppval($2,on) == 0) { return } if (%pp. [ $+ [ $1 ] $+ .dcc ] == $null) { set %pp. [ $+ [ $1 ] $+ .dcc.time ] $ctime } inc %pp. [ $+ [ $1 ] $+ .dcc ] set -u %time $ctime dec %time %pp. [ $+ [ $1 ] $+ .dcc.time ] if (%pp. [ $+ [ $1 ] $+ .dcc ] >= $ppval($2,par)) { if (%time <= $ppval($2,secs)) { ppperform $nick dcc } unset %pp. [ $+ [ $1 ] $+ .dcc ] | unset %pp. [ $+ [ $1 ] $+ .dcc.time ] } return } alias -l ppperform { var %wo = $ppval($2,wo),%wy = $ppval($2,wy),%io = $ppval($2,io),%pm = $ppval($2,pm),%snd = $ppval($2,snd),%t = $2,%n = $1 tokenize 167 %wo if ($1 == 1) { if (%pp. [ $+ [ %n ] $+ [ %t ] $+ .warn ] == 1) { goto wy } | $replace($2,n,.notice,m,.msg) %n $replace($4-,,%n) } :wy tokenize 167 %wy if ($1 == 1) { if (%pp. [ $+ [ %n ] $+ [ %t ] $+ .warn ] == 1) { goto io } | $replace($2,m,msgbox,e,.echo %c) $replace($3-,,%n) } :io if (%pp. [ $+ [ %n ] $+ [ %t ] $+ .warn ] == $null) { goto end } tokenize 167 %io if ($1 == 1) { .ignore $iif($2 == 1,[ -u $+ [ $3 ] ]) $+ $4 $cpnad(%n,$5) | .notice %n $replace($6-,,%n) } tokenize 167 %pm if ($1 == 1) { .nick $replace($4,,$me) } if ($2 == 1) { .flash -r5 $replace($5-,<,%n) } if ($3 == 1) && (%snd != Empty) { .splay %snd } tokenize 167 %cm if ($1 == 1) { mode %c $2 } if ($3 == 1) { topic %c $4- } :end if (%pp. [ $+ [ %n ] $+ [ %t ] $+ .warn ] == 1) { unset %pp. [ $+ [ %n ] $+ [ %t ] $+ .warn ] | return } if (%pp. [ $+ [ %n ] $+ [ %t ] $+ .warn ] == $null) { set %pp. [ $+ [ %n ] $+ [ %t ] $+ .warn ] 1 } } dialog privprot { title "" size -1 -1 184 157 option dbu box "",1,-3 -3 300 4 box "Private Flood Protection",2,3 3 178 114 check "Text Flood",3,7 14 47 7 edit "",4,57 12 15 11,center,autohs text "Lines In",5,75 14 20 7 edit "",6,100 12 15 11,center,autohs text "Seconds",7,118 14 22 7 button "Perform",8,151 12 26 11 check "Notice Flood",9,7 27 47 7 edit "",10,57 25 15 11,center,autohs text "Lines In",11,75 27 20 7 edit "",12,100 25 15 11,center,autohs text "Seconds",13,118 27 22 7 button "Perform",14,151 25 26 11 check "Invite Flood",15,7 40 47 7 edit "",16,57 38 15 11,center,autohs text "Lines In",17,75 40 22 7 edit "",18,100 38 15 11,center,autohs text "Seconds",19,118 40 22 7 button "Perform",20,151 38 26 11 check "CTCP Flood",21,7 53 47 7 edit "",22,57 51 15 11,center,autohs text "CTCPs In",23,75 53 25 7 edit "",24,100 51 15 11,center,autohs text "Seconds",25,118 53 22 7 button "Perform",26,151 51 26 11 check "DCC Flood",27,7 66 47 7 edit "",28,57 64 15 11,center,autohs text "DCCs In",29,75 66 20 7 edit "",30,100 64 15 11,center,autohs text "Seconds",31,118 66 22 7 button "Perform",32,151 64 26 11 check "Query Flood",33,7 79 47 7 edit "",34,57 77 15 11,center,autohs text "Lines In",35,75 79 20 7 edit "",36,100 77 15 11,center,autohs text "Seconds",37,118 79 22 7 button "Perform",38,151 77 26 11 check "DCC Chat Flood",39,7 92 47 7 edit "",40,57 90 15 11,center,autohs text "Lines In",41,75 92 20 7 edit "",42,100 90 15 11,center,autohs text "Seconds",43,118 92 22 7 button "Perform",44,151 90 26 11 check "FSERVER Flood",45,7 105 47 7 edit "",46,57 103 15 11,center,autohs text "Lines In",47,75 105 20 7 edit "",48,100 103 15 11,center,autohs text "Seconds",49,118 105 22 7 button "Perform",50,151 103 26 11 box "Ban Protection",51,3 118 178 23 check "Ban Protection",52,7 129 47 7 check "Capture Ban IP",53,57 129 47 7 button "Perform",54,151 127 26 11 button "Save",55,59 144 20 11,disable button "Close",56,82 144 20 11,cancel button "Help",57,105 144 20 11 } On *:DIALOG:privprot:*:*:{ if ($devent == init) { mdx.init $dname | mdx.nfinit $dname 57 | mdx SetDialog $dname icon 4 $icons | dialog -t $dname Private Protection | did -f $dname 56 | ppinit } if ($devent == sclick) { did -e privprot 55 | privhandleclicks $did $did($did).state } if ($devent == edit) { did -e privprot 55 } } alias privprot { qdlg privprot } alias -l privhandleclicks { if ($istok(3 9 15 21 27 33 39 45,$1,32)) { did $replace($2,1,-e,0,-b) privprot $calc($1 + 1) $+ , $+ $calc($1 + 3) $+ , $+ $calc($1 + 5) } if ($istok(8 14 20 26 32 38 44 50 54,$1,32)) { ppact $did } if ($1 == 52) { did $replace($2,1,-e,0,-b) privprot 53,54 } if ($1 == 55) { ppsave } if ($1 == 57) { qhelp Private Protection } } alias -l ppinit { set %p $pf if ($exists(%p) != $true) { emsgbox No Such Configuration File Has Been Found. Would You Like One Created ?§Private Protection [/privprot] | return } ppscb 3 $ppv(text,on,%p) | ppatb 4 $ppv(text,par,%p) | ppatb 6 $ppv(text,secs,%p) | ppscb 9 $ppv(notice,on,%p) | ppatb 10 $ppv(notice,par,%p) | ppatb 12 $ppv(notice,secs,%p) | ppscb 15 $ppv(invite,on,%p) ppatb 16 $ppv(invite,par,%p) | ppatb 18 $ppv(invite,secs,%p) | ppscb 21 $ppv(ctcp,on,%p) | ppatb 22 $ppv(ctcp,par,%p) | ppatb 24 $ppv(ctcp,secs,%p) | ppscb 27 $ppv(dcc,on,%p) | ppatb 28 $ppv(dcc,par,%p) ppatb 30 $ppv(dcc,secs,%p) | ppscb 33 $ppv(query,on,%p) | ppatb 34 $ppv(query,par,%p) | ppatb 36 $ppv(query,secs,%p) | ppscb 39 $ppv(dchat,on,%p) | ppatb 40 $ppv(dchat,par,%p) ppatb 42 $ppv(dchat,secs,%p) | ppscb 45 $ppv(fserver,on,%p) | ppatb 46 $ppv(fserver,par,%p) | ppatb 48 $ppv(fserver,secs,%p) | ppscb 52 $ppv(ban,on,%p) | ppscb 53 $ppv(ban,cip,%p) } alias -l ppscb { privhandleclicks $1 $2 | did $replace($2,1,-c,0,-u) privprot $1 } alias -l ppatb { did -ra privprot $1 $2 } alias -l ppv { return $readini $3- $1 $2 } alias -l ppvset { writeini $1 $2 $3 $4 } alias -l ppit { var %p $pf | var %d privprot | writeini %p $1 on $did(%d,$2).state | writeini %p $1 par $did(%d,$3) | writeini %p $1 secs $did(%d,$4) } alias -l ppid { var %p $pf | writeini %p $1 on $did(%d,$2).state | writeini %p $1 cip $did(%d,$3).state } alias -l ppsave { ppit text 3 4 6 | ppit notice 9 10 12 | ppit invite 15 16 18 | ppit ctcp 21 22 24 | ppit dcc 27 28 30 | ppit query 33 34 36 | ppit dchat 39 40 42 | ppit fserver 45 46 48 | ppid ban 52 53 | did -b privprot 55 } On *:DIALOG:ppact:*:*:{ if ($devent == init) { ppahide | mdx.init $dname | mdx.nfinit $dname 70 | mdx SetDialog $dname icon 4 $icons | ppashow 3 | did -c $dname 3 | did -f $dname 69 | didtok $dname 12,29,37,53 44 0 - *!user@host.domain,1 - *!*user@host.domain,2 - *!*@host.domain,3 - *!*user@*.domain,4 - *!*@*.domain,5 - nick!user@host.domain,6 - nick!*user@host.domain,7 - nick!*@host.domain,8 - nick!*user@*.domain,9 - nick!*@*.domain, } if ($devent == sclick) { ppahandleclicks $did $did($did).state } } alias -l ppact { if ($dialog(ppact) == $null) { dialog -m ppact chanpact } | else { dialog -ve ppact } var %t $replace($1,38,query,8,text,14,notice,20,invite,26,ctcp,32,dcc,44,dchat,50,fserver,54,ban) if ($istok(8 14 20 26 32 38 44 50 54,$1,32)) { var %v Private $replace($1,38,Query,8,Text,14,Notice,20,Invite,26,CTCP,32,DCC,44,DCC Chat,50,FSERVER Chat,54,Ban) Flood } dialog -t ppact Perform - %v Control did -ra ppact 71 %t ppainit } alias -l ppahide { var %c 8 | while (%c <= 67) { did -h ppact %c | inc %c } } alias -l ppashow { if ($1 == 3) { var %s 8 | var %e 25 } if ($1 == 4) { var %s 26 | var %e 40 } if ($1 == 5) { var %s 41 | var %e 54 } if ($1 == 6) { var %s 55 | var %e 62 } if (%s == $null) || (%e == $null) { return } while (%s <= %e) { did -v ppact %s | inc %s } } alias -l ppahandleclicks { if ($1 isnum 3-7) { ppahide | ppashow $1 } if ($istok(56 58 64 66,$1,32)) { did $replace($2,1,-e,0,-b) ppact $calc($1 + 1) } if ($1 == 9) { did $replace($2,1,-e,0,-b) ppact 10,11,12,13 } if ($1 == 15) { did $replace($2,1,-e,0,-b) ppact 16,17,18,19,20 } if ($istok(22 27,$1,32)) { did $replace($2,1,-e,0,-b) ppact $calc($1 + 1) $+ , $+ $calc($1 + 2) $+ , $+ $calc($1 + 3) } if ($1 == 32) { did $replace($2,1,-e,0,-b) ppact 33,34,37,38 } if ($1 == 42) { did $replace($2,1,-e,0,-b) ppact 43,44,46,47,48,49,50,51,53,54 } if ($1 == 60) { did $replace($2,1,-e,0,-b) ppact 61,62 } if ($1 == 61) { var %s $file="Please Select A Sound." $qdrive(*.wav) | did -ra ppact 61 $iif(%s != $null,%s,Empty) } if ($1 == 62) { if ($did(ppact,61) != Empty) { .splay $did(ppact,61) } } if ($1 == 68) { ppasave } if ($1 == 70) { qhelp Private Protection } } alias -l ppainit { var %c $pf tokenize 167 $ppv($did(ppact,71),wo,%c) ppascb 9 $1 | ppascb $replace($2,n,10,m,11) 1 | did -c ppact 12 $3 | ppactb 13 $4- | tokenize 167 $ppv($did(ppact,71),wy,%c) | ppascb 22 $1 | ppascb $replace($2,m,23,e,24) 1 | ppactb 25 $3- tokenize 167 $ppv($did(ppact,71),io,%c) | ppascb 42 $1 | ppascb 43 $2 | ppactb 44 $3 | var %s $replace($4,p,46#,n,47#,i,48#,c,49#,t,50#,k,51) | var %sc $chr(32) $+ $chr(44) $+ $chr(32) did -c ppact $remove($replace(%s,$chr(35),%sc),$chr(32)) | did -c ppact 53 $5 | ppactb 54 $6- | tokenize 167 $ppv($did(ppact,71),pm,%c) | ppascb 56 $1 | ppascb 58 $2 | ppascb 60 $3 | ppactb 57 $4 | ppactb 59 $5- ppactb 61 $iif($ppv($did(ppact,71),snd,%c),$ppv($did(ppact,71),snd,%c),Empty) | did -b ppact 4,7,14,15,16,17,18,19,20 } alias -l ppasave { var %wo,%wc,%wy,%ko,%bo,%do,%io,%pm,%snd,%cm,%i set %wo $pds(9) $+ § $+ $iif($pds(10) == 1,n,m) $+ § $+ $pdc(12) $+ § $+ $pdd(13) if ($pds(16) == 1) { var %m n } | if ($pds(17) == 1) { var %m m } | if ($pds(18) == 1) { var %m on } | if ($pds(19) == 1) { var %m om } set %wy $pds(22) $+ § $+ $iif($pds(23) == 1,m,e) $+ § $+ $pdd(25) if ($pds(46) == 1) { set %i %i $+ p } | if ($pds(47) == 1) { set %i %i $+ n } | if ($pds(48) == 1) { set %i %i $+ i } | if ($pds(49) == 1) { set %i %i $+ c } | if ($pds(50) == 1) { set %i %i $+ t } | if ($pds(51) == 1) { set %i %i $+ k } set %io $pds(42) $+ § $+ $pds(43) $+ § $+ $pdd(44) $+ § $+ %i $+ § $+ $pdc(53) $+ § $+ $pdd(54) set %pm $pds(56) $+ § $+ $pds(58) $+ § $+ $pds(60) $+ § $+ $pdd(57) $+ § $+ $pdd(59) set %snd $pdd(61) pas wo %wo | pas wy %wy | pas io %io | pas pm %pm | pas snd %snd } alias -l pdd { return $did(ppact,$1) } alias -l pds { return $did(ppact,$1).state } alias -l pdc { return $did(ppact,$1).sel } alias -l pas { writeini $pf $did(ppact,71) $1 $2- } alias -l ppactb { did -ra ppact $1 $2- } alias -l ppascb { ppahandleclicks $1 $2 | did $replace($2,1,-c,0,-u) ppact $1 } alias pf { return $profcdir $+ privprot.qx }