All pastes #237442 Raw Edit

Seykron

public text v1 · immutable
·published 2006-11-04 15:27 UTC
rendered paste body
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;                           Seytuff script                                   ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


on ^1:JOIN:#: {

  ;
  ; Auto-Notice on Join.
  ;
  if ( ($nick != $me) && (%se_anoticeenable == 1) ) { notice $nick %se_anotice }

  ;
  ; Verifica si el usuario está en la lista de notify.
  ;
  /notifylist

  ;
  ; Protección antibots.
  ;
  /checkantibot $chan

  if ( $result == 1 ) { halt }

  ;
  ; Muestra el evento Join dependiendo del tipo de usuario.
  ;
  var %shitcnt = $readini(%se_shitfile, "shitlist", "0")
  var %i = 1
  var %sline = $null

  %sline = $null
  %i = 1

  while (%i <= %shitcnt) {
    %sline = $readini(%se_shitfile, "shitlist", %i)

    if ( %sline == $nick ) {
      echo 9 $chan 4( $+ $time $+ ) * Shit entering zone:  $nick  ( $address ) | halt
    }

    inc %i
  }

  echo 9 $chan ( $+ $time $+ ) * Entering zone...  $nick  ( $+ $address $+ ) | halt

}


on 1:INPUT:# {
  var %nick = $null
  var %i = 1

  ;
  ; Autoidentificación.
  ;
  if ( $left($1,4) == +CN.) {
    var %nickid = $right($1, 1)
    anickid %nickid
  }

  ;
  ; Operaciones con nicks.
  ;
  %nick = $nick($chan,%i)

  while ( %nick != $null) {
    %nick = $nick($chan,%i)

    if (%nick == $1) {
      ;
      ; Nick Completion.
      ;
      var %llen = $len($1) | dec %llen

      if ( $right($1,1) == $chr(44) ) {
        say ז<•) $+ $$left($1, %llen) $+ (•>–×, $2- | halt
      }
      else {
        inc %llen
        say ז<•) $+ $$left($1, %llen) $+ (•>–× $2- | halt
      }
    }
    inc %i
  }

  ;
  ; Shit list handler
  ;
  shithdlr $1 $2 $3

  ;
  ; Notify list handler.
  ;
  notifhdr $1 $2 $3 $4

  ;
  ; Comandos pajeros
  ;
  $iif($1 == !time, say Hora actual: $time )


  ;
  ; Blowfish Encryption
  ;
  var %code = $left($1, 3)

  if ( %code == BWF ) {

  }
}

on ^*:NICK {
  ;
  ; Protección antibots.
  ;
  /checkantibot $chan

  if ( $result == 1 ) { halt }

  var %num = 1

  while ( $comchan($newnick,%num) ) {
    echo 9 $comchan($newnick,%num) ( $+ $time $+ ) * $nick ha mutado a $newnick $+ ...
    inc %num
  }

  ;
  ; Agrega el nick o actualiza la lista de seen.
  ;
  seenadd $nick

  halt
}

on ^*:QUIT {
  ;
  ; Protección antibots.
  ;
  /checkantibot $chan

  if ( $result == 1 ) { halt }

  ;
  ; Agrega el nick o actualiza la lista de seen.
  ;
  seenadd $nick
}

on ^*:PART:# {
  ;
  ; Auto-Notice on Part.
  ;
  if ( ($nick != $me) && (%se_anoticeenablepart == 1) ) { notice $nick %se_anoticepart }

  ;
  ; Protección antibots.
  ;
  /checkantibot $chan

  if ( $result == 1 ) { halt }

  ;
  ; Agrega el nick o actualiza la lista de seen.
  ;
  seenadd $nick
}

on ^*:KICK:# {
  ;
  ; Protección antibots.
  ;
  /checkantibot $chan

  if ( $result == 1 ) { halt }

  echo 9 $chan ( $+ $time $+ ) * $knick fue desterrado de $chan por $nick ( $+ $1- ¬¬) ...

  ;
  ; Agrega el nick o actualiza la lista de seen.
  ;
  seenadd $knick

  halt
}

