Help - Search - Members - Calendar
Full Version: Wormhole Library
Achaea's Forums > Off-Topic > Tech Support > Curing Systems and Scripts
Belus
Eagles Wings have a single advantage over the Vibrating Stick: you can quickly get home from any outdoor location.

But what if you're deep in Moghedu and a raid pops up requiring you to get back from underground?
Or what if you quickly want to -leave- your city to rescue a slain friend?
Bashing Genji is great, but the hike up those mountains would kill me if I didn't know a faster way.

Worm warps are the fastest way to to travel to the greatest variety of places. The only trouble is finding your way quickly to a hub, and worm seek doesn't tell you what area you'll end up in.

The library I've built currently has 169 different rooms mapped out (warps in Hashan's and Ashtan's systems, among the most extensive and convenient). More areas are on their way.

Review the log to see how it looks. A free sample script for the warps in the Crystal Leaf Inn is available at the end for Zmud and Mushclient. Some editing may be necessary if your screen width is not 0.

Price for the Hashan/Ashtan warp library is 10cr. Future areas will be priced at approximately 1cr per 15 rooms. 10% discount for buying more than 150 at a time.

Log Example
QUOTE
An unfinished road off the Prelatorian Highway (road).
A ladder of long, soft leaves comprises a wispy Weaver's Fern along the ground. Bloated with blood and flesh, a frenzied bloodworm sets its beady eyes on you.
You see exits leading southeast and west.
3297h, 3894m exd-
se
On a well-travelled road (road).
You see exits leading east and northwest.
^^Warp to: Inn Kitchens, in Crystal Leaf Inn^^
3297h, 3894m exd-
ww
You hurl yourself forwards through the air, and sure enough a swirling vortex of colours springs into existence to swallow you.
The wormhole spits you out at the other end.
Inn Kitchens.
You see exits leading north, east, and west.
^^Warp to: On a well-travelled road, near Ashtan and Petra ^^
3297h, 3894m xd-

/********** Yo lunchbox, hurry it up! **********/
3297h, 3894m exd-
w
Common Room of the Crystal Leaf Inn.
A cute little humgii is sitting here placidly, attached to a leash. A beautifully carved chessboard is attached firmly to a heavy stand here.
You see exits leading east, south, west, and up.
3297h, 3894m exd-
u
Landing above the common room.
You see exits leading north, south, west (closed door), and down.
3297h, 3894m exd-
n
The Flower Suite.
You see a single exit leading south.
^^Warp to: Within the Great Rock, in Great Rock^^
3297h, 3894m exd-

(Market): Aaseth says, "Trans Forger with Hammer for hire!"
3297h, 3894m exd-
s
Landing above the common room.
You see exits leading north, south, west (closed door), and down.
3297h, 3894m exd-
s
Main Suite of the Inn.
You see a single exit leading north.
^^Warp to: On the path, in Genji^^
3297h, 3894m exd-
n
Landing above the common room.
You see exits leading north, south, west (closed door), and down.
3297h, 3894m exd-
d
Common Room of the Crystal Leaf Inn.
A cute little humgii is sitting here placidly, attached to a leash. A beautifully carved chessboard is attached firmly to a heavy stand here.
You see exits leading east, south, west, and up.
3297h, 3894m exd-
e
Inn Kitchens.
You see exits leading north, east, and west.
^^Warp to: On a well-travelled road, near Ashtan and Petra ^^
3297h, 3894m exd-
e
Courtyard of the Inn.
A magnificent sandstone altar is erected here to the Patron of Rogues, surrounded by statuettes of worshipping men and women.
You see exits leading east, west, and northwest.
^^Warp to: Guard chamber in the Fortress of the Beast, near Beastlords^^
3297h, 3894m exd-
e
Livery Stables.
You see a single exit leading west.
^^Warp to: Wave washed rocks, in Tasur'ke^^
3297h, 3894m exd-
ww
You hurl yourself forwards through the air, and sure enough a swirling vortex of colours springs into existence to swallow you.
The wormhole spits you out at the other end.
Wave washed rocks.
You see a single exit leading west.
^^Warp to: Livery Stables, in Crystal Leaf Inn^^
3297h, 3894m xd-

