Skip to content

Posts tagged ‘IRC’

[mIRC] Request: Coloured nicks

This little snippet will simply colour nicknames when you send a message to a channel that contains nicknames within a line. It wont work if you have other on input events, I.e. acronyms, etc.. you’d have to implement it into that input event. Enjoy!

on *:INPUT:#:{
  if ($active == Status Window) return
  if ($left($1,1) == $readini($mircini,text,commandchar)) || ($left($1,1) == $chr(47)) return
  haltdef
  var %msg $1-
  var %num $numtok($1-,32)
  var %x 1
  while (%x <= %num) {
    var %rand $rand(2,15)
    if ($gettok(%msg,%x,32) ison $chan) var %msg $puttok(%msg,$+($chr(3),%rand,$gettok(%msg,%x,32),$chr(3)),%x,32)
    inc %x
  }
  msg $chan %msg
}

[mIRC] Colour talker.

Version 1.02 – Now detects if +c or +S is set on the channel, and will stop using colour if it is.

Copy the code below:

; Colour talker v1.02
;v1.00
;- first release
;v1.01
;- fixed a silly coding error -_-, my bad (numbers wouldn't show in colour talker)
;- added a bit more error checking, still not perfect, but I can't be arsed right now.
;v1.02
;- Detects channel mode +S or +c (strip colour codes, block colour codes) and will stop using colour in accordance

on *:LOAD:{
   echo -atc info * Info: Successfully loaded colour talker.
   echo -atc info * Info: For a quick guide on how to use this, type /ctalk help.
   echo -atc info * Info: Alternatively you may use the menu, Colour Talker, to set up this script, it only takes a few moments. Enjoy ;).
}
on *:UNLOAD:{
   echo -atc info * Info: Unloading all colour talker variables...
   .unset %ctalk.*
   echo -atc info * Successfully unloaded colour talker.
}

