I want to fully map a mud and display the data gathered in a meaningful way. I will have a jump start on things like directions, but I have a couple questions that I want to have answered before I undertake a long term project like this (and with the size of this mud, it really will be a long term project.)
Currently, I am using an MSSQL back end, and yes, I do have a reason for using it. Think of it as a supercharged MySQL or SQLlite database for the purposes of this project.
Needless to say, I'm also using VBScript
-------
Read questions below before looking at the last bit, it will help you see where I'm trying to go instead of what I've already done, in case there is a better method.
First question, is.. Other than the mapper tool built in to mush client, is there a more comprehensive tool, whether that's a plugin someone has already designed, or built in to mush client itself that I can build off of, or use to accomplish my goals, or will I need to design a system from scratch?
Next, is after I do have this data gathered is there a way to intelligently display the map? Preferably it would be grouped by area (so as you enter a new area, the map changes / redraws the mini window) - I've been experimenting a bit with mini windows, but I'm not really sure how I would draw a representation map of the area. I know how to easily show what room I'm actually in [from a database standpoint] and could spit out information about that, but to actually 'unroll' the map, and show it in that fashion... I have no idea.
Database example below
ID - room id, bigint
area - area you are in, nvarchar(50)
roomname - room in area you are in, nvarchar(50)
exits - NESWUD-NW-NE-SE-SW directions, nvarchar(50)
exitnorth - Name of room to north, nvarchar(50)
exitsouth - Name of room to south, nvarchar(50)
...east
...west
...up
...down
...nw
...ne
...se
...sw
roomdesc - description of room in area, text
notes - special notes about room in area, such as traps or requirements of things to do, eg: open door west, dig, etc
Map example below
map 30
@ @%@ @ @
@ @ @@ @@@@@
@ @@@@@@@@""@@@
@@@@@ @ @@@@@
#@@@@@ %@@@@
@@@@@ @ "^@@
@@@@@@@ ^^^@
@@@@@# %^^@@
%@ ^^@@
@ @%@ %^^@@
@@@@@@####^"@@
@ %%@"""@@
@@ @"%"%@
@ % @"####%
@@@ @@@@@@@@"# %%#"
@@@ @ @ @ @*####"#
@ @@@ @@@@%%%%##"#
@@@@@@ @@@@#%%%###
@@@@@@@ @ %@@"@#%%%#%# #
@@@ @@ @@@############
~~% "%#%#%# #
%%% # # # # #
^ ############
#
Each of those symbols is colored, the * represents where you are currently are - in game, this is red, I've bolded it for the purposes of being on a forum.
Room example below
look
By the Temple Altar
You are by the temple altar in the northern end of the Temple of the
Gods. A huge altar made from white polished marble is standing in front of
you and behind it is a ten foot tall sitting statue of Austinian, the King
of the Gods of Good. The back of the altar opens into a beautiful atrium,
above which can be seen a rainbow. Stairs lead up to a platform where an
old wise man sits with young pupils.
[Exits: north south up ]
A pit for sacrifices is in front of the altar.
(White Aura) A cleric of Siccara is here, selling spells.
<1068/1068hp, 358/358m, 310/310mv, (By the Temple Altar)[NSU]> 3:30am.
You are in excellent condition.
For the purposes of mapping, this would be broken up in to three segments, first is after you 'look' the first line is the room name (Notice that it matches the name in (...) in the last line of prompt) - I figure something triggers off of 'look', using the prompt does a multi line match from the room name to [Exits: *] and stores the data as a description of the room, stores the room name (from the prompt) and exits
I'd also like to include the exit information
exit
To the north is The High Priests of Althainia's Chamber.
To the south is The Temple Of The Gods.
Upwards from here is Training and Practice Platform.
So that in the database, something like exitnorth would be populated with 'The High Priests of Althania's Chamber.' |