All posts by ephestione

mIRC script to check and show the pc uptime

Wouldn’t it be nice if just by issuing the command /uptime you could send to the window you have currently open a test like this?

This is what just appeared when I typed /uptime in my mIRC. Obviously my nick has been ripped off for privay reasons

 

It is much more complete than any simple uptime script which tells only your current uptime… I mean, it records you highest time!

Obviously, it requires scripting. Then, as usual, let’s see how the code works, and then let’s comment it.

Open your Aliases Panel, pressing the button, and add this code:

/checkuptime //if ($calc($ticks / 1000) > %UptimeRecord) //set %IlGiorno $asctime(d mmmm) | //if ($calc($ticks / 1000) > %UptimeRecord) //set %UptimeRecord $calc($ticks / 1000)

/uptime {
  //if ($calc($ticks / 1000) > %UptimeRecord) //set %UptimeRecord $calc($ticks / 1000)  
  //say 9,1 It is $day $+ , $time $+ , here in the Italian slumps, and 4Windows $os 9runned *cough*smoothly*cough* for8 $replace($duration($calc($ticks / 1000),2),wk,$chr(32) $+ Week,hr,$chr(32) $+ Hour,min,$chr(32) $+ Minute,day,$chr(32) $+ Day) $+ 9 $+ . Record:7 $replace($duration(%UptimeRecord,2),wk,$chr(32) $+ Week,hr,$chr(32) $+ Hour,min,$chr(32) $+ Minute,day,$chr(32) $+ Day) 9( $+ %IlGiorno $+ )
}

Now, we need to access the Remote Panel, by pressing the button, and add this line:

on 1:START:/timeruptime 0 40 /checkuptime   

or if you already have an on START in there, followed by { and some lines, insert "/timeruptime 0 40 /checkuptime" without quotes just before the } at the end.

You need to add a line also to the Variable Panel, accessible by reaching the Remote or Aliases Panels, and then clicking on the Variables tab. Here add this line:

%UptimeRecord 0

Now press OK and restart mIRC.

This script will check for you every 40 seconds if the current uptime is higher than the stored one, and if it is, updates the record, and stores also the current date. You can change the frequency the script checks the uptime by putting a different value in "/timeruptime 0 40 /checkuptime", for example use 60 instead of 40 if you want to check every minute.

Needless to say, you can, or better you must change the message as well, since as you can see it fits my being italian . Just write what you like, and format the colours and text attributes as you prefer.

This is all, type /uptime and press Enter to see the result.

script mIRC per messaggi di quit personalizzati

Forse non sapete che usando un semplice /quit in mIRC, o premendo il pulsante per chiudere il programma, a meno che non abbiate installato degli script come Polaris, o simili, gli altri vedono un semplice:

*** Quits: Yournick (your@mask..in.here) (Quit: )

Noioso! Se avete Polaris, gli altri vedranno invece:

