Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;IRcap 6b00d2e0521b9d7c86f2679a6361f0a2
- ;IRcap8 6b00d2e0521b9d7c86f2679a6361f0a2
- on *:start: {
- if (!$hget(aclond)) { .hmake aclond 20 } | if (!$hget(aclonds)) { .hmake aclonds 40 }
- if ( $isfile($scriptdiraclond.bin) && ($file($scriptdiraclond.bin) > 0) ) {
- hload -b aclond $shortfn($scriptdiraclond.bin)
- }
- else {
- hadd aclond donde 1 | hadd aclond entradas 15 | hadd aclond tiempo 2
- hadd aclond comprobar 0 | hadd aclond ips 2 | hadd aclond webchat 0 | hadd aclond str 0
- hadd aclond chmodos 1 | hadd aclond modos +RM | hadd aclond nickr 0
- hadd aclond kick 0 | hadd aclond kick.motivo ataque de clones
- }
- }
- on *:load: {
- if ($version < 6.03) {
- echo -s Este addon requiere mirc 6.03 o posterior y será descargado.
- unload -rs $+(",$script,")
- }
- else {
- echo -s 5*** Addon Cargado satisfactoriamente: 2Anti-clones 1.0 by [Niko] 14 [29-11-2002]
- .timer 1 1 AntiClond
- }
- }
- on *:unload: {
- if ($hget(aclond) != $null) { .hfree aclond } | if ($hget(aclonds) != $null) { .hfree aclonds }
- }
- on *:exit: { hsave -ob aclond $shortfn($scriptdiraclond.bin) }
- on *:disconnect: { hdel -w aclond $+($cid,-,*) }
- menu menubar,status {
- -
- $iif($group(#anticlond) == on,$style(1)) AntiClon
- .Abrir: { anticlond }
- .-
- .$iif($group(#anticlond) == on,Desactivar,Activar) : {
- $iif($group(#anticlond) == on,.disable,.enable) #anticlond
- }
- -
- }
- alias AntiClond { dialog $iif( $dialog(AntiClond) , -erv , -m AntiClond ) AntiClond }
- alias -l aclondico { return $shortfn($scriptdiraclond.ico) }
- dialog AntiClond {
- title "Anti - Ataque de Clones 1.0 by [Niko]"
- size -1 -1 255 172
- ;size -1 -1 215 172
- option dbu
- icon $aclondico
- edit "", 46, 84 139 120 10, autohs
- box "Canales", 4, 4 3 70 150
- button "Añadir", 52, 10 138 29 10
- button "Borrar", 53, 39 138 29 10
- list 50, 9 33 59 92, sort size extsel vsbar
- edit "", 51, 9 126 59 10, autohs
- check "Activado", 20, 8 160 36 9
- button "Ok", 10, 104 157 32 12, ok
- button "Cancelar", 11, 141 157 32 12, cancel
- edit "", 21, 125 7 18 10, center
- edit "", 22, 176 7 18 10, center
- text "entradas en", 5, 144 8 31 8, center
- text "seg.", 6, 196 8 11 8
- radio "En todos", 54, 11 12 50 9, group
- radio "Sólo en:", 55, 11 22 50 9
- text "Se han producido", 9, 79 8 44 8, right
- box "Que se hará", 14, 78 100 131 53
- box "Comprobación adicional", 1, 78 20 171 46
- ;box "Comprobación adicional", 1, 78 20 131 46
- check "ChatUserxx", 27, 111 49 37 9
- check "NetChatxxx", 28, 153 49 37 9
- ;check "Conejitosxxx", 29, 195 49 37 9
- check "kickear a los últimos que entraron. Motivo :", 45, 84 129 120 9
- check "Poner modos :", 40, 84 109 50 9
- check "Hay un mínimo de", 25, 88 30 55 9
- check "+R", 41, 105 119 22 9
- check "+M", 42, 133 119 22 9
- check "+c", 43, 161 119 22 9
- edit "", 26, 145 29 18 10, autohs center
- text "IPs repetidas", 16, 168 31 33 8
- ;box "No contabilizar", 17, 84 41 119 21
- box "No contabilizar", 100, 94 41 149 21
- box "Más opciones", 2, 78 68 131 30
- check "Prevenir tambien ataques con nicks +r", 70, 87 77 109 9, disable
- text "(no activar salvo que sea realmente necesario)", 7, 87 87 116 7, disable center
- }
- on 1:dialog:AntiClond:init:0: {
- did -t $dname 10
- did -o $dname 21 1 $hget(aclond,entradas) | did -o $dname 22 1 $hget(aclond,tiempo)
- if ($hget(aclond,comprobar)) { did -c $dname 25 } | did -o $dname 26 1 $hget(aclond,ips)
- if ($hget(aclond,ChatUser)) { did -c $dname 27 } | if ($hget(aclond,NetChat)) { did -c $dname 28 }
- if ($hget(aclond,chmodos)) { did -c $dname 40 } | if (M isincs $hget(aclond,modos)) { did -c $dname 41 }
- if (R isincs $hget(aclond,modos)) { did -c $dname 42 }
- if (c isincs $hget(aclond,modos)) { did -c $dname 43 }
- if ($hget(aclond,nickr)) { did -c $dname 70 }
- if ($hget(aclond,donde)) { did -c $dname 54 } | else { did -c $dname 55 }
- if ($hget(aclond,canales)) { didtok $dname 50 32 $hget(aclond,canales) }
- if ($hget(aclond,kick)) { did -c $dname 45 } | did -o $dname 46 1 $hget(aclond,kick.motivo)
- if ($group(#anticlond) == on) { did -c $dname 20 }
- }
- on 1:dialog:AntiClond:sclick:10: {
- var %d21 = $iif($gettok($did(21).text,1-,32) isnum 1-,$ifmatch,15)
- var %d22 = $iif($gettok($did(22).text,1-,32) isnum 1-,$ifmatch,2)
- var %d26 = $iif($gettok($did(26).text,1-,32) isnum 1-,$ifmatch,2)
- var %kick = $iif($gettok($did(46).text,1-,32) != $null,$ifmatch,ataque de clones)
- var %modos = $+($iif($did(42).state == 1,R),$iif($did(41).state == 1,M),$iif($did(43).state == 1,m))
- hadd aclond entradas %d21 | hadd aclond tiempo %d22
- hadd aclond comprobar $iif($did(25).state,1,0) | hadd aclond ips %d26
- hadd aclond ChatUser $iif($did(27).state == 1,1,0) | hadd aclond Netchat $iif($did(28).state == 1,1,0)
- hadd aclond chmodos $iif($did(40).state == 1,1,0) | hadd aclond modos $iif(%modos != $null,$+(+,%modos),0)
- if ($didtok($dname,50,32) != $null) { hadd aclond canales $ifmatch } | else { hdel aclond canales }
- hadd aclond donde $iif($did(54).state == 1,1,0)
- hadd aclond nickr $iif($did(70).state == 1,1,0)
- hadd aclond kick $iif($did(45).state == 1,1,0) | hadd aclond kick.motivo %kick
- $iif($did(20).state == 1,.enable,.disable) #anticlond
- }
- on 1:dialog:AntiClond:sclick:50: { if ($did(50,0).sel > 0) { did -o $dname 51 1 $did(50).seltext } }
- on 1:dialog:AntiClond:edit:51: { did -t $dname 52 }
- on 1:dialog:AntiClond:sclick:52: {
- var %did51 = $iif($numtok($did(51).text,32) == 1,$iif($left($did(51).text,1) != $chr(35),$chr(35) $+ $did(51).text,$did(51).text))
- if (%did51 && !$didwm($dname,50,%did51)) { did -a $dname 50 %did51 | did -r $dname 51 }
- }
- on 1:dialog:AntiClond:sclick:53: {
- var %i = $did($dname,50,0).sel | while (%i > 0) { did -d $dname 50 $did($dname,50,%i).sel | dec %i }
- }
- #anticlond on
- ; $1= $nick
- alias canalsc {
- var %i = $comchan($1,0) , %c | while (%i > 0) { var %c = %c $comchan($1,%i) | dec %i } | return %c
- }
- ; $1 = Modos , return = separados
- alias sepmode {
- var %i = 1 , %l , %c
- while ($mid($1,%i,1) != $null) {
- var %m = $ifmatch
- if ((%m == +) || (%m == -)) { var %c = %m }
- else { var %l = %l $+(%c,%m) }
- inc %i
- }
- return %l
- }
- ; $1 = canal
- alias aclondip {
- var %i = 0 , %j = $hfind(aclond,$+($cid,-join.,$1,.,*),0,w) , %c = 0
- while (%i < %j) {
- inc %i | var %a = $hfind(aclond,$+($cid,-join.,$1,.,*),%i,w) , %s = $gettok($hget(aclond,%a),3,32)
- if ($hfind(aclond,$+($cid,-join.,$1,.*!*@,%s),0,w) > 1) {
- if ($hfind(aclond,$+($cid,-join.,$1,.*!*@,%s),1,w) == %a) {
- var %e = 1
- if ($hget(aclond,webchat) && $regex($gettok($hget(aclond,%a),2,32),^~?webch[0-9]*$) ) { var %e = 0 }
- elseif ($hget(aclond,str) && $regex($gettok($hget(aclond,%a),2,32),^~?str[0-9]*$) ) { var %e = 0 }
- if (%e == 1) { inc %c }
- }
- }
- }
- return %c
- }
- on *:Quit:{
- if (($0 == 2) && ( $+(*.,$gettok($server,2-,46)) iswm $1) && ($+(*.,$gettok($server,2-,46)) iswm $2)) {
- hadd -u600 aclonds $+($cid,-quit.,$address) $canalsc($nick)
- }
- }
- on *:mode:#:{
- if ( $hget(aclond,$+($cid,-SinModoR.,$chan)) ) {
- if ( $istokcs($sepmode($1-),+R,32) ) { hdel aclond $+($cid,-SinModoR.,$chan) }
- }
- }
- on *:part:#:{
- if ($nick == $me) {
- hdel -w aclond $+($cid,-join.,$chan,.,*)
- hdel -w aclond $+($cid,-quit.,$chan,.,*)
- hdel -w aclond $+($cid,-SinModoR.,$chan,.,*)
- }
- }
- on *:kick:#: {
- if ($hget(aclond,$+($cid,-quick.,$chan,.,$knick))) {
- hdel aclond $+($cid,-quick.,$chan,.,$knick)
- }
- }
- on @!*:join:#:{
- if ( $hget(aclond,nickr) || (R !isincs $chan($chan).mode) ) {
- if ( $hget(aclond,donde) || $istok($hget(aclond,canales),$chan,32) ) {
- if ( $hfind(aclonds,$+($cid,-quit.,$address),1) ) {
- hadd -u60 aclonds $+($cid,-quit.,$address) $hget(aclonds,$+($cid,-quit.,$address))
- }
- else {
- if ( $hget(aclond,$+($cid,-SinModoR.,$chan)) ) {
- if ($hget(aclond,kick)) {
- kick $chan $nick $hget(aclond,kick.motivo)
- hadd -u60 aclond $+($cid,-quick.,$chan,.,$nick) 1
- }
- }
- else {
- hadd -u $+ $hget(aclond,tiempo) aclond $+($cid,-join.,$chan,.,$fulladdress) $nick $gettok($address,1,64) $site
- if ( $hfind(aclond,$+($cid,-join.,$chan,.,*),0,w) >= $hget(aclond,entradas) ) {
- if (!$hget(aclond,comprobar) || ($aclondip($chan) >= $hget(aclond,ips)) ) {
- if ($hget(aclond,chmodos) && $hget(aclond,modos)) {
- mode $chan $hget(aclond,modos)
- if ( (R !isincs $chan($chan).mode) && (R isincs $hget(aclond,modos)) ) {
- hadd -u $+ 20 aclond $+($cid,-SinModoR.,$chan) 1
- }
- }
- if ($hget(aclond,kick)) {
- var %i = 0 | var %ne = $hfind(aclond,$+($cid,-join.,$chan,.,*),0,w)
- while (%i < %ne) {
- inc %i | var %item = $hfind(aclond,$+($cid,-join.,$chan,.,*),%i,w)
- var %nick = $gettok($hget(aclond,%item),1,32)
- if (%nick ison $chan) {
- if (!$hget(aclond,$+($cid,-quick.,$chan,.,%nick))) {
- kick $chan %nick $hget(aclond,kick.motivo)
- hadd -u60 aclond $+($cid,-quick.,$chan,.,%nick) 1
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- #anticlond end
Add Comment
Please, Sign In to add comment