Multi server away script, with auto away function after idling and some other functions also ;) have fun!
;Code wriitten by dRain (@:www.gtpk.gr, mail:kakos.belas@hotmail.com, irc:chat.gtpk.gr)
alias awaydialog { dialog -m AW AW }
dialog AW {
title "Away System"
size -1 -1 195 83
option dbu
button "Go Away", 1, 6 8 37 12
button "Come Back", 2, 6 42 37 12
button " Change Reason", 3, 6 20 37 22, multi
check " Set Prefix With Your nick +", 15, 49 6 76 8
edit "", 16, 125 4 65 11, autohs
check " Set a Prefixed Away nick:", 17, 49 17 73 10
edit "", 18, 125 17 65 11, autohs
check " Auto Away After idling for", 7, 49 32 73 10
edit "", 8, 125 31 19 11, autohs center
text " minutes!", 9, 146 33 27 8
button "Exit!", 10, 153 69 37 12, ok
check " */ame* Reason every", 12, 49 45 73 10
edit "", 13, 125 45 19 11, autohs center
text " minutes!", 6, 146 48 27 8
text "Simple/Auto/Multi Away System by dRain ;P", 4, 6 71 106 8, disable
check " Disable Sounds While Away", 5, 49 57 79 10
}
on *:DIALOG:AW:*:*: {
if ($devent == init) {
if (%AAWAY == On) { did -c $dname 7 }
if (%amereason == On) { did -c $dname 12 }
if (%dis.aw.snd == On) { did -c $dname 5 }
did -ra $dname 8 $calc(%away.idle / 60)
did -ra $dname 13 $calc(%amereasondelay / 60)
did -ra $dname 16 %awayn
did -ra $dname 18 %away.pr.nick
$iif(%_awayn == 1, did -c $dname 15, did -c $dname 17)
}
if ($devent == sclick) {
if ($did == 1) {
if (%dis.aw.snd == On) { .sound off }
if (%_away != Multi && %_away != Single) {
if ($scon(0) > 1) {
if ($?!="You are connected to more than one networks! Enable Multi Server Away?" == $true ) {
set %awayreason $$?="Away reason?"
unset %AutoAway_*
set %_away Multi
set %scon $scon(0)
scon -a away %awayreason
scon -a ame [:] Away Mode Enabled.Reason: %awayreason [:]
set %atmsg [:] Still Away.Reason: %awayreason [:]
set %awaytime $ctime
.timeraway.ms.ame 0 %amereasondelay scon -a ame %atmsg
while (%scon > 0) {
if ($scon(%scon).server != $null) {
$iif(%_awayn == 1, scon %scon nick $scon(%scon).me $+ %awayn, scon %scon nick %away.pr.nick)
set %awayserv $addtok(%awayserv,$scon(%scon).server,44)
set %backnick_ [ $+ [ $scon(%scon).server ] ] $scon(%scon).me
}
dec %scon
}
halt
}
else {
set %awayreason_ [ $+ [ $server ] ] $$?="Away reason?"
set %_away Single
set %awayserv $addtok(%awayserv,$server,44)
if (%AutoAway_ [ $+ [ $server ] != $null) { unset %AutoAway_ [ $+ [ $server ] }
set %backnick_ [ $+ [ $server ] ] $me
set %awaytime_ [ $+ [ $server ] ] $ctime
$iif(%_awayn == 1, nick $me $+ %awayn, nick %away.pr.nick)
ame [:] Away Mode Enabled.Reason: %awayreason_ [ $+ [ $server ] ] [:]
set %atmsg_ [ $+ [ $server ] ] [:] Still Away.Reason: %awayreason_ [ $+ [ $server ] ] [:]
.timeraway_ [ $+ [ $server ] ] 0 %amereasondelay check.ame
.away %awayreason_ [ $+ [ $server ] ]
halt
}
}
else {
set %awayreason_ [ $+ [ $server ] ] $$?="Away reason?"
set %_away Single
set %awayserv $addtok(%awayserv,$server,44)
if (%AutoAway_ [ $+ [ $server ] != $null) { unset %AutoAway_ [ $+ [ $server ] }
set %backnick_ [ $+ [ $server ] ] $me
set %awaytime_ [ $+ [ $server ] ] $ctime
$iif(%_awayn == 1, nick $me $+ %awayn, nick %away.pr.nick)
ame [:] Away Mode Enabled.Reason: %awayreason_ [ $+ [ $server ] ] [:]
set %atmsg_ [ $+ [ $server ] ] [:] Still Away.Reason: %awayreason_ [ $+ [ $server ] ] [:]
.timeraway_ [ $+ [ $server ] ] 0 %amereasondelay check.ame
.away %awayreason_ [ $+ [ $server ] ]
halt
}
}
if (%_away != Multi && %_away == Single && $findtok(%awayserv,$server,1,44) != $null) {
echo -a 7°14 $+ $time $+ 7° 7* 14You are already away @7 $server $+ 14!
halt
}
if (%_away != Multi && %_away == Single && $findtok(%awayserv,$server,1,44) == $null) {
set %awayreason_ [ $+ [ $server ] ] $$?="Away reason?"
set %_away Single
set %awayserv $addtok(%awayserv,$server,44)
if (%AutoAway_ [ $+ [ $server ] != $null) { unset %AutoAway_ [ $+ [ $server ] }
set %backnick_ [ $+ [ $server ] ] $me
set %awaytime_ [ $+ [ $server ] ] $ctime
$iif(%_awayn == 1, nick $me $+ %awayn, nick %away.pr.nick)
ame [:] Away Mode Enabled.Reason: %awayreason_ [ $+ [ $server ] ] [:]
set %atmsg_ [ $+ [ $server ] ] [:] Still Away.Reason: %awayreason_ [ $+ [ $server ] ] [:]
.timeraway_ [ $+ [ $server ] ] 0 %amereasondelay check.ame
.away %awayreason_ [ $+ [ $server ] ]
halt
}
if (%_away == Multi) {
echo -a 7°14 $+ $time $+ 7° 7* 14You are already away @7 All Servers14!
halt
}
}
if ($did == 2) {
if (%dis.aw.snd == On) { .sound on }
if (%_away == Single) {
if ($findtok(%awayserv,$server,1,44) != $null) {
if (%AutoAway_ [ $+ [ $server ] ] == 1) {
unset %AutoAway_ [ $+ [ $server ] ]
resetidle 0
nick %backnick_ [ $+ [ $server ] ]
unset set %atmsg_ [ $+ [ $server ] ]
set %awayserv $remtok(%awayserv,$server,1,44)
if (%away.disc_ [ $+ [ $server ] ] >= 1) {
ame [:] Auto Away Disabled After $duration($calc( $ctime - %awaytime_ [ $+ [ $server ] ] )) [:] ( $+ %away.disc_ [ $+ [ $server ] ] dC's)
}
else {
ame [:] Auto Away Disabled After $duration($calc( $ctime - %awaytime_ [ $+ [ $server ] ] )) [:] (nO dC's)
}
.timeraway_ [ $+ [ $server ] ] off
unset %backnick_ [ $+ [ $server ] ]
unset %awayreason_ [ $+ [ $server ] ]
unset %awaytime_ [ $+ [ $server ] ]
unset %away.disc_ [ $+ [ $server ] ]
if ($gettok(%awayserv,1,46) == $null) { unset %_away }
.timer 1 2 away
halt
}
}
if (%AutoAway_ [ $+ [ $server ] ] != 1) {
resetidle 0
.timeraway_ [ $+ [ $server ] ] off
set %awayserv $remtok(%awayserv,$server,1,44)
nick %backnick_ [ $+ [ $server ] ]
if (%away.disc_ [ $+ [ $server ] ] >= 1) { ame [:] Away Mode Disabled After $duration($calc( $ctime - %awaytime_ [ $+ [ $server ] ] )) $+ .Reason Was: %awayreason_ [ $+ [ $server ] ] [:] ( $+ %away.disc_ [ $+ [ $server ] ] dC's) }
else { ame [:] Away Mode Disabled After $duration($calc( $ctime - %awaytime_ [ $+ [ $server ] ] )) $+ .Reason Was: %awayreason_ [ $+ [ $server ] ] [:] (nO dC's) }
unset %atmsg_ [ $+ [ $server ] ]
unset %awayreason_ [ $+ [ $server ] ]
unset %away.disc_ [ $+ [ $server ] ]
unset %backnick_ [ $+ [ $server ] ]
unset %awaytime_ [ $+ [ $server ] ]
if ($gettok(%awayserv,1,46) == $null) { unset %_away }
.timer 1 2 away
halt
}
}
if (%_away == Multi) {
set %scon $scon(0)
while (%scon > 0) {
if ($scon(%scon).server != $null) {
scon %scon resetidle 0
$iif(%away.disc_ [ $+ [ $scon(%scon).server ] ] >= 1, scon %scon ame [:] Away Mode Disabled After $duration($calc( $ctime - %awaytime )) $+ .Reason Was: %awayreason [:] ( $+ %away.disc_ [ $+ [ $scon(%scon).server ] ] dC's), scon %scon ame [:] Away Mode Disabled After $duration($calc( $ctime - %awaytime )) $+ .Reason Was: %awayreason [:] (nO dC's))
set %awayserv $remtok(%awayserv,$scon(%scon).server,1,44)
scon %scon nick %backnick_ [ $+ [ $scon(%scon).server ] ]
}
dec %scon
}
unset %_away
.timeraway.ms.ame off
unset %AutoAway_ [ $+ [ $server ]
unset %atmsg
unset %awaytime
unset %awayreason
scon -a away
halt
}
}
if ($did == 3) {
if (%_away == Single) {
if ($findtok(%awayserv,$server,1,44) != $null) && (%AutoAway_ [ $+ [ $server ] ] == 1) {
unset %AutoAway_ [ $+ [ $server ] ]
unset %atmsg_ [ $+ [ $server ] ]
}
set %awayreason_ [ $+ [ $server ] ] $$?="New away reason?"
set %awaytime_ [ $+ [ $server ] ] $ctime
.timeraway_ [ $+ [ $server ] ] off
.timeraway_ [ $+ [ $server ] ] 0 %amereasondelay check.ame
set %atmsg_ [ $+ [ $server ] ] [:] Still Away.Reason: %awayreason_ [ $+ [ $server ] ] [:]
ame [:] Away Reason Changed To: %awayreason_ [ $+ [ $server ] ] [:]
.away %awayreason_ [ $+ [ $server ] ]
}
if (%_away == Multi) {
set %awayreason $$?="Away reason?"
set %awaytime $ctime
.timeraway.ms.ame off
set %atmsg [:] Still Away.Reason: %awayreason [:]
scon -a ame [:] Away Reason Changed To: %awayreason [:]
.timeraway.ms.ame 0 %amereasondelay scon -a ame %atmsg
scon -a away %awayreason
}
}
if ($did == 5) {
if ($did(5).state == 1) {
set %dis.aw.snd On
.sound off
}
else {
.sound on
set %dis.aw.snd Off
}
}
if ($did == 7) {
if ($did(7).state == 1) {
set %AAWAY On
}
else {
set %AAWAY Off
}
}
if ($did == 12) {
if ($did(12).state == 1) {
set %amereason On
}
else {
set %amereason Off
}
}
if ($did == 15) { did -u $dname 17 | set %_awayn 1 }
if ($did == 17) { did -u $dname 15 | set %_awayn 2 }
}
if ($devent == edit) {
if ($did == 8) { set %away.idle $calc($did($dname,8).text * 60) }
if ($did == 13) {
set %amereasondelay $calc($did($dname,13).text * 60)
echo -a 7°14 $+ $time $+ 7° 7* 14Changes 7(/ame reason every $duration(%amereasondelay) $+ )14 will work for the next Away's and won't affect active Away's14!
}
if ($did == 16) { set %awayn $did($dname,16) }
if ($did == 18) { set %away.pr.nick $did($dname,18) }
}
}
alias check.ame {
if (%amereason == On) {
if (%_away == Single) {
if (%atmsg_ [ $+ [ $server ] ] && $findtok(%awayserv,$server,1,44)) {
ame %atmsg_ [ $+ [ $server ] ]
}
}
}
}
alias auto.away {
if ($idle > %away.idle && $away == $false && %AAWAY == On && $findtok(%awayserv,$server,1,44) == $null) {
if (%dis.aw.snd == On) {
.sound off
}
ame [:] Auto Away After $duration(%away.idle) Idle [:]
.timeraway_ $+ $server 0 %amereasondelay check.ame
set %atmsg_ [ $+ [ $server ] ] [:] Still Away After $duration(%away.idle) Idle [:]
set %_away Single
set %awayserv $addtok(%awayserv,$server,44)
set %backnick_ [ $+ [ $server ] ] $me
set %awaytime_ [ $+ [ $server ] ] $ctime
set %AutoAway_ [ $+ [ $server ] ] 1
set %awayreason_ [ $+ [ $server ] ] [:] Auto Away After $duration(%away.idle) Idle [:]
$iif(%_awayn == 1, nick $me $+ %awayn, nick %away.pr.nick)
.away [:] Auto Away After $duration(%away.idle) Idle [:]
}
}
on *:load:{
echo -ta *** You have loaded dRain's away system ;)
set %awayn [aFk]
set %away.pr.nick AWAYYY
set %away.idle 3600
set %_awayn 1
set %AAWAY On
set %amereasondelay 3600
set %amereason On
set %away.idle 3600
}
on *:unload:{
echo -ta *** You have unloaded dRain's away system :(
timeraway* off
timeraway_* off
timeraway.ms.ame off
unset %_awayn
unset %AAWAY
unset %away.idle
unset %amereason
unset %amereasondelay
unset %awayn
unset %away.pr.nick
unset %_away
unset %AutoAway*
unset %awayserv*
unset %awayreason*
unset %backnick*
unset %awaytime*
unset %away.disc*
unset %atmsg*
unset %dis.aw.snd
}
on *:start:{
unset %_away
unset %AutoAway*
unset %awayserv*
unset %awayreason*
unset %backnick*
unset %awaytime*
unset %away.disc*
unset %atmsg*
}
on *:DISCONNECT: { if ($findtok(%awayserv,$server,1,44) != $null) { nick %backnick_ [ $+ [ $server ] ] } }
on *:CONNECT:{
.timeraway [ $+ [ $server ] ] 0 60 auto.away
if ($findtok(%awayserv,$server,1,44) != $null) {
if ($me != %backnick_ [ $+ [ $server ] ]) { nick %backnick_ [ $+ [ $server ] ] }
inc %away.disc_ [ $+ [ $server ] ]
$iif(%_awayn == 1, .timer 1 10 nick $me $+ %awayn, .timer 1 10 nick %away.pr.nick)
if (%_away == Single) {
if (%AutoAway_ [ $+ [ $server ] ] == 1) {
.timeraway_ [ $+ [ $server ] ] 0 %amereasondelay check.ame
.timer 1 10 ame [:] Auto Away After $duration(%away.idle) Idle [:] (Auto Away after DC)
away [:] Auto Away After $duration(%away.idle) Idle [:]
}
if (%AutoAway_ [ $+ [ $server ] ] != 1) {
.timeraway_ [ $+ [ $server ] ] 0 %amereasondelay check.ame
.timer 1 10 ame [:] Away Mode Enabled.Reason: %awayreason_ [ $+ [ $server ] ] [:] (Auto Away after DC)
away %awayreason_ [ $+ [ $server ] ]
}
}
if (%_away == Multi) {
.timeraway.ms.ame 0 %amereasondelay scon -a ame %atmsg
.timer 1 10 ame [:] Away Mode Enabled.Reason: %awayreason [:] (Auto Away after DC)
away %awayreason.ms
}
}
}
for init u dont need to use did -ra $dname ID %var just put the %var in the dialog
like this
dialog AW {
title "Away System"
size -1 -1 195 83
option dbu
button "Go Away", 1, 6 8 37 12
button "Come Back", 2, 6 42 37 12
button " Change Reason", 3, 6 20 37 22, multi
check " Set Prefix With Your nick +", 15, 49 6 76 8
edit %awayn, 16, 125 4 65 11, autohs
check " Set a Prefixed Away nick:", 17, 49 17 73 10
edit %away.pr.nick, 18, 125 17 65 11, autohs
check " Auto Away After idling for", 7, 49 32 73 10
edit $calc(%away.idle / 60), 8, 125 31 19 11, autohs center
text " minutes!", 9, 146 33 27 8
button "Exit!", 10, 153 69 37 12, ok
check " */ame* Reason every", 12, 49 45 73 10
edit $calc(%amereasondelay / 60), 13, 125 45 19 11, autohs center
text " minutes!", 6, 146 48 27 8
text "Simple/Auto/Multi Away System by dRain ;P", 4, 6 71 106 8, disable
check " Disable Sounds While Away", 5, 49 57 79 10
}
on *:DIALOG:AW:*:*: {
if $devent == init {
if (%AAWAY == On) did -c $dname 7
if (%amereason == On) did -c $dname 12
if (%dis.aw.snd == On) did -c $dname 5
did -c $dname $iif(%_awayn == 1,15,17)
}