*** Quits: Yournick (your@mask.in.here) (Quit: (I was using Polaris IRC 2001) Version:(4.0 Platinum) Webpage:(http://www.polaris-central.com) Wasted:(1 Hour 38 Minutes and 36 Seconds Online))

o qualcosa di simile.

Per niente originale.

Ora, supponete che il vostro messaggio sia qualcosa come:

*** Quits: Yournick (your@mask.in.here) (Quit: As soon as I get through with you, you'll have a clear case for divorce and so will my wife. - Groucho Marx)

Molto migliore, almeno come la vedo io. Se volete dei messaggi di quit simpatici come questo, seguite le istruzioni.

Per prima cosa avete bisogno di un file di testo con le frasi che volete usare. Qui potete trovarne uno. Accertatevi di salvare il file nella cartella di mIRC, o semplicemente fate Click destro > Salva sul link.

Potete fare un file voi stessi, purché premiate invio tra una riga e l’altra, e non ci siano vuoti tra le righe, salvate quindi il file nella cartella di mIRC.

Aprite il pannello degli alias, premendo il pulsante , oppure andando in [Tools > Aliases]

I discovered the GIF Uniform palette is the best for windows, thanks to this screenshot ;-)
Questo è come l’alias /quot appare nel pannello degli Alias

 

Questo è ciò che dovete scrivere nel pannello (all’ultima riga):

/quot {
  //if (%Conta == $null) //set %Conta 0
  /inc %Conta 
  if (%Conta > $lines(Quotations.txt)) set %Conta 1
  //quit $read -l [ $+ [ %conta ] ] Quotations.txt
}

supponendo che abbiate chiamato il file Quotations.txt come ho fatto io, e l’abbiate messo nella stessa cartella di mIRC, come vi ho detto di fare.

Ora, ciò che dovete fare è usare /quot invece di "/quit messaggio" per uscire, e ogni volta verrà inviato un messaggio differente.

mIRC script for custom quit messages

Maybe you didn’t know that by doing a simple /quit in mIRC, or pressing the Close Window button in the upper right corner of mIRC Windows, unless you had installed scripts like Polaris, or similar, the others were seeing a simple:

*** Quits: Yournick (your@mask..in.here) (Quit: )

That’s boring! I mean, if you installed Polaris, they’d be seeing this instead:

*** Quits: Yournick (your@mask.in.here) (Quit: (I was using Polaris IRC 2001) Version:(4.0 Platinum) Webpage:(http://www.polaris-central.com) Wasted:(1 Hour 38 Minutes and 36 Seconds Online))

or something alike.

Quite not original.

Now, suppose instead your quit message was something like:

*** Quits: Yournick (your@mask.in.here) (Quit: As soon as I get through with you, you'll have a clear case for divorce and so will my wife. - Groucho Marx)

Much better, at least in my opinion. If you now want to make your quit messages happy and colourful like that one, follow the instructions, and in a few steps you’ll do it .

So, first you need a text file with the lines you want to use in your Quit messages. Here you can find one. Make sure you save the text of the new window in a TXT file in your mIRC folder, or just do [Right Click/Save] on the link.

You can make a file yourself, but make sure you press Enter between the lines, and save that file in the installation folder of mIRC.

You’re ready for the tough work now.

Open the Aliases Panel (just press the button, or do [Tools > Aliases])

I discovered the GIF Uniform palette is the best for windows, thanks to this screenshot ;-)
This is how the quot alias in your Aliases Panel should look like

 

This is what youhave to copy/paste in the Panel (at the end of it):

/quot {
  //if (%Conta == $null) //set %Conta 0
  /inc %Conta 
  if (%Conta > $lines(Quotations.txt)) set %Conta 1
  //quit $read -l [ $+ [ %conta ] ] Quotations.txt
}

supposing you called the file Quotations.txt as I did, and put it in the same folder as mIRC, as I told you.

Now, all you have to do is to use a simple /quot instead of "/quit Message here" when quitting, and every time you’ll send a different Quit message .

Script di mIRC completo per la gestione dei suoni di sistema

Questo script fa tutto il lavoraccio di gestire gli eventi che in mIRC sono programmati per generare dei suoni. Li intercetta, e, se avete attivato i suoni, suonerà il WAV che avete scelto (nello ZIP ci sono anche i WAV che uso io).

Se volete scaricare lo ZIP, eccolo qui. Tutte le istruzioni per avviarlo sono include nel file TXT, mentre qui potete vedere come personalizzarlo, e sapere come funziona. I WAV sono stati fatti perlopiù con MS Talkit, che potete trovare nella sezione Downloads/AudioVideo, nel caso vogliate farne degli altri voi stessi; ho incluso le istruzioni per creare file WAV con Talkit nel menù inglese (attivate il menu inglese e cercate nella sezione HowTo’s.

Segue il listato dello script:

alias sounds {
  //if ($1 == on) { /set %Soundon 1 | echo -a  $+ $color(info text).dd $+ *** Sounds have been activated }
  //if ($1 == off) { /set %soundon 0 | echo -a  $+ $color(info text).dd $+ *** Sounds have been disabled }
}

alias checkquery //if (($query($1).addr != $null) && (%Soundon == 1)) /splay query.wav

CTCP *:DCC:*:{
  if (($2 == send) && (%soundon == 1)) /splay dcc send.wav
}

on *:GETFAIL:*.*:{
  //if (%Soundon == 1) /splay dcc failed.wav
}

on *:FILERCVD:*.*:{
  //if (%Soundon == 1) /splay dcc finished.wav
}


on 1:OPEN:?:*:{
  //if (($pos($strip($1-),Matches for,1) == 1) && (%Soundon == 1)) /splay locator.wav
  else /timer 1 1 checkquery $nick
}

on *:NOTICE:*:*:{
  //if ((($pos($strip($1-),Requested File's on its way! Low CPS Limit:,1) != $null) || ($pos($strip($1-),is on its way.,1) != $null)  || ($pos($strip($1-),Now Sending!,1) != $null)) && (%Soundon == 1)) { /splay File Arriving.wav | goto bother }

  //if ((($pos($strip($1-),is on its way.,1) != $null) || ($pos($strip($1-),Now Sending!,1) != $null)) && (%Soundon == 1)) { /splay File Arriving.wav | goto bother }

  //if ((($pos($strip($1-),You are in que now with number,1) != $null) || (($pos($strip($1-),I have added,1) != $null) && ($pos($strip($1-),in my que,1) != $null)) && (%Soundon == 1))) { /splay Queued.wav | goto bother }

  //if ((($pos($strip($1-),You are already in my que list with,1) != $null) || ($pos($strip($1-),Sorry I am totally maxed out even in que list,1) != $null)) && (%Soundon == 1)) { /splay Queue Finished.wav | goto bother }

  //if ((($pos($strip($1-),Password accepted for,1) != $null) && ($nick == NickServ)) && (%Soundon == 1)) { /splay Identified.wav | goto bother }

  //if ($pos($1-,server flood protection activated,1) != $null) goto bother
  //if ($pos($1-,has opped,1) != $null) goto bother
  //if ($pos($1-,has deopped,1) != $null) goto bother
  //if ($poscs($1-,DCC Send,1) != $null) goto bother

  //if (%Soundon == 1) /splay notice.wav

  :bother
}

on *:TEXT:*:#:{
  //if ($pos($1-,$me,1) != $null) {//if (%Soundon == 1) /splay chimes.wav//if ($window(@calls,1) == $null) /window -n @calls//aline -hp @calls 11 $chan 9 [ $time ] 7 < $nick > 8 $1-
  }
}

on *:CONNECT://if (%Soundon == 1) /splay Connected.wav

on *:DISCONNECT://if (%Soundon == 1) splay Disconnected.wav

E segue anche la spiegazione.

I primi tre eventi (CTCP, on FILERCVD, on GETFAIL) si attivano rispettivamente quando un file arriva per DCC, quando il trasferimento viene completato, e quando si interrompe.

Il trigger on OPEN si avvia quando si apre una finestra di query. Prima controlla che non si tratti del risultato di ricerca di uno script per condivisione MP3, e se no, fa partire il suono dopo 1 secondo; questo succede per dare tempo al mio script antispam (controllate nella sezione IRC per scaricare anche quello) di chiudere la finestra se si tratta di spam.

L’evento on NOTICE controlla molte cose. Se NickServ ha ricevuto la vostra password, se la vostra richiesta di un MP3 è stata accodata o se sta per essere inviata (compatibile solo con SpR e SDFind), ignora molti messaggi inutili come op, deop, flood protection, e se nessun dei casi precedenti è verificato, avvia un suono generico di "notice".

L’ultimo, on TEXT, fa quello che mi piace di più: controlla se qualcuno scrive il vostro nick nel canale, e avvia il suono chimes.wav, mettendo in una finestra a parte la riga incriminata per permettervi di leggerla più tardi. Due cose: primo, potreste volerlo disabilitare per ragioni specifiche (esempio, siete un op, date il voice a qualcuno, ed il suo stupidissimo script vi ringrazia in automatico – questo sì che è inutile!!) e allora o staccate il suono del tutto (cancellando la linea che contiene "chimes.wav") o aggiungete qualche filtro per quelle evenienze (ma dovete essere un pò pratici di scripting); secondo, il log nella finestra separata per me è molto utile, ma se a voi non piace, potete rimuoverlo cancellando le due righe che contengono "@calls". Considerazione finale, questa parte può essere "inefficiente", nel senso che controlla tutto quello che viene scritto in tutti i canali, e occupa la CPU (poco, comunque). Io ho un singolo, grande on TEXT che controlla molte cose, ma se voi avete già altri script installati, aggiungere questo vi farebbe usare ancora più CPU.

 

Ora, come usarlo? Semplice, dopo averlo caricato cone le istruzioni presenti nel TXT, scrivete il comando /sounds on per inizializzarlo, e sarà pronto a suonare i WAV. Volete vedere un film o giocare? Scrivete il comando /sounds off e mIRC non vi disturberà.

How to cutomize it? Basically, you can change the name ot location of the WAVs, delete some parts you’re not interested in, but mostly, add other handlers, if you can, and care. Only thing: mIRC will continue to beep if someone writes other lines in a query after the first one, even if sounds are off. I could change that, but I was too lazy in that moment; I don’t even plan to do it in the future… taje it as a good excercise on scripting .
Come personalizzarlo? Fondamentalmente, potete cambiare il nome o la posizione dei WAV, concellare qulce parte in cui non siete interessati, ma principalmente, aggiungendo altri controlli, se ne siete capaci. L’unica pecca è che mIRC continuerà a fare BIP se ci sono messaggi in una query dopo la prima riga, anche se i suoni sono stati disattivati. Potrei correggerlo, ma non ne ho voglia.

Complete mIRC script for event sounds management

And after a long idle period on active scripting, I decided to come back with a useful script, to update a page about a similar issue, which anyway didn’t show anything such advanced.

This script does all the dirty job of managing events that inside mIRC are programmed to be able to generate sounds. It intercepts them, and, if you enabled sounds, it will play the WAVs appropriate for each event (I added to this script the WAVs I use on my own copy of mIRC)

If you wish to download the ZIP, here you go. All the instructions to load it are in the TXT, while in here you can see how you can customize the script itself, and learn how it works. The WAVs have been made mostly using MS Talkit, which you can find in the Download/AudioVideo section, in case you want to make your own WAVs; there’s also a guide to it in the HowTo’s section.

Follows the script listing:

alias sounds {
  //if ($1 == on) { /set %Soundon 1 | echo -a  $+ $color(info text).dd $+ *** Sounds have been activated }
  //if ($1 == off) { /set %soundon 0 | echo -a  $+ $color(info text).dd $+ *** Sounds have been disabled }
}

alias checkquery //if (($query($1).addr != $null) && (%Soundon == 1)) /splay query.wav

CTCP *:DCC:*:{
  if (($2 == send) && (%soundon == 1)) /splay dcc send.wav
}

on *:GETFAIL:*.*:{
  //if (%Soundon == 1) /splay dcc failed.wav
}

on *:FILERCVD:*.*:{
  //if (%Soundon == 1) /splay dcc finished.wav
}


on 1:OPEN:?:*:{
  //if (($pos($strip($1-),Matches for,1) == 1) && (%Soundon == 1)) /splay locator.wav
  else /timer 1 1 checkquery $nick
}

on *:NOTICE:*:*:{
  //if ((($pos($strip($1-),Requested File's on its way! Low CPS Limit:,1) != $null) || ($pos($strip($1-),is on its way.,1) != $null)  || ($pos($strip($1-),Now Sending!,1) != $null)) && (%Soundon == 1)) { /splay File Arriving.wav | goto bother }

  //if ((($pos($strip($1-),is on its way.,1) != $null) || ($pos($strip($1-),Now Sending!,1) != $null)) && (%Soundon == 1)) { /splay File Arriving.wav | goto bother }

  //if ((($pos($strip($1-),You are in que now with number,1) != $null) || (($pos($strip($1-),I have added,1) != $null) && ($pos($strip($1-),in my que,1) != $null)) && (%Soundon == 1))) { /splay Queued.wav | goto bother }

  //if ((($pos($strip($1-),You are already in my que list with,1) != $null) || ($pos($strip($1-),Sorry I am totally maxed out even in que list,1) != $null)) && (%Soundon == 1)) { /splay Queue Finished.wav | goto bother }

  //if ((($pos($strip($1-),Password accepted for,1) != $null) && ($nick == NickServ)) && (%Soundon == 1)) { /splay Identified.wav | goto bother }

  //if ($pos($1-,server flood protection activated,1) != $null) goto bother
  //if ($pos($1-,has opped,1) != $null) goto bother
  //if ($pos($1-,has deopped,1) != $null) goto bother
  //if ($poscs($1-,DCC Send,1) != $null) goto bother

  //if (%Soundon == 1) /splay notice.wav

  :bother
}

on *:TEXT:*:#:{
  //if ($pos($1-,$me,1) != $null) {//if (%Soundon == 1) /splay chimes.wav//if ($window(@calls,1) == $null) /window -n @calls//aline -hp @calls 11 $chan 9 [ $time ] 7 < $nick > 8 $1-
  }
}

on *:CONNECT://if (%Soundon == 1) /splay Connected.wav

on *:DISCONNECT://if (%Soundon == 1) splay Disconnected.wav

And follows the explanation (usage instructions at te bottom of the page).

The first three events (CTCP, on FILERCVD, on GETFAIL) trigger repectively when an incoming DCC send arrives, or a completion or fail of a DCC get occur, and, after checking if the sound output is enabled, play their files.

The on OPEN triggers when a query opens. It checks first if it’s a response of an MP3 sharing script, if not it waits 1 second before playing the Query sound. This is because you may have installed an antispam script (get a look at mine also in the IRC section) which closes instantly the query if it’s detected as spam: in this case you hear the sound only if the query is still open after a second.

The on NOTICE event checks for a lot of things. If NickServ identified you, if your MP3 request has been queued, is arriving, or hasn’t been accepted (works with SpR and SDFind responses only), ignores some frequent useless notices like the oppings, deoppings, flood protections, and after that plays a generic notice sound if no specific event is detected.

The last one, on TEXT, does what I like most: checks wether someone types your nick in a channel, and sounds chimes.wav, logging at the same time the line into a window. 2 things: first, you may want to disable it for specific occurencies (example: you are op, you voice someone, and his lame script -there’s no other way to call it- thanks you automatically; listening to the sounds may be… and is… annoying) so either you disable the sound at all (deleting the line containing "chimes.wav") or add some filters for those occurrencies (you must be a little fluent in mIRC scripting); second, the window logging looks really nice to me, but in the case you find it useless, delete the two lines containing "@calls". You may easily notice how you could completely delete the last statement if you don’t like it for both reasons. Also, it is somewhat"inefficient". That is, checks whatever is written in whichever channel, which means CPU usage. I have a single big on TEXT in my own script which checks a lot of things togheter, but if you have other scripts installed, they may have their own on TEXT routines. In that case the CPU utilization raises, so, if you are a lucky owner of a 1GHz+ CPU, no big deal, only keep in mind that on slower machines, having a mIRC instance which sucks 5% of the CPU is very annoying .

 

Now, how to use it? Simple, after having loaded the script (follow the instructions in the TXT file), do /sounds on and you will be all setted. The script wll begin to play the WAVs when it’s come the moment. Want to watch a movie or play a game? Type /sounds off and mIRC won’t bug you. That’s all.

How to cutomize it? Basically, you can change the name ot location of the WAVs, delete some parts you’re not interested in, but mostly, add other handlers, if you can, and care. Only thing: mIRC will continue to beep if someone writes other lines in a query after the first one, even if sounds are off. I could change that, but I was too lazy in that moment; I don’t even plan to do it in the future… take it as a good excercise on scripting.

Script di mIRC per la formattazione in testo colorato delle abbreviazioni come LOL

Suppongo che tutti sappiate cosa significhino lol rofl lmao afk ecc ecc, per cui andrò direttamente al punto: non vi piacerebbe che ogni volta, quando in IRC scrivete un anonimo, pallido, brevemente insignificante "lol", mIRC invece di "lol" scrivesse qualcosa come Laughing Out Loud?

Sarebbe molto più simpatico no? Sìsì va bene, ora non rompete con qualcosa come "Perché dovrei inviare una trentina di bytes quando di solito 3 sono sufficienti? Moltiplico per 10? Teribbile!" Chi se ne frega, se non siete interessati leggete qualche altra pagina del sito.

Potete usare questo addon, invece di scrivere il codice voi stessi. Le istruzioni sono incluse nel file TXT zippato. Vi consiglio di continuare a leggere comunque, per imparare come modificare lo script.

Questo è quello che finirà nel pannello Remote, accessibile col pulsante in mIRC:

on *:INPUT:*:{
  var %C1 = 8
  var %C2 = 3
  //if ($left($1-,1) != /) {
    //if ($1- == lol) { 
      //say  $+ %C1 $+ L $+ %C2 $+ aughing  $+ %C1 $+ O $+ %C2 $+ ut  $+ %C1 $+ L $+ %C2 $+ oud 
      halt
    }

    //if ($1- == brb) { 
      /say  $+ %C1 $+ B $+ %C2 $+ e  $+ %C1 $+ R $+ %C2 $+ ight  $+ %C1 $+ B $+ %C2 $+ ack 
      halt
    }

    //if ($1- == afk) { 
      /say  $+ %C1 $+ A $+ %C2 $+ way  $+ %C1 $+ F $+ %C2 $+ rom  $+ %C1 $+ K $+ %C2 $+ eyboard 
      halt
    }

    //if (($1- == rofl) || ($1- == rotfl)) { 
      /say  $+ %C1 $+ R $+ %C2 $+ olling  $+ %C1 $+ O $+ %C2 $+ n  $+ %C1 $+ T $+ %C2 $+ he  $+ %C1 $+ F $+ %C2 $+ loor  $+ %C1 $+ L $+ %C2 $+ aughing
      halt
    }

    //if ($1- == lmao) { 
      /say  $+ %C1 $+ L $+ %C2 $+ aughing  $+ %C1 $+ M $+ %C2 $+ y  $+ %C1 $+ A $+ %C2 $+ $$  $+ %C1 $+ O $+ %C2 $+ ff
      halt
    }
  }
}