on *:TEXT:*edad*:# {
  notice $nick Qué te importa la edad ¬¬.

}

on ^*:NOTICE:*:* {
  ;
  ; Protección antibots.
  ;
  /checkantibot $chan

  if ( $result == 1 ) { halt }

  if ( (%se_block_notice != 0) && ($nick!=$me) ) {
    if ( %se_block_reply != $null) notice $nick %se_block_reply
    halt
  }
}

CTCP *:*:* {
  if ( %se_block_ctcp != 0 ) {
    if ( $nick != $me ) {
      if ( %se_block_reply != $null) ctcp $nick %se_block_reply
    }
    else {
      echo 7 $chan * Se te va a colgar el programa, n 0 0 b
    }
    halt
  }
}

on ^1:OPEN:?:*: {
  ;
  ; Query block
  ;
  if ( %se_queryblock == 1 ) {
    if ( %se_queryblocklogging != 0 ) {
      /write %se_querylogfile ( $+ $date $time $+ ) * Query abierto por $nick ( $+ $address $+ ): " $+ $gettok($rawmsg, 2, 58) $+ "
    }
    if (%se_queryblocknotify != 0) {
      echo 7 * Se ha bloqueado un intento de invasión de $nick
    }
    halt
  }
}

on 1:LOAD {
  var %sepath = $findfile($mircdir, seytuff.ini, 1)
  var %ipos = 0

  if ( %sepath != $null) {
    %ipos = $pos( %sepath, seytuff.ini )

    if ( %ipos > 0 ) {
      dec %ipos
      %sepath = $left( %sepath, %ipos )
    }

    ;
    ; Establece las variables globales iniciales.
    ;
    set %se_path %sepath
    set %se_version 0.1 beta [?]
    set %se_inipos 0
    set %se_securon 0
    set %se_block_notice 0
    set %se_block_ctcp 0
    set %se_block_dccsend 0
    set %se_block_dccchat 0
    set %se_block_reply $null
    set %se_queryblock 0
    set %se_queryblocklogging 0
    set %se_queryblocknotify 0
    set %se_queryautomsg No te leo, no jodas.
    set %se_anoticeenable 0
    set %se_anoticeenablepart 0
    set %se_anotice Seytuff Script v0.1
    set %se_anoticepart asdf
    set %se_shitfile %se_path $+ shitlist.txt
    set %se_antibotfile %se_path $+ antibot.txt
    set %se_nickfile %se_path $+ nicks.txt
    set %se_notifyfile %se_path $+ notify.txt
    set %se_querylogfile %se_path $+ querylog.txt
    set %se_seenfile %se_path $+ seen.txt
  }
}
;
; Eventos de diálogos.
;
on 1:dialog:MyDialog:INIT:1: {
  /did –a MyDialog %se_anotice
}

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;                              Aliases                                       ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

alias /notifylist {

  var %i = 1
  var %sline = $null

  ;
  ; Notifies
  ;
  var %notifycnt = $readini(%se_notifyfile, notify, 0)
  var %notiftype = $null
  var %notifname = $null
  var %ipos = 0

  while (%i <= %notifycnt) {
    ;
    ; Lee la lista de Notify
    ;
    %sline = $readini(%se_notifyfile, notify, %i)

    ;
    ; Extrae el tipo de notify y el nombre (Miss o Lord)
    ;
    if ( %sline != $null ) {
      %ipos = $pos( %sline, :, 1 )
      dec %ipos

      if ( %ipos > 0 ) {
        %notifname = $left( %sline, %ipos ) | inc  %ipos 2
        %notiftype = $mid( %sline, %ipos + 1 )
      }
    }

    if ( %notifname == $nick ) {
      if ( %notiftype == 0 ) {
        echo $chan 8( $+ $time $+ ) Lord  $nick  ( $address ) ha llegado.
        notice $me 8( $+ $time $+ ) Lord  $nick  ( $address ) ha llegado.
      }
      else {
        echo $chan 8( $+ $time $+ ) Miss  $nick  ( $+ $address $+ ) ha llegado.
        notice $me 8( $+ $time $+ ) Miss  $nick  ( $+ $address $+ ) ha llegado.
      }
    }

    inc %i
  }
}