/********** Yo lunchbox, hurry it up! **********/
3297h, 3894m exd-



Samples

for Zmud
CODE
    A
    |
    |       B
#__#       |
    |^      |
    | ^     C
    D  ^    |\
        ^   | \
      #__#__E__F__G
         |
         |
     (to road)

A - Great Rock, "Within the Great Rock"
B - SW of Cave, "Gardens of the Brass Lantern Inn"
C - Southern Vashnars, "Ascending Mount Nicator"
D - Genji, "On the Path"
E - Asthan or Petra, "On a well-travelled road"
F - Beastlords, "Guard chamber in the Fortress of the Beast"
G - Tasur'ke, "Wave washed rocks"


#CLASS {Warps|CrystalLeaf}
#TRIGGER "CrystalLeafInnA1" {^The Flower Suite.$} {}
#COND {^You see a single exit leading south.$} {#ECHO ^^Warp to: Promontory beside a field, in Pash Valley^^} {within|param=15}
#TRIGGER "CrystalLeafInnA2" {^Promontory beside a field.$} {}
#COND {^You see exits leading north, east, and southeast.$} {#ECHO ^^Warp to: The Flower Suite, in Crystal Leaf Inn^^} {within|param=15}
#TRIGGER "CrystalLeafInnB1" {^The Crystal Leaf Amphitheatre.$} {}
#COND {^You see a single exit leading south.$} {#ECHO ^^Warp to: Gardens of the Brass Lantern Inn, SW of the Cave^^} {within|param=15}
#TRIGGER "CrystalLeafInnB2" {^Gardens of the Brass Lantern Inn.$} {}
#COND {^You see a single exit leading east.$} {#ECHO ^^Warp to: The Crystal Leaf Amphitheatre, in Crystal Leaf Inn^^} {within|param=15}
#TRIGGER "CrystalLeafInnC1" {^Shaded Garden by a pond.$} {}
#COND {^You see exits leading north, southeast, and south.$} {#ECHO ^^Warp to: Ascending Mount Nicator, in Southern Vashnars^^} {within|param=15}
#TRIGGER "CrystalLeafInnC2" {^Ascending Mount Nicator.$} {}
#COND {^You see exits leading up and down.$} {#ECHO ^^Warp to: Shaded Garden by a pond, in Crystal Leaf Inn^^} {within|param=15}
#TRIGGER "CrystalLeafInnD1" {^Main Suite of the Inn.$} {}
#COND {^You see a single exit leading north.$} {#ECHO ^^Warp to: On the path, in Genji^^} {within|param=15}
#TRIGGER "CrystalLeafInnD2" {^On the path ~(road~).$} {}
#COND {^You see exits leading up and down.$} {#ECHO ^^Warp to: Main Suite of the Inn, in Crystal Leaf Inn^^} {within|param=15}
#TRIGGER "CrystalLeafInnE1" {^Inn Kitchens.$} {}
#COND {^You see exits leading north, east, and west.$} {#ECHO ^^Warp to: On a well-travelled road, near Ashtan and Petra ^^} {within|param=15}
#TRIGGER "CrystalLeafInnE2" {^On a well-travelled road ~(road~).$} {}
#COND {^You see exits leading east and northwest.$} {#ECHO ^^Warp to: Inn Kitchens, in Crystal Leaf Inn^^} {within|param=15}
#TRIGGER "CrystalLeafInnF1" {^Courtyard of the Inn.$} {}
#COND {^You see exits leading east, west, and northwest.$} {#ECHO ^^Warp to: Guard chamber in the Fortress of the Beast, near Beastlords^^} {within|param=15}
#TRIGGER "CrystalLeafInnF2" {^Guard chamber in the Fortress of the Beast.$} {}
#COND {^You see exits leading east, southwest, and northwest.$} {#ECHO ^^Warp to: Courtyard of the Inn, in Crystal Leaf Inn^^} {within|param=15}
#TRIGGER "CrystalLeafInnG1" {^Livery Stables.$} {}
#COND {^You see a single exit leading west.$} {#ECHO ^^Warp to: Wave washed rocks, in Tasur'ke^^} {within|param=15}
#TRIGGER "CrystalLeafInnG2" {^Wave washed rocks.$} {}
#COND {^You see a single exit leading west.$} {#ECHO ^^Warp to: Livery Stables, in Crystal Leaf Inn^^} {within|param=15}
#CLASS 0



