Astral Travel (script)

From Elanthipedia
Jump to navigation Jump to search


This script automatically travels the astral plane for you.

Front end: Stormfront

Recommend name: ap

Usage: ".ap [destination]" while standing at a Grazhir shard. [destination] can be any name from the list you get when you run the script with no arguments.

EDITED by Uversy (5-20-2008)
1. I had no way of contacting the original author of this script (that I could see) but this had to be fixed since it got me killed.
The script does not notice when casting the moongate spell to get out of the Astral Plane fails. As such, you release your mana and
then die. I've added a check when moongate is cast to see if it failed. If it does, then a the user pulls some more mana together
and calls exitAP again.

2. Addition of the ability for the user to define just how much mana they harness when the script requires it. By setting the variable
"mana" just below, the user is better set for their particular casting ability. The default is '15'. I did this because having only
30 mana harnessed while in the planes is a bit dicey for me. I personally set "mana" to '20'.

3. Addition of deletevariable commands under the "cleanup:" label to remove variables used by this script.

EDITED by Uversy (5-23-2008)
1. Asharshpar'i wasn't being recognized from the starting point. Included a "look shard" command and altered the match text for this shard.

2. Altered how the mana harness engine works and added the variable "myCounter". Users can now define "myCounter" to a number 1-4
which will determine how many times your moon mage harnesses before casting. Along with the use of the "mana" variable, this will allow
users the most flexible control of how they obtain the mana they will use in the moongate spell.

3. Changed "harnessMana3" label to "harnessEmergency" and utilized the new harness engine in order to condense the code some.
EDITED by Uversy (5-28-2008) -- Version 1.0
1. Inclusion of handling for when a shard is not known at the starting point

debug off

echo
echo ==============================================
echo = Astral Travel script by Foresee
echo = Last edited: 5/28/08
echo = Edited by: Uversy
echo = Version 1.0
echo =
echo = Valid Destination names:
echo = Dor'na'torna - Dornatorna - Hibarnhvidar - Hib - Cherulisa
echo = Undarverjah - Taisgath - Islands - Ratha - Lomtaun
echo = Tamigen - Raven'sPoint - RavenPoint - Raven - RP
echo = Rolagi - Crossing - Xing - Kssarh
echo = Marendin - Shard - Ilithi - Mortom
echo = Emalerje - Volcano - LesserFist - Fist - Tiv
echo = Asharshpar'i - Asharshpari - LethDeriel - Leth
echo = Dinegavren - Therenborough - Theren
echo = Mintais - ThroneCity - Throne - TC
echo = Taniendar - Riverhaven - Haven - Gylwyn
echo ==============================================
echo

# TODO:  - This script will choke if you haven't learned
#          the destination shard.  Need a log of it to fix.

setvariable stepsToAxis 0
setvariable stepsFromAxis 0
setvariable mana 15
setvariable myCounter 3

# These four variables are defined later in the script.
setvariable Start
setvariable Destination
setvariable Pillar
setvariable afterHarness

if_1 goto setStart
goto error_noArguments

