/
area/city/
area/crypts/
area/guilds/
area/psuedowild/
area/religion/
data/documents/MPDocs/
data/html/
data/mobprogs/
data/quest/
data/world/
data/world/_utilities/
data/world/images/
design/html/
notes/
player/
Ok, So theres lots of travel mage codes out there, and this
one works very similar to it. However, mine is cooler, because
mine works more like stargate's gate system ;) Orginaly based
on the game Amberstar (their travel windgate system), this
is a hybrid of the two systems. Anywho, this is how it works.
Player's 'press' symbols on the gate, and light them up.
If the three symbols they press are valid, it opens up
the gate, and creates a semi-perm portal (semi meaning it
stays open until someone presses another symbol and resets it)
to that location.
    In my mud, it sorta works like this. The windgates are
ancient devices, built by a civilization long gone. (No, i
didn't get this from Stargate :P) Through years of warring,
gate symbols and gate travel have been restricted, and thus
knowledge of symbols is rare, and coveted information. (short
of my primary city, which acts like a standard 'recall' command,
since i want people to recall, without recalling, this works
just fine) Do what you see fit of course :P

Ok, this is very very simple to add, its almost completely
contained within itself, just a small addition to 2 other
files and tada, you got it. (well, and the item type addition)

Ok, first things, add the item type ITEM_WINDGATE,
const.c, tables.c, and re-compile olc_act.c. Bam your done.
Next, add the gate movement for do_enter, at the top of
your do_enter command, after it cycles through the obj
list in room, before the check for ITEM_PORTAL, add this piece
of code in there.

Note: Groups do not follow, im lazy, and mptriggers dont
activate. Its easy enough to add, I suggest adding a new
trigger type MP_GATEENTER and have some fun like that ;)

        if (portal->item_type == ITEM_WINDGATE)
        {
            if (portal->value[4] == 0)
            {
                stc("The Windgate is currently not leading anywhere.\n", ch);
                return;
            }
            /* Take care of curses */
            if (!IS_TRUSTED (ch, ANGEL) && (IS_AFFECTED (ch, AFF_CURSE)
                || IS_SET (old_room->room_flags, ROOM_NO_RECALL)))
            {
                send_to_char ("Something prevents you from leaving...\n\r", ch);
                return;
            }
            /* Get location, makesure its valid */
            location = get_room_index (portal->value[4]);
            if (location == NULL)
            {
                act ("$p doesn't seem to go anywhere.", ch, portal, NULL, TO_CHAR);
                return;
            }
            /* Ok go through */
            act ("$n steps into the windgate's swirling vortex.", ch, NULL, NULL, TO_ROOM);
            act ("You enter the windgate's swirling vortex.", ch, portal, NULL, TO_CHAR);
            char_from_room (ch);
            char_to_room (ch, location);
            act ("$n has arrived through $p.", ch, portal, NULL, TO_ROOM);
            do_function (ch, &do_look, "auto");
            
            /* Lazy, not adding follow, or MP triggers, also need a new trigger for
             * gate entry
             */
            return;
        }
        
Ok, next, add the commands to your interp.c,

cmd_windgate        - Immortal command, displays all locations,
                    depending on how secretive you want your
                    gate locations, make it high or low.
cmd_press           - Player command to use the gate.

add windgate.c to your makefile (or if your cool like me, just
stick it in the directory and it autocompiles it ;)
Then goto windgate.c, find the windgate_table (top of file)
and create some locations, and give them symbols (
also, i have a wilderness, so if you so choose, you can
remove the to_wild, x, and y from the windgate_type and
skip that part)

Now go into your mud, make a new item for each location,
and make a windgate, type windgate, no take (ewww evil if you
could heh, hmm maybe a timed quest item? na...) and give it
a cool description. (Mine are Giant white arches, like the
spine of a whale) reset to rooms.

make clean, and make, run the mud and tada, it works.

Thats about it. It took me about 3 hours to write from scratch,
and another hour of debugging to make this. (Not many bugs, i
tried almost every combonation of commands to make it crash,
only thing is, you need to keep close tabs on your windgate
list and make sure vnums exist, since i removed valid room
checks cause they were crashing on entrence, and i got annoyed.

If you have a help snippet command, id appreciate a mention,
also if you have a primary gate, make an extra description with
the keyword _THRI and mention me in there ;) 

Don't forget to follow all previous licences, Diku, merc, rom,
any snipps you have, what goes around, comes around. =)