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
}
and im using 6.35
but yea nice rates 7/10
Do you have any other scripts loaded?
An easy way to tell if you have any other scripts that utilize the same raw events, you should see a line somewhere when you hover over someones nick. If you do see a line, then you'll need to remove the raw events from this script file, and find the other raw events of same numeric, and add the contents from these raws to them at the begining.
If you dont see a line anywhere, and youre not using any other scripts, try using it on a different server.
you need to be using mIRC version 6.34 or 6.35 for this script to work correctly.
press ALT + R to open the mIRC's script editor function. the script is to be copy and pasted into a fresh remote file. if the remotes page is empty, then transfer it direct.
if there is a remote there already.... click file, new. that will create a new blank remote page for you to paste into :)
Well I added a long series of /write's to the script and this was the final result of it after the pic window had appeared.
1 -3:40:32- Found user Neptune
2 -3:40:33- Checking if mouse has moved...
3 -3:40:33- Calling the actual who on Neptune
4 -3:40:33- Successfully looked up who for Neptune: #mIRC_Or_GTFO cass72 XXXXX.dynamic.dsl.as9105.com chatscape.chat.server Neptune H@ 0 Sam Cass
5 -3:40:33- Generating the pic window from the previous who info
6 -3:40:33- Set needed vars
7 -3:40:33- Successfully determined idle time
8 -3:40:33- Finished determining clones
9 -3:40:33- Formed the pic window
10 -3:40:33- Drew minimal lines to pic window
11 -3:40:33- Drew all flags
12 -3:40:33- Drew clones
13 -3:40:33- Finished.
As you can see, everything is happening within one second.
Cheiron, yes, the /who was the main point of the entire script. If you whois someone with +W (on unreal) they will get a server notice alerting them of it. A /who does NOT. All servers show at least H or G meaning not away or away, respectively. Also they will ALWAYS show * if they have an oline. If they are marked as a bot, it should also be displayed with B, the only mode that is usually hidden by some servers, is the r meaning registered. There is also a ! flag, Im not sure if this one is hidden or not, I have only ever come across it with a single person on one server and yet to figure out what it means. If anyone knows please let me know.
Thanks mountaindew, I knew there was a command for that, I just couldnt think of it at the time.