setStart:
    match Dor'na'torna		the silvery-white shard Dor'na'torna
    match Undarverjah		the silvery-white shard Undarverjah
    match Tamigen		[Cragstone Vale, Shrine of the Shell]
    match Rolagi		the silvery-white shard Rolagi
    match Marendin		the silvery-white shard Marendin
    match Emalerje		the silvery-white shard Emalerje
    match Asharshpar'i		the silvery shard Asharshpar'i
    match Dinegavren		[Gealeranendae College, Tear of Grazhir Exhibit]
    match Mintais		[Phelim's Sanctum, Tear of Grazhir]
    match Taniendar		the silvery-white shard Taniendar
    match error_badStart	Obvious exits:
    match error_badStart	Obvious paths:
    put look shard
    put look
    matchwait

Dor'na'torna:
    setvariable Start Dor'na'torna
    goto setDestination
Undarverjah:
    setvariable Start Undarverjah
    goto setDestination
Tamigen:
    setvariable Start Tamigen
    goto setDestination
Rolagi:
    setvariable Start Rolagi
    goto setDestination
Marendin:
    setvariable Start Marendin
    goto setDestination
Emalerje:
    setvariable Start Emalerje
    goto setDestination
Asharshpar'i:
    setvariable Start Asharshpar'i
    goto setDestination
Dinegavren:
    setvariable Start Dinegavren
    goto setDestination
Mintais:
    setvariable Start Mintais
    goto setDestination
Taniendar:
    setvariable Start Taniendar
    goto setDestination

# Valid destinations
setDestination:
    goto setDestination_%1%

setDestination_Rolagi:
setDestination_Crossing:
setDestination_Xing:
setDestination_Kssarh:
    setvariable Destination Rolagi
    setvariable Pillar Nightmares
    goto prepMoongate

setDestination_Dor'na'torna:
setDestination_Dornatorna:
setDestination_Hibarnhvidar:
setDestination_Hib:
setDestination_Cherulisa:
    setvariable Destination Dor'na'torna
    setvariable Pillar Tradition
    goto prepMoongate

setDestination_Tamigen:
setDestination_Raven'sPoint:
setDestination_RavenPoint:
setDestination_Raven:
setDestination_RP:
    setvariable Destination Tamigen
    setvariable Pillar Convergence
    goto prepMoongate

setDestination_Asharshpar'i:
setDestination_Asharshpari:
setDestination_LethDeriel:
setDestination_Leth:
    setvariable Destination Asharshpar'i
    setvariable Pillar Heavens
    goto prepMoongate

setDestination_Emalerje:
setDestination_Volcano:
setDestinatoin_LesserFist:
setDestination_Fist:
setDestination_Tiv:
    setvariable Destination Emalerje
    setvariable Pillar Shrew
    goto prepMoongate

setDestination_Taniendar:
setDestination_Riverhaven:
setDestination_Haven:
setDestination_Gylwyn:
    setvariable Destination Taniendar
    setvariable Pillar Broken
    goto prepMoongate

setDestination_Dinegavren:
setDestination_Therenborough:
setDestination_Theren:
    setvariable Destination Dinegavren
    setvariable Pillar Introspection
    goto prepMoongate

setDestination_Mintais:
setDestination_ThroneCity:
setDestination_Throne:
setDestination_TC:
    setvariable Destination Mintais
    setvariable Pillar Fortune
    goto prepMoongate

setDestination_Marendin:
setDestination_Shard:
setDestination_Ilithi:
setDestination_Mortom:
    setvariable Destination Marendin
    setvariable Pillar Secrets
    goto prepMoongate

setDestination_Undarverjah:
setDestination_Taisgath:
setDestination_Ratha:
setDestinatoin_Islands:
setDestination_Lomtaun:
    setvariable Destination Undarverjah
    setvariable Pillar Heavens
    goto prepMoongate

prepMoongate:
    put prep moongate
    goto focusShard

focusShard:
    setvariable afterHarness enterAP
    counter set %myCounter
    match error_UnknownShard You do not recognize this shard
    match harnessMana%c You feel fully prepared
    put focus %Start%
    matchwait
harnessMana0:
    goto %afterHarness

harnessMana1:
harnessMana2:
harnessMana3:
harnessMana4:
    match wait_harnessMana	...wait
    match wait_harnessMana	Sorry, you may only type
    match harnessCount		You tap into the mana
    put harness %mana%
    matchwait

harnessCount:
    counter subtract 1
    goto harnessMana%c

harnessEmergency:
    setvariable afterHarness exitAP
    counter set 1
    goto harnessMana%c

enterAP:
    match wait_enterAP		...wait
    match wait_enterAP		Sorry, you may only type
    match toAxis		You are pulled through
    put cast %Start%
    matchwait

toAxis:
    counter set %stepsToAxis%
    counter add 1
    setvariable stepsToAxis %c%

    toAxis1:
        match wait_toAxis1	...wait
        match wait_toAxis1	Sorry, you may only type
        match toAxis_N		the microcosm is to the north.
        match toAxis_NE		the microcosm is to the northeast.
        match toAxis_E		the microcosm is to the east.
        match toAxis_SE		the microcosm is to the southeast.
        match toAxis_S		the microcosm is to the south.
        match toAxis_SW		the microcosm is to the southwest.
        match toAxis_W		the microcosm is to the west.
        match toAxis_NW		the microcosm is to the northwest.
        match error_expanse	You cannot sense even a single thread of Lunar energy
        match error_dead	You are a ghost!
        put perceive
        matchwait

toAxis_N:
    match wait_toAxis_N		...wait
    match wait_toAxis_N		Sorry, you may only type
    match toAxis		Obvious exits: none.
    match atAxis		Obvious exits: north,
    match atAxis		Obvious exits: east,
    put north
    matchwait
toAxis_NE:
    match wait_toAxis_NE	...wait
    match wait_toAxis_NE	Sorry, you may only type
    match toAxis		Obvious exits: none.
    match atAxis		Obvious exits: north,
    match atAxis		Obvious exits: east,
    put northeast
    matchwait
toAxis_E:
    match wait_toAxis_E		...wait
    match wait_toAxis_E		Sorry, you may only type
    match toAxis		Obvious exits: none.
    match atAxis		Obvious exits: north,
    match atAxis		Obvious exits: east,
    put east
    matchwait
toAxis_SE:
    match wait_toAxis_SE	...wait
    match wait_toAxis_SE	Sorry, you may only type
    match toAxis		Obvious exits: none.
    match atAxis		Obvious exits: north,
    match atAxis		Obvious exits: east,
    put southeast
    matchwait
toAxis_S:
    match wait_toAxis_S		...wait
    match wait_toAxis_S		Sorry, you may only type
    match toAxis		Obvious exits: none.
    match atAxis		Obvious exits: north,
    match atAxis		Obvious exits: east,
    put south
    matchwait
toAxis_SW:
    match wait_toAxis_SW	...wait
    match wait_toAxis_SW	Sorry, you may only type
    match toAxis		Obvious exits: none.
    match atAxis		Obvious exits: north,
    match atAxis		Obvious exits: east,
    put southwest
    matchwait
toAxis_W:
    match wait_toAxis_W		...wait
    match wait_toAxis_W		Sorry, you may only type
    match toAxis		Obvious exits: none.
    match atAxis		Obvious exits: north,
    match atAxis		Obvious exits: east,
    put west
    matchwait
toAxis_NW:
    match wait_toAxis_NW	...wait
    match wait_toAxis_NW	Sorry, you may only type
    match toAxis		Obvious exits: none.
    match atAxis		Obvious exits: north,
    match atAxis		Obvious exits: east,
    put northwest
    matchwait

atAxis:
    move east
    move up
    goto Convergence_to_%Pillar%

Convergence_to_Convergence:
    goto exitAxis
Convergence_to_Nightmares:
    move south
    goto exitAxis
Convergence_to_Tradition:
    move southeast
    goto exitAxis
Convergence_to_Secrets:
    move east
    goto exitAxis
Convergence_to_Unity:
    move northeast
    goto exitAxis
Convergence_to_Shrew:
    move north
    goto exitAxis
Convergence_to_Heavens:
    move northwest
    goto exitAxis
Convergence_to_Introspection:
    move west
    goto exitAxis
Convergence_to_Fortune:
    move southwest
    goto exitAxis
Convergence_to_Broken:
    move south
    move down
    goto exitAxis

exitAxis:
    put focus %Destination%
    goto fromAxis

fromAxis:
    counter set %stepsFromAxis%
    counter add 1
    setvariable stepsFromAxis %c%

    fromAxis1:
        match wait_fromAxis1	...wait
        match wait_fromAxis1	Sorry, you may only type
        match fromAxis_N	the conduit lies north.
        match fromAxis_NE	the conduit lies northeast.
        match fromAxis_E	the conduit lies east.
        match fromAxis_SE	the conduit lies southeast.
        match fromAxis_S	the conduit lies south.
        match fromAxis_SW	the conduit lies southwest.
        match fromAxis_W	the conduit lies west.
        match fromAxis_NW	the conduit lies northwest.
        match error_expanse	You cannot sense even a single thread of Lunar energy
        match error_dead	You are a ghost!
        put perceive
        matchwait

fromAxis_N:
    match wait_fromAxis_N	...wait
    match wait_fromAxis_N	Sorry, you may only type
    match exitAP		You also see the silvery-white shard
    match fromAxis		Obvious exits: none.
    match atAxis		Obvious exits: north,
    match atAxis		Obvious exits: east,
    put north
    matchwait

fromAxis_NE:
    match wait_fromAxis_NE	...wait
    match wait_fromAxis_NE	Sorry, you may only type
    match exitAP		You also see the silvery-white shard
    match fromAxis		Obvious exits: none.
    match atAxis		Obvious exits: north,
    match atAxis		Obvious exits: east,
    put northeast
    matchwait

fromAxis_E:
    match wait_fromAxis_E	...wait
    match wait_fromAxis_E	Sorry, you may only type
    match exitAP		You also see the silvery-white shard
    match fromAxis		Obvious exits: none.
    match atAxis		Obvious exits: north,
    match atAxis		Obvious exits: east,
    put east
    matchwait

fromAxis_SE:
    match wait_fromAxis_SE	...wait
    match wait_fromAxis_SE	Sorry, you may only type
    match exitAP		You also see the silvery-white shard
    match fromAxis		Obvious exits: none.
    match atAxis		Obvious exits: north,
    match atAxis		Obvious exits: east,
    put southeast
    matchwait

fromAxis_S:
    match wait_fromAxis_S	...wait
    match wait_fromAxis_S	Sorry, you may only type
    match exitAP		You also see the silvery-white shard
    match fromAxis		Obvious exits: none.
    match atAxis		Obvious exits: north,
    match atAxis		Obvious exits: east,
    put south
    matchwait

fromAxis_SW:
    match wait_fromAxis_SW	...wait
    match wait_fromAxis_SW	Sorry, you may only type
    match exitAP		You also see the silvery-white shard
    match fromAxis		Obvious exits: none.
    match atAxis		Obvious exits: north,
    match atAxis		Obvious exits: east,
    put southwest
    matchwait

fromAxis_W:
    match wait_fromAxis_W	...wait
    match wait_fromAxis_W	Sorry, you may only type
    match exitAP		You also see the silvery-white shard
    match fromAxis		Obvious exits: none.
    match atAxis		Obvious exits: north,
    match atAxis		Obvious exits: east,
    put west
    matchwait

fromAxis_NW:
    match wait_fromAxis_NW	...wait
    match wait_fromAxis_NW	Sorry, you may only type
    match exitAP		You also see the silvery-white shard
    match fromAxis		Obvious exits: none.
    match atAxis		Obvious exits: north,
    match atAxis		Obvious exits: east,
    put northwest
    matchwait

exitAP:
    put prep moongate
    put focus %Destination%
    waitfor You focus your magical senses
    goto exitAP_cast

exitAP_cast:
    match wait_exitAP_cast	...wait
    match wait_exitAP_cast	Sorry, you may only type
    match harnessEmergency	The spell goes awry!
    match release               You are pulled through
    put cast %Destination%
    matchwait

release:
    put release
    pause 1
    echo Statistics:  %stepsToAxis% from %Start% to Axis
    echo Statistics:  %stepsFromAxis% from Axis to %Destination%
    goto cleanup

cleanup:
    deletevariable stepsToAxis
    deletevariable stepsFromAxis
    deletevariable mana
    deletevariable Start
    deletevariable Destination
    deletevariable Pillar
    deletevariable counter
    deletevariable afterHarness
    exit


#################################
# Wait section
wait_harnessMana:
    pause 1
    goto harnessMana
wait_harnessEmergency:
    pause 1
    goto harnessEmergency
wait_enterAP:
    pause 1
    goto enterAP
wait_toAxis1:
    pause 1
    goto toAxis1
wait_toAxis_N:
    pause 1
    goto toAxis_N
wait_toAxis_NE:
    pause 1
    goto toAxis_NE
wait_toAxis_E:
    pause 1
    goto toAxis_E
wait_toAxis_SE:
    pause 1
    goto toAxis_SE
wait_toAxis_S:
    pause 1
    goto toAxis_S
wait_toAxis_SW:
    pause 1
    goto toAxis_SW
wait_toAxis_W:
    pause 1
    goto toAxis_W
wait_toAxis_NW:
    pause 1
    goto toAxis_NW
wait_fromAxis1:
    pause 1
    goto fromAxis1
wait_fromAxis_N:
    pause 1
    goto fromAxis_N
wait_fromAxis_NE:
    pause 1
    goto fromAxis_NE
wait_fromAxis_E:
    pause 1
    goto fromAxis_E
wait_fromAxis_SE:
    pause 1
    goto fromAxis_SE
wait_fromAxis_S:
    pause 1
    goto fromAxis_S
wait_fromAxis_SW:
    pause 1
    goto fromAxis_SW
wait_fromAxis_W:
    pause 1
    goto fromAxis_W
wait_fromAxis_NW:
    pause 1
    goto fromAxis_NW
wait_exitAP_cast:
    pause 1
    goto exitAP_cast



#####################################
# Errors
error_UnknownShard:
    put release
    echo
    echo ERROR:  You do not know this shard yet!
    echo         "study %Start%" to learn this shard.
    echo         
    echo         Until this shard is learned, you can not enter
    echo         or exit the Astral Planes here.
    exit
error_NoArguments:
    echo
    echo ERROR:  This script requires a name for your destination.
    echo         Please see the starting text for a list.
    echo         Proper usage is ".ap destination"
    echo
    exit
error_badStart:
    echo
    echo ERROR:  You are not at a known Grazhir shard
    echo         and this script cannot be used for the 100th circle ability.
    echo
    exit
error_expanse:
    echo
    echo *** Uh oh, you're trapped in the grey expanse.
    echo *** You may get out, but it isn't likely.  Good luck!
    echo
    echo Statistics:  %stepsToAxis% from %Start% to Axis
    echo Statistics:  %stepsFromAxis% from Axis to %Destination%
    exit
error_dead:
    echo
    echo *** Uh oh, you didn't survive this trip.
    echo *** I hope the empath likes extra crispy!
    echo
    echo Statistics:  %stepsToAxis% from %Start% to Axis
    echo Statistics:  %stepsFromAxis% from Axis to %Destination%
    exit
labelError:
    echo
    echo ERROR:  You did not type in a valid name for your destination.
    echo         Please see the starting text for a list.
    echo         If you did type in a listed destination or got this error
    echo         while already moving, this this is a bug with the script's labels.
    echo
    exit