This is a simple !seen script for a bot or what ever you want.
just copy and paste into a new remotes file. I will keep track of Parts, Quit, Kick, and Nick Changes.
on *:EXIT:hsave seen seen.hsh
on *:START:{
if (!$Hget(Seen) { hmake seen 999 }
hload Seen seen.hsh
}
on *:PART:#:{ iF ($Nick != $Me) { hadd -m Seen $+($Nick,.Part) $CTime } }
on *:QUIT:{
if ($Nick != $Me) {
hadd -m Seen $+($Nick,.Quit) $CTime
if ($1 = Quit:) { hadd -m Seen $+($Nick,.QuitReason) $Strip($2-) }
else { hadd -m Seen $+($Nick,.QuitReason) $Strip($1-) }
}
}
on *:KICK:#:{
if ($KNick != $Me) {
hadd -m Seen $+($KNick,.Kick) $CTime
hadd -m Seen $+($KNick,.KickReason) $1-
}
}
on *:NICK:{
echo -s Nick $Nick NewNick $NewNick Me $me
if ($Nick != $Me) {
hadd -m Seen $+($Nick,.Nick) $NewNick $Ctime
}
}
on *:TEXT:!Seen*:#:{
if (!$2) { .msg $Chan You must select a nick to look for. | halt }
if ($2 ison $Chan) { .msg $Chan $2 is here in the Channel | halt }
if (!$Hfind(Seen,$+($2,.*),0,w)) { .msg $Chan $2 is not in the database. | halt }
var %Times = $+($HGet(Seen,$+($2,.Part)),:Part) $+($HGet(Seen,$+($2,.Quit)),:Quit) $+($HGet(Seen,$+($2,.Kick)),:Kick) $+($GetTok($HGet(Seen,$+($2,.Nick)),2,32),:Nick)
:start
var %a = 0
while (%a != $NumTok(%Times,32)) {
inc %a
if ($Pos($GetTok(%Times,%a,32),:) = 1) { var %Times = $RemTok(%Times,$GetTok(%Times,%a,32),1,32) | goto start }
}
var %WhichOne = $GetTok($SortTok(%Times,32,ar),1,32)
if ($GetTok(%WhichOne,2,58) = Part) { var %Text = Parting }
elseif ($GetTok(%WhichOne,2,58) = Quit) { var %Text = Quiting | var %Reason = Reason: $HGet(Seen,$+($2,.QuitReason)) }
elseif ($GetTok(%WhichOne,2,58) = Kick) { var %Text = Being Kicked | var %Reason = Reason: $HGet(Seen,$+($2,.KickReason)) }
elseif ($GetTok(%WhichOne,2,58) = Nick) { var %Text = Changing there nick to $GetTok($Hget(Seen,$+($2,.Nick)),1,32) }
.msg $Chan $2 was last seen %Text $ShortTime($Calc($Ctime - $GetTok(%WhichOne,1,58))) ago. %Reason
}
alis ShortTime Return $Remove($replace($Duration($$1),wks,w,wk,w,days,d,day,d,hrs,h,hr,h,mins,m,min,m,secs,s,sec,s),$chr(32))