Questo non è uno script esaustivo, non supporta tutti gli acronimi esistenti al mondo, ma "lol", "lmao", "rofl", "rotlf", "brb", "afk", sostuiti con Laughing Out Loud, Rolling On The Floor Laughing, Away From Keyboard, eccetera, mentre quelli che mancano potrete aggiungerli da voi facilmente, basta continuare a leggere

Ed ora spieghiamo come funziona lo script.

I trigger "on INPUT" funzionano quando premete il tasto Invio dopo aver scritto qualcosa, in qualunque finestra, sia canali che query che DCC Chat e Fileserver. Per prima cosa, viene controllato che il primo carattere sia diverso da "/", in modo da non interferire con i comandi (anche se non è strettamente necessariocome controllo, infatti è stato aggiunti per usi futuri). Poi controlla se la stringa che avete scritto è uguale ad una di quelle riconosciute, per cui se scrivete "lol" funzionerà, non andrà bene se scrivete "lol come è divertente". E’ un limite, ma si sopravvive. Le variabili %C1 e %C2 sono usate per cambiare i colori preferiti da un unico punto invece di modificare tutte le righe. Il comando halt serve ad evitare che mIRC, dopo che lo script ha scritto la riga modificata, invii anche la riga che avete scritto all’inizio.

Per aggiungere acronimi a piacimento, basta copiare l’insieme di righe che si rpete, da "//if ($1- ==" fino ad halt seguito da }. Dopo di ciò, modificate la stringa "($1- == XX)" con il vostro acronimo desiderato, ad esempio "($1- == wysiwyg)", e cambiate anche il testo che segue dopo /say, in base all’acronimo: prima della lettera iniziale di ogni parola inserite " $+ %C1 $+ " senza virgolette, ma conservando gli spazi, quindi dopo la lettera iniziale scrivete " $+ %C2 $+ ", senza virgolette ma con gli spazi, seguito dal resto della parola; alla fine avrete:

