Showing posts with label GodWars. Show all posts
Showing posts with label GodWars. Show all posts

Friday, 1 April 2011

GUI snippet released

After some more testing and refinement, I've decided my snippet is ready to be released into the wild.  I really need to get back to working on God Wars II anyway.

Tijer's mud, the Realm of War, is already using the snippet - so I decided to create a quick and simple demo GUI for it, by adapting the plugin I'd created for Realms of Despair:

(click image to enlarge)

I also spent a few minutes creating another version to release with the snippet:

(click image to enlarge)

You can download the snippet from here: http://www.godwars2.org/download/protocol.tgz

And the plugin from here: http://www.godwars2.org/download/Generic_Plugin.zip

Monday, 28 February 2011

Mudlet GUI: 28-Feb-2011

After several more hours playing with the links, and no progress to show for it, I decided to cut my losses and give up.  They work well enough for creatures and equipment, so I'll just disable the other links and wait until Mudlet adds proper MXP support.  I've too many other things that need doing, and progress on the mud is starting to lag behind, so I really can't justify any more time tinkering just add links to the help files.

On the GUI front, I've enlarged the font on the blur, adrenaline and movement icons, to bring them more in line with the MUSHclient plugin.  I've also got the movement icon correctly changing the colour of the text label based on the the movement type (walk, jog, run, etc).

I also discovered a minor bug, with the map using the yellow dot instead of the blue dot for other players - that's been fixed.

Finally, you can now target things by clicking on their miniavatar.

(click image to enlarge)

I've also been working on my MSDP snippet - I've got it communicating with the client, now I'm working on the variable table.  It should only send variables when they change, so each player needs a table that can hold multiple variable types.  This was much easier in C++, but most muds are written in C, and I want something that can be widely used.

Friday, 25 February 2011

Mudlet GUI: 25-Feb-2011

Following suggestions from Vadi and Heiko, I was able to get the moon icon to correctly rise and set behind the map.  After doing that I decided to shift most of the label creation into the onConnect() function, to tidy it up a bit.

The links still aren't quite working if there are two on the same line - but at least now the first is correctly displayed:

(click image to enlarge)

Wednesday, 23 February 2011

Mudlet GUI: 23-Feb-2011

The map borders are now separate images that are drawn onto the background, as is the sunrise image (the trail that the sun/moon follows).

I've added the sun/moon icon above the maps, along with the current time.  There's still a slight problem with the sun/moon being drawn over the map when it rises and sets, I need to find some way to draw it behind instead (so that it appears to rise up from under the map, and set back down below the map).

(click image to enlarge)

Saturday, 19 February 2011

Mudlet GUI: 20-Feb-2011

I've now added the proper colours for the health, mana and primal energy bars:

(click image to enlarge)

I also moved the initial GUI setup into an onConnect() function, and done some more work on avatars.

Friday, 18 February 2011

Mudlet GUI: 19-Feb-2011

After a lot of messing around I managed to create a new SEND format that includes RGB colours - although it doesn't yet work properly for XTerm 256 colours, it does at least work with regular ANSI:

(click image to enlarge)

Note that the foreground colours are used for rare, uncommon, common, epic and mundane, while the background colours are used for artifact, relic, mythical, legendary and magical.  The default background colours are all "none", as I don't personally like having text with background colours, but from a functional perspective it could be very useful for players who (for example) are only interested in collecting rare artifacts, etc.

You can see a little white label at the bottom of the text window containing the text "look collar".  That's actually the mouseover message - my mouse pointer doesn't show up in the screenshot, but that's what you get when you hover over a link.

Mudlet GUI: 18-Feb-2011

Mudlet doesn't support MXP, but it does allow you to turn text into clickable links.  With a lot from help from Vadi, last night I managed to simulate MXP links.  I actually send the data in a slightly different format for Mudlet, to make it easier to parse, but the results are much the same:

(click image to enlarge)

The underlined text is all clickable, and you can hover over it with the mouse to see what happens when you click.

I'm still having a couple of problems though - the first is the colouring (which is stripped), and the second is the link extending beyond the highlighted text.  If these can be resolved, Mudlet will be able to take full advantage of my mud's MXP features.

On another note, I managed to get the function keys working.

Wednesday, 16 February 2011

Mudlet GUI: 17-Feb-2011

I've been busy working on the mud recently, but as the Mudlet GUI is so close to completion I thought I'd put some more effort into it.  I've now got the hotkey buttons along the top working - at least as clickable buttons.  I'm still trying to work out how to use keybindings for the function keys.

(click image to enlarge)

Monday, 7 February 2011

Mudlet GUI: 07-Feb-2011

Thanks to both Vadi and Oneymus, I was able to resolve the issue with the miniavatar gauges.

I've now added the four icons below the target avatar (in the bottom left), which were previously just part of the background image, and have adjusted the labels on the spell icons.  Rather than repeating the same code over and over for drawing black outlines around the text labels on the icons and bars, I created a generic outline_text() function.

