Away Mode and Message (script)

From Elanthipedia
Jump to navigation Jump to search
Away Mode and Message (script)
Category utility
Front-end Genie
Author Isharon


Features

These scripts put you in sleep mode to drain experience while AFK. Once you run out of experience, the idle script aborts all other scripts, runs the awaken script to set you up for active play when you return, and then logs you out of the game.

In order to avoid an unexpected death (such as during invasions) and as a courtesy to your fellow players, do not idle in a public place. It is best to use a locked room, such as a player-owned home or inn. See Idle experience drain for more details.

Experience and Interaction Avoidance

Before going into idle, this script does the following:

  • adopts a defensive stance (evasion and shield), reallocating unused offensive stance points to defenses.
  • stops performing songs on instruments
  • stows held items
  • stops teaching and listening to classes
  • releases cyclic spells, held mana, and prepared spells
  • turns on all avoids
  • goes into sleep mode (prevents inadvertent experience gain)
  • closes packs, sheaths, herb pouches, and gem pouches
  • sets demeanor to cold

The awaken script reverses some of these changes:

  • turns off avoids (except dancing)
  • exits sleep mode
  • opens packs, sheaths, herb pouches, and gem pouches
  • returns to your default demeanor (requires global variable)

Away Message

During sleep mode, it will send a private OOC away message to those who attempt to communicate with you. There is a timer to prevent the away message script from spamming responses if you receive more than one message within a 60-second period.

Event Responds Via
someone whispers to you OOC command
someone speaks to you OOC command
someone thinks to you albredine crystal ring
someone gweths your name albredine crystal ring

Instructions

The scripts must have the following names to work:

  • sleep.cmd
  • idle.cmd
  • afkmessage.cmd
  • awaken.cmd

Once you have configured the required global variables, simply type .SLEEP to enter sleep mode. When you return, type .AWAKEN to return to active play.

Be sure to review the away messaging in afkmessage.cmd. By default, it is set to give alternate contact information (AIM and e-mail).

Required Genie Settings

You must configure the following global variables to use the script.

#var {pack} {your pack}
#var {sheath} {your weapon sheath}
#var {demeanor} {your default demeanor}
#var {AIMname} {your AIM screen name}
#var {email} {your e-mail address}

Here is an example of how to set those variables:

#var pack legionary's pack
#var sheath greatsword sheath
#var demeanor reserved
#var AIMname PlayerDR
#var email playerdr/@play.net
#var save

