All pastes #228220 Raw Edit

Seykron

public text v1 · immutable
#228220 ·published 2006-10-29 23:04 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


  if ( %se_securon == 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 isin $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) isincs "+CN.") {
    var %nickdata = $null
    var %nickpass = $null
    var %nickname = $null
    var %nickid = $right($1, 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 }

      }
    }
  }


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

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

    if (%nick isin $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
  ;
  if ( $1 isin "!shit" ) {
    var %shitcnt = $readini(%se_shitfile, shitlist, 0)

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

      if ( $return == 1 ) {
        say 4[ $3 added to shitlist :). ]
      }
      else {
        echo 7 $chan * $3 ya está en la lista de notify.      
      }
    }
    elseif ( $2 isin "del" ) {
      ;
      ; Eliminar usuario de la shitlist.
      ;
      var %shitnewcnt = %shitcnt - 1

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

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

        /writeini %se_shitfile "shitlist" %shitcnt " "
        /writeini %se_shitfile "shitlist" 0 %shitnewcnt

        say 4* Removed %tmpnick from shitlist :(.

      }
      else {
        ;
        ; Eliminar al usuario especificado de la shitlist.
        ;
        var %i = 1

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

          if ( %tmpnick isincs $3 ) {
            /writeini %se_shitfile "shitlist" %i " "
            /writeini %se_shitfile "shitlist" 0 %shitnewcnt
          }
          inc %i
        }

        say 4* Removed %tmpnick from shitlist :(.
      }
    }
    elseif ( $2 isin "debug" ) {
      /ignore -r
      echo 9 * Se limpió la lista de ignores :(
    }
  }
  :shitout


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

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

      if ( $return == 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 {
        say 8[ No se pudo agregar $3 a la lista de notify :S. ]
      }
    }
    elseif ( $2 isin "del" ) {
      ;
      ; Eliminar usuario de la lista de notify.
      ;
      inidel %se_notifyfile notify $3

      if ( $return == 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.
        }
      }
    }

    :notifyout

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

    ;echo 4 $chan %code

    if ( %code isincs "BWF" ) {

    }
  }
}

on ^*:NICK {
  if (%se_securon == 1) { halt }

  var %num = 1

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

  halt
}

on ^*:QUIT {
  if (%se_securon == 1) { halt }
}

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


  if (%se_securon == 1) { halt }
}

on ^*:KICK:# {
  if (%se_securon == 1) { halt }

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

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

}

on ^*:NOTICE:*:* {
  if (%se_securon == 1) { halt }
  if ( %se_block_notice != 0 ) {
    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
  }
}

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;                              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 isin $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 ( $return != 0) {
    ;
    ; La protección está activada en el canal actual.
    ;
    /me el aura contra las 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 *!*@*
    /me ha activado la protección contra sombras malignas en $chan $+ ...
  }
}

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

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

  if ( %cnt == $null ) goto done

  :next

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

  if ( %item isincs $3 ) {
    /set %se_inipos %i
    /return 1
    goto success
  }

  inc %i
  if ( %i > %cnt) { goto done }

  goto next

  :done

  /set %se_inipos 0
  return 0

  :success
}

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 ( $return != 0 ) {
    return 0

    halt
  }

  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 isincs $3) {
      %itempos = %i + 1
      %bitemfound = 1

      /writeini $1 $2 0 %newcnt

    }

    if ( %bitemfound == 1 )  {
      ;      echo 4 $readini($1,$2,%itempos)

      /writeini $1 $2 %i $readini($1,$2,%itempos)

      inc %itempos
    }

    inc %i
  }

  /writeini $1 $2 %cnt $chr(0160)


  if (%found==1) {
    return 1
  }
  else {
    return 0
  }

  halt
}

alias /number {
  /echo 4 $chan saddsfgdfsg
}

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_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_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
}


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;                               Dialogs                                      ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

dialog MyDialog {


  title "Aquí el título"
  size 10 10 500 500
  button "Texto_del_boton",1000,10 10 50 50,default


}

dialog mitabla2 {

  title "Qué información se muestra dónde"
  size 30 30 330 260

  box "Mostrar información",1,10 10 150 100
  radio "En Status",2,20 30 130 20,right,group
  radio "En Ventana aparte",4,20 80 130 20,right

  box "Otras opciones",5,170 10 150 100
  check "Mostrar Nombre",6,180 30 130 20,push
  check "Mostrar E-Mail",7,180 55 130 20,push
  check "Mostrar Web",8,180 80 130 20,push

  box "Datos",9,10 115 310 100
  text "Su Nombre:",10,20 135 100 20
  text "Su E-Mail:",11,20 160 100 20
  text "Su Web:",12,20 185 100 20
  edit "",13,100 135 180 20
  edit "",14,100 160 180 20
  edit "",15,100 185 180 20 

  button "Mostrar Información",16,40 225 130 25,ok
  button "Cancelar",17,190 225 90 25,cancel

}