//if ($1- == wysiwyg) {
  /say  $+ %C1 $+ W $+ %C2 $+ hat  $+ %C1 $+ Y $+ %C2 $+ ou  $+ %C1 $+ S $+ %C2 $+ ee  $+ %C1 $+ I $+ %C2 $+ s  $+ %C1 $+ W $+ %C2 $+ hat  $+ %C1 $+ Y $+ %C2 $+ ou  $+ %C1 $+ G $+ %C2 $+ et
  halt
}

La guida è completa (potreste aver bisogno di un QI di almeno 80 per capirla).

mIRC script to format the LOL/BRB/AFK shortcuts into coloured text

I suppose here you do know what lol rofl lmao brb afk and so on mean, so I will just go straight to the point: what if, when you write an anonymous, pale, shortly insignificant "lol" as simplr reply to a witty comment of one of your channelmates, or of your current query pal, mIRC doesn’t actually print out "lol" but something like Laughing Out Loud?

It would be nicer, woulnd’t it? Well, ok ok, don’t just pi$$ me off now, "Why must I send about 30 bytes of data when usually 3 are sufficient? Tenfold increase? Whoa!" Who the heck cares, if you don’t like it visit one of the other marvellous sections of this website, and don’t get fed up with me.

You can use this addon, instead of adding the lines yourself. The instructions are included in the zipped TXT. I suggest you to continue reading anyway, to learn more about how to modify the script.

