cessil's theme

By cessil on Nov 23, 2009

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.

Image

;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
}

Comments

Sign in to comment.
Silo   -  Dec 11, 2009

Hi,I think it looks nice, with good alignment and colours. Only thing I noticed was the absence of any $numeric raws. 8/10

 Respond  
cessil   -  Nov 23, 2009

@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

 Respond  
^Neptune   -  Nov 23, 2009

I like this alot (much better than Ghost-writer's theme imo). No features really are necessary since this is just a theme, and the ¦ is fine.

Ghost-writer is just jealous that this is nicer than his and is uselessly trying to find flaws. =]

 Respond  
Ghost-writer   -  Nov 23, 2009

tbh i dont like the colours and the | between names, and i want to know the @+~ i cannot tell by the colours you give me, and at no point is there a guide. Add more features and make it more changeable.

 Respond  
Testor   -  Nov 23, 2009

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

 Respond  
Candent   -  Nov 23, 2009
  • Invalid format: $str (line 8, script4.ini)
 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.