Materia Magica Mapper bug

Posted by Toskin on Sun 12 Oct 2014 09:49 AM — 10 posts, 35,128 views.

Czech Republic #0
Found another bug, while trying to start mapper on awakened worlds MUD. Here is output:

[string "Plugin"]:731: table rooms has no column named shop
stack traceback:
[C]: in function 'error'
[string "Plugin"]:619: in function 'dbcheck'
[string "Plugin"]:731: in function 'create_tables'
[string "Plugin"]:501: in function <[string "Plugin"]:471>

I don't know what to do with this. Any suggestions ?
Australia Forum Administrator #1
What version of that plugin do you have? Open it with a text editor like Notepad and check the first few lines. They should look like this:


<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE muclient [
  <!ENTITY show_vnums "true" > 
  <!ENTITY show_timing "false" > 
  <!ENTITY show_completed "false" > 
  <!ENTITY show_database_mods "true" > 
  <!ENTITY show_other_areas "false" > 
  <!ENTITY show_area_exits "false" > 
  <!ENTITY show_up_down "true" > 
  <!ENTITY speedwalk_prefix "" > 
]>

<muclient>
<plugin
   name="Materia_Magica_Mapper"
   author="Nick Gammon"
   id="1c17ac2c83b2b66c402c80c6"
   language="Lua"
   purpose="Mapper for Materia Magica"
   save_state="y"
   date_written="2010-10-12"
   date_modified="2010-10-18 07:05"
   requires="4.61"
   version="1.5"
   >


And what version of MUSHclient?

Template:version
Please help us by advising the version of MUSHclient you are using. Use the Help menu -> About MUSHclient.
Amended on Sun 12 Oct 2014 07:56 PM by Nick Gammon
Czech Republic #2
So, about version of plugin:

date_written="2010-10-12"
date_modified="2010-10-18 07:05"
requires="4.61"
version="1.5"
>

It's newest version on Github.
About client version, I have MUSH v 4.94.
Australia Forum Administrator #3
I can't see why it is doing that because it should have a shop column.

I installed the plugin just then and didn't get an error message.

Can you find the name of any existing database? Go into Immediate scripting (Ctrl+I) and type:


print(GetInfo (66) .. Trim (WorldAddress ()) .. "_" .. WorldPort () .. ".db")


Then hit Run.

Then find that file in your MUSHclient folder and delete it. Then reinstall the plugin.
Czech Republic #4
Maybe I found my problem:

Looks like that after migrating from old computer, MUSH somehow saves his files into that folder, rather in Program Files/MUSHclient.

I will try to reinstall MUSH after complete cleanup.

P.S. Didn't helped. After adding world files and plugin files(materia magica + few discworld plugins), MUSH behaves in same manner as before. I haven't copied any config files for global settings.

P.P.S. After another reinstall, I have loaded only awakened worlds and plugins. For some reason, plugin loaded without problems. Still, It is not detecting any movement or look command.
Amended on Tue 14 Oct 2014 07:38 PM by Toskin
Australia Forum Administrator #5
As I recall, this plugin detects movement by matching on room descriptions and exits. Did you type:


set show-exits


The output should look like what I showed on the page about the mapper, otherwise it probably won't notice you moving around:

http://www.gammon.com.au/forum/?id=10667
Czech Republic #6
Nick Gammon said:

As I recall, this plugin detects movement by matching on room descriptions and exits. Did you type:


set show-exits


The output should look like what I showed on the page about the mapper, otherwise it probably won't notice you moving around:

http://www.gammon.com.au/forum/?id=10667


Thanks for advice about exits.
About previous reply, I apologize for LOTS of mess. After digging in my PC, I found out that database, world and config files are in totally different location then rest of program (even unistall with CCleaner weren't able to delete them, probably win 8 "feature") After cleaning, plugin was installed without problems.
Czech Republic #7
Nick Gammon said:

As I recall, this plugin detects movement by matching on room descriptions and exits. Did you type:


set show-exits


The output should look like what I showed on the page about the mapper, otherwise it probably won't notice you moving around:

http://www.gammon.com.au/forum/?id=10667


Tried, but Awakened worlds refuses this type of command. It just not extist for this. but on the other hand, shouldn't have MM mapper handle this ?:


In the Lobby of the Neophyte Guild
You've finally finished the Neophyte Guild! In the Lobby area of the
Neophyte Guild, there are a few people to the EAST that need some jobs done.
Maybe you should talk to them.
Obvious exits:
North - Entrance to the Neophyte Guild
Ne - Shadowland: In-Character Message Board
East - Ricky's Eatery
South - The Neophyte Guild Store
Sw - The Salvation Army
Nw - The Neophyte Hotel

10/10 HP 10/10 MP 2113 Nuyen 24.25/80 Kg

This is what I get when I write down look command.
Australia Forum Administrator #8
Toskin said:

Tried, but Awakened worlds refuses this type of command. It just not extist for this. but on the other hand, shouldn't have MM mapper handle this ?:


Well, no it shouldn't. The mapper is for Materia Magica, not Awakened Worlds.

The way the mapper works is that it has to "know" when you have entered a new room (it does this by a trigger) and also to tell one room from another one. It does this by hashing up the room description to get a unique "ID" for the room.

Now certainly it should work on other MUDs but you need to set up a trigger that matches when you go into a room, and try to turn that room description into a hash. For example if you detected:


In the Lobby of the Neophyte Guild
You've finally finished the Neophyte Guild! In the Lobby area of the
Neophyte Guild, there are a few people to the EAST that need some jobs done.
Maybe you should talk to them. 


Hash that up and use that as the room ID.
Czech Republic #9
Nick Gammon said:

Toskin said:

Tried, but Awakened worlds refuses this type of command. It just not extist for this. but on the other hand, shouldn't have MM mapper handle this ?:


Well, no it shouldn't. The mapper is for Materia Magica, not Awakened Worlds.

The way the mapper works is that it has to "know" when you have entered a new room (it does this by a trigger) and also to tell one room from another one. It does this by hashing up the room description to get a unique "ID" for the room.

Now certainly it should work on other MUDs but you need to set up a trigger that matches when you go into a room, and try to turn that room description into a hash. For example if you detected:


In the Lobby of the Neophyte Guild
You've finally finished the Neophyte Guild! In the Lobby area of the
Neophyte Guild, there are a few people to the EAST that need some jobs done.
Maybe you should talk to them. 


Hash that up and use that as the room ID.


I have not much experience with scripting, so I have no idea how to make that hashing script.