Here is what will go in your Remote Panel, accessible by pressing the button in mIRC:

on *:INPUT:*:{
  var %C1 = 8
  var %C2 = 3
  //if ($left($1-,1) != /) {
    //if ($1- == lol) { 
      //say  $+ %C1 $+ L $+ %C2 $+ aughing  $+ %C1 $+ O $+ %C2 $+ ut  $+ %C1 $+ L $+ %C2 $+ oud 
      halt
    }

    //if ($1- == brb) { 
      /say  $+ %C1 $+ B $+ %C2 $+ e  $+ %C1 $+ R $+ %C2 $+ ight  $+ %C1 $+ B $+ %C2 $+ ack 
      halt
    }

    //if ($1- == afk) { 
      /say  $+ %C1 $+ A $+ %C2 $+ way  $+ %C1 $+ F $+ %C2 $+ rom  $+ %C1 $+ K $+ %C2 $+ eyboard 
      halt
    }

    //if (($1- == rofl) || ($1- == rotfl)) { 
      /say  $+ %C1 $+ R $+ %C2 $+ olling  $+ %C1 $+ O $+ %C2 $+ n  $+ %C1 $+ T $+ %C2 $+ he  $+ %C1 $+ F $+ %C2 $+ loor  $+ %C1 $+ L $+ %C2 $+ aughing
      halt
    }

    //if ($1- == lmao) { 
      /say  $+ %C1 $+ L $+ %C2 $+ aughing  $+ %C1 $+ M $+ %C2 $+ y  $+ %C1 $+ A $+ %C2 $+ $$  $+ %C1 $+ O $+ %C2 $+ ff
      halt
    }
  }
}

