My Away Messages

My away messages, defined (in parenthesis).

When using away messages, I usually say the location of where I am. Examples of places used are, restaurant, grocery store, etc.

Common ones.

On computer.
In room.
In bedroom.
Around house. (In other rooms).

Other.

Shower.
School.
Outside.

Sleep.

Night. (Does not have to get up early the next day).
Bed. (In bed, however, it could be day time too).
Sleep. (Have to get up early the next day, also school night).

Eating.

Snack. (Eating briefly).
Food. (Eating alone).
Breasfast, lunch, or dinner (eating with others, formally).

Usually I say an approximate duration to how many hours I should be back.

My away message shows how many connected networks out of how many total networks. If I were to disconnect and reconnect, I set a new away message showing an automatic away on disconnect, and the previous away message. This shows that my away message may need to be updated.

It should be noted that Efnet is the only network-IRCd with a small away message character limit, often cutting down. While I specifically shorten the sentencing of it, it may not be enough. Also note that my away message has the bold: Speak in English, as Dalnet is the worst network in terms of random non-English private messages.

Some away message philosophies.

Like ban scripts, I'd rather write a script that someone could get around and avoid getting banned by a channel protection script, and go "Oh, my script didn't ban him," then to write a script that bans someone when I go "Oh, I'm sorry, my script shouldn't have banned you." I'm with the second one.

So, I'd rather have an away message that says I'm away when I'm not, then to say I'm here when I'm away.

Nevertheless, I do have an /a alias for away messages, but it does not control my away status.

/a {
  if ($1 == $null) {
    /scon -a if ($status == connected) /away
  }
  if ($1 != $null) {
    if ($1 isnum) {
      /scon -a if ($status == connected) && ($network != Efnet) && ($network != Dalnet) /.timeraway 1 15 /.away Global away message for $totalserver $+ / $+ $scon(0) networks: $2- /msg $!me !commands
      /scon -a if ($status == connected) && ($network == Efnet) && ($network != Dalnet) /.timeraway 1 15 /.away Global away $totalserver $+ / $+ $scon(0) networks: $2- /msg $!me !commands
      /scon -a if ($status == connected) && ($network != Efnet) && ($network == Dalnet) /.timeraway 1 15 /.away Global away message for $totalserver $+ / $+ $scon(0) networks: $2- Speak in English. /msg $!me !commands
      /set %AwayMessage $2-
      /set %AwayTime $ctime
      /set %AwayDuration $1 minutes.
    }
    else {
      /scon -a if ($status == connected) && ($network != Efnet) && ($network != Dalnet) /.timeraway 1 15 /.away Global away message for $totalserver $+ / $+ $scon(0) networks: $1- /msg $!me !commands
      /scon -a if ($status == connected) && ($network == Efnet) && ($network != Dalnet) /.timeraway 1 15 /.away Global away $totalserver $+ / $+ $scon(0) networks: $1- /msg $!me !commands
      /scon -a if ($status == connected) && ($network != Efnet) && ($network == Dalnet) /.timeraway 1 15 /.away Global away message for $totalserver $+ / $+ $scon(0) networks: $1- Speak in English. /msg $!me !commands
      /set %AwayMessage $1-
      /set %AwayTime $ctime
      /set %AwayDuration not specified.
    }
  }
}

At the end of my on input event.

  .timersetawaystatus 1 300 /set %AwayStatus Yes

on *:active:*:/.timersetawaystatus 1 300 /set %AwayStatus Yes

on *:text:*:#: { 
  if (($wildtok($1-,*Neal*,0,32)) && (!$wildtok($1-,zonealarm,0,32))) {
    if (!$istok(%ignore,$nick,44)) && ($chan != $active) {
      /echo -s You have been 4called by $nick in $iif($chan,$chan,$nick) from saying, " $+ $1- $+ " at $asctime(h:nn:ss) $+ . | /splay Ding.wav
      if (% $+ $nick $+ Call <= 2) && ($nick != % $+ $nick $+ CallStop) {
        /inc -u30 % $+ $nick $+ Call 1
      }
      if (($eval(% $+ $nick $+ Call,2) >= 2) && ($nick != $eval(% $+ $nick $+ CallStop,2))) || ($nick($chan,0) <= 3) {
        echo $chan hi
        if ($appstate == minimized) || (%AwayStatus == Yes) { 
          /notice $nick [Script] You have called my nick twice in the past 30 seconds. My away status is true, my away message is in my whois. I have been away for $replace($duration($calc($ctime($asctime) - $ctime($asctime(%AwayTime)))),sec,$+($chr(32),second),min,$+($chr(32),minute),hr,$+($chr(32),hour),day,$+($chr(32),day),wk,$+($chr(32),week)). My expected arrival time is $iif(%AwayDuration isnum,$calc(($ctime($asctime(%AwayTime)) + $calc(%AwayDuration * 60))  - $ctime($asctime)),%AwayDuration). | /set -u600 % $+ $nick $+ CallStop $nick
        }
        if (%AwayStatus != Yes) && (%Busy == $null) {
          /notice $nick [Script] You have called my nick twice in the past 30 seconds. My away status is false - my mIRC detects me to be here (as of less than 5 minutes ago), your message has been relayed to me to my nearest status window. I should be able to respond to you shortly. | /set -u600 % $+ $nick $+ CallStop $nick
        }
        if (%AwayStatus != Yes) && (%Busy != $null) {
          /notice $nick [Script] You have called my nick twice in the past 30 seconds. My away status is false - my mIRC detects me to be here on the computer, your message has been relayed to me to my nearest status window. However, I am busy right now, my busy reason is: %Busy | /set -u600 % $+ $nick $+ CallStop $nick
        }
      }
    }
  }
}