I got bored with the default look of mirc so I decided to make it look different, just before uploading it I found someone else has used the same idea with the nicks aligning to the right and not left, I wanted mine to be unique but meh.
you need to use a font like "courier new" with all the characters the same width.
most of it is done by me, where it is someone else's work I have noted in the script.
you can change the indent size easily by using /index by default it's 16
theme includes:
clone detector on joins
tips (tip balloons when nick alerted and not viewing that window)
away window + logger
7.12.09
took out the nopm script
fixed it when nicks have the same length as %indent (it would show it weird)
I use beep.wav and chimes.mp3 on lines 42, 68, 210 and 215 you may want to change these if you don't have the sound files.
1.2.10
Added custom raws to the theme
Added a self anti spam, if you try spamming a channel with anti-flood it'll prevent you from doing so.
;by cessil except where noted
alias one {
var %n $gettok($1,1,$asc(~))
var %ch $gettok($1,2,$asc(~))
var %len $str( ,%indent)
var %len $right(%len,$calc($len(%len) - $len(%n)))
if ($len(%n) >= $calc(%indent + 2)) { var %n $left(%n,$calc(%indent -2)) | var %n %n $+ ... | var %len }
if ($len(%n) == $calc(%indent + 1)) { var %len }
if ($left($nick(%ch,%n).pnick,1) == +) { var %n 7 $+ %n }
if ($left($nick(%ch,%n).pnick,1) == %) { var %n 8 $+ %n }
if ($left($nick(%ch,%n).pnick,1) == @) { var %n 9 $+ %n }
if ($left($nick(%ch,%n).pnick,1) == &) { var %n 10 $+ %n }
if ($left($nick(%ch,%n).pnick,1) == ~) { var %n 11 $+ %n }
return %len %n
}
alias cnl {
var %n $gettok($1,1,$asc(~))
var %ch $gettok($1,2,$asc(~))
var %c 0
if ($left($nick(%ch,%n).pnick,1) == +) { var %c 7 }
if ($left($nick(%ch,%n).pnick,1) == %) { var %c 8 }
if ($left($nick(%ch,%n).pnick,1) == @) { var %c 9 }
if ($left($nick(%ch,%n).pnick,1) == &) { var %c 10 }
if ($left($nick(%ch,%n).pnick,1) == ~) { var %c 11 }
return %c %ch %n
}
alias indonly {
var %n $1
var %len $str( ,%indent)
var %len $right(%len,$calc($len(%len) - $len(%n)))
if ($len(%n) >= $calc(%indent + 2)) { var %n $left(%n,$calc(%indent -2)) | var %n %n $+ ... | var %len }
if ($len(%n) == $calc(%indent + 1)) { var %len }
return %len %n
}
alias indent {
set %indent $1
}
on ^*:text:*:#: {
if ([??:??:??] !iswm $1) && (echo !isin $chan) && (.admin !isin $chan) {
if (%slert. [ $+ [ $nick ] ] != $null) {
if ($appactive == $false) && ($fullscreen == 0) { .echo -s $tip( $nick $+ . $+ $chan , $chan , < $+ $nick $+ > $1- , 5, $null , $null, message) | set %chnmsg $chan }
if ($chan != $active) && ($appactive == $true) { .echo -s $tip( $nick $+ . $+ $chan , $chan , < $+ $nick $+ > $1- , 5, $null , $null, message) | set %chnmsg $chan }
}
if ($me isin $1-) && ([??:??:??] !iswm $1) && (echo !isin $chan) && (.admin !isin $chan) {
if ($appactive == $false) && ($fullscreen == 0) { .echo -s $tip( $nick $+ . $+ $chan , $chan , < $+ $nick $+ > $1- , 5, $null , $null, message) | set %chnmsg $chan }
if ($chan != $active) && ($appactive == $true) { .echo -s $tip( $nick $+ . $+ $chan , $chan , < $+ $nick $+ > $1- , 5, $null , $null, message) | set %chnmsg $chan }
set -u10 %slert. [ $+ [ $nick ] ] jdaj
window -w @Away
splay -p $mircdir $+ sounds\chimes.mp3
echo @away $asctime([HH:nn:ss]) < $+ $chan $+ > < $+ $nick $+ > $1-
write awaylog.txt $asctime([HH:nn:ss]) < $+ $chan $+ > < $+ $nick $+ > $1-
}
}
var %1 $1-
var %len $str( ,%indent)
if (%ty != $null) { unset %ty 1 }
if ($me isin $1-) { var %1 8 $+ $1- }
if (%pn. [ $+ [ $chan ] ] == $nick) && (%lin. [ $+ [ $chan ] ] < 5) { inc %lin. [ $+ [ $chan ] ] | echo -tm $chan %len 14|14 %1 | halt }
set %pn. [ $+ [ $chan ] ] $nick
set %lin. [ $+ [ $chan ] ] 0
if ($len($nick) == %indent) { echo -tm $chan $+ $one($nick $+ ~ $+ #) $+ $+ 14|14 %1 | halt }
echo -tm $chan $one($nick $+ ~ $+ #) 14|14 %1
halt
}
on ^*:action:*:#: {
if ([??:??:??] !iswm $1) && (%slert. [ $+ [ $nick ] ] != $null) && (.admin !isin $chan) {
if ($appactive == $false) && ($fullscreen == 0) { .echo -s $tip( $nick $+ . $+ $chan ,6 $+ $chan ,6 $+ $nick $1- , 5, $null , $null, message) | set %chnmsg $chan }
if ($chan != $active) && ($appactive == $true) { .echo -s $tip( $nick $+ . $+ $chan ,6 $+ $chan ,6 $+ $nick $1- , 5, $null , $null, message) | set %chnmsg $chan }
}
if ([??:??:??] !iswm $1) && ($me isin $1-) && (.admin !isin $chan) {
if ($appactive == $false) && ($fullscreen == 0) { .echo -s $tip( $nick $+ . $+ $chan ,6 $+ $chan ,6 $+ $nick $1- , 5, $null , $null, message) | set %chnmsg $chan }
if ($chan != $active) && ($appactive == $true) { .echo -s $tip( $nick $+ . $+ $chan ,6 $+ $chan ,6 $+ $nick $1- , 5, $null , $null, message) | set %chnmsg $chan }
set -u10 %slert. [ $+ [ $nick ] ] jdaj
window -w @Away
splay -p $mircdir $+ sounds\chimes.mp3
echo @away $asctime([HH:nn:ss]) < $+ $chan $+ >6 $nick $1-
write awaylog.txt $asctime([HH:nn:ss]) < $+ $chan $+ > < $+ $nick $+ > *** $+ $1-
}
unset %pn. [ $+ [ $chan ] ]
var %c 6
if ($me isin $1-) { var %c 13 }
if ($len($nick) == %indent) { echo -tm $chan [ $+ [ %c ] ] $+ $strip($one($nick $+ ~ $+ #),c) $1- | halt }
echo -tm $chan [ $+ [ %c ] ] $+ $strip($one($nick $+ ~ $+ #),c) $1-
halt
}
alias /message {
window -a %chnmsg
}
on ^*:RAWMODE:#: {
var %len $str( ,%indent)
unset %pn. [ $+ [ $chan ] ]
if (+f isincs $1) && (t isin $2) {
set -e %fl. [ $+ [ $chan ] ] $getnums($matchtok($1-,]:,1,32))
}
if (+b !isincs $1-) {
if ($len($nick) == %indent) { echo -t $chan 3 $+ $strip($one($nick $+ ~ $+ #),c) $1- }
if ($len($nick) != %indent) { echo -t $chan 3 $+ $strip($one($nick $+ ~ $+ #),c) $1- }
var %g 0
while (%g < $mode(0)) {
inc %g
cline $cnl($mode(%g) $+ ~ $+ #)
}
halt
}
if ($len($nick) == %indent) { echo -t $chan 4 $+ $strip($one($nick $+ ~ $+ #),c) $1- | halt }
echo -t $chan 4 $+ $strip($one($nick $+ ~ $+ #),c) $1-
halt
}
alias colourise {
var %ci 0
while (%ci < $nick($1,0)) {
inc %ci
cline $cnl($nick($1,%ci) $+ ~ $+ $1)
}
}
on ^*:JOIN:#: {
unset %pn. [ $+ [ $chan ] ]
if ($nick != $me) {
if ($len($nick) == %indent) { echo -t $chan 9 $+ $strip($one($nick $+ ~ $+ #),c) $chr(124) $remove($address($nick,5),$nick $+ !) has joined }
if ($len($nick) != %indent) { echo -t $chan 9 $+ $strip($one($nick $+ ~ $+ #),c) $chr(124) $remove($address($nick,5),$nick $+ !) has joined }
}
if ($nick == $me) {
.timercolour [ $+ [ $chan ] ] 1 1 colourise #
.timercolour2 [ $+ [ $chan ] ] 1 3 colourise #
}
;this clone part is by EcKstasy
var %host_to_search_for = $address($nick,2)
var %number_from_that_host = $ialchan(%host_to_search_for,$chan,0)
if (%number_from_that_host > 1) {
var %count = 0
unset %clones
:loop
inc %count
var %clones = %clones $ialchan(%host_to_search_for,$chan,%count).nick
if (%count < %number_from_that_host) { goto loop }
echo -t $chan 11 $str( ,$calc(%indent - 7))) Clones $chr(124) %clones ( $+ %count $+ )
halt
}
halt
}
on ^1:NICK: {
var %nickcheck 0
:nickcheckloop
inc %nickcheck
if ($newnick ison $chan(%nickcheck)) {
unset %pn. [ $+ [ $chan(%nickcheck) ] ]
echo -t $chan(%nickcheck) 3 $+ $strip($one($nick $+ ~ $+ #),c) > $newnick
}
if ($chan(%nickcheck) == $null) { halt }
goto nickcheckloop
}
on *:INPUT:*: {
var %n $me
if ($left($1,1) != /) || ($ctrlenter == $true) {
if ($chan != $null) {
if (%flmt. [ $+ [ $chan ] ] >= $gettok(%fl. [ $+ [ $chan ] ],1,$asc(:))) && (%fl. [ $+ [ $chan ] ] != $null) { echo -atm 4 $+ $indonly(anti) flood protection prevented you sending " $+ $1- $+ " | halt }
unset %pn. [ $+ [ $chan ] ]
if ($len($me) == %indent) { .msg $active $remove($1-, ) | echo -atm $one($nick) 14 $+ $chr(124) $+ 0 $remove($1-, ) | set -u $+ $gettok(%fl. [ $+ [ $chan ] ],2,$asc(:)) %flmt. [ $+ [ $chan ] ] $calc(%flmt. [ $+ [ $chan ] ] +1) | haltdef | halt }
if ($1 != $null) { .msg $active $remove($1-, ) }
set -u [ $+ [ $gettok([ %fl. [ $+ [ $chan ] ] ],2,$asc(:)) ] ] %flmt. [ $+ [ $chan ] ] $calc(%flmt. [ $+ [ $chan ] ] +1)
echo -atm $one($nick $+ ~ $+ #) 14 $+ $chr(124) $+ 0 $remove($1-, )
haltdef
halt
}
var %len
var %len $right(%len,$calc($len(%len) - $len($me)))
.msg $active $remove($1-, )
echo -atm 11[ $+ $me $+ ]0 $remove($1-, )
haltdef
halt
}
if (/me == $1) {
if ($chan != $null) {
.describe $active $2-
unset %pn. [ $+ [ $chan ] ]
echo -atm 6 $+ $strip($one($me $+ ~ $+ #),c) $2-
haltdef
halt
}
.describe $active $2-
echo -atm 6[ $+ %n $+ ] $2-
haltdef
halt
}
}
alias /cme {
if ($chan != $null) {
.describe $active $1-
unset %pn. [ $+ [ $chan ] ]
echo -atm 6 $+ $strip($one($me $+ ~ $+ #),c) $1-
unset %pn. [ $+ [ $chan ] ]
haltdef
halt
}
.describe $active $2-
echo -atm 6[ $+ $me $+ ] $1-
haltdef
halt
}
;this quit part by ReaperX
on ^*:QUIT:{
haltdef
var %z = 1
var %n $nick
while (%z <= $comchan($nick,0)) {
unset %pn. [ $+ [ $comchan($nick,%z) ] ]
if ($len($nick) == %indent) { echo -t $comchan($nick,%z) 12 $+ $strip($one($nick $+ ~ $+ #),c) $chr(124) $1- }
if ($len($nick) != %indent) { echo -t $comchan($nick,%z) 12 $+ $strip($one($nick $+ ~ $+ #),c) $chr(124) $1- }
inc %z
}
}
on ^*:PART:#:{
haltdef
unset %pn. [ $+ [ $chan ] ]
if ($nick != $me) {
if ($len($nick) == %indent) { echo -t $chan 12 $+ $strip($one($nick $+ ~ $+ #),c) $chr(124) parted }
if ($len($nick) != %indent) { echo -t $chan 12 $+ $strip($one($nick $+ ~ $+ #),c) $chr(124) parted }
}
}
on ^*:KICK:#:{
haltdef
if ($knick == $me) { echo -t @away 4 $+ $nick kicked you ( $+ $1- $+ ) }
if ($len($nick) == %indent) { echo -t $chan 4 $+ $strip($one($nick $+ ~ $+ #),c) kicked $knick ( $+ $1- $+ ) | halt }
echo -t $chan 4 $+ $strip($one($nick $+ ~ $+ #),c) kicked $knick ( $+ $1- $+ )
}
on ^*:TEXT:*:?: {
echo -mtf $nick 7[ $+ $nick $+ ] $1-
if ($appactive == $true) && ($active == $nick) { halt }
;splay $mircdir $+ sounds\beep.wav
if ($appactive == $false) && ($fullscreen == 0) { .echo -s $tip( $nick , PM , $chr($asc([)) $+ $nick $+ $chr($asc(])) $1- , 5, $null , $null, message) | set %chnmsg $nick }
if ($nick != $active) && ($appactive == $true) { .echo -s $tip( $nick , PM , $chr($asc([)) $+ $nick $+ $chr($asc(])) $1- , 5, $null , $null, message) | set %chnmsg $nick }
halt
}
on ^*:action:*:?: {
echo -mtf $nick 6[ $+ $nick $+ ] $1-
if ($appactive == $true) && ($active == $nick) { halt }
;splay $mircdir $+ sounds\beep.wav
if ($appactive == $false) && ($fullscreen == 0) { .echo -s $tip( $nick , PM ,6 $chr($asc([)) $+ $nick $+ $chr($asc(])) $1- , 5, $null , $null, message) | set %chnmsg $nick }
if ($nick != $active) && ($appactive == $true) { .echo -s $tip( $nick , PM ,6 $chr($asc([)) $+ $nick $+ $chr($asc(])) $1- , 5, $null , $null, message) | set %chnmsg $nick }
halt
}
raw *:*: {
if ($numeric == 311) { echo -at $indonly($2) is $3 $+ @ $+ $4 * $6- | haltdef | halt }
if ($numeric == 319) {
var %i 0
while (%i < $numtok($3-,32)) {
inc %i
var %chan 0 $+ $gettok($3-,%i,32)
if ($left($gettok($3-,%i,32),1) == +) { var %chan 7 $+ $gettok($3-,%i,32) }
if ($left($gettok($3-,%i,32),1) == %) { var %chan 8 $+ $gettok($3-,%i,32) }
if ($left($gettok($3-,%i,32),1) == @) { var %chan 9 $+ $gettok($3-,%i,32) }
if ($left($gettok($3-,%i,32),1) == &) { var %chan 10 $+ $gettok($3-,%i,32) }
if ($left($gettok($3-,%i,32),1) == ~) { var %chan 11 $+ $gettok($3-,%i,32) }
var %chans %chans $remove(%chan,+,%,@,&,~)
}
echo -at $indonly($2) is on %chans
haltdef
halt
}
if ($numeric == 307) { echo -at $indonly($2) is a registered nick | haltdef | halt }
if ($numeric == 312) {
if (??:??:?? iswm $5-) { echo -at $indonly($2) was connected to $3- | haltdef | halt }
if (??:??:?? !iswm $5-) { echo -at $indonly($2) is connected to $3- | haltdef | halt }
}
if ($numeric == 317) { echo -at $indonly($2) has been idle for $duration($3) | haltdef | halt }
if ($numeric == 318) { echo -at $indonly($2) end of /whois list | haltdef | halt }
if ($numeric == 352) {
var %name $6 $3 $+ @ $+ $4 * $9
if ($right($7,1) == +) { var %name 7 $+ $6 $3 $+ @ $+ $4 * $9 }
if ($right($7,1) == %) { var %name 8 $+ $6 $3 $+ @ $+ $4 * $9 }
if ($right($7,1) == @) { var %name 9 $+ $6 $3 $+ @ $+ $4 * $9 }
if ($right($7,1) == &) { var %name 10 $+ $6 $3 $+ @ $+ $4 * $9 }
if ($right($7,1) == ~) { var %name 11 $+ $6 $3 $+ @ $+ $4 * $9 }
echo -st $indonly($2) %name
haltdef
halt
}
if ($numeric == 315) { echo -st $indonly($2) end of /who list | haltdef | halt }
if ($numeric == 314) { echo -at $indonly($2) was $3 $+ @ $+ $4- | haltdef | halt }
if ($numeric == 369) { echo -at $indonly($2) end of /whowas list | haltdef | halt }
if ($numeric == 671) { echo -at $indonly($2) is using a secure connection | haltdef | halt }
if ($numeric == 335) { echo -at $indonly($2) is a bot on $network | haltdef | halt }
if ($numeric == 401) { echo -at $indonly($2) $3- | haltdef | halt }
if ($numeric == 320) { echo -at $indonly($2) $3- | haltdef | halt }
if ($numeric == 378) { echo -at $indonly($2) $3- | haltdef | halt }
if ($numeric == 313) { echo -at $indonly($2) $3- | haltdef | halt }
if ($numeric == 406) { echo -at $indonly($2) $3- | haltdef | halt }
if ($numeric == 310) { echo -at $indonly($2) $3- | haltdef | halt }
if ($numeric == 333) { echo -t $2 $indonly(topic) set by $3 on $asctime($4) | haltdef | halt }
if ($numeric == 332) { echo -t $2 $3- | haltdef | halt }
if ($numeric == 403) { echo -at $indonly($2) $3- | haltdef | halt }
if ($numeric == 324) {
if (f isin $3) && ($getnums($matchtok($1-,]:,1,32)) != %fl. [ $+ [ $2 ] ]) {
set -e %fl. [ $+ [ $2 ] ] $getnums($matchtok($1-,]:,1,32))
echo -t $2 $indonly(flood) limiter is set to $gettok(%fl. [ $+ [ $2 ] ],1,$asc(:)) lines per $gettok(%fl. [ $+ [ $2 ] ],2,$asc(:)) seconds
}
}
;echo -a $numeric $1-
}
alias getnums {
var %l $len($1)
var %r 0
var %result
while (%r < %l) {
inc %r
if ($right($left($1,%r),1) isnum) { var %result %result $+ $right($left($1,%r),1) }
if ($right($left($1,%r),1) == :) { var %result %result $+ $right($left($1,%r),1) }
}
return %result
}
@candent you're meant to save it as a .txt or .mrc not an ini file. also type /indent 16.
@testor I didn't make it case sensitive because on the ircd's I'm on there is no +B that I'm aware of.
I was aiming for shorter messages and neatness, I didn't include the "quit" part because for me it is obvious that they quit since that blue doesn't show up on any other message.
@ghost-writer if you would kindly look at the screen shot provided you would be able to tell what colours ~&@%+ are, or maybe if you could read the script?
I didn't think there was a need for any guide since it's just the look of it.
If you do require a guide on how to load an mirc script then you can view this helpful tutorial.
http://chanops.org/faqs/clients/how-to-load-an-mirc-script-into-your-main-mirc-program.html
also I was going for simplicity I don't like the look of other peoples themes with 5 different custom toolbars full of useless information, I was going to make it more customizable but I like it the way it is now and wouldn't change the colours.
thank you all for your comments
You should add Quits , not just
if (+b !isin $1-) {
You should use !isincs $1-
—
You forgot to add a custom /whois, amongst other custom Raws. http://mirc.net/raws/#WHOIS For some /whois related, which without makes a whois look ew when using a custom theme :.