for MushClient
CODE
<muclient>
<plugin
  name="CrystalLeafInnWarps"
  author="Belus"
  language="Lua"
  purpose = "Echo the exit location of a wormhole when you come across one"
  save_state = "n"
  date_written = "2009-07-31"
  date_modified = "2009-08-21"
  version="1.00"
  id = "e3badd25bcffe67eac879d1d"
  >
</plugin>
<triggers>
    <trigger name="WarpPrompt" match="^\d+h," enabled="y" group="Warps" regexp="y" send_to="12" sequence="100" keep_evaluating="y">
        <send>EnableTriggerGroup("WarpExits", false)</send></trigger>

<!--


    A
    |
    |       B
#__#       |
    |^      |
    | ^     C
    D  ^    |\
        ^   | \
      #__#__E__F__G
         |
         |
     (to road)

A - Great Rock, "Within the Great Rock"
B - SW of Cave, "Gardens of the Brass Lantern Inn"
C - Southern Vashnars, "Ascending Mount Nicator"
D - Genji, "On the Path"
E - Asthan or Petra, "On a well-travelled road"
F - Beastlords, "Guard chamber in the Fortress of the Beast"
G - Tasur'ke, "Wave washed rocks"


-->
    <trigger name="CrystalLeafInnA1" match="^The Flower Suite\.$" enabled="y" group="Warps" regexp="y" send_to="12" sequence="100">
        <send>EnableTrigger("CrystalLeafInnA1e", true)</send></trigger>
    <trigger name="CrystalLeafInnA1e" match="^You see a single exit leading south\.$" enabled="n" group="WarpExits" regexp="y" send_to="12" sequence="100">
        <send>ColourNote ("cyan", "black", "^^Warp to: Promontory beside a field, in Pash Valley^^")</send></trigger>
    <trigger name="CrystalLeafInnA2" match="^Promontory beside a field\.$" enabled="y" group="Warps" regexp="y" send_to="12" sequence="100">
        <send>EnableTrigger("CrystalLeafInnA2e", true)</send></trigger>
    <trigger name="CrystalLeafInnA2e" match="^You see exits leading north, east, and southeast\.$" enabled="n" group="WarpExits" regexp="y" send_to="12" sequence="100">
        <send>ColourNote ("cyan", "black", "^^Warp to: The Flower Suite, in Crystal Leaf Inn^^")</send></trigger>
    <trigger name="CrystalLeafInnB1" match="^The Crystal Leaf Amphitheatre\.$" enabled="y" group="Warps" regexp="y" send_to="12" sequence="100">
        <send>EnableTrigger("CrystalLeafInnB1e", true)</send></trigger>
    <trigger name="CrystalLeafInnB1e" match="^You see a single exit leading south\.$" enabled="n" group="WarpExits" regexp="y" send_to="12" sequence="100">
        <send>ColourNote ("cyan", "black", "^^Warp to: Gardens of the Brass Lantern Inn, SW of the Cave^^")</send></trigger>
    <trigger name="CrystalLeafInnB2" match="^Gardens of the Brass Lantern Inn\.$" enabled="y" group="Warps" regexp="y" send_to="12" sequence="100">
        <send>EnableTrigger("CrystalLeafInnB2e", true)</send></trigger>
    <trigger name="CrystalLeafInnB2e" match="^You see a single exit leading east\.$" enabled="n" group="WarpExits" regexp="y" send_to="12" sequence="100">
        <send>ColourNote ("cyan", "black", "^^Warp to: The Crystal Leaf Amphitheatre, in Crystal Leaf Inn^^")</send></trigger>
    <trigger name="CrystalLeafInnC1" match="^Shaded Garden by a pond\.$" enabled="y" group="Warps" regexp="y" send_to="12" sequence="100">
        <send>EnableTrigger("CrystalLeafInnC1e", true)</send></trigger>
    <trigger name="CrystalLeafInnC1e" match="^You see exits leading north, southeast, and south\.$" enabled="n" group="WarpExits" regexp="y" send_to="12" sequence="100">
        <send>ColourNote ("cyan", "black", "^^Warp to: Ascending Mount Nicator, in Southern Vashnars^^")</send></trigger>
    <trigger name="CrystalLeafInnC2" match="^Ascending Mount Nicator\.$" enabled="y" group="Warps" regexp="y" send_to="12" sequence="100">
        <send>EnableTrigger("CrystalLeafInnC2e", true)</send></trigger>
    <trigger name="CrystalLeafInnC2e" match="^You see exits leading up and down\.$" enabled="n" group="WarpExits" regexp="y" send_to="12" sequence="100">
        <send>ColourNote ("cyan", "black", "^^Warp to: Shaded Garden by a pond, in Crystal Leaf Inn^^")</send></trigger>
    <trigger name="CrystalLeafInnD1" match="^Main Suite of the Inn\.$" enabled="y" group="Warps" regexp="y" send_to="12" sequence="100">
        <send>EnableTrigger("CrystalLeafInnD1e", true)</send></trigger>
    <trigger name="CrystalLeafInnD1e" match="^You see a single exit leading north\.$" enabled="n" group="WarpExits" regexp="y" send_to="12" sequence="100">
        <send>ColourNote ("cyan", "black", "^^Warp to: On the path, in Genji^^")</send></trigger>
    <trigger name="CrystalLeafInnD2" match="^On the path \(road\)\.$" enabled="y" group="Warps" regexp="y" send_to="12" sequence="100">
        <send>EnableTrigger("CrystalLeafInnD2e", true)</send></trigger>
    <trigger name="CrystalLeafInnD2e" match="^You see exits leading up and down\.$" enabled="n" group="WarpExits" regexp="y" send_to="12" sequence="100">
        <send>ColourNote ("cyan", "black", "^^Warp to: Main Suite of the Inn, in Crystal Leaf Inn^^")</send></trigger>
    <trigger name="CrystalLeafInnE1" match="^Inn Kitchens\.$" enabled="y" group="Warps" regexp="y" send_to="12" sequence="100">
        <send>EnableTrigger("CrystalLeafInnE1e", true)</send></trigger>
    <trigger name="CrystalLeafInnE1e" match="^You see exits leading north, east, and west\.$" enabled="n" group="WarpExits" regexp="y" send_to="12" sequence="100">
        <send>ColourNote ("cyan", "black", "^^Warp to: On a well-travelled road, near Ashtan and Petra ^^")</send></trigger>
    <trigger name="CrystalLeafInnE2" match="^On a well-travelled road \(road\)\.$" enabled="y" group="Warps" regexp="y" send_to="12" sequence="100">
        <send>EnableTrigger("CrystalLeafInnE2e", true)</send></trigger>
    <trigger name="CrystalLeafInnE2e" match="^You see exits leading east and northwest\.$" enabled="n" group="WarpExits" regexp="y" send_to="12" sequence="100">
        <send>ColourNote ("cyan", "black", "^^Warp to: Inn Kitchens, in Crystal Leaf Inn^^")</send></trigger>
    <trigger name="CrystalLeafInnF1" match="^Courtyard of the Inn\.$" enabled="y" group="Warps" regexp="y" send_to="12" sequence="100">
        <send>EnableTrigger("CrystalLeafInnF1e", true)</send></trigger>
    <trigger name="CrystalLeafInnF1e" match="^You see exits leading east, west, and northwest\.$" enabled="n" group="WarpExits" regexp="y" send_to="12" sequence="100">
        <send>ColourNote ("cyan", "black", "^^Warp to: Guard chamber in the Fortress of the Beast, near Beastlords^^")</send></trigger>
    <trigger name="CrystalLeafInnF2" match="^Guard chamber in the Fortress of the Beast\.$" enabled="y" group="Warps" regexp="y" send_to="12" sequence="100">
        <send>EnableTrigger("CrystalLeafInnF2e", true)</send></trigger>
    <trigger name="CrystalLeafInnF2e" match="^You see exits leading east, southwest, and northwest\.$" enabled="n" group="WarpExits" regexp="y" send_to="12" sequence="100">
        <send>ColourNote ("cyan", "black", "^^Warp to: Courtyard of the Inn, in Crystal Leaf Inn^^")</send></trigger>
    <trigger name="CrystalLeafInnG1" match="^Livery Stables\.$" enabled="y" group="Warps" regexp="y" send_to="12" sequence="100">
        <send>EnableTrigger("CrystalLeafInnG1e", true)</send></trigger>
    <trigger name="CrystalLeafInnG1e" match="^You see a single exit leading west\.$" enabled="n" group="WarpExits" regexp="y" send_to="12" sequence="100">
        <send>ColourNote ("cyan", "black", "^^Warp to: Wave washed rocks, in Tasur'ke^^")</send></trigger>
    <trigger name="CrystalLeafInnG2" match="^Wave washed rocks\.$" enabled="y" group="Warps" regexp="y" send_to="12" sequence="100">
        <send>EnableTrigger("CrystalLeafInnG2e", true)</send></trigger>
    <trigger name="CrystalLeafInnG2e" match="^You see a single exit leading west\.$" enabled="n" group="WarpExits" regexp="y" send_to="12" sequence="100">
        <send>ColourNote ("cyan", "black", "^^Warp to: Livery Stables, in Crystal Leaf Inn^^")</send></trigger>