(Genie requires a backslash before the at sign. Otherwise, it just moves your cursor to the position of the at sign and doesn't send the command.)

Scripts

sleep.cmd

put #class arrive on
put #class racial on
put #class rp on
put #class combat off
put #class joust off

put stance set 0 0 100 0
waitforre ^Setting your Evasion stance to
put stance set 100 0 100 0
waitforre ^Setting your Evasion stance to

send stop play
waitforre ^You stop playing your song|^In the name of love|^But you're not performing anything

send stow right
waitforre ^You put|^Stow what|^There isn't|^The .+ is too long to fit in the

send stow left
waitforre ^You put|^Stow what|^There isn't|^The .+ is too long to fit in the

send stop teach
waitforre ^You stop|^But you

send stop listen
waitforre ^You stop|^But you

send release all
waitforre ^You aren't harnessing any mana|^You aren't holding any mana|^You aren't preparing a spell|^You have no cyclic spell active to release|^You let your concentration lapse and feel the spell's energies dissipate|^You release the mana you were holding

send avoid !all
waitforre ^All AVOID options turned on
send sleep
waitforre ^You relax|^You are already

put close my $sheath
waitforre ^You|^That|^The|^What were you referring to
put close my $pack
waitforre ^You|^That|^The|^What were you referring to
put close my herb pouch
waitforre ^You|^That|^The|^What were you referring to
put close my gem pouch
waitforre ^You|^That|^The|^What were you referring to

send demeanor cold
waitforre ^You decide

send .idle

idle.cmd

action goto exit when ^\s+No skills have field experience or none meet your criteria!$

put /timers end all
put .afkmessage

put #clear thoughts
put #clear log
put #clear ooc
put #clear main
put #window hide OOC
put #window show OOC
put #window hide Experience
put #window show Experience
put #window hide Thoughts
put #window show Thoughts
put #window hide Log
put #window show Log

put /timers start idle

idle:
put skills
pause 60

put look
pause 60
put #clear main
put /timers list

goto idle

exit:
put #script abort all except idle
send .awaken
waitfor SCRIPT DONE
pause .5
send exit

afkmessage.cmd

var whisper_time $gametime
var think_time $gametime
var chatter_time $gametime
action var player $1;goto WhisperAFK when ^(\w+) just tried to whisper to you, but you turned away
action var player $1;goto WhisperAFK when ^(\w+) whispers, \"
action var player $1;goto WhisperAFK when ^(\w+) (asks|exclaims to|says to) you, \".+\"$
action var player $1;goto WhisperAFK when ^(\w+) (\S+) (asks|exclaims to|says to) you, \".+\"$
action var player $1;goto WhisperAFK when ^(\w+) (asks|exclaims|says), \"$charactername\"$
action var player $1;goto WhisperAFK when ^(\w+) (\S+) (asks|exclaims|says), \"$charactername\"$
action var player $1;goto WhisperAFK when ^(\w+) (asks|exclaims|says), \"$charactername.+\"$
action var player $1;goto WhisperAFK when ^(\w+) (\S+) (asks|exclaims|says), \"$charactername.+\"$
action var player $1;goto WhisperAFK when ^(\w+) (asks|exclaims|says), \".+$charactername.+\"$
action var player $1;goto WhisperAFK when ^(\w+) (\S+) (asks|exclaims|says), \".+$charactername.+\"$
action var player $1;goto WhisperAFK when ^(\w+) (asks|exclaims|says), \".+$charactername\"$
action var player $1;goto WhisperAFK when ^(\w+) (\S+) (asks|exclaims|says), \".+$charactername\"$
action var player $1;goto ThinkAFK when ^Your mind hears (\w+) thinking, \"<to you>\"
action var player $1;goto ThinkAFK when ^\[(\w+)\] \"\<to you\>\"
action var player $1;goto ThinkAFK when ^\[(\w+)\]\s+(?!\"<to you>\")\"$charactername\"$
action var player $1;goto ThinkAFK when ^\[(\w+)\]\s+(?!\"<to you>\")\"$charactername.+\"$
action var player $1;goto ThinkAFK when ^\[(\w+)\]\s+(?!\"<to you>\")\".+$charactername.+\"$
action var player $1;goto ThinkAFK when ^\[(\w+)\]\s+(?!\"<to you>\")\".+$charactername\"$
action goto ChatterAFK when ^Chatter\[(.+)\].+$charactername

WhisperAFK:
if $gametime > %whisper_time then
{
put OOC %player I am AFK right now. I'll get back to you later. You can also leave me a message on AIM at $AIMname or write to $email.
var whisper_time $gametime
math whisper_time add 60
}
goto loopAFK

ThinkAFK:
if $gametime > %think_time then
{
send think to %player OOC: I am AFK right now. I'll get back to you later. You can also leave me a message on AIM at $AIMname or write to $email.
var think_time $gametime
math think_time add 60
}
goto loopAFK

ChatterAFK:
if $gametime > %chatter_time then
{
put chatter I am AFK right now. I'll get back to you later. You can also leave me a message on AIM at $AIMname or write to $email.
var chatter_time $gametime
math chatter_time add 60
}
goto loopAFK

loopAFK:
pause 60
goto loopAFK

awaken.cmd

put #class arrive on
put #class racial on
put #class rp on
put #class combat off
put #class joust off
put /timers end all

put avoid all
waitforre ^All
put avoid !dancing
waitforre ^You're now avoiding
put awaken
waitforre ^You awaken|^But you

put open my $sheath
waitforre ^You|^That|^The|^What were you referring to
put open my $pack
waitforre ^You|^That|^The|^What were you referring to
put open my herb pouch
waitforre ^You|^That|^The|^What were you referring to
put open my gem pouch
waitforre ^You|^That|^The|^What were you referring to

put demeanor $demeanor
waitforre ^You adopt|^You decide|^You show|^You love

put #parse SCRIPT DONE
exit