This is a non-exhaustive script which will exchange lines like "lol", "lmao", "rofl", "rotlf", "brb", "afk", and all the others not included, and you’ll want to add, with their coloured aliases, like Laughing Out Loud, Rolling On The Floor Laughing, Away From Keyboard and so on.

Let’s explain now, for you little geeks curious to learn how this piece of art works.

The "on INPUT" triggers when you press the Enter key to send text, and uses $1- to refer to the entered text; in this case we will trigger every line sent to every kind of window (not only channels, but also queries, DCC chats and DCC FileServers). First, the routine checks if the first character is "/", which means it is a command, and it must not be touched (this was intended for future uses, but this check is not necessary, given the script’s structure ). Then it checks if the line is equal to one of the known acronyms, and it provides to send the updated coloured line instead. The %C1 and %C2 variables are used to easily change the colours if you don’t like the default ones. The halt command is to prevent mIRC to send, along with the modified text, also the text you originally typed in, for example "lol".

To add custom acronyms, simply copy the basic subroutine, that is from "//if ($1- ==" to the halt followed by the }. After that, change the string in "($1- == XX)" with your desired acronym, example "($1- == wysiwyg)", and modify the text after /say as well, according to the new formatting: before the first letter of each word put " $+ %C1 $+ " without quotes, and with the spaces, then right after the first letter copy " $+ %C2 $+ " also without quotes and with the spaces, followed by the rest of the word, so the whole thing becomes:

