Highlight with log, auto-reply and watcher

By sloth on May 24, 2009

Save into your mIRC directory (C:\Program Files\mIRC by default) as highlight.txt then /load -rs highlight.txt
Instructions are included.

Logs whenever you get highlighted in a channel and can also auto-reply if a message is not given.
By default automatic replies are turned off and highlights are turned on.
Strips color codes before checking so people can't bypass it by using rainbow text.

Image
The log after being highlighted with a message.

Image
The log after being highlighted without a message and multi-servers turned on

Image
The log with "Watcher" on after a message-less highlight followed by "Highlight with watcher on"

Tested in mIRC 6.17 and 6.35
Version 0.8
Added multi-server support
Multi-server report is default off
Added timer controlled monitoring period. ("Watcher")
Watcher is default off.
Time to watch after highlight is default 10 seconds.
Added pretty colors and help text.
Also added echos to let you know if you know if /highlights commands worked.
Changed watcher to support multiple nick watching for you hectic people. Works well enough but doesn't keep in its nice little neat places.
Added use of $tips and cleaned it up a bit. $tips may not be supported in versions before 6.3. Tips are default on.

On *:TEXT:*:*: {
  var %hilit = $strip($1-)
  var %h1lit = $strip($1)
  if (%highlights == on) {
    if ($me isin %hilit) {
      if (%h1lit == $me) && ($2 == $null) { 
        var %hisend 7 $+ $nick 14highlighted you at 7 $+ $time 14in 7 $+ $chan 
        if (%hrep == on) { /msg $chan $nick $+ ? }
        if (%hiservers == on) { var %hisend 7 $+ $server %hisend }
        if ($nick != %lastnick) { aline @highlight %hisend }
        aline @highlight 1..14With message: 7No message
        if (%hrep == on) && (%hiwatcher == off) { aline @highlight 0....14Replied? 7y }
        if (%htips == on) { $tip(highlight,Highlight,$nick highlighted you!,3) }
        if (%hiwatcher == on) {
          set %hiwatch on
          set %hinick. $+ $nick on
          .timer 1 %watchtime unset %hinick. $+ $nick
        }
      }
      if ($2) {
        var %hisend2 7 $+ $nick 14highlighted you at 7 $+ $time 14in 7 $+ $chan 
        if (%hiservers == on) { var %hisend2 7 $+ $server %hisend }
        if ($nick != %lastnick) { aline @highlight %hisend2 }
        aline @highlight 1..14With message:7 $1- 
        if (%htips == on) { $tip(highlight,Highlight,$nick says: $1-,5) }
      }
    }
    set %lastnick $nick
  }
  if ($eval($+(%,hinick.,$nick),2) == on) {
    if ($me isin $1) { halt }
    else {
      aline -p @highlight 1....7 $+ $nick 14then said7 $1- 
      if (%htips == on) { $tip(watcher,$nick says:,$1-,4) }
    }
    set %lastnick $nick
  }
  if (%highlights == off) { halt }
}

On 1:LOAD: {
  echo -a 7Highlight script 14by 7sloth 14loaded.
  echo -a 14To turn it on 7/highlights on
  echo -a 14To turn it off 7/highlights off
  echo -a 14To clear highlight log 7/highlights clear
  echo -a 14To set automatic replies on or off
  echo -a 14Use 7/hrep on 14or 7/hrep off
  echo -a 14Use 7/highlights servers on 14to enable multi-server logging
  echo -a 14Use 7/highlights servers off 14to disable multi-server logging
  echo -a 14Use 7/highlights watch on 14to enable watch period after highlight without message
  echo -a 14Use 7/highlights watch off 14to disable watch period after highlight without message
  echo -a 14Use 7/highlights wtime <time> 14to set monitoring time after highlight
  echo -a 14Use 7/highlights help 14to display this function outline.
  echo -a 14version7 0.6
  set %highlights on
  set %hrep off
  set %hiservers off
  set %hiwatcher off
  set %watchtime 10
  set %htips on
  window -enxz @highlights
}

alias hrep {
  if ($1 == off) {
    set %hrep off
  }
  if ($1 == on) {
    set %hrep on
  }
}

