!Seen script

By Gecko321 on Apr 08, 2008

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))

Comments

Sign in to comment.
termz   -  Jul 25, 2009

fail o.0

 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.