//if ($1- == wysiwyg) {
  /say  $+ %C1 $+ W $+ %C2 $+ hat  $+ %C1 $+ Y $+ %C2 $+ ou  $+ %C1 $+ S $+ %C2 $+ ee  $+ %C1 $+ I $+ %C2 $+ s  $+ %C1 $+ W $+ %C2 $+ hat  $+ %C1 $+ Y $+ %C2 $+ ou  $+ %C1 $+ G $+ %C2 $+ et
  halt
}

I consider this tutorial complete (you may need an IQ of at least 80 to understand this guide).

Script di mIRC per cercare un IP nei propri canali

Forse qualche volta vi siete chiesti di chi era l’IP di quella persona che era appena entrata nel vostro server FTP, o che stava tempestandovi di port scan. Forse, quell’IP apparteneva a qualcuno che si trovava in uno dei vostri canali, e vedendovi ha deciso di prendervi come bersaglio. Come accorgersene? Usando il mio script per fare lo scan dei canali in cui attualmente ci si trova, e vedere se effettivamente c’è qualcuno che corrisponde a quell’indirizzo.

La routine appare così:

/findip {
  //set %SearchedIP $1
  set %IPCheck 1
  var %NCanali
  //set %NCanali $chan(0)
  var %CrChan
  set %CrChan 1
  var %TempMask
  :ChanLoop
  //set %TempMask *!*@ $+ $1
  //if ($ialchan(%TempMask,$chan(%CrChan),1).nick != $null) //echo 9 $ialchan(%TempMask,$chan(%CrChan),1).nick in $chan(%CrChan)
  /inc %CrChan
  //if (%CrChan > %NCanali) goto end
  goto ChanLoop
  :end
  set %IPCheck 0
}
       

