Guest User

Untitled

a guest
Nov 23rd, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.38 KB | None | 0 0
  1. ;IRcap 6b00d2e0521b9d7c86f2679a6361f0a2
  2. ;IRcap8 6b00d2e0521b9d7c86f2679a6361f0a2
  3. on *:start: {
  4. if (!$hget(aclond)) { .hmake aclond 20 } | if (!$hget(aclonds)) { .hmake aclonds 40 }
  5. if ( $isfile($scriptdiraclond.bin) && ($file($scriptdiraclond.bin) > 0) ) {
  6. hload -b aclond $shortfn($scriptdiraclond.bin)
  7. }
  8. else {
  9. hadd aclond donde 1 | hadd aclond entradas 15 | hadd aclond tiempo 2
  10. hadd aclond comprobar 0 | hadd aclond ips 2 | hadd aclond webchat 0 | hadd aclond str 0
  11. hadd aclond chmodos 1 | hadd aclond modos +RM | hadd aclond nickr 0
  12. hadd aclond kick 0 | hadd aclond kick.motivo ataque de clones
  13. }
  14. }
  15.  
  16. on *:load: {
  17. if ($version < 6.03) {
  18. echo -s Este addon requiere mirc 6.03 o posterior y será descargado.
  19. unload -rs $+(",$script,")
  20. }
  21. else {
  22. echo -s 5*** Addon Cargado satisfactoriamente: 2Anti-clones 1.0   by [Niko] 14 [29-11-2002]
  23. .timer 1 1 AntiClond
  24. }
  25. }
  26. on *:unload: {
  27. if ($hget(aclond) != $null) { .hfree aclond } | if ($hget(aclonds) != $null) { .hfree aclonds }
  28. }
  29.  
  30. on *:exit: { hsave -ob aclond $shortfn($scriptdiraclond.bin) }
  31. on *:disconnect: { hdel -w aclond $+($cid,-,*) }
  32.  
  33. menu menubar,status {
  34. -
  35. $iif($group(#anticlond) == on,$style(1)) AntiClon
  36. .Abrir: { anticlond }
  37. .-
  38. .$iif($group(#anticlond) == on,Desactivar,Activar) : {
  39. $iif($group(#anticlond) == on,.disable,.enable) #anticlond
  40. }
  41. -
  42. }
  43.  
  44. alias AntiClond { dialog $iif( $dialog(AntiClond) , -erv , -m AntiClond ) AntiClond }
  45.  
  46. alias -l aclondico { return $shortfn($scriptdiraclond.ico) }
  47.  
  48. dialog AntiClond {
  49. title "Anti - Ataque de Clones 1.0 by [Niko]"
  50. size -1 -1 255 172
  51. ;size -1 -1 215 172
  52. option dbu
  53. icon $aclondico
  54. edit "", 46, 84 139 120 10, autohs
  55. box "Canales", 4, 4 3 70 150
  56. button "Añadir", 52, 10 138 29 10
  57. button "Borrar", 53, 39 138 29 10
  58. list 50, 9 33 59 92, sort size extsel vsbar
  59. edit "", 51, 9 126 59 10, autohs
  60. check "Activado", 20, 8 160 36 9
  61. button "Ok", 10, 104 157 32 12, ok
  62. button "Cancelar", 11, 141 157 32 12, cancel
  63. edit "", 21, 125 7 18 10, center
  64. edit "", 22, 176 7 18 10, center
  65. text "entradas en", 5, 144 8 31 8, center
  66. text "seg.", 6, 196 8 11 8
  67. radio "En todos", 54, 11 12 50 9, group
  68. radio "Sólo en:", 55, 11 22 50 9
  69. text "Se han producido", 9, 79 8 44 8, right
  70. box "Que se hará", 14, 78 100 131 53
  71. box "Comprobación adicional", 1, 78 20 171 46
  72. ;box "Comprobación adicional", 1, 78 20 131 46
  73. check "ChatUserxx", 27, 111 49 37 9
  74. check "NetChatxxx", 28, 153 49 37 9
  75. ;check "Conejitosxxx", 29, 195 49 37 9
  76. check "kickear a los últimos que entraron. Motivo :", 45, 84 129 120 9
  77. check "Poner modos :", 40, 84 109 50 9
  78. check "Hay un mínimo de", 25, 88 30 55 9
  79. check "+R", 41, 105 119 22 9
  80. check "+M", 42, 133 119 22 9
  81. check "+c", 43, 161 119 22 9
  82. edit "", 26, 145 29 18 10, autohs center
  83. text "IPs repetidas", 16, 168 31 33 8
  84. ;box "No contabilizar", 17, 84 41 119 21
  85. box "No contabilizar", 100, 94 41 149 21
  86. box "Más opciones", 2, 78 68 131 30
  87. check "Prevenir tambien ataques con nicks +r", 70, 87 77 109 9, disable
  88. text "(no activar salvo que sea realmente necesario)", 7, 87 87 116 7, disable center
  89. }
  90.  
  91. on 1:dialog:AntiClond:init:0: {
  92. did -t $dname 10
  93. did -o $dname 21 1 $hget(aclond,entradas) | did -o $dname 22 1 $hget(aclond,tiempo)
  94. if ($hget(aclond,comprobar)) { did -c $dname 25 } | did -o $dname 26 1 $hget(aclond,ips)
  95. if ($hget(aclond,ChatUser)) { did -c $dname 27 } | if ($hget(aclond,NetChat)) { did -c $dname 28 }
  96. if ($hget(aclond,chmodos)) { did -c $dname 40 } | if (M isincs $hget(aclond,modos)) { did -c $dname 41 }
  97. if (R isincs $hget(aclond,modos)) { did -c $dname 42 }
  98. if (c isincs $hget(aclond,modos)) { did -c $dname 43 }
  99. if ($hget(aclond,nickr)) { did -c $dname 70 }
  100. if ($hget(aclond,donde)) { did -c $dname 54 } | else { did -c $dname 55 }
  101. if ($hget(aclond,canales)) { didtok $dname 50 32 $hget(aclond,canales) }
  102. if ($hget(aclond,kick)) { did -c $dname 45 } | did -o $dname 46 1 $hget(aclond,kick.motivo)
  103. if ($group(#anticlond) == on) { did -c $dname 20 }
  104. }
  105. on 1:dialog:AntiClond:sclick:10: {
  106. var %d21 = $iif($gettok($did(21).text,1-,32) isnum 1-,$ifmatch,15)
  107. var %d22 = $iif($gettok($did(22).text,1-,32) isnum 1-,$ifmatch,2)
  108. var %d26 = $iif($gettok($did(26).text,1-,32) isnum 1-,$ifmatch,2)
  109. var %kick = $iif($gettok($did(46).text,1-,32) != $null,$ifmatch,ataque de clones)
  110. var %modos = $+($iif($did(42).state == 1,R),$iif($did(41).state == 1,M),$iif($did(43).state == 1,m))
  111. hadd aclond entradas %d21 | hadd aclond tiempo %d22
  112. hadd aclond comprobar $iif($did(25).state,1,0) | hadd aclond ips %d26
  113. hadd aclond ChatUser $iif($did(27).state == 1,1,0) | hadd aclond Netchat $iif($did(28).state == 1,1,0)
  114. hadd aclond chmodos $iif($did(40).state == 1,1,0) | hadd aclond modos $iif(%modos != $null,$+(+,%modos),0)
  115. if ($didtok($dname,50,32) != $null) { hadd aclond canales $ifmatch } | else { hdel aclond canales }
  116. hadd aclond donde $iif($did(54).state == 1,1,0)
  117. hadd aclond nickr $iif($did(70).state == 1,1,0)
  118. hadd aclond kick $iif($did(45).state == 1,1,0) | hadd aclond kick.motivo %kick
  119. $iif($did(20).state == 1,.enable,.disable) #anticlond
  120. }
  121. on 1:dialog:AntiClond:sclick:50: { if ($did(50,0).sel > 0) { did -o $dname 51 1 $did(50).seltext } }
  122. on 1:dialog:AntiClond:edit:51: { did -t $dname 52 }
  123. on 1:dialog:AntiClond:sclick:52: {
  124. 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))
  125. if (%did51 && !$didwm($dname,50,%did51)) { did -a $dname 50 %did51 | did -r $dname 51 }
  126. }
  127. on 1:dialog:AntiClond:sclick:53: {
  128. var %i = $did($dname,50,0).sel | while (%i > 0) { did -d $dname 50 $did($dname,50,%i).sel | dec %i }
  129. }
  130. #anticlond on
  131. ; $1= $nick
  132. alias canalsc {
  133. var %i = $comchan($1,0) , %c | while (%i > 0) { var %c = %c $comchan($1,%i) | dec %i } | return %c
  134. }
  135. ; $1 = Modos , return = separados
  136. alias sepmode {
  137. var %i = 1 , %l , %c
  138. while ($mid($1,%i,1) != $null) {
  139. var %m = $ifmatch
  140. if ((%m == +) || (%m == -)) { var %c = %m }
  141. else { var %l = %l $+(%c,%m) }
  142. inc %i
  143. }
  144. return %l
  145. }
  146. ; $1 = canal
  147. alias aclondip {
  148. var %i = 0 , %j = $hfind(aclond,$+($cid,-join.,$1,.,*),0,w) , %c = 0
  149. while (%i < %j) {
  150. inc %i | var %a = $hfind(aclond,$+($cid,-join.,$1,.,*),%i,w) , %s = $gettok($hget(aclond,%a),3,32)
  151. if ($hfind(aclond,$+($cid,-join.,$1,.*!*@,%s),0,w) > 1) {
  152. if ($hfind(aclond,$+($cid,-join.,$1,.*!*@,%s),1,w) == %a) {
  153. var %e = 1
  154. if ($hget(aclond,webchat) && $regex($gettok($hget(aclond,%a),2,32),^~?webch[0-9]*$) ) { var %e = 0 }
  155. elseif ($hget(aclond,str) && $regex($gettok($hget(aclond,%a),2,32),^~?str[0-9]*$) ) { var %e = 0 }
  156. if (%e == 1) { inc %c }
  157. }
  158. }
  159. }
  160. return %c
  161. }
  162. on *:Quit:{
  163. if (($0 == 2) && ( $+(*.,$gettok($server,2-,46)) iswm $1) && ($+(*.,$gettok($server,2-,46)) iswm $2)) {
  164. hadd -u600 aclonds $+($cid,-quit.,$address) $canalsc($nick)
  165. }
  166. }
  167.  
  168. on *:mode:#:{
  169. if ( $hget(aclond,$+($cid,-SinModoR.,$chan)) ) {
  170. if ( $istokcs($sepmode($1-),+R,32) ) { hdel aclond $+($cid,-SinModoR.,$chan) }
  171. }
  172. }
  173.  
  174. on *:part:#:{
  175. if ($nick == $me) {
  176. hdel -w aclond $+($cid,-join.,$chan,.,*)
  177. hdel -w aclond $+($cid,-quit.,$chan,.,*)
  178. hdel -w aclond $+($cid,-SinModoR.,$chan,.,*)
  179. }
  180. }
  181. on *:kick:#: {
  182. if ($hget(aclond,$+($cid,-quick.,$chan,.,$knick))) {
  183. hdel aclond $+($cid,-quick.,$chan,.,$knick)
  184. }
  185. }
  186. on @!*:join:#:{
  187. if ( $hget(aclond,nickr) || (R !isincs $chan($chan).mode) ) {
  188. if ( $hget(aclond,donde) || $istok($hget(aclond,canales),$chan,32) ) {
  189. if ( $hfind(aclonds,$+($cid,-quit.,$address),1) ) {
  190. hadd -u60 aclonds $+($cid,-quit.,$address) $hget(aclonds,$+($cid,-quit.,$address))
  191. }
  192. else {
  193. if ( $hget(aclond,$+($cid,-SinModoR.,$chan)) ) {
  194. if ($hget(aclond,kick)) {
  195. kick $chan $nick $hget(aclond,kick.motivo)
  196. hadd -u60 aclond $+($cid,-quick.,$chan,.,$nick) 1
  197. }
  198. }
  199. else {
  200. hadd -u $+ $hget(aclond,tiempo) aclond $+($cid,-join.,$chan,.,$fulladdress) $nick $gettok($address,1,64) $site
  201. if ( $hfind(aclond,$+($cid,-join.,$chan,.,*),0,w) >= $hget(aclond,entradas) ) {
  202. if (!$hget(aclond,comprobar) || ($aclondip($chan) >= $hget(aclond,ips)) ) {
  203. if ($hget(aclond,chmodos) && $hget(aclond,modos)) {
  204. mode $chan $hget(aclond,modos)
  205. if ( (R !isincs $chan($chan).mode) && (R isincs $hget(aclond,modos)) ) {
  206. hadd -u $+ 20 aclond $+($cid,-SinModoR.,$chan) 1
  207. }
  208. }
  209. if ($hget(aclond,kick)) {
  210. var %i = 0 | var %ne = $hfind(aclond,$+($cid,-join.,$chan,.,*),0,w)
  211. while (%i < %ne) {
  212. inc %i | var %item = $hfind(aclond,$+($cid,-join.,$chan,.,*),%i,w)
  213. var %nick = $gettok($hget(aclond,%item),1,32)
  214. if (%nick ison $chan) {
  215. if (!$hget(aclond,$+($cid,-quick.,$chan,.,%nick))) {
  216. kick $chan %nick $hget(aclond,kick.motivo)
  217. hadd -u60 aclond $+($cid,-quick.,$chan,.,%nick) 1
  218. }
  219. }
  220. }
  221. }
  222. }
  223. }
  224. }
  225. }
  226. }
  227. }
  228. }
  229. #anticlond end
Add Comment
Please, Sign In to add comment