mIRC32 - Ejemplos ya programados: DCC Locker. Fecha creación: 06/01/00 - Última revisión: 06/01/00
 
;########################
; 
;     Bouncer Socket
;    By [SaRRiO] 2000
;   sarrio@univers.org
;
;########################


; para iniciar el dcc locker teclea: /dcclocker 
; la idea de "administrar" el dcc locker en una "window" fue extraida del IRcap (autor GSi)

alias bouncer {
  if (%bouncer.local == $null) set %bouncer.local 5555
  if (%bouncer.server == $null) set %bouncer.server irc.olivet.com 
  if (%bouncer.puerto == $null) set %bouncer.puerto 6667
  sockclose bouncer*
  close -c@ @bouncer
  window -ak @bouncer 200 300 400 100 arial 11
  echo @bouncer 3Abriendo bouncer por el puerto %bouncer.local
  echo @bouncer 1Redireccionando hacia12 %bouncer.server $+ : $+ %bouncer.puerto
  echo -s 3Bouncer
  echo -s 12Si quieres que un usuario use tu bouncer dile que teclee: /firewall on $ip %bouncer.local
  echo -s 4El usuario que acceda al IRC por tu bouncer tendra tu IP...
  socklisten bouncer %bouncer.local
}
on 1:SOCKLISTEN:bouncer:{
  sockaccept bouncernick
  echo @bouncer 3Cliente conectado:4 $sock($sockname).ip
  sockclose bouncer
}

on 1:SOCKREAD:bouncernick:{
  sockread %bouncer.read
  if ( $sock(bouncerconnect).status == active ) { sockwrite -n bouncerconnect %bouncer.read }
  if (NICK == $gettok(%bouncer.read,1,32)) && ($sock(bouncerconnect).status != active) { 
    sockopen bouncerconnect %bouncer.server %bouncer.puerto
    set %bouncer.nick %bouncer.read 
    set %bouncer.tmp 1NICK:12 $remove($gettok(%bouncer.read,2,32),:) 4-1 USER:12 
  }
  if (USER == $gettok(%bouncer.read,1,32)) && ($sock(bouncerconnect).status != active) { 
    set %bouncer.user %bouncer.read 
    set %bouncer.tmp %bouncer.tmp $gettok(%bouncer.read,2,32)  4-1 NAME:12
    set %bouncer.tmp %bouncer.tmp $remove($gettok(%bouncer.read,5,32),$left($gettok(%bouncer.read,5,32),1))
    set %bouncer.tmp %bouncer.tmp  $gettok(%bouncer.read,6,32) 
  echo @bouncer %bouncer.tmp | unset %bouncer.tmp }
}

on 1:SOCKOPEN:bouncerconnect:{
  if ($sockerr > 0) { echo @bouncer  4no se pudo conectar con %bouncer.server | sockclose bouncernick }
  else {
    sockwrite -tn bouncerconnect %bouncer.nick
    sockwrite -tn bouncerconnect %bouncer.user
    echo @bouncer 2Conexión con %bouncer.server por %bouncer.puerto realizada...
  }
}

on 1:SOCKREAD:bouncerconnect:{
  sockread %bouncer.text 
  if ($sock(bouncernick).status == active) sockwrite -n bouncernick %bouncer.text
  unset %bouncer.text
}

on 1:SOCKCLOSE:bouncerconnect:{
  if ($window(@bouncer).state == normal) || ($window(@bouncer).state == minimized) { 
    echo @bouncer 12 $+ %bouncer.server ha cerrado la conexión... 
  }
  sockclose bouncernick
}
on 1:SOCKCLOSE:bouncernickt:{
  if ($window(@bouncer).state == normal) || ($window(@bouncer).state == minimized) {
    echo @bouncer 1El cliente ha cerrado la conexión... 
  }
  sockclose bouncerconnect
}
on 1:CLOSE:@bouncer: bouncer.cierra

menu @bouncer {
  sclick { }
  reiniciar bouncer: bouncer
  -
  puerto local ( %bouncer.local ): bouncer.local
  server ( %bouncer.server  ): bouncer.server
  puerto IRC ( %bouncer.puerto ): bouncer.puerto 
  -
  quit usuario: bouncer.quit
  -
  cerrar bouncer:{ close -c@ @bouncer | bouncer.cierra  }
}

alias bouncer.local {
  set %bouncer.local $$?="Puerto local a abrir? (Actual: %bouncer.local $+ )" | bouncer
}
alias bouncer.server {
  set %bouncer.server $$?="Servidor IRC a redireccionar las conexiones? (Actual: %bouncer.server $+ )" 
  bouncer
}
alias bouncer.puerto {
  set %bouncer.puerto $$?="Puerto por el cual acceder a %bouncer.server $+ ? (Actual: %bouncer.puerto $+ )" 
  bouncer
}
alias bouncer.cierra {
  if ($sock(bouncerconnect).status == active) {
    sockwrite -n bouncerconnect quit :Usando un bouncer creado por [SaRRiO] - http://socketsmirc.cjb.net
  }
  if ($sock(bouncernick).status == active) sockclose bouncernick
  echo -s 3BOUNCER CERRADO
}
alias bouncer.quit {
  if ($sock(bouncerconnect).status == active) { 
    sockwrite -n bouncerconnect quit : $+ $$?="Mensaje de salida del IRC?" 
    sockclose bouncer*
    echo @bouncer 6Has cerrado la conexión. Reinicia el bouncer si lo deseas.
  }
}
 Volver a la página principal