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