Meridi@n Away Control

By R1cochet on Jan 31, 2008

This is an away system. You can add up to 3 custom away reasons. Has auto-away which will place u on away on all servers. Echos away time when back from auto-away. Has silent away and dynamic popups. Idle time is in minutes.

on *:start: {
  hmake away 10
  if ($isFile(away.hsh)) { hload away away.hsh }
  else { hsave -o away away.hsh }
} 

on *:exit: { 
  hsave -o away away.hsh
  hfree away
}

dialog away {
  title "Away Control"
  size -1 -1 157 114
  option dbu

  button "Ok", 1, 56 99 20 12, ok
  button "Cancel", 2, 81 99 20 12, cancel

  box "Away Control", 3, 5 5 147 91

  box "Nick Name", 4, 10 11 83 33
  text "Nick Name", 5, 14 20 25 15
  edit , 6, 44 19 42 10, autohs
  text "Away Nick", 7, 14 31 30 15
  edit , 8, 44 30 42 10, autohs

  box "Auto Away", 9, 98 11 49 33
  check "Auto Away", 10, 102 20 36 10
  text "Time Idle", 11, 102 31 35 10
  edit , 12, 125 30 18 10, center

  box "Reason's Away", 13, 10 46 137 44
  text "Reason 1", 14, 14 55 30 15
  edit , 15, 44 54 99 10
  text "Reason 2", 16, 14 66 30 15 
  edit , 17, 44 65 99 10
  text "Reason 3", 18, 14 77 30 15
  edit , 19, 44 76 99 10
}

on *:dialog:away:*:*: {
  if ($devent == init) {
    did -a away 6 $hget(away, nick.n)
    did -a away 8 $hget(away, away.n)
    if ($hget(away, auto.c) == $true) { did -c away 10 | did -a away 12 $calc($hget(away, idle.t) / 60) }
    did -a away 15 $hget(away, reason.1)
    did -a away 17 $hget(away, reason.2)
    did -a away 19 $hget(away, reason.3)
  }
  if ($devent == sclick ) {
    if ($did == 1) {
      if ($did(6).edited) { hadd away nick.n $did(6).text }
      if ($did(8).edited) { hadd away away.n $did(8).text }
      if ($did(10).state) { hadd away auto.c $true | hadd away idle.t $calc($did(12).text * 60) }
      else { hadd away auto.c $false | hdel away idle.t }
      if ($did(15).edited) { hadd away reason.1 $did(15).text }
      if ($did(17).edited) { hadd away reason.2 $did(17).text }
      if ($did(19).edited) { hadd away reason.3 $did(19).text }
    }
  }
}

on *:input:*:{ 
  if ($hget(away, auto.c) == $true) {
    set %idle 0
    .timeridlecheck 0 1 idlecheck
  }
}
alias idlecheck {
  var %con = $scon(0)
  while (%con) {
    scon %con
    if (%idle > $hget(away, idle.t)) && ($away != $true) {
      away Placed on auto-away: Idle > $calc($hget(away, idle.t) / 60) $+ min.
      nick $hget(away, away.n)
      hadd away away.t $ctime
      timeridlecheck off
      scon -r
    }
    elseif ($away == $true) {
      away
      nick $hget(away, nick.n)
      echo -s Gone: $duration($calc($ctime - $hget(away, away.t)))
      scon -r
    }
    dec %con
  }
  inc %idle
}

menu channel,status,menubar {
  Away Manager
  .Away Control: dialog -md away away
  .-
  .Set Away
  ..Away: awayset
  ..$iif($hget(away, reason.1) != $null || $hget(away, reason.2) != $null || $hget(away, reason.3) != $null,Custom Away)
  ...$iif($hget(away, reason.1) != $null,Reason 1): reason1
  ...$iif($hget(away, reason.2) != $null,Reason 2): reason2
  ...$iif($hget(away, reason.3) != $null,Reason 3): reason3
  ..Silent Away: silentaway
  .Set Back
  ..Back: back
  ..$iif($hget(away, reason.1) != $null || $hget(away, reason.2) != $null || $hget(away, reason.3) != $null,Custom Back)
  ...$iif($hget(away, reason.1) != $null,Reason 1): reason1back
  ...$iif($hget(away, reason.2) != $null,Reason 2): reason2back
  ...$iif($hget(away, reason.3) != $null,Reason 3): reason3back
}

;aliases;
alias awayset {
  if ($away != $true) {
    away $$?="Enter away message"
    ame $!
    nick $hget(away, away.n)
  }
  else { 
    echo -s 4Error: 8You are already marked away
  }
}
alias reason1 {
  if ($away != $true) {
    away $hget(away, reason.1)
    ame $hget(away, reason.1)
    nick  $hget(away, away.n)
  }
  else {
    echo -s 4Error: 8You are already marked away
  }
}
alias reason2 { 
  if ($away != $true) {
    away $hget(away, reason.2)
    ame $hget(away, reason.2)
    nick  $hget(away, away.n)
  }
  else {
    echo -s 4Error: 8You are already marked away
  }
}
alias reason3 {
  if ($away != $true) {
    away $hget(away, reason.3)
    ame $hget(away, reason.3)
    nick  $hget(away, away.n)
  }
  else {
    echo -s 4Error: 8You are already marked away
  }
}
alias silentaway {
  if ($away != $true) {
    away ($1-)
    nick $hget(away, away.n)
  }
  else {
    echo -s 4Error: 8You are already marked away
  }
}
alias back {
  if ($away == $true) {
    away
    nick $hget(away, nick.n)
  }
  else {
    echo -s 4Error: 8You are not marked away
  }
}
alias reason1back {
  if ($away == $true) {
    away
    ame is back from $hget(away, reason.1)
    nick $hget(away, nick.n)
  }
  else {
    echo -s 4Error: 8You are not marked away
  }
}
alias reason2back {
  if ($away == $true) {
    away
    ame is back from $hget(away, reason.2)
    nick $hget(away, nick.n)
  }
  else {
    echo -s 4Error: 8You are not marked away
  }
}
alias reason3back {
  if ($away == $true) {
    away
    ame is back from $hget(away, reason.3)
    nick $hget(away, nick.n)
  }
  else {
    echo -s 4Error: 8You are not marked away
  }
}

Comments

Sign in to comment.
R1cochet   -  Feb 10, 2008

Thank you much dragon

 Respond  
water_dragon   -  Jan 31, 2008

not bad but prefer my away even tho i have to be connected to msn on all away scripts to use them witch is annoying some times 7/10 :)

 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.