I also took the opportunity to clear the avatars, icons and energy bars from the static background image, now that they're all drawn properly.  I had forgotten the frames for the avatars, so I added those while I was at it.  Thus when you start up Mudlet you get this:

(click image to enlarge)

And when you're connected you get this:

(click image to enlarge)

I still need to add the hotkeys at the top and the sun/moon icon (and time) above the maps, as well as the mouseover and clickable stuff, but it's nearly there.

Sunday, 6 February 2011

Mudlet GUI: 06-Feb-2011

As Mudlet doesn't support MSP, I've added sound triggers to the MSDP package for my psuedo-ATCP.  It generally works, although as far as I can tell Mudlet doesn't support playing multiple sounds simultaneously.  This means that combat sounds tend to cut off the (longer) weather and terrain sounds.

I've also added the target avatar and associated health bar in the bottom left, although the icons below it still need their text labels.

Finally, I've added energy bars below the miniavatars on the right (below the two maps), and here I've run into a problem - it seems that while hideWindow() hides labels, when used on a gauge it instead displays it as if it were empty:

(click image to enlarge)

Hopefully I'll be able to find a workaround for this - perhaps by shrinking them, or moving them behind something else.

Wednesday, 2 February 2011

Mudlet GUI: 2-Feb-2011

I've not worked on the GUI for a while, but decided to do a bit more on it tonight.  I resized the regular avatars so that they're all 64x64, and now display the PC's avatar in the top left corner.  I then added the spell icons underneath, although they don't have the pie-shaped timer like they do in the MUSHclient version:

(click image to enlarge)

I also went through the script and made sure all the files were loaded from relative paths.

The primal energy bar at the bottom is something I started working on previously (after posting the last report) but didn't finish - it doesn't yet differentiate between safe and regular primal.

Monday, 24 January 2011

Mudlet GUI: 24-Jan-2011

Redid the health, mana and actions energy bars (below the text window) to use the same style as the MUSHclient plugin, using a stylesheet to create the gradients - very different to the way I did it before.  The text labels had to be drawn on top manually, as they were too small for the built-in gauge labels, and the black outlines (to make the text clearer to read) also had to be done manually.  I had to specify each colour for the gradients, so after doing green I just shuffled the RGB values around to speed it up - at some point I'll go over it properly and get the slightly brighter red for health and the blue-purple for mana.

(click image to enlarge)

The primal bar (the long one at the very bottom) is going to be a bit more tricky, as it's a two-step energy bar - it uses gold and silver to distinguish between safe and regular primal.

Mudlet GUI: 23-Jan-2011

I discovered the problem with transparency - I was so busy checking all the properties that I didn't actually check whether the image itself actually had a transparent background.  In MUSHclient it's handled automatically with a flag, and it's been that way so long I didn't really think about it.

Anyway, I grabbed a tool called TransparentPNG and converted the images, and it worked like a charm.

I also created another set of smaller avatars. It'll mean a larger download, but not excessively so, and there's no other alternative if I want to offer a similar interface to the MUSHclient plugin.

For the circle on the top map, and the dots on the bottom map, I created a new "shapes" folder and just added some pngs with transparent backgrounds.

So now the map looks like this:

(click image to enlarge)

Or if you're in a dungeon, like this:

(click image to enlarge)

You can't click on the map or miniavatars yet, but at least they update in real-time as you move around.  There's still quite a lot to add, but it's coming together.

I've also managed to get sound working, so I'll integrate that into the script as well to take advantage of the soundpack.

Friday, 21 January 2011

Mudlet GUI: 21-Jan-2011

In MUSHclient I draw a textured background image, then set the size of the text window and draw a black background behind it.  I couldn't get this approach to work for Mudlet, as it would always cover the text, so instead I tried something else...something really fast and dirty.

I took a screenshot of the MUSHclient plugin and chopped it up into four sections - top, bottom, left and right.  I then got Mudlet to draw the four images, and set the borders for the text so that the text window is in the middle of the display - like this:

(click image to enlarge)

It now looks quite a bit like my MUSHclient plugin, but it's just a static image.  I rather like having the scrollbar on the right side of the text window, too - it happened automatically, while doing the same thing in MUSHclient would require quite a bit of work.

Anyway, I decided to try just drawing the maps over the top of the interface, as I figured it would at least save me the hassle of trying to align up all those borders again.  Here we go:

(click image to enlarge)

There are some problems though:

1. The buildings on the zoomed (lower) map are supposed to have a transparent background.  That's how my MUSHclient plugin does it, but I've not yet worked out how to do that in Mudlet, so for now it's displaying a white background behind each building.  I've been assured it can be done though, so it's just a matter of fiddling around a bit.

2. The avatars are supposed to be resized as needed - they're 28x28 when displayed under the zoomed map, but 64x64 when displayed on the left as your target.  Some of the avatar images have also been saved as different sizes.  In MUSHclient this doesn't matter, as it resizes it on the fly, but this isn't yet possible in Mudlet.  If you look at the avatars under the zoomed map, you'll see that they're actually just showing the top-left corner of the avatar.  It looks like I'll have to provide a second set of avatars.

