You gotta love the $event identifier:
on !*:quit:seen
on !*:nick:seen
on !*:join:#:seen
on !*:kick:#:seen
on !*:part:#:seen
alias -l seen {
var %event = $replace($event,join,joining #,kick,$&
being kicked from #,part,parting #,quit,quiting $server,$&
nick,Changing_Nicks_to $newnick)
remini seen.ini $nick
writeini -n seen.ini $nick seen %event
writeini -n seen.ini $nick time $time(h:nn:ss:tt)
}
on $*:text:/^!seen( |$)/Si:#:{
var %2 = $strip($2)
if (!%2) msg # 4,15:4,1[ $+ $nick you must specify a nick to check4,15]4,1:
elseif (!$readini(seen.ini,%2,seen)) msg # I have not seen %2
elseif (%2 ison #) msg # 4,1:12,1[ $+ %2 is on the channel numbnuts12,1]4,1:
else msg # 4,1:12,1[ $+ %2 was last seen $readini(seen.ini,%2,seen) $&
at $readini(seen.ini,%2,time) central time12,1]4,1:
}
It's best to include the -n switch so mIRC will attempt to write info to the ini file if it's larger than 64k. You also had a couple of redundancies that I corrected them.