[Home] [Downloads] [Search] [Help/forum]

Gammon Forum

See www.mushclient.com/spam for dealing with forum spam. Please read the MUSHclient FAQ!

[Folder]  Entire forum
-> [Folder]  MUDs
. -> [Folder]  General
. . -> [Subject]  Video showing automatic mapper, health bars, etc.
Home  |  Users  |  Search  |  FAQ
Username:
Register forum user name
Password:
Forgotten password?

Video showing automatic mapper, health bars, etc.

It is now over 60 days since the last post. This thread is closed.     [Refresh] Refresh page


Posted by Nick Gammon   Australia  (21,322 posts)  [Biography] bio   Forum Administrator
Date Sat 27 Feb 2010 12:04 AM (UTC)

Amended on Tue 26 Nov 2013 03:29 AM (UTC) by Nick Gammon

Message

I have made a video showing in action some of the telnet negotiation ideas I have been discussing in another thread:

Demonstrated in the video are:

  • Mapper with zoom-in and zoom-out added
  • Box at the top which shows the room name, exits, description, npcs, players, and objects
  • Health bar windows for three players (grouped) - the leader is shown with a small crown symbol
  • Health bar window of mob currently being attacked
  • Experience bar
  • Chat and combat log (ie. normal text window) in a smaller size on the bottom-right

What the video makes clear is that it all works quickly and smoothly. It is fun and engaging to play.

You can visit the video on Vimeo at http://vimeo.com/80335233


- Nick Gammon

www.gammon.com.au, www.mushclient.com
[Go to top] top

Posted by Nick Gammon   Australia  (21,322 posts)  [Biography] bio   Forum Administrator
Date Reply #1 on Sat 27 Feb 2010 02:08 AM (UTC)

Amended on Sat 27 Feb 2010 09:28 PM (UTC) by Nick Gammon

Message
How to reproduce this yourself:


  • Grab version 4.50 (or above) of MUSHclient:

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

  • Go to GitHub and choose the "status_messages" branch of the smaugfuss project:

    http://github.com/nickgammon/smaugfuss/tree/status_messages

  • Click on the "download source" button to grab the source

  • Extract the source to your Cygwin or Linux directory, renaming it as appropriate.

  • Change to the "src" directory.

  • Mkdir the "o" directory if it isn't there

  • If using Cygwin edit the Makefile file and at about line 5 remove the "#" where it says "uncomment to compile under Cygwin".

  • Type "make" to build the SmaugFuss server

  • Run the server:

    
    cd ../area
    ../src/smaug 4020
    


  • Start up MUSHclient

  • Make a world file pointing to your server

  • Add in these plugins (File -> Plugins)


    • Experience_Bar_Telnet.xml
    • Health_Bar_Miniwindow_Telnet.xml
    • Mapper_Telnet.xml
    • Omit_Blank_Lines.xml
    • Room_Contents_Telnet.xml


    Get those plugins from:

    http://github.com/nickgammon/plugins

  • Connect to the server and make a new character.

  • Once you are connected you should see the map, status bars etc.

  • Turn off prompts:

    
    config -prompt
    


  • If you get some error messages about "dark_message" edit the Mapper_Telnet.xml plugin and at around line 541 add a few extra lines:

    
      -- let them move it around                 
      movewindow.add_drag_handler (win, 0, 0, 0, 0)
        
      --> add these
      local dark_message = "It is too dark to see."
      local blind_message = "You are blind!"
      local exits_message = "Exits:"
    


    Then reinstall the plugin.

    Note, the latest versions of the plugins will be here:

    http://github.com/nickgammon/plugins


  • It should be working now.



To get the offset text, copy and paste this alias:


<aliases>
  <alias
   match="makerect"
   enabled="y"
   send_to="12"
   sequence="100"
  >
  <send>TextRectangle(350,   -- left
              400,  -- top
              350 + GetInfo (213) * 80, -- 310 + width for 80 characters
              -15,  -- 13 pixels from the bottom
              5,  -- BorderOffset, 
              ColourNameToRGB ("gray"),    -- BorderColour, 
              2,  -- BorderWidth, 
              ColourNameToRGB ("silver"),  -- OutsideFillColour, 
              8) -- OutsideFillStyle (fine hatch)
</send>
  </alias>
</aliases>


