mIRC Home    About    Download    Register    News    Help

Print Thread
Page 2 of 2 1 2
Re: !afk user script [Re: Riamus2] #168605 11/01/07 12:37 AM
Joined: Oct 2006
Posts: 82
B
BritishGent Offline
Babel fish
Offline
Babel fish
B
Joined: Oct 2006
Posts: 82
Thank you. i think i understand now, thank you for your patience. smile


Never ASSUME!!!

As it often makes and ASS out of U and ME!!
Re: !afk user script [Re: BritishGent] #168681 12/01/07 01:48 AM
Joined: Nov 2006
Posts: 9
L
Lucan Offline
Nutrimatic drinks dispenser
Offline
Nutrimatic drinks dispenser
L
Joined: Nov 2006
Posts: 9
So I'm using this and loving it. But I had another idea (not sure how hard it would be to implement): changing the syntax to "!afk <time expected back> <reason>" then at the time entered the bot would message the chan "Nick expected back soon." then the rest would be like normal. Or maybe it could just be an option. Just hit me and i figured id post.


Nooblets Unite :P
Re: !afk user script [Re: Lucan] #168695 12/01/07 01:47 PM
Joined: Oct 2004
Posts: 8,330
Riamus2 Offline
Hoopy frood
Offline
Hoopy frood
Joined: Oct 2004
Posts: 8,330
What do you do with people in different time zones?


Invision Support
#Invision on irc.irchighway.net
Re: !afk user script [Re: Riamus2] #168708 12/01/07 08:35 PM
Joined: Nov 2006
Posts: 9
L
Lucan Offline
Nutrimatic drinks dispenser
Offline
Nutrimatic drinks dispenser
L
Joined: Nov 2006
Posts: 9
Well i guess they could input it as hours they expect to be away (idk about minutes), but it was just an idea


Nooblets Unite :P
Re: !afk user script [Re: Lucan] #168709 12/01/07 09:21 PM
Joined: Oct 2004
Posts: 8,330
Riamus2 Offline
Hoopy frood
Offline
Hoopy frood
Joined: Oct 2004
Posts: 8,330
Try this. To include the estimated time away, a user would type:

For 2 hours:
!afk -t2 reason for being away

For 30 minutes (0.5 hours):
!afk -t.5 reason for being away
!afk -t0.5 reason for being away

Etc. This is only in hours, so decimals are needed for minutes... or, you could enter it as:

For 30 minutes (30 minutes * 60 minutes in an hour):
!afk -t30*60 reason for being away

Code:
on *:start: {
  hmake AwayTable 50
}

on *:text:!afk*:#Simons-Forums: {
  var %time = $ctime
  if (!$hget(AwayTable)) { hmake AwayTable 50 }
  if ($left($2,2) == -t) {
    if ($len($2) == 2) {
      var %reason = $iif($4,$4-,Unknown)
      .timerAway. $+ $nick 1 $calc($3 * 3600) msg $chan $nick should be back soon.
    }
    else {
      var %reason = $iif($3,$3-,Unknown)
      .timerAway. $+ $nick 1 $calc($right($2,-2) * 3600) msg $chan $nick should be back soon.
    }
  }
  else var %reason = $iif($2,$2-,Unknown)
  hadd AwayTable $nick %reason %time 
  msg $chan $nick is away @ $+ $time(%time,hh:nn mmm dd yyyy)
}

on *:text:!back:#Simons-Forums: {
  if ($hget(AwayTable,$nick)) {
    msg $chan $nick is back from $gettok($v1,1- $calc($gettok($v1,0,32) - 1),32) $+ .  $nick was gone for $duration($calc($ctime - $gettok($v1,$gettok($v1,0,32),32))) $+ .
    hdel AwayTable $nick
    .timerAway. [ $+ [ $nick ] ] off
  }
  else msg $chan You're not away.
}

on *:text:!away:#Simons-Forums: {
  var %cnt = 1
  var %total = $hget(AwayTable,0).item
  while (%cnt <= %total) {
    var %name = $hget(AwayTable,%cnt).item
    var %data = $hget(AwayTable,%cnt).data
    write afk.tmp %name is away $chr(40) $+ $gettok(%data,1- $calc($gettok(%data,0,32) -1),32) $+ $chr(41) since $time on $date($gettok(%data,$gettok(%data,0,32),32)) $+ .
    inc %cnt
  }
  .play $chan afk.tmp 1500
  .remove afk.tmp
}

on *:text:*:#Simons-Forums: {
  if ($hget(AwayTable,$remove($strip($1),?)) && !$2) {
    var %data = $hget(AwayTable,$remove($strip($1),?))
    msg $chan $remove($strip($1),?) is away $chr(40) $+ $gettok(%data,1- $calc($gettok(%data,0,32) -1),32) $+ $chr(41) since $time($gettok(%data,$gettok(%data,0,32),32)) $+ .
  }
}

on *:action:*:#Simons-Forums: {
  if ($hget(AwayTable,$remove($strip($1),?)) && !$2) {
    var %data = $hget(AwayTable,$remove($strip($1),?))
    msg $chan $left($1,-1) is away $chr(40) $+ $gettok(%data,1- $calc($gettok(%data,0,32) -1),32) $+ $chr(41) since $time($gettok(%data,$gettok(%data,0,32),32)) on $date($gettok(%data,$gettok(%data,0,32),32)) $+ .
  }
}

on *:part:#Simons-Forums: {
  if ($hget(AwayTable,$nick)) {
    hdel AwayTable $nick
    .timerAway. [ $+ [ $nick ] ] off
  }
}

on *:quit: {
  if ($hget(AwayTable,$nick)) {
    hdel AwayTable $nick
    .timerAway. [ $+ [ $nick ] ] off
  }
}


As a note, you can enter it using a space after the -t if you want to:

For 3.5 hours:
!afk -t 3.5 Reason for being away.


Invision Support
#Invision on irc.irchighway.net
Page 2 of 2 1 2