#Ctalker off
on *:INPUT:*: {
   if ($left($1,1) == $chr(47)) || (Status Window == $active) || (@* iswm $active) return
   if ((c isincs $chan($chan).mode) || (S isincs $chan($chan).mode)) return
   if ($ctalk == $false) {
   echo -atc info * Error: You have colour talker enabled but have not set up your colours, type $+($chr(2),/ctalk set,$chr(2)) to set it up.
}
else {
   ;set start marker
   var %x 1
   ;loop, while marker is less than total tokens
   while (%x <= $gettok($1-,0,32)) {
   ;get the first letter of current token
   var %first $mid($gettok($1-,[ %x ],32),1,1)
   ;get the rest of the word, set it to our text variable
   var %text %text $replace($mid($gettok($1-,[ %x ],32),1,1),[ %first ], $+($chr(3),[ %ctalk.c1 ],[ %first ],$chr(3),[ %ctalk.c2 ])) $+ $mid($gettok($1-,[ %x ],32),2,$calc($len($gettok($1-,[ %x ],32) - 1)))
   ;increase our marker, move on to next token
   inc %x
   }
   msg $active %text
   halt
   }
}
#Ctalker END
alias ctalk {
   if $isid {
      if ($len(%ctalk.c1) == 1) || $len(%ctalk.c1) > 2) || (%ctalk.c1 > 15) || (%ctalk.c1 !isnum) return $false
      elseif ($len(%ctalk.c2) == 1) || $len(%ctalk.c2) > 2) || (%ctalk.c2 > 15) || (%ctalk.c2 !isnum) return $false
   else return $true
   }
   if ($ctalk == $false) echo -atc info * Error: Type $+($chr(2),/ctalk set,$chr(2)) to set up.
   if ($1) {
      if ($1 == on) {
         if ($group(#ctalker) == on) echo -atc info * Error: Colour talker is already enabled
         else {
            .enable #ctalker
            echo -atc info * Info: Colour talker is now $+($chr(2),enabled,$chr(2))
         }
      }
      if ($1 == off) {
         if ($group(#ctalker) == off) echo -atc info * Error: Colour talker is already disabled
         else {
            .disable #ctalker
            echo -atc info * Info: Colour talker is now $+($chr(2),disabled,$chr(2))
         }
      }
      if ($1 == set) {
         var %ctalk.confirm $$input(We are now going to set up the colour talker! $+ $crlf $+ $crlf $+ Press "Ctrl + K" for colour reference.,oi,Colour Talker)
         :colour1
         set %ctalk.c1 $remove($$input(Choose a colour: e.g. 2,eo,Select Colour One,%ctalk.c1),$chr(3))
         if ($len(%ctalk.c1) > 2) || (%ctalk.c1 > 15) || (%ctalk.c1 !isnum) {
           echo -atc info * Error: Colour selected must be a numerical value between 0 and 15.
           goto colour1
         }
         if ($len(%ctalk.c1) == 1) set %ctalk.c1 $+(0,%ctalk.c1)
         :colour2
         set %ctalk.c2 $remove($$input(Choose a colour: Ex. 12,eo,Select Colour Two,%ctalk.c2),$chr(3))
         if ($len(%ctalk.c2) > 2) || (%ctalk.c2 > 15) || (%ctalk.c2 !isnum) {
            echo -atc info * Error: Colour selected must be a numerical value between 0 and 15.
            goto colour1
         }
         if ($len(%ctalk.c2) == 1) set %ctalk.c2 $+(0,%ctalk.c2)
      }
      if ($1 == help) || ($1 == info) {
         echo -atc info $str($chr(42),115)
         echo -atc info * The colour talker enables you type in colours that will brighten up your IRC chat a bit (or annoy other users!).
         echo -atc info * Please note this script took just a few minutes to conjure up. Any problems get in touch! forgotten, #mIRC, #Coding, 12www.binaryfront.com
         echo -atc info * Now the important stuff, how to use this thing:
         echo -atc info * To set the colour talker colours type: /ctalk on
         echo -atc info * To turn the colour talker on type: /ctalk on
         echo -atc info * To turn the colour talker off type: /ctalk on
         echo -atc info * For this guide again type: /ctalk help
         echo -atc info $str($chr(42),115)
      }
   }
   elseif ($1 == $null) echo -atc info * For help using the colour talker type: /ctalk help
}

menu channel,status {
Colour Talker
.Set Colours:ctalk set
.Help/Info:ctalk help
. -
. $iif($group(#Ctalker) == on,$style(1) Enable,Enable):ctalk on
. $iif($group(#Ctalker) == off,$style(1) Disable,Disable):ctalk off
}

Usage:
/ctalk help
– Concise information on using this script

You can also use the popups.

I can’t remember who requested this script, and I’m sure I passed it on via IRC anyway. But regardless 😛 here it is for everyone else to see. As always comments/criticism/advise welcomed.

[mIRC] Request: Ban an IP file

A quick and short script written to zline IPs in a specified file. The IPs must be listed in the file as one IP per line, e.g.:

1.3.4.5
1.2.3.4
1.4.5.6
5.6.3.2
6.7.8.6
etc…

Follow the instructions to use.

; To use:
;1) Type /ipban.reset
;2) Ensure you specify the right file/directory in set %ipban.ipfile "nodes.csv"
;3) Type /ipban
;4) Wait until script completes, can take a while depending on size of file.

alias -l ipban_next {
  if (%ipban.pos <= %ipban.total) {
    zline $+(*@,$read(%ipban.ipfile,%ipban.pos)) 1d Tor Exit Servers are not permitted on this network
    inc %ipban.pos
    ipban
  }
  else {
    echo -atc info *** Zlined %ipban.total IPs from %ipban.ipfile
    .unset %ipban.*
  }
}
alias ipban {
  set %ipban.ipfile "nodes.csv"
  if ($isfile(%ipban.ipfile) == $false) { echo -atc info *** IP Ban Error: %ipban.ipfile does not exist | return }
  set %ipban.total $lines(%ipban.ipfile)
  if (%ipban.pos == $null) { set %ipban.pos 1 }
  .timer -m 1 5 ipban_next
}
alias ipban.reset .unset %ipban.*

Let me bring to attention my use of timers over a while loop for budding scripters.

The reason is for large IP files, a while loop will freeze your script. For this reason a timer was used with a 5 millisecond delay, ensuring fast zlines but without freezing the script.

I will edit this script to auto carry out /ipban.reset upon execution, but, as of now, this isn’t required as it does its job (plus I’m short on time again!!!).

Note: to edit the zline time and message:

zline $+(*@,$read(%ipban.ipfile,%ipban.pos)) 1d Tor Exit Servers are not permitted on this network

Change:
“1d” to something you want
“Tor Exit Servers are not permitted on this network” to something you want