alias /securon {
  ;
  ; Activar la protección antibot en el canal actual.
  ;

  iniexist %se_antibotfile channels $chan

  if ( $result != 0) {
    ;
    ; La protección está activada en el canal actual.
    ;
    echo 7 * El aura contra sombras ya ha sido activada en $chan
  }
  else {
    ;
    ; Activa la protección en el canal actual.
    ;
    set %se_securon 1

    iniadd %se_antibotfile channels $chan

    ;    /ignore -pntikd *!*@*
    if ($result == 1) {
      echo 7 * $me ha invocado la protección contra sombras malignas en $chan $+ ...
    }
    else {
      echo 7 * Los espectros han ganado esta batalla, protección no activada.
    }
  }
}

alias /securoff {
  set %se_securon 0 
  ;  /ignore -r *!*@* 
  ;  /me sets antibots mode: Off

  inidel %se_antibotfile channels $chan

  if ($result == 1) {
    echo 7 * La protección contra espectros ha sido eliminada en $chan
  }
}

alias /iniexist {
  var %i = 1
  var %cnt = $readini($1, $2, 0)
  var %item = $null

  if ( %cnt == $null ) return 0

  while (%i <= %cnt) {
    %item = $readini($1,$2,%i)

    if ( %item == $3 ) {
      /set %se_inipos %i
      /return 1
    }

    inc %i
  }

  /set %se_inipos 0
  return 0

}

alias /iniadd {
  ;
  ; Agregar item a un archivo ini.
  ;
  var %cnt = $readini($1, $2, 0)
  var %newcnt = %cnt + 1
  var %data = $null

  /iniexist $1 $2 $3

  if ( $result != 0 ) {
    return 0
  }

  if ($4 != $null) {
    %data = $3 $+ : $+ $4
  }
  else {
    %data = $3
  }

  /writeini $1 $2 %newcnt %data
  /writeini $1 $2 0 %newcnt

  return 1
}

alias /inidel {
  ;
  ; Eliminar item de archivo ini.
  ;
  var %cnt = $readini($1, $2, 0)
  var %newcnt = %cnt - 1
  var %item = $null
  var %bitemfound = 0
  var %itempos = 0
  var %i = 1

  while ( %i <= %cnt ) {

    %item = $readini($1,$2,%i)

    if (%item == $3) {
      if (%i < %cnt) {
        %itempos = %i + 1
      }
      else {
        %itempos = %i 
      }

      %bitemfound = 1

      /writeini $1 $2 0 %newcnt

    }

    if ( (%bitemfound == 1) && (%itempos <= %cnt) )  {
      var %tmpvar = $readini($1,$2,%itempos)

      /writeini $1 $2 %i %tmpvar

      inc %itempos
    }

    inc %i
  }

  if (%bitemfound == 1) {
    /writeini $1 $2 %cnt $chr(0160)
  }

  return %bitemfound
}

alias /checkantibot {

  ;  if ( %se_securon == 0 ) { return 0 }

  /iniexist %se_antibotfile channels $1

  if ($result == 0) {
    return 0
  }
  else {
    return 1
  }
}

alias /seenadd {
  ;
  ; Agregar item a la lista de seen.
  ;

  seenupdate $1

  if ( $result == 1 ) { return 1 }

  var %cnt = $readini(%se_seenfile, seen, 0)

  if (%cnt==$null) { %cnt = 0 }

  var %newcnt = %cnt + 1
  var %data = $null

  %data = $1 $+ : $+ $date $+ : $+ $time

  /writeini %se_seenfile seen %newcnt %data
  /writeini %se_seenfile seen 0 %newcnt

  return 1
}