Template:pasting For advice on how to copy the above, and paste it into MUSHclient, please see Pasting XML.


Then type "makerect" and you should see the text shrink to the size I had it.

To easily zoom the map in and out make a macro (eg. F2) and put "map zoom out" into it, and another macro (eg. F3) and put "map zoom in" into it. Then just hit F2 or F3 to zoom in and out.



- Nick Gammon

www.gammon.com.au, www.mushclient.com
[Go to top] top

Posted by Rash   United Kingdom  (56 posts)  [Biography] bio
Date Reply #2 on Sat 27 Feb 2010 11:51 AM (UTC)

Amended on Sat 27 Feb 2010 11:53 AM (UTC) by Rash

Message
This is great Nick. Everything your doing along with everyone else here with these plug-ins and the power of Mush Client keeps bringing us one step closer to making muds more like MMO's in the graphical sense. Great work once again.

Is this all possible (as in these plug-ins), due to to the Telnet additions to the smaugfuss code from the source you posted? (Oh which reminds me, mud.h has no new line at end of file)

Was there a thread showing what additions you added the source to make this possible?

Oh and encase you was not aware of it but;

Forbidden
You don't have permission to access /files/mushclient/mushclient450.exe on this server.

This is on the 5.40 download of Mush Client.
[Go to top] top

Posted by Unrivaledneo   (1 post)  [Biography] bio
Date Reply #3 on Sat 27 Feb 2010 02:53 PM (UTC)
Message
When compiling under cygwin I get a error when it compiles handler.o

Compiling o/handler.o....
cc1plus: warnings being treated as errors
handler.c: In function 'std::string fixup_lua_strings
handler.c:95: error: case label value is less than minimum value for type
handler.c:136: error: case label value is less than minimum value for type
make[1]: *** error 1
make: *** [all] Error 2
[Go to top] top

Posted by Nick Gammon   Australia  (21,322 posts)  [Biography] bio   Forum Administrator
Date Reply #4 on Sat 27 Feb 2010 07:16 PM (UTC)
Message
Rash said:


Is this all possible (as in these plug-ins), due to to the Telnet additions to the smaugfuss code from the source you posted? (Oh which reminds me, mud.h has no new line at end of file)

Was there a thread showing what additions you added the source to make this possible?

Oh and encase you was not aware of it but;

Forbidden
You don't have permission to access /files/mushclient/mushclient450.exe on this server.


This is on the 5.40 download of Mush Client.



Fixed the permissions now, sorry about that.

The changes should be possible to view if you grab the source with Git and do a "git diff" between an early commit and the latest one. I had trouble getting Git to pull the branch when I tested with Cygwin, but that is just my ignorance of Git no doubt. Something like this will do it:


git diff edb8a5 > diffs.txt


Or do it on a per-file basis:


git diff edb8a5 -- comm.c > diffs.txt


If you can't get that to work I'll run that command and publish the diff file.

I fixed the problem in mud.h but forgot to push it to GitHub, done now.

- Nick Gammon

www.gammon.com.au, www.mushclient.com
[Go to top] top

Posted by Nick Gammon   Australia  (21,322 posts)  [Biography] bio   Forum Administrator
Date Reply #5 on Sat 27 Feb 2010 07:21 PM (UTC)
Message
Unrivaledneo said:

When compiling under cygwin I get a error when it compiles handler.o

Compiling o/handler.o....
cc1plus: warnings being treated as errors
handler.c: In function 'std::string fixup_lua_strings
handler.c:95: error: case label value is less than minimum value for type
handler.c:136: error: case label value is less than minimum value for type
make[1]: *** error 1
make: *** [all] Error 2



Handler.c:95 ...


        // Note: will not apply if UTF-8 encoding present
        case '\xFF':  // IAC becomes \255  
          count += 3;  
          break;


It didn't happen to me, but I'm not surprised. Try casting it:


        // Note: will not apply if UTF-8 encoding present
        case (unsigned char) '\xFF':  // IAC becomes \255
          count += 3;  
          break;


Ditto for line 136.



- Nick Gammon

www.gammon.com.au, www.mushclient.com
[Go to top] top

Posted by Rash   United Kingdom  (56 posts)  [Biography] bio
Date Reply #6 on Sun 28 Feb 2010 12:29 AM (UTC)