On 1:START: {
  if (%highlights == on) {
    window -enxz @highlight
  }
}

alias highlights {
  if ($1 == on) {
    set %highlights on
    window -enxz @highlight
    echo -a 14Highlights script set to 7on.
    halt
  }
  if ($1 == off) {
    set %highlights off
    window -c @highlight
    echo -a 14Highlights script set to 7off.
    halt
  }
  if ($1 == clear) {
    window -c @highlight
    window -enxz @highlight
    echo -a 14Cleared highlights winow.
    halt
  }
  if ($1- == servers on) {
    set %hiservers on
    echo -a 14Server identifier set to 7on.
    halt
  }
  if ($1- == servers off) {
    set %hiservers off
    echo -a 14Server identifier set to 7off.
    halt
  }
  if ($1- == watch off) {
    set %hiwatcher off
    echo -a 14Post-highlight watcher set to 7off.
    halt
  }
  if ($1- == watch on) {
    set %hiwatcher on
    echo -a 14Post-highlight watcher set to 7on.
    halt
  }
  if ($1 == wtime) {
    set %watchtime $2
    echo -a 14Time to watch set to7 $2 
    halt
  }
  if ($1 == tips) {
    set %htips $2
    echo -a 14Tips are now7 $2 
    halt
  }
  if ($1 == help) {
    echo -a 7Highlight script 14by 7sloth
    echo -a 14To turn it on 7/highlights on
    echo -a 14To turn it off 7/highlights off
    echo -a 14To clear highlight log 7/highlights clear
    echo -a 14To set automatic replies on or off
    echo -a 14Use 7/hrep on 14or 7/hrep off
    echo -a 14Use 7/highlights servers on 14to enable multi-server logging
    echo -a 14Use 7/highlights servers off 14to disable multi-server logging
    echo -a 14Use 7/highlights watch on 14to enable watch period after highlight without message
    echo -a 14Use 7/highlights watch off 14to disable watch period after highlight without message
    echo -a 14Use 7/highlights wtime <time> 14to set monitoring time after highlight
    echo -a 14Use 7/highlights tips on/off14 to enable or disable tips
    echo -a 14version7 0.7
    halt
  }
  :error
  echo -a 7 $+ $1- 14is not a recognized highlights command, please type 7/highlights help
}

Comments

Sign in to comment.
sloth   -  Nov 04, 2009

Haha, yeah. I don't know when everyone got into this cramping up stuff. I remember when people used to tell me to space my scripts out even more.

Also updated because I finally upgraded to 6.35

 Respond  
Renegade   -  May 25, 2009

I like it.. I see alot of these things about.. but I like this one.

Good job, and it works which is a bonus, lol. I like to really space my codes out aswell.. it just looks a little neater to me.

If it works, don't worry about it I say :P

I dislike how everyone is beggining to get into this 'trend' of pushing everything onto one line now :/

on *:TEXT:*IRC scripting*:#:{ 
goto $location(desk) {
describe $chan rambles
}
else { 
mode $chan +sigh
}
}

:D

Er sorry getting sidetracked, 7/10 it works :D and before someone picks that apart >_> I know okay.

 Respond  
sloth   -  May 25, 2009

@WorldDMT Yeah I know it can be much shorter, but I personally like spacing scripts out more because:
1) It allows for people to customize it more as I said
and 2) It means if I'm updating it and I get an error, I get a line that has one clear command on it, makes it easier for me when I'm making it. I'm lazy like that.
But thanks a bunch for the input.

 Respond  
WorldDMT   -  May 25, 2009

hi

u use if $me isin %var

if your nick is "bam" and we type bamboo u will hightlight??? dont use isin here use $findtok is better

if (%hiservers == on) { aline @highlight 7 $+ $server $nick 14highlighted you at 7 $+ $time 14in 7 $+ $chan  }
if (%hiservers == off) { aline @highlight 7 $+        $nick 14highlighted you at 7 $+ $time 14in 7 $+ $chan  }

u can replace it by

aline @highlight 7 $+ $iif(%hiservers == on,$server) $nick 14highlighted you at 7 $+ $time 14in 7 $+ # 

and u can replace aline by echo i u want

why u put /window -e u dont need edit box no?!!

