Archive for the 'Issues and Bugfixes' Category

Changes to Affect Modifiers

Friday, March 26th, 2010

Handling a skill or spell with multiple modifiers in code has always been a bit of a nuisance.  I changed that around a bit so that they work they way I want them to.

So, here’s what adding three effects looked like in code beforehand:

Affect af = new Affect( Affect.AffectType.spell, spell.Name, 12 + level / 4, Affect.Apply.intelligence, 3, Affect.AFFECT_NONE );
victim.AddAffect(af);
af.ApplyType = Affect.Apply.constitution;
af.Amount = 8;
victim.AddAffect(af);
af.ApplyType = Affect.Apply.dexterity;
af.Amount = -5;
victim.AddAffect(af);

You’ll notice that the target has 3 separate affects added just for one spell.  That’s because each affect could only handle a single modifier.

After making the modifiers into a list that can have a variable length, here’s what the same code looks like:

Affect af = new Affect( Affect.AffectType.spell, spell.Name, 12 + level / 4, Affect.Apply.intelligence, 3, Affect.AFFECT_NONE );
af.AddModifier( Affect.Apply.constitution, 8 );
af.AddModifier( Affect.Apply.dexterity, -5 );
victim.AddAffect(af);

Now it takes half as many lines of code to do the same thing and looks a lot cleaner.  The codebase also shrunk by about 300 lines of code in the process.

This also means that some spells or skills that used to show up multiple times on the score screen will only show up once.

Affect Removal Is Fixed

Tuesday, March 23rd, 2010

Looks like I sorted out that nasty little affect removal bug, so onto the next…

With this and the previous fix, now would be a great time to sign on and start testing the heck out of things.  After all, you don’t want me to run out of work to do, do you?  :P

A Bunch of Little Fixes

Friday, March 19th, 2010

I had a chance to tinker with the code today. I made a bunch of relatively minor fixes (code-wise). Here’s the list:

- Fixed game menu consistency so same one appears every time.
- Some minor text changes and/or typo fixes.
- Made the help editor a little easier to use and added a ‘delete entry’ button.
- Made the MUD screen editor a little easier to use.
- Fixed the immortal ’slay’ command.
- Fixed the immortal ‘load object’ command.
- Fixed the ‘history’ and ‘!’ commands, the latter of which would instantly crash the MUD when used.
- Improved the issue system and added the ability for immortals to create issues.
- Some help entry additions and improvements.

There are two major bugs right now that will take some digging to fix properly: Items can’t be picked up, and spell/skill effects never seem to wear off.

Even though there’s still quite a lot of work to do before the codebase conversion could be considered ‘complete’, it’s becoming a bit more fun to work on.

Immortal ‘Set’ Commands Repaired

Friday, December 11th, 2009

One of the casualties of the codebase rewrite was the disabling of the immortal ’set’ command, which is pretty useful for administrative tinkering. It’s been repaired, so immortals are godlike once more. It doesn’t improve gameplay any, but it does help development.

Repairs For The Tell Command

Wednesday, December 9th, 2009

The tell command was rather broken. I fixed the broken parts that I knew about, so if there are any broken parts left in it, they’re ones I don’t know about.

Who Command Repaired

Saturday, November 28th, 2009

Some uses of the “who” command would lock up the MUD.  This appears to be fixed now.  Report any anomalies.

Scan Command Fixed

Saturday, November 21st, 2009

One of the nagging problems I had been meaning to get to was the non-functional scan command. It’s a recursive command, and the C# way is a bit different from the C++ way. It was easier to fix than I had expected and is working now, so scan away.

Test Connection Up Again (Temporarily)

Friday, November 13th, 2009

I put up the MUD server so I could do some development.  Telnet basternae.org port 4502 and feel free to report anything you find.   I haven’t fixed everything since the last test run, but did fix a handful of things.

I don’t have a restart script running, so if it crashes, that means it’s going to stay down until I check it again.

For those of you who want to use the old version of DikuEdit, I added a link to it on the sidebar.  I would like to get a bit of feedback on the new editor, so feel free to try that and let me know what you think of it so far.

A Solid Batch of Fixes

Tuesday, September 8th, 2009

Thanks to reports from the pre-testing test and from actually trying to use the MUD as a player, I’ve taken care of a bunch of things.  Here’s the list:

– Fixed “look in object” command.
– Fixes to damage messages.  Sometimes they wouldn’t print thanks to a stray ‘\0′ (null) character.
– Kill message now shows properly.  Yet again, caused by a stray null character.  A remnant from the old C days.
– Improvements to name capitalization in prompts, descriptions, and room entry/exit messages.  Some things will still need adjustments, but it’s better.
– Fixed “no help on Grey Elf” during character creation.
– Fixed display of spell schools when using the “spells” command.
– Fixed a nasty bug that would cause a newly-killed player to become unplayable.
– Picking up items should work now.  Zone files weren’t synchronized with code (zone files were a version behind in the zone format).  That can cause all manner of weirdness, but the fix is simple — run the zone converter to build a new set of zones.  In this case, flags that included “takeable” settings were missing.
– Corpse creation should be less broken.  Can’t promise it’s perfect, but it’s better.  At the very least, I can kill things and loot coins from corpses.

Those are some pretty significant fixes, but I’m still no more than 45% through the things mentioned during the test.  Add to that the fact that I found a few other things that need to be looked at.  Actually PLAYING a game you’re working on does wonders for figuring out whether it works as intended.

Test Port Turned Off Now

Sunday, August 9th, 2009

The experiment is over for now. I more-or-less have the data I was looking for — what the most major issues are, where the crashes happen, what’s super-broken, and what needs a lot of work.  If you have any other results from your experimentation, feel free to send them to xangis at the yahoo email service.  Thank you for what you’ve sent in so far.

The main crashy issues have to do with object deletion and some odd who list thing.  I’ll have to get those sorted out before the next test, whenever that is, but it shouldn’t be too tough.

After this batch of issues is worked out I’ll have to think about finding someone to be zone chief, and/or someone to be the highfalutin’ potentate of overlorditude.