[script] n0=;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx n1=; 1.- Nombre: OrioN n2=; 2.- Versión: v5.9 n3=; 3.- Autor: Javier Fernández Rivera n4=; 4.- Web: http://www.ircorion.net n5=; 5.- Mail: script@ircorion.net n11=;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx n12= n13=;eventos de navegacion por fserver====================== n14=on *:open:=:{ n15= if (%fserverchatxx == $null) { set %fserverchatxx $nick } n16=} n17=on 1:chat:*File Server K.Mardam-Bey*:{ n18= @visorfserver n19= .msg = $+ $chat(%fserverchatxx) dir | set %listdirfiles on n20=} n21=on *:chat:*:{ n22= if ($gettok($1-,2,46) != $null) || ($isupper($1-) == $true) { n23= if ($window(@navegador) != $null) && ( !isin $1-) { .aline @Navegador $1- | halt } n24= } n25= ;proteccion anti-dccloocker============================= n26= inc %antidcclook 1 n27= .timerantidcclook 1 5 unset %antidcclook n28= if (%antidcclook > 100) && (%antiflooddcclook == on) { n29= close -c $nick n30= unset %antidcclook n31= echo -s $oriontheme(sSeparadorLine) n32= %r = $nick n33= echo -s $oriontheme(sDccLocker1) n34= echo -s $oriontheme(sDccLocker2) n35= echo -s $oriontheme(sSeparadorLine) n36= .msg $nick $oriontheme(sDccLockerMsg) n37= whois $nick n38= if ($readini(sistema\PFlood\floodconf.ini,floods,tflood11) == on) { n39= writeini sistema\PFlood\floodconf.ini flooder fuser11 $nick n40= atakflood $nick 11 n41= } n42= halt n43= } n44=} n45=;eventos para el reprodcutor de mp3===================== n46=ctcp *:sound:{ n47= if (XMSXXXX0.mp3 isin $2) { anticomcom $nick | halt } n48=} n49= n50=ctcp ^1:mp3:{ n51= %mp3fileget = $2- n52= %r1 = %mp3fileget | %r2 = $chan | %r3 = $nick n53= echo -s $oriontheme(sSeparadorLine) n54= echo -s $oriontheme(eSoundMusi) n55= echo -s $oriontheme(sSeparadorLine) n56= if ($findfile(%findmp3dirlocalscript,$2-,1) == $null) { n57= %ctcpfile = %mp3fileget | %ctcpnick = $nick n58= echo -s El mp3 $2- no se encuentra en %findmp3dirlocalscript para pedirlo pulsa F5 n59= } n60= else { n61= %rutagetmp3 = %findmp3dirlocalscript $+ $2- n62= if (%rungetmp3 == on) { n63= echo -s Ejecutando el mp3 enviado $gettok($2-,1,46) n64= .splay " $+ %rutagetmp3 $+ " n65= } n66= } n67= unset %mp3fileget %rutagetmp3 n68= haltdef n69=} n70= n71=ctcp 1:get:{ n72= %peticionmp3file = $2- n73= if ($findfile(%findmp3dirlocalscript,$2-,1) != $null) { n74= if (%sendmemp3 == on) { n75= %sendfilemp3user = %findmp3dirlocalscript $+ %peticionmp3file n76= dcc send $nick " $+ %sendfilemp3user $+ " n77= echo -s 4,1 Envio8 de9 %peticionmp3file 8por peticion de11 $nick 9,99 n78= } n79= else { notice $nick Tengo desactivada la opción de envio de archivos mp3 } n80= } n81= else { notice $nick El mp3 que solicitas $2- no lo tengo disponible en %findmp3dirlocalscript } n82= unset %peticionmp3file %sendfilemp3user n83=} n84=;gestor de correo del OrioN============================ n85=;recivo de info a conex email............................... n86=on 1:sockopen:egets: { n87= if ($sockerr > 0) { egeterrorclose *** No es posible establecer conexión. } n88= else { egetopen $sockname } n89=} n90=;end envio de info desde email a remoto................................... n91= n92=;leyendo conex raw de email.................................................... n93=on 1:sockread:esends: { n94= sockread %infosockemail n95= if ($window(@dateservemail) != $null) { aline @dateservemail 0 %infosockemail } n96= if ($sockerr > 0) { egeterrorclose sendemail *** No es posible establecer conexión. } n97= if ($sockbr == 0) { egeterrorclose sendemail *** Conexión anulada con server. (falta de datos) } n98= if (accepted isin %infosockemail) || (received isin %infosockemail) { n99= did -a sendemail 11 *** Conexión finalizada. n100= did -a sendemail 11 *** Concluida trasferencía de datos (e-mail) a: $did(sendemail,6) n101= unset %infosockemail n102= sockwrite -tn esends quit n103= } n104= if (%infosockemail isin Denied) { egeterrorclose sendemail *** Denegado al acceso para trasferencia de datos. (Conexion cerrada). } n105=} n106=;recibiendo datos emails============================== n107=#txtemail off n108=on 1:sockread:egets: { n109= ;creando file para email============== n110= createfilemail %egetsubjdir n111= sockread %infosockemail n112= if ($window(@dateservemail) != $null) { aline @dateservemail 0 %infosockemail } n113= if (%infosockemail == .) { endmail } n114= if (MIME format isin %infosockemail) { write %emailfile El e-mail contiene archivos y formatos especiales como el html. Ver con el cliente de correo tradicional. | .enable #txtendmail } n115= if (html isin %infosockemail) && (< isin %infosockemail) && (> isin %infosockemail) { write %emailfile El e-mail contiene archivos y formatos especiales como el html. Ver con el cliente de correo tradicional. | .enable #txtendmail } n116= if (%infosockemail != $null) && (%emailfile != $null) { .write %emailfile %infosockemail } n117=} n118=#txtemail end n119=on 1:sockread:egets: { n120= sockread %infosockemail n121= if ($window(@dateservemail) != $null) { aline @dateservemail 0 %infosockemail } n122= if ($sockerr > 0) { egeterrorclose email ***No es posible establecer conexión. } n123= if ($sockbr == 0) { egeterrorclose email ***Conexión anulada con server. (falta de datos) } n124= if ($left(%infosockemail,3) == +OK) && ($gettok(%infosockemail,2,32) isnum) && (octets !isin %infosockemail) { n125= if ($gettok(%infosockemail,2,32) == 0) { did -a email 12 *** No se ha encontrado en server nigun e-mail recibido. } n126= else { n127= egetlist $gettok(%infosockemail,2,32) $sockname n128= did -a email 12 *** Resuelto numero de e-mails: $gettok(%infosockemail,2,32) n129= } n130= } n131= if (date: isin %infosockemail) { n132= %egetdate = $gettok(%infosockemail,2-,58) n133= did -a email 12 *** Localizada fecha de envio e-mail: $gettok(%infosockemail,2-,58) n134= } n135= if (Subject: isin %infosockemail) { n136= if (%aboutemail == $null) { n137= %aboutemail = $gettok(%infosockemail,2-,32) n138= did -a email 12 *** El asunto del e-mail: %aboutemail n139= } n140= } n141= if (to: isin %infosockemail) { n142= %egetsubj2 = $gettok(%infosockemail,2-,58) n143= %egetsubjdir2 = $remove(%egetsubj2,smtp.,<,>,") n144= } n145= if (from: isin %infosockemail) { n146= if (< isin %infosockemail) { %egetsubjdir = $remove($gettok(%infosockemail,2,60),>) } n147= else { %egetsubjdir = $remove($gettok(%infosockemail,2-,58),smtp.) } n148= if (" isin %infosockemail) { %egetname = $remove($gettok(%infosockemail,2,32),") } n149= else { %egetidfrom = $gettok(%egetsubjdir,1,64) } n150= did -a email 12 *** Descifrado sujeto emisor del e-mail n151= } n152= if (Status: isin %infosockemail) { .enable #txtemail } n153= ;comienzo de trascritura a txt por orden raw del server ............ n154=} n155=#txtendmail on n156=on 1:sockread:egets: { n157= sockread %infosockemail n158= if ($chr(46) isin %infosockemail) && ($len(%infosockemail) == 1) { .disable #txtendmail | endmail | endmail2 } n159=} n160=#txtendmail end n161= n162= n163=;eventos para clon por sockets========================== n164=on 1:sockopen:orionclon: { n165= if ($sockerr > 0) { n166= echo -s $oriontheme(eClonNoConex) n167= echoclonclose n168= } n169= else { n170= echoclonopen n171= echo -s $oriontheme(sSeparadorLine) n172= echo -s $oriontheme(eClonConex) n173= echo -s IP: $sock($sockname).ip n174= echo -s Port: $sock($sockname).port n175= echo -s NickClon: %nickorionclon n176= if ($window(@clon) == $null) { @clon } n177= drawtext -cp @clon 1 "arial" 10 70 8 200 11 1,1 xxxxxxxxxxxxxxxxxxxxxxx n178= drawtext -cp @clon 9 "arial" 10 43 27 200 12 1,1 xxxxxxxxxxxxx n179= drawtext -c @clon 9 "arial" 10 70 8 200 11 $sock($sockname).ip n180= drawtext -c @clon 9 "arial" 10 43 27 200 12 %nickorionclon n181= sendsockorion NICK %nickorionclon n182= sendsockorion USER %nickorionclon %iporionclon n183= } n184=} n185= n186=on 1:sockclose:orionclon: { n187= echo -s $oriontheme(sSeparadorLine) n188= echo -s Conexion cancelada n189= echo -s IP: El equipo remoto ha cortado la conexión n190= echoclonclose n191=} n192=on 1:sockread:orionclon: { n193= sockread %datebin n194= %#datebin = $gettok(%datebin,3,32) n195= if (:Welcome isin %datebin) { sendsockorion JOIN %#orionclon } n196= if (part isin %datebin) { .timer 1 1 loadnicks#orionclon %#datebin } n197= if (join isin %datebin) { n198= .timer 1 1 loadnicks#orionclon $remove(%#datebin,:) n199= if ($address($remove($gettok(%datebin,1,33),:),2) == $address($me,2)) && (%autoclonopdueño == on) { .timer 1 1 sendsockorion MODE $gettok(%datebin,2,58) +o $remove($gettok(%datebin,1,33),:) } n200= } n201= if (kick isin %datebin) { .timer 1 1 loadnicks#orionclon $gettok(%datebin,3,32) } n202= if (:Nickname isin %datebin) { informo El nick elegido para el clon esta siendo usado por otro usuario en este mismo momento. Eliga otro nick para su clon y reconecte. P-) } n203= if (ping isin %datebin) { sendsockorion PONG $gettok(%datebin,2,58) } n204= if (privmsg isin %datebin) && ($address(%#datebin,2) == $null) { echo n205= if ($chr(35) isin %#datebin) { .timer 1 1 .aline @clonCanal: $+ %#datebin 8< $+ $gettok($gettok(%datebin,1,33),1,58) $+ 8>0 $gettok(%datebin,2-,58) } n206= if ($address($remove($gettok(%datebin,1,33),:),2) == $address(%nickorionclon,2)) { n207= if (quita op a isin %datebin) { sendsockorion MODE %#datebin -o $strip($gettok(%datebin,7,32)) } n208= if (dale op a isin %datebin) { sendsockorion MODE %#datebin +o $strip($gettok(%datebin,7,32)) } n209= if (haz kick a isin %datebin) { sendsockorion KICK %#datebin $strip($gettok(%datebin,7,32)) } n210= if (haz un invite a isin %datebin) { sendsockorion INVITE $strip($gettok(%datebin,8,32)) %#datebin } n211= if (haz bankick a isin %datebin) { n212= mode %#datebin +b $address($strip($gettok(%datebin,7,32)),2) n213= kick %#datebin $strip($gettok(%datebin,7,32)) n214= } n215= } n216= } n217= if (mode isin %datebin) { n218= loadnicks#orionclon $gettok(%datebin,3,32) n219= if ($address($gettok(%datebin,5,32),2) == $address(%nickorionclon,2)) && ($gettok(%datebin,4,32) == -o) && ($remove($gettok(%datebin,1,33),:) != %nickorionclon) { n220= sendsockorion MODE %#datebin +o $gettok(%datebin,5,32),2) n221= if (%autoclondef == kick) { sendsockorion KICK %#datebin $remove($gettok(%datebin,1,33),:) } n222= else { sendsockorion MODE %#datebin -o $remove($gettok(%datebin,1,33),:) } n223= } n224= } n225= unset %datebin n226=} n227= n228=;evitando win query con .msg de virus life stages============ n229=on *:text:Hi. sorion check out this file, ok:?: { window -c $nick } n230= n231=;inputs para wins personalizadas========================= n232=;wins de clon por sockets............ n233= n234=on *:input:@:{ n235= if ($window(@codedecode) == $active) { cod-encript $1- | halt } n236= if ($window(@clon) != $null) && (canal isin $active) { n237= echo -a 1>0 $1- n238= sendsockorion PRIVMSG $gettok($active,2,58) : $+ $1- n239= halt n240= } n241=} n242=on *:close:@cloncanal*:{ n243= if ($window(@clon) != $null) && (cloncanal isin $target) { n244= if ($sock(orionclon) == $null) { n245= echo -s $oriontheme(sSeparadorLine) n246= echo -s Conexión finalizada por usuario n247= echo -s NickClon:9 %nickorionclon n248= echo -s Cerrando sockets (conexiones abiertas) n249= sockclose orionclon n250= if ($window(@clon) != $null) { drawdot @clon 9 3 183 36 } n251= } n252= else { conexclon } n253= } n254=} n255= n256=;ctcp version de publicidad OrioN======================= n257=ctcp *:version: { .notice $nick %txtpubli } n258= n259=;redireccionamiento de texto en ventanas================= n260=#redirelogwin off n261=on 1:text:*:%winrediretxt1:{ msg %winrediretxt2 4 $nick $+ 1>2 $1- } n262=on 1:text:*:?:{ if ($nick == %winrediretxt1) { msg %winrediretxt2 4 $nick $+ 1>2 $1- } } n263=on 1:input:%winrediretxt1:{ msg %winrediretxt2 4 $nick $+ 1>2 $1- } n264=on 1:part:%winrediretxt1: { unset %markredirewin1 %winrediretxt2 %winrediretxt1 | %markredirewin2 = > | .disable #redirewin } n265=#redirelogwin end n266= n267=;mensajes del server notice server====================== n268=on 1:SNOTICE:*:{ if ($window(@getnoticeserv) != $null) { aline @getnoticeserv 0 $1- } } n269=on 1:ERROR:*:{ if ($window(@getnoticeserv) != $null) { aline @getnoticeserv 0 $1- } } n270= n271=;trivial eventos ====================================== n272=#trivial off n273=on 1:text:*:%trivialcanal:{ n274= if ($chr(33) isin $1-) && ($mid($1-,1,1) == !) { n275= if ($readini $mircdirjuegos\trivial\trivconfig.ini script trivanswer isin $gettok($1-,1,33)) { n276= if ($read -s $+ $nick $mircdirjuegos\trivial\jugadores.txt == $null) { n277= write -a $mircdirjuegos\trivial\jugadores.txt $nick = 0 n278= } n279= trivwiner $nick n280= } n281= else { n282= if ($read -s $+ $nick $mircdirjuegos\trivial\jugadores.txt == $null) { n283= write -a $mircdirjuegos\trivial\jugadores.txt $nick = 0 n284= } n285= trivlust $nick n286= } n287= } n288=} n289=#trivial end n290=;noticias OrioN on line================================ n291=on 1:sockopen:news:{ n292= if ($sockerr > 0) { echo -s $oriontheme(sSeparadorLine) | echo -s $oriontheme(eNewsOut) } n293= else { n294= if (!$exists(sistema\news\n $+ $remove($date,/) $+ .txt)) { n295= sockwrite -tn news GET /quasi/script/n $+ $remove($date,/) $+ .txt n296= } n297= } n298=} n299=on 1:sockread:news:{ n300= if ($sockerr > 0 ) { bugnews } n301= sockread %news n302= write -a sistema/news/tn $+ $remove($date,/) $+ .txt %news n303= if (newend isin %news) || (DOCTYPE isin %news) { sockclose news | orionnewsstat } n304=} n305=;--------- n306=on 1:sockopen:ldecode:{ n307= if ($sockerr > 0) { halt } n308= else { sockwrite -tn ldecode GET /quasi/script/ldecode.ini } n309=} n310=on 1:sockread:ldecode:{ n311= sockread %ldecode n312= if (fecha= isin %ldecode) && ($gettok(%ldecode,2,61) != $date) { sockclose ldecode | .timer 1 1 .remove sistema\ldecode\tldecode.ini halt } n313= if (ldecodeEnd isin %ldecode) { n314= sockclose ldecode | .remove sistema\ldecode\ldecode.ini | .rename sistema\ldecode\tldecode.ini sistema\ldecode\ldecode.ini | .timer 1 1 .remove sistema\ldecode\tldecode.ini } n315= write -a sistema\ldecode\tldecode.ini %ldecode n316=} n317= n318=;ofrecer un fichero al canal============================= n319=#sendfilec off n320=on 1:text:%sendfilecget:%sendfilecsel:{ n321= if ($send(0) <= %sendfilecusr) { dcc send $nick %sendfilecfil } n322= else { msg $nick Estas fuera de cola para DccSend. Espera a que termine alguna de mis trasferencias. Gracias ;) } n323=} n324=#sendfilec end n325= n326=;PROTECCIONES PERSONALES====================== n327=on 1:deop:%protekpersoad:{ n328= if (!$redbot($nick)) && ($me != $nick) && ($me == $opnick) { n329= echo -s $oriontheme(sSeparadorLine) n330= echo -s $oriontheme(sProtekPerso) n331= if (%actproantideop == si) { .msg $redbotcanal op # $me } n332= .timeratak 1 2 protekperso $event $nick $chan n333= } n334=} n335=on 1:kick:%protekpersoak:{ n336= if (!$redbot($nick)) && ($me != $nick) && ($me == $knick) { n337= echo -s $oriontheme(sSeparadorLine) n338= echo -s $oriontheme(sProtekPerso) n339= if (%actproantikick == si) { n340= if ($redbotcanal) { .msg $redbotcanal invite $chan } n341= else { invite $me $chan } n342= } n343= .timeratak 1 2 protekperso $event $nick $chan n344= } n345=} n346=on 1:ban:%protekpersoab:{ n347= if (!$redbot($nick)) && ($me != $nick) && ($me isin $banmask) || ($remove($address($me,2),*!*@) isin $banmask) || ($address($me,0) isin $banmask) || ($address($me,3) isin $banmask) || ($address($me,4) isin $banmask) { n348= echo -s $oriontheme(sSeparadorLine) n349= echo -s $oriontheme(sProtekPerso) n350= if (%actproantiban == si) { n351= if ($redbotcanal) { .msg $redbotcanal invite $chan } n352= else { invite $me $chan } n353= } n354= .timeratak 1 2 protekperso $event $nick $chan $banmask n355= } n356=} n357=on 1:text:*:%protekpersoai:{ n358= %b = 1 n359= while ($read(sistema\Protek\insultos.txt,%b)) { n360= if ($read(sistema\Protek\insultos.txt,%b) isin $strip($1-)) && ($me isin $strip($1-)) { n361= if (!$redbot($nick)) && ($me != $nick) { n362= echo -s $oriontheme(sSeparadorLine) n363= echo -s $oriontheme(sProtekPersoInsulto) n364= .timerban 1 2 protekperso insultos $nick $chan n365= } n366= } n367= inc %b n368= } n369= unset %b n370=} n371=;selkick n372=#atake-kick off n373=on 1:join:#: { n374= if ($chan == %canal.atake) && ($nick == %nick.atake-kick) && (%nºkick != 1) { n375= kick %canal.atake %nick.atake-kick 1[14 %msg.atake-kick 1] $nkick $total-kick n376= did -o atake-sel 34 1 %total.kick n377= } n378= if (%n.kick == %nºkick) { n379= .disable #atake-kick n380= did -b atake-sel 15 n381= did -e atake-sel 14 n382= echo -s %sepa n383= echo -s >> 0Finalizado correctamente ataque KICK contra 12(8 $+ %nick.atake-kick $+ 12)0 - kick´s %n.kick n384= unset %n.kick %nºkick n385= } n386= if (%nºkick == 1) { n387= .disable #atake-kick n388= did -b atake-sel 15 n389= did -e atake-sel 14 n390= echo -s %sepa n391= echo -s >> 0Finalizado correctamente ataque KICK contra 12(8 $+ %nick.atake-kick $+ 12)0 - kick´s %n.kick n392= unset %n.kick %nºkick n393= } n394=} n395=#atake-kick end n396=#atake-ban off n397=on 1:join:#: { n398= if ($chan == %canal.atake) && ($nick == %nick.atake-ban) && (%nuban != 1) { n399= mode %canal.atake -o %nick.atake-ban n400= mode %canal.atake +b $address(%nick.atake-ban,2) n401= kick %canal.atake %nick.atake-ban 1[14 %msg.atake-ban 1] $nban $total-kick $total-ban n402= did -o atake-sel 34 1 %total.kick n403= did -o atake-sel 35 1 %total.ban n404= } n405= if (%n.ban == %nuban) { n406= .disable #atake-ban n407= did -b atake-sel 26 n408= did -e atake-sel 25 n409= echo -s %sepa n410= echo -s >> 0Finalizado correctamente ataque BAN contra 12(8 $+ %nick.atake-ban $+ 12)0 - Ban´s %n.ban n411= unset %n.ban %nuban n412= } n413= if (%nuban == 1) { n414= .disable #atake-ban n415= did -b atake-sel 26 n416= did -e atake-sel 25 n417= echo -s %sepa n418= echo -s >> 0Finalizado correctamente ataque BAN contra 12(8 $+ %nick.atake-ban $+ 12)0 - Ban´s %n.ban n419= unset %n.ban %nuban n420= } n421=} n422=#atake-ban end n423= n424=;hotlinks========================================== n425=on ^1:hotlink:*[&info]*:#: return n426=on 1:hotlink:*[&info]*:#: dialog -m scancanal scancanal | .timer -m 1 100 did -a scancanal 3 %winactive n427=on ^1:hotlink:*[&Whois]*:?: return n428=on 1:hotlink:*[&Whois]*:?: whois $active n429=on ^1:hotlink:*[&Who]*:?: return n430=on 1:hotlink:*[&Who]*:?: who $active n431=on ^1:hotlink:*[&Dns]*:?: return n432=on 1:hotlink:*[&Dns]*:?: dns $active n433=on ^1:hotlink:*[&u?]*:#: return n434=on 1:hotlink:*[&u?]*:#: whois $gettok($strip($hotline),3,32)