</triggers>
</muclient>
Jonathin
QUOTE (Belus @ Aug 21 2009, 11:35 PM) *
QUOTE

/********** Yo lunchbox, hurry it up! **********/



I lol'd.
Xandeus
You might want to try a different coding approach to keep from adding tons of new triggers that will slow everything down.

Try using onRoomEnter to do the processing and store the room names and destinations in a db variable. Then every time they enter a room grab the name and lookup in your db variable if the room has a warp.
Sena
QUOTE (Xandeus @ Aug 23 2009, 05:57 PM) *
You might want to try a different coding approach to keep from adding tons of new triggers that will slow everything down.

Try using onRoomEnter to do the processing and store the room names and destinations in a db variable. Then every time they enter a room grab the name and lookup in your db variable if the room has a warp.

It would need to be a bit more complex, to check the exits in case of two rooms with the same name. You'd need a trigger that will match any exits line, and then two databases for each room, one with the destinations and one with the exits to match. You'd need to store the room name in a variable when you see it, and then check to see if the exits are right in the exits trigger, and then display the destination if it matches.

I'm not familiar with the mapper at all, but it would need to be configured properly in order to use onRoomEnter, right? It would be just as easy to use a trigger that matches any room name.
Xandeus
The way Belus has it setup, it looks like both my suggestion and his way of doing it are going to be hit by the duplicate room issue.

But you are correct. And if I was doing it for my own system I'd be tempted to use room numbers to avoid the multiple room issue, except that I often re-organize the mapper db which changes the room orders around... so maybe adding a mapper link would be easiest. So each way has its weakness I guess. But on the whole I'd rather not add a new trigger for every single worm warp, which is what the original suggestion does.
Belus
QUOTE (Xandeus @ Aug 23 2009, 02:57 PM) *
You might want to try a different coding approach to keep from adding tons of new triggers that will slow everything down.

Try using onRoomEnter to do the processing and store the room names and destinations in a db variable. Then every time they enter a room grab the name and lookup in your db variable if the room has a warp.

I write it out as a Mushclient plugin which makes the conversion to Zmud just a couple Find->Replace. If I weren't catering to both clients I'd consider this.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2009 Invision Power Services, Inc.