alias /seenupdate {
  var %cnt = $readini(%se_seenfile, seen, 0)

  if (%cnt==$null) { return 0 }

  var %i = 1
  var %itemdata = $null
  var %itemnick = $null


  while ( %i <= %cnt ) {
    %itemdata = $readini(%se_seenfile, seen, %i)
    %itemnick = $gettok(%itemdata,1,58) 

    if ( %itemnick == $1 ) {
      var %data = $1 $+ : $+ $date $+ : $+ $time

      /writeini %se_seenfile seen %i %data
      return 1
    }

    inc %i
  }
}

alias /notifhdr {
  ;
  ; Notify list handler.
  ;
  if ( $1 == !notify ) {
    var %notifcnt = $readini(%se_notifyfile, shitlist, 0)

    if ( $2 == add ) {
      iniadd %se_notifyfile notify $3 $4

      if ( $result == 1 ) {
        if ( $4 == 0) {
          echo 7 $chan * Lord $3 ha sido nombrado nuevo miembro del clan.
        }
        else {
          echo 7 $chan * Miss $3 ha sido nombrada doncella oficial del clan.
        }
      }
      else {
        echo 7 $chan * No se pudo agregar $3 a la lista de notify :S.
      }
    }
    elseif ( $2 == del ) {
      ;
      ; Eliminar usuario de la lista de notify.
      ;
      inidel %se_notifyfile notify $3

      if ( $result == 0 ) {
        echo 7 $chan * $3 no está en la lista de notify.
      }
      else {
        if ( $4 == 0) {
          echo 7 $chan * Lord $3 ha sido exiliado del clan.
        }
        else {
          echo 7 $chan * Miss $3 ha sido exiliada del clan.
        }
      }
    }
  }
}