e avete bisogno di inserirla nel pannello degli Aliases in mIRC (accessibile premendo il pulsante .

Quando volete cercare un IP, scrivete, dovunque, sia un canale o la finestra di status: /findip <IP o alias>… per esempio:

/findip 142.214.43.4

oppure

/findip ppp-31xq.nocs.springnets.pk

E’ meglio cercare entrambi, per cui se avete solo l’IP, eseguite un comando /dns, per esempio:

/dns 142.214.43.4

e nella finestra di status troverete il risultato della ricerca (oppure se state usando il mio script per il /dns lo vedrete nella stessa finestra in cui avete digitato). Può esser possibile associare un nome all’IP, che nel caso illustrato è "ppp-31xq.nocs.springnets.pk", oppure è possibile che l’IP non sia risolvibile a nessun nome, ed otterrete il messaggio "Unable to resolve"; in questo caso comunque il comando /findip rimarrà completamente funzionale usando solo l’IP.

Se invece avete solo il nome, usate sempre il comando /dns:

/dns ppp-31xq.nocs.springnets.pk

e questa volta sicuramente riceverete l’IP in risposta alla richiesta.

Quindi, quando avete l’IP e l’alias (quest’ultimo non sempre disponibile), usate il comando /findip per entrambi. Se il computer corrispondente a quell’IP o alias è in uno dei vostri canali, lo script visualizzerà il nick e i canali in cui si trova, altrimenti non visualizzerà nulla. Non dovete aspettare molto, se ci sono risultati lo script li restituisce in pochi secondi.

Scan your IRC channels for an IP, mIRC script

Maybe sometimes you wondered whose IP was the one, for example, you saw on your FTP server, or on the smurf attack list of your firewall. Maybe, that IP belongs to someone who is in one of your channels in IRC; how to find out? Using a made up command which scans the channels you are in for that IP or alias.

The routine looks lihe this:

/findip {
  //set %SearchedIP $1
  set %IPCheck 1
  var %NCanali
  //set %NCanali $chan(0)
  var %CrChan
  set %CrChan 1
  var %TempMask
  :ChanLoop
  //set %TempMask *!*@ $+ $1
  //if ($ialchan(%TempMask,$chan(%CrChan),1).nick != $null) //echo 9 $ialchan(%TempMask,$chan(%CrChan),1).nick in $chan(%CrChan)
  /inc %CrChan
  //if (%CrChan > %NCanali) goto end
  goto ChanLoop
  :end
  set %IPCheck 0
}
       

and you need to put it in the Aliases Panel (accessible by pressing the button in mIRC.

When you want to search for an IP, type, wherever (either in the status window, a channel window, or a chat window): /findip <IP.or.alias.here> … for example:

/findip 142.214.43.4

or

/findip ppp-31xq.nocs.springnets.pk

It is better to search for both, so, if you only got the IP, do a /dns IP, for example:

/dns 142.214.43.4

and in the status window you will find the result of the search. If it is positive, you will get something more like the example above, that is "ppp-31xq.nocs.springnets.pk", otherwise it may not be possible to find an alias for the IP, and in that case you’ll get a "Unable to resolve" message.

If, instead, you only have the alias, do a /dns alias, like:

/dns ppp-31xq.nocs.springnets.pk

and in the status window you will get the corresponding IP.

So, when you have the IP and the alias, use the /findip command on both. If the person is in one of your channels, you’ll see a green text telling you whose that IP/alias is, and in what channel is the nick. If there are no matches, you will get no results. You don’t have to wait long, since usually if in 4 seconds you see no matches, means that the person isn’t in one of your channels.

Script di mIRC per trovare l’IP di altre persone in un canale

In mIRC potete vedere quale IP appartiene ad un utente. Questo si ottiene col comando /dns, così ad esempio se volete sapere qual è l’IP di Jogi potete usare:

/dns Jogi

e vedrete, dopo pochi secondi, l’IP e l’alias (se ne esiste uno) di Jogi nella finestra Status. Allora qual è il punto vi chiederete, una pagina HTML per parlare di un singolo comando? Non esattamente. é un pò una scocciatura dover controllare sempre nella finestra di status per vedere se l’IP è stato risolto, così faremo uno script che invia le informazioni nella finestra attualmente aperta, qualunque essa sia.

Potete usare questo addon per caricare lo script in mIRC, scompattate lo ZIP e leggete le istruzioni nel TXT (inglese)

Qui di seguito è spiegato come funziona.

Nel pannello remote si aggiunge:

on *:DNS://echo -a Resolved $nick to: Name - $naddress , IP - $iaddress

e il risultato, dopo che avrete fatto un /dns sull’utente Joey42 apparirà nella finestra attuale nel formato:

Resolved Joey42 to: Name - co3061808-a.eburwd1.vic.optushome.com.au , IP - 203.164.127.151

Nel caso in cui l’IP non abbia un corrispondente indirizzo testuale, il campo dopo Name sarà vuoto.

Potete anche controllare a quale IP corrispondono indirizzi web, ad esempio www.microsoft.com:

/dns www.microsoft.com

il risultato sarà:

Resolved to: Name - www.microsoft.com , IP - 207.46.230.219

e anche vedere qual è l’indirizzo testuale corrispondente ad un IP:

/dns 65.92.216.192

con output:

Resolved to: Name - HSE-Montreal-ppp3473182.sympatico.ca , IP - 65.92.216.192

[Aggiornato il 15 Sett 2010]
Diversi visitatori nei commenti mi hanno chiesto perché, quando lanciano il comando /dns nomeutente, ricevono uno strano codice al posto dell’indirizzo IP (come ad esempio 5B26E798.A7F81C6C.2CF41D6B.IP); questo ovviamente non è né un IP né un alias nominativo, ma si tratta semplicemente del vostro server che è impostato su un alto livello di sicurezza, ed impedisce agli utenti di conoscere gli IP delle altre persone connesse, e quindi restituisce quel codice, che è univoco per il singolo utente, ma da cui non è possibile risalire all’indirizzo IP reale. Questa è una limitazione di per sé non aggirabile, anche se potete provare a richiedere una “query DCC” all’utente in questione, cioè una sessione di chat privata in cui i vostri PC sono collegati direttamente l’uno all’altro; se l’altro utente accetta la vostra richiesta, ognuno di voi due potrà vedere l’IP dell’altro, siccome i vostri computer sono collegati direttamente tra loro senza intermediazione del server.