"if (%highlights == off) { halt }" is unless u can remove it

so u can do this

on *:text:*:#:{
  tokenize 32 $strip($1-)
  if (%highlights == on) {
    if $findtok($1-,$me,32) {
      if ($2 == $null) && (%hrep == on) {
        msg # $nick $+ ?
        aline @highlight 0....14Replied? 7y
      }
      aline @highlight 7 $+ $iif(%hiservers == on,$server) $nick 14highlighted you at 7 $+ $time 14in 7 $+ # 
      aline @highlight 0..14With message: 7 $+ $iif($2,$1-,No message) 
    }
  }
}

for alias highlights & alias hrep u can do it like this

alias hrep if ($istok(on.off,$1,46)) set %hrep $1

alias highlights {
  if ($istok(on.off,$1,46)) {
    set %highlights $1
    window $iif($1 == on,-enxz,-c) @highlight
  }
  elseif ($1 == clear) dline @highlight 1- $+ $line(@highlight,0)
  elseif (($1 == servers) && ($istok(on.off,$2,46))) set %hiservers $2
}

better use 1 & 0 for variable then u'll use it like this

if (%var) <==== if %var = 1 the commande will be execute if %var = 0 it's dont

so finaly your code can be like this

on *:LOAD:{
  echo -a Highlight script by sloth loaded.
  echo -a To turn it on /highlights on
  echo -a To turn it off /highlights off
  echo -a To clear highlight log /highlights clear
  echo -a To set automatic replies on or off
  echo -a use /hrep on or /hrep off
  echo -a Use /highlights servers on to enable multi-server logging
  echo -a Use /highlights servers off to disable multi-server logging
  echo -a version 0.4
  set %highlights 1
  set %hrep 0
  set %hiservers 0
}
on *:text:*:#:{
  tokenize 32 $strip($1-)
  if (%highlights) {
    if $findtok($1-,$me,32) {
      if ($2 == $null) && (%hrep) {
        msg # $nick $+ ?
        aline @highlight 0....14Replied? 7y
      }
      aline @highlight 7 $+ $iif(%hiservers,$server) $nick 14highlighted you at 7 $+ $time 14in 7 $+ # 
      aline @highlight 0..14With message: 7 $+ $iif($2,$1-,No message) 
    }
  }
}
alias hrep if ($istok(on.off,$1,46)) set %hrep $iif($1 == on,1)
alias highlights {
  if ($istok(on.off,$1,46)) {
    set %highlights $iif($1 == on,1)
    window $iif($1 == on,-enxz,-c) @highlight
  }
  elseif ($1 == clear) dline @highlight 1- $+ $line(@highlight,0)
  elseif (($1 == servers) && ($istok(on.off,$2,46))) set %hiservers $iif($2 == on,1)
}
 Respond  
sloth   -  May 25, 2009

@blitzjager Yeah, thats a great idea. I'll probably do that next.
Scratch that, just did it. Its a little buggy only letting one nick be watched although I could probably fix that by changing "set %hinick $nick" to "set %hinick. $+ $nick" and then change "if (%hinick == $nick)" to "if (%hinick* == $nick)" although i dunno if that would work. It also only works in case there is no message with the highlight (For cleanliness reasons) although thats easily changed and I can do that if you think it would be better.

@slacker & Aucun50 I was trying to space it out and make it much more easily customizable. I was kind of expecting people to mess with it to optimize it. But thanks for the tips.

 Respond  
Blitzjager   -  May 25, 2009

I have something similar but just tossed together. I'd probably switch to yours if you got timers or something to get the next few lines in that channel.

 Respond  
slacker   -  May 24, 2009

or instead of useing var %hilit = $strip($1-) and tokenize 32 $strip($1-) you can make ur on text event like this

on $*:text:/(.+)/iS:#:{

then use $regml(1) instead of $1-

 Respond  
Aucun50   -  May 24, 2009

Never seen this done with a window before, few things

var %hilit = $strip($1-)
var %h1lit = $strip($1)

Are not needed if you use "tokenize 32 $strip($1-)" after the on text line. Not really a needed but "($2 == $null)" can be "(!$2)" just shortens it a little.

 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.