Hover Info
Platform: mIRC
Published Nov 07, 2008
Updated Dec 12, 2008
Update: Now uses $duration for the idle calc for faster and more accurate idle checking.
Updated: Now it will display any clones matching their address. (See first pic)
This script will allow you to easily get info of a user without whois'ing them! (No matter their oper status, they wont be able to see it)
Just hover your mouse over someones nick for a few seconds. Note: It will not work in the userlist.
It will display the following info:
-Full name
-Address
-Server
-Registered
-Operator status
-Bot status (+B)
-Away status
-Current idle time
Note: Not all of these will display for every server. Some servers dont let you get this info wothout an actual /whois. Although I have only come across one network like this.
If you have any raw 352 events that echo then you may want to add the if statement in this script to that raw so you dont see it every time you use this.
To install just copy to a new remote and save if you like then click ok.
Note: For best results use mIRC v6.34+. Earliest working version tested is 6.31 but the pic window didn't fully work.
Update:
Helped fix a slight bug when looking up info on a user when there is a very similar nick in the same channel. Note: This isn't fully fixed, but it is a step towards it. Right now it will work as long as all of the similar nicks all have the same +q/a/o/h/v modes set so they are next to each other on the list. If there is a single nick between them, it may look up the wrong person.
raw 352:*:{ if (%iwho.hide == 1) { .tokenize 32 $2- | iwho dis $1- | haltdef } }
raw 315:*:{ if (%iwho.hide == 1) haltdef }
on ^*:HOTLINK:*:*: {
if (!$timer(iwho)) {
var %g 1
.tokenize 32 $strip($1-)
while (%g <= $nick($active,0)) {
var %gh $nick($active,%g)
if (%gh isin $1) {
var %gq 1
while ($nick($active,$calc(%g + %gq)) isin $1) {
var %ghc 1
inc %gq
}
if (%ghc == 1) {
var %gq $calc(%gq - 1)
var %gh $nick($active,$calc(%g + %gq))
goto one
}
}
if (%gh isin $1 && $calc($len(%gh)-2) <= $len($1)) goto one
inc %g
}
}
halt
:one
.timeriwho 1 1 iwho %gh
set %iwho.nick %gh
set %iwho.x $calc($mouse.dx -1)
set %iwho.y $calc($mouse.dy -1)
halt
}
alias iwho {
if ($isid) return
if ($1 != dis) {
if ($calc($mouse.dy - %iwho.y) <= 10) && ($calc($mouse.dy - %iwho.y) >= -6) {
if ($calc($mouse.dx - %iwho.x) <= 20) && ($calc($mouse.dx - %iwho.x) >= -20) {
set %iwho.hide 1
who $1
}
}
}
else if ($6 == %iwho.nick) {
var %iwho.chan $2
.tokenize 32 $+($3,@,$4) $5-
if ($window(@UserInfo)) clear @UserInfo
var %iwho.len.add $calc($len($1)*6)
var %iwho.len.name $calc($len(Name $6-)*6)
var %iwho.len.serv $calc($len(Server: $2)*6)
var %iwho.len.nick $calc($len(User info for $3 $+ :)*6)
var %iwho.height 80
var %iwho.extra 0
if (r isincs $4) {
var %iwho.height $calc(%iwho.height + 15)
inc %iwho.extra
}
if (* isin $4) {
var %iwho.height $calc(%iwho.height + 15)
var %iwho.len.oper $calc($len($3 is an operator.)*6)
var %iwho.cor.oper $calc((15 * %iwho.extra) + 60)
inc %iwho.extra
}
else { var %iwho.len.oper 0 }
if (B isincs $4) {
var %iwho.height $calc(%iwho.height + 15)
var %iwho.len.net $calc($len(This is a bot on $network $+ .)*6)
var %iwho.cor.net $calc((15 * %iwho.extra) + 60)
inc %iwho.extra
}
else { var %iwho.len.net 0 }
if (G isincs $4) {
var %iwho.height $calc(%iwho.height + 15)
var %iwho.len.away $calc($len($3 is marked as away.)*6)
var %iwho.cor.away $calc((15 * %iwho.extra) + 60)
inc %iwho.extra
}
else { var %iwho.len.away 0 }
if ($me ison %iwho.chan && $nick(%iwho.chan,$3).idle < $nick($active,$3).idle) var %iwho.idle $duration($nick(%iwho.chan,$3).idle)
else var %iwho.idle Idle: $duration($nick($active,$3).idle)
var %iwho.len.idle $calc($len(%iwho.idle)*6)
if ($ial($address($3,2),0) > 1) {
var %iwho.clones $ifmatch
var %iwho.clone 1
var %iwho.height $calc(%iwho.height + 15)
while (%iwho.clone <= %iwho.clones) {
var %iwho.clonea $ial($address($3,2),%iwho.clone).nick
if (%iwho.clonea != $3) {
var %iwho.clone.tok $addtok(%iwho.clone.tok,%iwho.clonea,32)
var %iwho.height $calc(%iwho.height + 15)
}
inc %iwho.clone
}
}
if ($greatest(%iwho.len.add,%iwho.len.name,%iwho.len.serv,%iwho.len.nick,%iwho.len.net,%iwho.len.oper,%iwho.len.away,%iwho.len.idle) <= 180) window -adBpow0 +feL @UserInfo %iwho.x %iwho.y 180 %iwho.height
else window -adBpow0 +feL @UserInfo %iwho.x %iwho.y $ifmatch %iwho.height
drawfill -r @UserInfo $rgb(236,233,216) $rgb(236,233,216) 0 0
drawtext -p @UserInfo 1 Arial 11 0 0 User info for $3 $+ :
drawtext -p @UserInfo 1 Arial 11 0 15 Name: $6-
drawtext -p @UserInfo 1 Arial 11 0 30 $1
drawtext -p @UserInfo 1 Arial 11 0 45 Server: $2
if (r isincs $4) drawtext -p @UserInfo 1 Arial 11 0 60 This is a registered nick.
if (* isincs $4) drawtext -p @UserInfo 1 Arial 11 0 %iwho.cor.oper $3 is an operator.
if (B isincs $4) drawtext -p @UserInfo 1 Arial 11 0 %iwho.cor.net This is a bot on $network $+ .
if (G isincs $4) drawtext -p @UserInfo 1 Arial 11 0 %iwho.cor.away $3 is marked as away.
if ($numtok(%iwho.clone.tok,32) > 0) {
drawtext @UserInfo -p 1 Arial 11 0 $calc((%iwho.height - 35)-($numtok(%iwho.clone.tok,32)*15)) %iwho.idle
drawtext @UserInfo -p 1 Arial 11 0 $calc((%iwho.height - 20)-($numtok(%iwho.clone.tok,32)*15)) Possible clones:
var %iwho... 0
while (%iwho... <= $numtok(%iwho.clone.tok,32)) {
drawtext -p @UserInfo 1 Arial 11 5 $calc((%iwho.height - 20)-(%iwho... * 15)) $gettok(%iwho.clone.tok,$calc(%iwho... + 1),32)
inc %iwho...
}
}
else drawtext -p @UserInfo 1 Arial 11 0 $calc(%iwho.height - 20) %iwho.idle
unset %iwho.nick
.timeriwho1 1 1 unset %iwho*
}
}
on *:ACTIVE:*: { if ($lactive == @UserInfo) window -c @UserInfo }
on *:APPACTIVE: { if ($window(@UserInfo)) window -c @UserInfo }
alias greatest {
if (!$isid) halt
var %o 1
var %ao 0
while (%o <= $0) {
if ($ [ $+ [ %o ] ] >= %ao) var %ao $ifmatch
inc %o
}
return %ao
}