Amended on Sun 28 Feb 2010 01:39 AM (UTC) by Rash

Message
Nick Gammon said:


Fixed the permissions now, sorry about that.

The changes should be possible to view if you grab the source with Git and do a "git diff" between an early commit and the latest one. I had trouble getting Git to pull the branch when I tested with Cygwin, but that is just my ignorance of Git no doubt. Something like this will do it:


git diff edb8a5 > diffs.txt


Or do it on a per-file basis:


git diff edb8a5 -- comm.c > diffs.txt


If you can't get that to work I'll run that command and publish the diff file.

I fixed the problem in mud.h but forgot to push it to GitHub, done now.


I can't seem to get that command to work. I'm not at all good with git. Could you put that diffs.txt file up yourself? Would appreciate it.

I'm really impressed Nick, especially with the status aliments been displayed under each players 'box'. Now to get a timer up for those to show how long the buff/de-buff lasts for. Oh, I did however struggle to see the colour difference between the buffs/de-buffs even though they are separated they look almost exactly the same colour wise which may cause a problem if a single buff/de-buff is in effect and your not sure what it is. I also noticed just as I was about to post this when I noticed sleeping next to my character name. He was snoring his head off! Brilliant!

Would we be able to use telnet negotiation to get things such as inventory and current wear/equipment lists? We could make good use of such information.
[Go to top] top

Posted by Nick Gammon   Australia  (21,322 posts)  [Biography] bio   Forum Administrator
Date Reply #7 on Sun 28 Feb 2010 04:35 AM (UTC)
Message
You can get the diffs by simply grabbing an existing SmaugFuss download, unzipping that into one directory and then doing a straight "diff -r" (recursive diff) on the source directories.

As for the status ailment colours, that is a minor detail. You could have them as white text on a red background for example.

As for the inventory lists etc. that seems like a logical progression.

- Nick Gammon

www.gammon.com.au, www.mushclient.com
[Go to top] top

Posted by Nick Gammon   Australia  (21,322 posts)  [Biography] bio   Forum Administrator
Date Reply #8 on Sun 28 Feb 2010 04:41 AM (UTC)
Message
I have been working today on migrating the mapper information from in-memory Lua tables to a SQLite3 database on disk. This has the advantage of:


  • More immune to crashes
  • Faster startup and shutdown, as it isn't having to load and save all rooms
  • Less memory, as if you have thousands of explored rooms, it only will keep in memory the ones you are currently near
  • I have experimented with the "full text search" feature of SQLite3. This lets you do something like "map search baker*" and get a list of all rooms with the word "baker" in it, and then compute the speedwalk to take you there.
  • Other helpful things would be to find all rooms which are shops (for example).
  • Another useful feature would be to save in the database what items you have found in a shop. So for example, if you found a shop that sold nice swords, then later on you could do a search for "shops that sell swords" and get a list to refresh your memory.

- Nick Gammon

www.gammon.com.au, www.mushclient.com
[Go to top] top

Posted by AaronM86   (42 posts)  [Biography] bio
Date Reply #9 on Fri 02 Apr 2010 02:29 AM (UTC)
Message
This is just beyond awesome. I would say one could even coin it the evolution of MUD'ing. Totally wish I could set something up like this for Dark-Legacy lol.
[Go to top] top

Posted by Nick Cash   USA  (626 posts)  [Biography] bio
Date Reply #10 on Fri 02 Apr 2010 04:32 AM (UTC)
Message
One word: Epic.

~Nick Cash
http://www.nick-cash.com
[Go to top] 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.


11,604 views.

It is now over 60 days since the last post. This thread is closed.     [Refresh] Refresh page

Go to topic:           Search the forum


[Go to top] top

Quick links: MUSHclient. MUSHclient help. Forum shortcuts. Posting templates. Lua modules. Lua documentation.

Information and images on this site are licensed under the Creative Commons Attribution 3.0 Australia License unless stated otherwise.

[Home]


Written by Nick Gammon - 5K   profile for Nick Gammon on Stack Exchange, a network of free, community-driven Q&A sites   Marriage equality

Comments to: Gammon Software support
[RH click to get RSS URL] Forum RSS feed ( https://gammon.com.au/rss/forum.xml )

[Best viewed with any browser - 2K]    [Hosted at FutureQuest]