« Science! | Main | Just another day in an extended June »

Code

July 14, 2005

Mud programming

All parts should go together without forcing. You must remember that the parts you are reassembling were disassembled by you. Therefore, if you can't get them together again, there must be a reason. By all means, do not use a hammer.

IBM Maintenence Manual, 1925

For the last two weeks, I've been working on extending the mobile programs to also work for objects and rooms. By and large, Coyote had already completed the hard yards in Chuck, creating a brilliant system that allows them to run mobprogs without alteration by some very clever sleight of hand. Kudos!

Some repairs have been made to non-functioning mob triggers (exit, exall). Triggers have been extended and will restrict you to putting appropriate triggers on mobs/items/rooms (you can't put a 'use' trigger on a mob, or a bribe trigger on a room).

New commands have been added for immortals, all pertaining to programs:

alist Ported from Chuck, coded by Coyote
opstat
rpstat
Function like mpstat for mobs.
opdump
rpdump
Aliases to mpdump, and are completely interchangeable. Added for the sake of completeness.
proglist <area> At Navarre's request, this command functions much like "list" in mpedit, listing all the progs in the current area. If you do not specify an area, it defaults to the one you're standing in.
exarea <area>Lists the exits and entrances to and from an area (not within it) - showing how it is attached to the world. This is in early stages of coding at the moment. It's something I found myself wanting as I was debugging code, and builders will hopefully find it of value.

A small example would be something like this (these are bogus numbers and links)

exarea limbo
Area   Dir   Type    Vnum  Dir  Area 
1      (N)   both    103   (S)  Feline Village
5      (-)   from    32234 (D)  Isle of Misfit Toys
14     (E)    to     32240 (-)  Isle of Misfit Toys

This is still being plotted out, and is subject to change.

There are also a few bug fixes coming up:
Mprogs should no longer lock up and stop working. The problem was traced to a counter that was meant to measure the recursion depth and stop when it hit five. However, if it did hit five, it didn't decrement correctly. This will hopefully prevent a few frustration inspired feather plucking incidents.

Switch was responsible for a good many crashes. The code has been extended a little to stave these off.

Remaining: Item programs require another round of testing, as does the mob exit/exall trigger. Also extend out progs to allow them to block movement. Room programs are complete for OLC and nearing completion for play and thorough testing. Then it shall be time to enjoy the weather...

Scrawled illegibly by Meathe at July 14, 2005 11:58 AM

Comments

Excellent work, seal and dawg. These additions will definitely revolutionize what we are doing and able to do. And boo to you for ruining my efforts to blow up the mud consistently with my fiddling. hehe

Posted by: Navarre at July 14, 2005 02:17 PM



Great work Meathe. Congrats to you and all the staff. I wish you well ;)

Posted by: Loky at July 15, 2005 05:13 PM