alias shithdlr {
  ;
  ; Shit list handler
  ;
  if ( $1 == !shit ) {
    var %shitcnt = $readini(%se_shitfile, shitlist, 0)

    if ( $2 == add ) {
      ;
      ; Agregar usuario a la shitlist.
      ;
      iniadd %se_shitfile shitlist $3

      if ( $result == 1 ) {
        echo 7 $chan * $3 added to shitlist :).
      }
      else {
        echo 7 $chan * $3 ya está en la shitlist.
      }
    }
    elseif ( $2 == del ) {
      ;
      ; Eliminar usuario de la shitlist.
      ;
      var %shitnewcnt = %shitcnt - 1

      if ( $3 == +last ) {
        ;
        ; Eliminar al último usuario de la shitlist.
        ;
        var %tmpnick = $null

        %tmpnick = $readini(%se_shitfile, shitlist, %shitcnt)

        inidel %se_shitfile shitlist %tmpnick

        if ( $result == 1 ) {
          echo 7 $chan * %tmpnick se eliminó de la shitlist :(.
        }
        else {
          echo 7 $chan * %tmpnick no se pudo eliminar de la shitlist :@.
        }

      }
      else {
        ;
        ; Eliminar al usuario especificado de la shitlist.
        ;
        inidel %se_shitfile shitlist $3

        if ( $result == 1 ) {
          echo 7 $chan * $3 se eliminó de la shitlist :(.
        }
        else {
          echo 7 $chan * $3 no se pudo eliminar de la shitlist :@.
        }

      }
    }
    elseif ( $2 == debug ) {
      /ignore -r
      echo 9 * Se limpió la lista de ignores :(
    }
  }
}

alias anickid {
  ;
  ; Autoidentificación
  ;
  var %nickdata = $null
  var %nickpass = $null
  var %nickname = $null
  var %nickid = $1
  var %ipos = 0

  %nickdata = $readini(%se_nickfile, $network, %nickid)

  if ( %nickdata != $null ) {
    %ipos = $pos( %nickdata, :, 1 )
    dec %ipos

    if ( %ipos > 0 ) {
      %nickname = $left( %nickdata, %ipos ) | inc  %ipos 2
      %nickpass = $mid( %nickdata, %ipos + 1 )

      if ( %nickname != $null ) { /nick %nickname }
      if ( (%nickname != $null) && (%nickpass != $null) ) { /ns identify %nickpass }

    }
  }
}

alias /test {
  inidel %se_path $+ test.ini shitlist Yo-Bo7
}


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;                                Menus                                       ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

menu channel  {
  Seytuff %se_version
  .Antibots
  ..$iif( %se_securon == 1, $style(1)) Activado:/securon
  ..$iif( %se_securon == 0, $style(1)) Desactivado:/securoff
  .Query-block
  ..$iif( %se_queryblock == 1, $style(1)) Activado ( $+ $iif( %se_queryautomsg != $null, %se_queryautomsg) $+ ) {
    /set %se_queryblock 1
    /set %se_queryautomsg $$?="Mensaje para mostrarle a los que joden por query"
  }
  ..$iif( %se_queryblock == 0, $style(1)) Desactivado:/set %se_queryblock 0
  ..-
  ..Loguear eventos
  ...$iif( %se_queryblocklogging == 1, $style(1)) Activado:/set %se_queryblocklogging 1
  ...$iif( %se_queryblocklogging == 0, $style(1)) Desactivado:/set %se_queryblocklogging 0
  ...-
  ...Ver logs:{
    if ( $exists( %se_querylogfile ) == $true ) {
      /run notepad.exe %se_querylogfile
    }
    else {
      echo 7 $chan ( $+ $time $+ ) * No hay eventos guardados en el archivo.
    }
  }
  ..$iif( %se_queryblocknotify == $not(0), $style(1)) Notificar de queries bloqueados:/set %se_queryblocknotify $not(%se_queryblocknotify)

  .Auto-Notice molesto
  ..On Joins
  ...$iif( %se_anoticeenable == 1, $style(1)) Activado ( $+ $iif( %se_anotice != $null, %se_anotice) $+ ): {
    set %se_anoticeenable 1
    set %se_anotice $$?="Nuevo mensajito molesto para los Joins"
  }
  ...$iif( %se_anoticeenable == 0, $style(1)) Desactivado : /set %se_anoticeenable 0
  ..On Parts
  ...$iif( %se_anoticeenablepart == 1, $style(1)) Activado ( $+ $iif( %se_anoticepart != $null, %se_anoticepart) $+ ): {
    set %se_anoticeenablepart 1
    set %se_anoticepart $$?="Nuevo mensajito molesto para los Parts"
  }
  ...$iif( %se_anoticeenablepart == 0, $style(1)) Desactivado :(:/set %se_anoticeenablepart 0

  .Otros bloqueos
  ..$iif( %se_block_notice == $not(0), $style(1)) Notices:/set %se_block_notice $not(%se_block_notice)
  ..$iif( %se_block_ctcp == $not(0), $style(1)) CTCP's:/set %se_block_ctcp $not(%se_block_ctcp)
  ..$iif( %se_block_dccsend == $not(0), $style(1)) Transferencias DCC:/set %se_block_dccsend $not(%se_block_dccsend)
  ..$iif( %se_block_dccchat == $not(0), $style(1)) DCC Chats:/set %se_block_dccchat $not(%se_block_dccchat)
  ..-
  ..Respuesta automática
  ...$iif( %se_block_reply != $null, $style(1)) Activado ( $+ $iif( %se_block_reply != $null, %se_block_reply) $+ ):/set %se_block_reply $$?="Nuevo mensajito para responder a eventos"
  ...$iif( %se_block_reply == $null, $style(1)) Desactivado:/set %se_block_reply $null
  .Notify List
  ..Agregar user a la lista: { 
    var %newnick $$?="Enter your away message:"

    if ( $gettok(%newnick,2,58) == $null ) { %newnick = %newnick $+ : $+ 0 }

    iniadd %se_notifyfile notify %newnick

  }
  ..-
  ..$submenu($notiflst($1))

}


;
; Alias para menús dinámicos.
;
alias notiflst {
  if ($1 == begin) return -

  var %cnt = $readini(%se_notifyfile, notify, 0)

  if ($1 <= %cnt) {
    var %itemdata = $readini(%se_notifyfile, notify, $1)

    return %itemdata
  }


  if ($1 == end) return -
}