Menu based away snippet

By Sir_Sonic12 on Feb 16, 2007

My first snippet ive ever posted here..Pretty self explainitory away script. Everything is done really from the menu, all the alias's are included. Thank's to xdaemon for helping me out with the $iif($var( a bit. theres options to set preset away reaons, and also an away nick that changes on all severs.

menu * { 
  .Away Options
  ..$iif(!$var(%goaway.), Away):set %goaway. $$?="Reason for away" | goaway 
  ..$iif($var(%goaway.), Back):/goback 
  .-
  ...$iif(!$var(%goaway.), Set/Unset Preset Aways)
  ....$iif(!$var(%preset.away.1), Set Away One):set %preset.away.1 $$?="Preset Away Number One's Reason." | echo -a $timestamp 3,15Preset away number one was set.
  ....$iif(!$var(%preset.away.2), Set Away Two):set %preset.away.2 $$?="Preset Away Number Two's Reason." | echo -a $timestamp 3,15Preset away number two was set.
  ....$iif(!$var(%preset.away.3), Set Away Three):set %preset.away.3 $$?="Preset Away Number Three's Reason." | echo -a $timestamp 3,15Preset away number three was set.
  ....$iif(!$var(%preset.away.4), Set Away Four):set %preset.away.4 $$?="Preset Away Number Four's Reason." | echo -a $timestamp 3,15Preset away number four was set.
  ....$iif(!$var(%preset.away.5), Set Away Five):set %preset.away.5 $$?="Preset Away Number Five's Reason." | echo -a $timestamp 3,15Preset away number five was set.
  ....-
  ....$iif(!$var(%awaynick.), Set Away Nick):set %awaynick. $$?="Away Nick." | echo -a $timestamp 3,15Your away nick has been set.
  ....-
  ....$iif($var(%preset.away.*), Unset All Presets):unset %preset.away.* | echo -a $timestamp 3,15All preset reasons have been reset.
  ....-
  ....$iif($var(%awaynick.), Unset Away Nick):unset %awaynick. | echo -a $timestamp 3,15Away nick has been unset.
  ....-
  ...$iif($var(%preset.away.*), Unset Specific Presets)
  ....%preset.away.1:unset %preset.away.1 | echo -a $timestamp 3,15Preset reason one was deleted.
  ....%preset.away.2:unset %preset.away.2 | echo -a $timestamp 3,15Preset reason two was deleted.
  ....%preset.away.3:unset %preset.away.3 | echo -a $timestamp 3,15Preset reason three was deleted.
  ....%preset.away.4:unset %preset.away.4 | echo -a $timestamp 3,15Preset reason four was deleted.
  ....%preset.away.5:unset %preset.away.5 | echo -a $timestamp 3,15Preset reason five was deleted.
  .-
  ...$iif($var(%preset.away.*) && !$var(%goaway.), Preset Aways) 
  ....%preset.away.1:set %goaway. %preset.away.1 | goaway
  ....%preset.away.2:set %goaway. %preset.away.2 | goaway
  ....%preset.away.3:set %goaway. %preset.away.3 | goaway 
  ....%preset.away.4:set %goaway. %preset.away.4 | goaway
  ....%preset.away.5:set %goaway. %preset.away.5 | goaway
} 
alias goaway {  
  allaway 
  set %regnick $me
  set %goaway.time $time(hh:nnTT)  
  set %goaway.ctime1 $ctime
  gmsg 3,15I am now away. Reason14,15:3,15 %goaway. (Gone away at %goaway.time $adate $+ )
  $iif($var(%awaynick.), allnick %awaynick.)
}
alias goback {
  allback
  set %goaway.ctime2 $ctime
  set %goaway.duration $calc( %goaway.ctime2 - %goaway.ctime1 )
  gmsg 3,15I am now back from14,15:3,15 %goaway. I was gone for $duration(%goaway.duration ,2)
  $iif($var(%awaynick.), allnick %regnick)
  unset %goaway.* | unset %regnick
}
alias gmsg {
  var %i = 1
  while (%i <= $scon(0)) {
    scon %i /amsg 4[15Global4] $1- 
    inc %i
  }
} 
alias allnick {
  var %i = 1
  while (%i <= $scon(0)) {
    scon %i /nick $1-
    inc %i
  }
}
alias allaway {
  var %i = 1
  while (%i <= $scon(0)) {
    scon %i /away %goaway.
    inc %i
  }
}
alias allback {
  var %i = 1
  while (%i <= $scon(0)) {
    scon %i /away
    inc %i
  }
}
on *:UNLOAD:{
  unset %preset.away.* | unset %awaynick.
  echo -a 3/10!3\ Script unloaded, all pre-set away reasons deleted. 3/10!3\ 
}

Comments

Sign in to comment.
MoonWhisper   -  Mar 04, 2008

nice :)

 Respond  
DarthReven   -  Feb 19, 2007

instead of using a variable use mirc\'s built in $away identifier which will return $true if you are away on the server and $false if not so we could use this statement in the menu: $iif($away == $false,Mark Away,Return)

 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.