Skip to content

[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.

No comments yet

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.