Notice: Any messages purporting to come from this site telling you that your password has expired, or that you need to verify your details, confirm your email, resolve issues, making threats, or asking for money, are
spam. We do not email users with any such messages. If you have lost your password you can obtain a new one by using the
password reset link.
Entire forum
➜ MUSHclient
➜ Plugins
➜ Materia Magica mapper plugin
Materia Magica mapper plugin
|
Posting of new messages is disabled at present.
Refresh page
Pages: 1 2
Posted by
| Nick Gammon
Australia (23,122 posts) Bio
Forum Administrator |
Date
| Tue 12 Oct 2010 04:25 AM (UTC) Amended on Tue 12 Oct 2010 09:06 PM (UTC) by Nick Gammon
|
Message
| Below is a preliminary attempt at a mapper for Materia Magica. The tricky bit, as usual, with MUDs is trying to detect when you are in a new room, and work out a room number.
In this case I looked for a yellow line (the room name) followed by a blue line with hyphens in it (the compass) followed by some gray lines (the description). Put all that together and you should have something reasonably reliable.
The exit detection is simply done by noticing you are in another room, and working out which way you came from the previous room.
When you first go to a new room it will appear disconnected, until you walk back the way you came. Then it realises that if east from A is B, and west from B is A, then A and B are connected.
Example:
The plugin is now available on GitHub.
Go to this page:
http://github.com/nickgammon/plugins/blob/master/Materia_Magica_Mapper.xml
You will see the plugin in pretty-printed XML format.
- To get a raw copy suitable for installing, look a little way down the page to where it says:
... edit | raw | blame | history
- RH-click on the "raw" hyperlink and then "Save link as" to get a local copy. (You can click on "history" to see what recent changes have been made)
- Put the copy in your worlds / plugins folder.
- Name it: Materia_Magica_Mapper.xml
- Go to the MUSHclient File menu -> Plugins
- Click "Add"
- Choose the file Materia_Magica_Mapper.xml (which you just downloaded) as a plugin
- Click "Close"
For exit detection you should turn on the Visible Exits line by typing into the MUD:
Then as you walk around you should see something like:
Visible Exits: N E S W Nw Ne
|
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Nick Gammon
Australia (23,122 posts) Bio
Forum Administrator |
Date
| Reply #1 on Tue 12 Oct 2010 09:05 PM (UTC) |
Message
| The mapper plugin has been improved today to detect exits from the Visible Exits line which you can turn on (see above post). I have removed the plugin from the post and moved it to GitHub. That way you can always get the latest one.
The "history" link shows what has changed recently, when and why. Well, hopefully.
Because of the exit detection you will now see "stub" lines which show rooms that it knows exist (because there is an exit leading there) but it doesn't yet know what room is there. |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Ruthgul
(18 posts) Bio
|
Date
| Reply #2 on Tue 12 Oct 2010 11:45 PM (UTC) |
Message
| Awesome!
Big thank you :) | Top |
|
Posted by
| forral
USA (79 posts) Bio
|
Date
| Reply #3 on Wed 13 Oct 2010 12:15 AM (UTC) |
Message
| I know it sounds terrible, but I got a chubby as soon as I read this. My MUSHClient dreams have come true, ty Nick!
The only other question, and I don't know if I asked this in another thread last night, is how will it handle dizzy rooms, looping rooms, teleporting rooms, etc? | Top |
|
Posted by
| Nick Gammon
Australia (23,122 posts) Bio
Forum Administrator |
Date
| Reply #4 on Wed 13 Oct 2010 01:47 AM (UTC) |
Message
| Basically it draws "normal" exits - teleports and funny rooms might make it either not draw them, or draw inconsistently. I haven't really addressed that sort of thing. |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Nick Gammon
Australia (23,122 posts) Bio
Forum Administrator |
Date
| Reply #5 on Wed 13 Oct 2010 04:47 AM (UTC) Amended on Wed 13 Oct 2010 04:49 AM (UTC) by Nick Gammon
|
Message
| I have been enhancing the mapper somewhat.
One major change is to use a SQLite database, rather than saving the map in the plugin state file.
What this does is let you share the maps much more readily - for example, if you have multiple characters they will all use the same database, so you don't have to remap every time you switch characters. Also you could conceivably dump the database into a text file (see "Backing up your database" on http://www.gammon.com.au/db) and then email that to someone else to incorporate into theirs (effectively, merging your database with theirs).
Some other improvements:
- Shops are marked in darker brown (see example above) so you can more easily find them
- Trainers are marked in yellow
- You can RH-click to add bookmarks (eg. "quest")
- You can search for shops, trainers or for any word in the room name or room description, eg:
mapper shops
Devon's Herbs (BBDF9F09FD) - 8 rooms away
Tolin's Weapons (E5DFB9CC5F) - 8 rooms away
Telgan's Tavern (3DACF5215A) - 9 rooms away
Shrine of St. Wisehart (0B0408C190) - 12 rooms away
Savonty's Barbershop (76E5347C13) - 13 rooms away
Galbo's Armor (D9ADD4A960) - 14 rooms away
The Hungry Goat Inn (7307E97D8E) - 15 rooms away
The Bank of Rune, Lasler Branch (CED07B0B8B) - 16 rooms away
General Store (43AA57A385) - 16 rooms away
mapper train
Hall of Training (79F3C09702) - 11 rooms away
Hall of Training (B7FD218B1D) - 12 rooms away
There were 2 matches which I could not find a path to within 30 rooms.
mapper find irvin
Bedroom (FA2A468D8C) - 1 room away
Living Room (068C303A14) - 2 rooms away
Cramped Closet is the room you are in
Master Irvin's Office (5C862533CB) - 3 rooms away
- Shops and trainers are auto-detected as you walk around
- It detects lines like "The door is closed." and then automatically opens the door.
You could do more, but this should give you something to play with.
The new version is available from GitHub, link given above.
|
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| forral
USA (79 posts) Bio
|
Date
| Reply #6 on Thu 14 Oct 2010 02:58 PM (UTC) |
Message
| Hey Nick,
I installed this updated plugin but I got a few errors. Upon initial loading:
Run-time error
Plugin: Materia_Magica_Mapper (called from world: Materia Magica - Forral)
Function/Sub: Other_Line called by trigger
Reason: processing trigger "Other_Line"
[string "Plugin"]:658: table rooms has no column named desc
stack traceback:
[C]: in function 'error'
[string "Plugin"]:593: in function 'dbcheck'
[string "Plugin"]:658: in function 'save_room_to_database'
[string "Plugin"]:179: in function <[string "Plugin"]:103>
Error context in script:
654 : function save_room_to_database (uid, title, desc)
655 :
656 : assert (uid, "No UID supplied to save_room_to_database")
657 :
658*: dbcheck (db:execute (string.format (
659 : "INSERT INTO rooms (uid, name, desc, date_added) VALUES (%s, %s, %s, DATETIME('NOW'));",
660 : fixsql (uid),
661 : fixsql (title),
662 : fixsql (desc)
You have entered "The Separatists Clan Hall".
Trigger function "Other_Line" not found or had a previous error.
[*][SAFE]<3087hp 2500sp 1692st> [ 0 * 0 * 22 ]
Trigger function "Other_Line" not found or had a previous error.
l
And that line "Trigger function "Other_Line" not found or had a previous error" repeats itself after every single line.
Thanks,
Forral | Top |
|
Posted by
| Nick Gammon
Australia (23,122 posts) Bio
Forum Administrator |
Date
| Reply #7 on Thu 14 Oct 2010 07:55 PM (UTC) |
Message
| For a minute I thought I must have forgotten to create that column "desc" but it gets created with everything else. I don't really understand that. What version of MUSHclient are you using?
Can you please:
- Remove the plugin (so the database isn't in use)
- Delete the database (materiamagica.com_23.db) from your MUSHclient directory (the number 23 might be different depending on what port you connect on).
- Re-install the plugin
Let me know of any other error messages (like, when first starting). |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Nick Gammon
Australia (23,122 posts) Bio
Forum Administrator |
Date
| Reply #8 on Thu 14 Oct 2010 08:14 PM (UTC) Amended on Fri 15 Oct 2010 02:21 AM (UTC) by Nick Gammon
|
Message
| I can see one potential problem. Maybe "desc" is a reserved word, although it works for me.
[EDIT] The word "DESC" is indeed an SQL word (short for descending) so I am puzzled why it ever worked. I am guessing your version of the SQLite engine was earlier and does not allow "desc" in that way. If you had a version of MUSHclient which is 4.60 or earlier this might be the case.
I've updated the plugin to use "description" instead. Try grabbing the latest plugin (it should be version 1.2) and then follow my instructions above to delete the database and start again (it needs to make a new database with "description" rather than "desc").
Because of this change, anyone else who is using the plugin will need to delete the database and start again. Sorry.
As an alternative (if you have already mapped a lot of rooms - this won't be you Forral) you can do this:
- Close MUSHclient so the database is not in use.
- Grab the "command line tool" from the SQLite3 web site, eg.
http://www.sqlite.org/sqlite-3_7_3.zip
- Unzip that and put sqlite3.exe into your MUSHclient directory.
- Open a command window (Run -> Cmd), change directory to the MUSHclient directory, and type:
sqlite3 materiamagica.com_23.db .dump > materiamagica.sql
(The number 23 might be 4000 - it is whatever port you use to connect).
- Use a text editor like Crimson Editor to open up the resulting file materiamagica.sql.
- A few lines down change "desc" to "description":
CREATE TABLE rooms (
roomid INTEGER PRIMARY KEY AUTOINCREMENT,
uid TEXT NOT NULL, -- vnum or how the MUD identifies the room
name TEXT, -- name of room
description TEXT, -- description
building TEXT, -- which building it is in
shop INTEGER, -- 1 = shop here
train INTEGER, -- 1 = trainer here
notes TEXT, -- player notes
date_added DATE, -- date added to database
UNIQUE (uid)
);
- Further down find these lines and change "desc" to "description" in two places:
INSERT INTO sqlite_master(type,name,tbl_name,rootpage,sql)
VALUES('table','rooms_lookup','rooms_lookup',0,
'CREATE VIRTUAL TABLE rooms_lookup USING FTS3(uid, name, description)');
CREATE TABLE 'rooms_lookup_content'(docid INTEGER PRIMARY KEY, 'c0uid', 'c1name', 'c2description');
- Save your changes to materiamagica.sql.
- Rename the original database:
ren materiamagica.com_23.db materiamagica.com_23.db.old
- Recreate the database from the SQL:
sqlite3 materiamagica.com_23.db < materiamagica.sql
- Download and install the amended plugin.
- Start MUSHclient again and try the mapper.
That should fix up the name of the "desc" column to work with the amended plugin.
Of course, only do all this work if you have mapped hundreds of rooms - otherwise it would be quicker just to start again. |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| forral
USA (79 posts) Bio
|
Date
| Reply #9 on Fri 15 Oct 2010 02:57 AM (UTC) |
Message
| Thanks for the fix Nick. Oddly though, its not mapping the rooms. I no longer get the error messages and I do see the message of each room being added to the database with a unique ID, but its not drawing it.
In response to your previous post I am still the latest MUSHClient, 4.64. | Top |
|
Posted by
| Nick Gammon
Australia (23,122 posts) Bio
Forum Administrator |
Date
| Reply #10 on Fri 15 Oct 2010 03:04 AM (UTC) |
Message
| As I mentioned earlier, you need to backtrack a bit. That is, when visiting a new room you are likely to just see one square. But if you backtrack it should join them. So for example, in a town, walk all the way east (you will just see single squares). Then walk west, and they will start to be connected. It doesn't assume that going east from a room means you can go west to get back there. |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Nick Gammon
Australia (23,122 posts) Bio
Forum Administrator |
Date
| Reply #11 on Fri 15 Oct 2010 03:07 AM (UTC) |
Message
| Also make sure you can see the exits:
|
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| forral
USA (79 posts) Bio
|
Date
| Reply #12 on Fri 15 Oct 2010 03:22 AM (UTC) |
Message
|
Nick Gammon said:
Also make sure you can see the exits:
That did the trick, I forgot to re-enable it after reinstalling the plugin.
Thanks alot Nick, this really makes the game more enjoyable to play, and will help with alot of the tricky dungeons. | Top |
|
Posted by
| Nick Gammon
Australia (23,122 posts) Bio
Forum Administrator |
Date
| Reply #13 on Fri 15 Oct 2010 05:52 AM (UTC) |
Message
| Yes I see that it doesn't link rooms without seeing the exits. I've amended the plugin to warn you to turn that on, if it doesn't get the exits line. |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Mudder
(7 posts) Bio
|
Date
| Reply #14 on Sat 16 Oct 2010 04:32 PM (UTC) |
Message
| Nick, you're an animal!
This is cool stuff. | Top |
|
The dates and times for posts above are shown in Universal Co-ordinated Time (UTC).
To show them in your local time you can join the forum, and then set the 'time correction' field in your profile to the number of hours difference between your location and UTC time.
107,016 views.
This is page 1, subject is 2 pages long: 1 2
Posting of new messages is disabled at present.
Refresh page
top