3. Mudlet doesn't yet allow you to draw shapes, so there's no circle on the top map and no creature dots on the zoomed map.  I suspect this'll have to be done with labels.

Mudlet GUI: 20-Jan-2011

Last night I decided to have another play with Mudlet, and it was a lot easier than I remembered.  I was mostly doing it because I wanted to try out the latest version of Mudlet, and figured it would be a good time to check if ATCP was still working - lucky I did, as it seems I missed a couple of things when I rewrote my negotiation code.  So I fixed my ATCP implementation and created an energy bar script to test it, using Vadi's fancy gauge stylesheet to make the bars look prettier.

(click image to enlarge)

I'm not sure I want to spend the time creating a full GUI like my MUSHclient one, but I may see if I can polish this a little - enough to hopefully get some GW2 players interested in creating their own.  At the very least I'd like to add an avatar and maps.

Disclaimer: My ATCP implementation only supports a single package - a custom MSDP package, which transmits the MSDP data using the ATCP format and telnet option.  I only added this for clients that support ATCP and not MSDP (primarily Mudlet, although the PHudBase client has the same issue).

Thursday, 11 November 2010

MUSHclient GUI: 11-Nov-2010

I've been aware for a while that the maps can look a bit tile-ish, because of the simple fact that they repeat the same tile over and over - but it looks particularly bad on the full map (as you can see on the previous screenshot).  Part of that was because I'd just halved the height and width of the normal tiles using Paint, so I got the mud to properly generate smaller tiles - however it still didn't look that great.

So I tried creating two of each tile set and alternating between them - it was better, but still not that good.  Randomising them was a bit better still, but looked wierd when you moved around, as the whole landscape seemed to shake.

In the end I settled on five of each tile set, with the plugin selecting one psuedo-randomly each time it draws a tile, and I think the maps look quite a lot better.

(click image to enlarge)

Wednesday, 10 November 2010

MUSHclient GUI: 10-Nov-2010

I decided to have a go at creating a full map of the current world, which for now can be opened and closed by clicking on your avatar (just so that I could test it).  It'll probably be opened by some sort of magnifying glass button on the border of the top minimap, but I've not yet decided how best to do it.

For the time being, the map only works for the Realm plane (the newbie world), and the index values are hardcoded into the plugin.  For the Nexus (which is 9 times as large) I'm going to need much smaller tiles, and I'd rather not reveal it all up front - so I may have it reveal the map as you move around, and save the data between sessions.

(click image to enlarge)

Monday, 1 November 2010

MUSHclient GUI: 30-Oct-2010

Finally got the hotkeys working.  There's a 'hotkey' command in the mud that allows you to specify a label and action for each hotkey, and you can either press the buttons or use the function keys on your keyboard.  Because they're configured within the mud, you can specify different actions for each character - so your mage can have spells, your wolf can have pounce and claw attacks, etc.

I also reduced the size of the energy bars on the mini-avatars, allowing up to 3 rows of avatars to be displayed.  They don't quite align up (they're off by a couple of pixels) but you don't really notice unless you zoom in.  One thing I really need to add is a way to recognise your own pets, particularly for the up-coming Lich class, which will depend heavily on undead servants.

Finally, the maps now refresh properly for all locations.  Previously they didn't show anything when inside the dojo, practice grounds, or various other buildings.

(click image to enlarge)

MUSHclient GUI: 19-Oct-2010

Following feedback from Bobo the bee on MudBytes, I've added a blur timer (an eye icon - I'm not happy with it but it'll serve until I can find something better).  I've also tried moving the boot icon to the left, as this gives me more space under the map for drawing mini-avatars:


(click image to enlarge)

I'm wondering about putting the large enemy avatar on the right, beside the mini-avatars (so that targeting someone would effectively just increase the size of their avatar).  I think I'd find it harder to monitor their health that way though.

MUSHclient GUI: 16-Oct-2010

I decided to have a go at adding the mini avatars below the zoomed map, as I mentioned earlier.  I'm a bit short on space, but I can fit seven of them side-by-side (although if there are seven, the last one sticks out two pixels further than the map).  I was nearly able to fit in two rows, but not with the energy bars, and using the pie-shaped timer doesn't seem to fit.  Other options would be to remove the boot icon, or put the additional avatars beside it - but I can't think of a better place for the boot, and I'm thinking of adding more icons beside it anyway.

So it looks like I'll be limited to seven mini avatars.  But as it shows the seven closest things, that's probably okay - I don't generally have a lot of things in one place, and you could always click on the map to move closer (and thus change which avatars are displayed).  The only real exception would be in the starting village, where there are already seven buildings, and where players tend to pass through or sometimes even hang around.

You can click on the mini avatars to target the appropriate thing, but there's no other way to tell which is which.  One option might be to use a range of different colours for each dot on the map, and use the same colours for the energy bars - that would allow the user to distinguish between mobs at a glance.  But I wouldn't like it from a consistency perspective.

(click image to enlarge)