<html> <head> <title>The Daleken MultiUser Disaster - News</title> <link rel="stylesheet" type="text/css" href="Daleken.css" title="Daleken Standard Style"> </head> <body bgcolor="#ffffff"> <table class="main" border="0" width="100%" height="100%" cellspacing="0"> <tr height="160"> <th class="heading" width="142"> <img src="images/GuardDragonL.jpg" alt="--" height="160" width="142"> </td> <th class="heading" align="center" width="100%"> <h1>The Daleken MultiUser Disaster</h1> <h2>DalekenMUD NEWS</h2> </th> <th class="heading" width="142"> <img src="images/GuardDragonR.jpg" alt="--" height="160" width="142"> </th> </tr> <tr> <td width="142" valign="top" class="contents"> Quick Links <ul class="contents"> <li class="contents"><a class="contents" href="index.html">Welcome</a></li> <li class="contents"><a class="contents" href="player.html">Player</a></li> <li class="contents"><a class="contents" href="class.html">Classes</a></li> <li class="contents"><a class="contents" href="race.html">Races</a></li> <li class="contents"><a class="contents" href="admin.html">Admin</a></li> <li class="contents"><a class="contents" href="#">News</a></li> <li class="contents"><a class="contents" href="download.html">Download</a></li> <li class="contents"><a class="contents" href="links.html">Links</a></li> </ul> </td> <td class="page" colspan="2" valign="top"> <p class="intro">This page is more like a list of additions to the MUD over the past year or so. Visit here if you want to know how DalekenMUD is evolving. Just to clear things up, there have been a number of bugs squashed in this time, however I feel that minor matters such as bugs (except of course major ones) can be passed over. Rest assured that plenty of bugs are found and fixed at every opportunity.</p> <dl> <dt>(11/00)</dt><dd> Events now use the same system for index as skills (gsn system of pointers to global ints). This system is far more extensible than the previous system. </dd> <dt>(11/00)</dt><dd> Added a new secure trading interface. This code will be available as a snippet very soon. </dd> <dt>(11/00)</dt><dd> Added the ability to bind to a single IP. </dd> <dt>(10/00)</dt><dd> Squashed a particularly insidious bug that would cause regular crashes by adjusting the race of the target of the dirty fighting skill negative. </dd> <dt>(10/00)</dt><dd> Adjusted training costs for magic. </dd> <dt>(10/00)</dt><dd> Shadow door skill for ninjas. This is a spell which allows them to move through the shadows several rooms, even through closed doors! The number of rooms that they are able to move is equal to level/50, high level characters can move several rooms at once. In order to move through these rooms no door must have no_shadow and the rooms that they pass through shouldn't have too much light (ie they should have some shadow). </dd> <dt>(06/00)</dt><dd> Added a system of large output buffers that can be recycled so that those large buffers created for one-off commands can be freed up (at least to be used by other people). </dd> <dt>(06/00)</dt><dd> ident support for the windows version of the server. </dd> <dt>(06/00)</dt><dd> Several minor fixes in mud programs, changes to the internal workings, bugfixes. </dd> <dt>(06/00)</dt><dd> Optional support for the Mud Client Compression Protocol. This means less bandwidth usage at the cost of memory and speed. I have also hacked the TinyFugue client to include support for MCCP. Much thanks to <a href="mailto:icecube$ihug.co.nz">Oliver Jowett</a> for his work on this. </dd> <dt>(06/00)</dt><dd> Bug-fix-o-Rama: parsing error in mud programs, buffer overflow in alias expansion, math error in changing alignment. Several entries in the new db tables fixed, missing entries added. Several typos located and squashed. </dd> <dt>(06/00)</dt><dd> Added counting of data that is sent and received. This allows for better accounting. </dd> <dt>(06/00)</dt><dd> <b>DalekenMUD 1.12 is here.</b> A new data file format, works perfectly and it is much more readable to me (it's in C style format and I might be a little prejudiced in that respect). Tests show that the new format is not only nicer, but more efficient - an unexpected bonus! Area files are smaller and they load quicker! </dd> <dt>(06/00)</dt><dd> Small improvements made: fixing of const string references, deletion of objects and the dig command. </dd> <dt>(06/00)</dt><dd> Added support for unique id numbers in mud programs. </dd> <dt>(05/00)</dt><dd> Added a type of mud program that is loaded with an area and can be associated with multiple mobs. </dd> <dt>(05/00)</dt><dd> The regeneration spell allows clerics to heal over a period of time. This uses events to heal a little every second, if no healing is required the amount of healing is only reduced by a little. </dd> <dt>(05/00)</dt><dd> Created a global socials file, socials can be loaded with an area, but are now always stored here. </dd> <dt>(05/00)</dt><dd> The become command allows players to switch to another character without having to actually disconnect. </dd> <dt>(05/00)</dt><dd> Added code that will kill the mud if it starts using excessive amounts of CPU time. </dd> <dt>(05/00)</dt><dd> Taunt, Rescue, Berserk. Now people can target taunt to distract a mob to attack them and so rescue someone. This will make the mob berserk. Any mob with berserk on, cannot be taunted or rescued from. </dd> <dt>(05/00)</dt><dd> A complete revamp of the damage spells, standardised the damage and reviewed the costs and levels of spells. Virtually all spells have been affected. </dd> <dt>(04/00)</dt><dd> Added a view of a skill for the slookup command that shows levels and a small amount of info about the skill/spell. </dd> <dt>(04/00)</dt><dd> A complete code workover to enable use with Borland C++ Builder means that it compiles easily, it no longer requires Cygwin1.dll to run under Windoze. </dd> <dt>(04/00)</dt><dd> Fixed the initiative/speed calculations to take the amount of weight carried into consideration. </dd> <dt>(04/00)</dt><dd> A new skill: Sense Life, allows players to detect the presence of invisible creatures and players, only gives a number of life forces detected. </dd> <dt>(04/00)</dt><dd> Added a full restore to the level gain functions. </dd> <dt>(04/00)</dt><dd> Added a confiscate command for immortals. </dd> <dt>(04/00)</dt><dd> Removed the pipe command for security reasons. Removed scriptsave, moved this to a separate .c file. </dd> <dt>(03/00)</dt><dd> Added terminal velocity to character falling. Objects have no such limit. </dd> <dt>(02/00)</dt><dd> Added a mob commands that allow safe open, close, lock and unlock for doors and containers. These commands give out no messages and no traps are triggered. </dd> <dt>(02/00)</dt><dd> Added a new mud_prog command that allows the mobile to run a regular command with the visibility of a regular command. This in particular applies to mob commands that don't trigger other programs. In order to interpret a regular command, use the command "cmd". </dd> <dt>(02/00)</dt><dd> New position: sitting. </dd> <dt>(02/00)</dt><dd> Some of the mud programs now return values through the use of the retval and return builtin commands. These are integers, but for a large number of applications these are treated as C style booleans: 1 (or nonzero) - true, 0 - false. The changes are: <dl> <dt>General</dt> <dd>COMMAND_PROG - returns true if a pseudo command was fun.</dd> <dt>Object programs</dt> <dd>GIVE_PROG, DROP_PROG, LOOT_PROG, SAC_PROG, WEAR_PROG, REMOVE_PROG - on a return of false, they prevent whatever was going to happen.</dd> <dt>Room programs</dt> <dd>*GREET_PROG - a return of false prevents a character from entering.</dd> <dd>DROP_PROG - a return of false prevents a character from dropping the object. *NEW PROGRAM*</dd> <dd>SLEEP_PROG, REST_PROG - a return of zero prevents rest.</dd> </dl> Also added a protection against triggering the same program while it is running (eg. forcing the player to sleep in a sleep_prog). </dd> <dt>(02/00)</dt><dd> Prettied up the highest command, it's now framed like score and who. </dd> <dt>(02/00)</dt><dd> Added a wait command to mud programs, this required a complete revamp of the parsing functions and use of the new event system. Several new commands can be used: <blockquote><code> eval, halt, return, retval, wait, regmatch </code></blockquote> there are some differences, but these will have no effect on current programs as they only affect the more complex programs. </dd> <dt>(01/00)</dt><dd> 'clan consider' command to show information on other clans. </dd> <dt>(01/00)</dt><dd> Resting and sleeping on furniture, as in ROM. </dd> <dt>(01/00)</dt><dd> KARMA for orders <br>add some for: <ul> <li>holding an area (+nplayer, capped at 5 per time)</li> <li>sacrificing corpses (+1)</li> <li>winning a holy war (+250)</li> <li>player donations (+1 per quest point, +1 per (clevel * 100) coins) - only the two higher ranks can donate for exploitation reasons.</li> </ul> remove some for: <ul> <li>killing same alignment mobs ( -3 )</li> <li>taking areas (-50)</li> <li>declaring a holy war (-100)</li> <li>buying favours from immortals (add a religious skill) at the moment this is a manual thing. buying a religious skill takes skill_level * ( 6 - clan level to use it ) * 1000</li> <li>losing a member to alignment changes.</li> </ul> </dd> <dt>(12/99)</dt><dd> Corpse and containers decay and the objects from inside are left in the room, or an enclosing container. </dd> <dt>(12/99)</dt><dd> 'group all' and 'group self' (disband) command added (aka LEXIMUD). </dd> <dt>(12/99)</dt><dd> Added ident code, mostly copied and pasted from a patch by Dark@Igor for Dutch Mountains. </dd> <dt>(11/99)</dt><dd> Changed fighting pulses to run from event system, fighting is now slightly different. Bonus attacks still exist. </dd> <dt>(11/99)</dt><dd> Added events that would take care of ALL mob autonomous action. mobile_update(), the function that took 25% of CPU time on the old envy system, has been cut up and parcelled out, it no longer exists, all the parts probably take less CPU time now too. </dd> <dt>(11/99)</dt><dd> Added regular expression matching to mudprog triggers. </dd> <dt>(11/99)</dt><dd> Fixed the bug with deleting exits where they gave BUG messages. </dd> <dt>(11/99)</dt><dd> Fixed a bug with time_prog checking, it now works. </dd> <dt>(11/99)</dt><dd> More events: <ul> <li>Random mudprograms are on events now, as are time_progs.</li> <li>object_update() has been totally removed from the code! All the parts of the function have been farmed out to events.</li> <li>Changed mp_delay to use events</li> <li>Removed the need for smash_update, mobs stand up on an event after being smashed of tripped</li> <li>Falling and sinking of characters</li> </ul> </dd> <dt>(11/99)</dt><dd> Began addition of Event system. <ul> <li>Events are based on a system of delayed callback functions which are given a small amount of information.</li> <li>Pick lock and object timers moved into the new system.</li> <li>Special mobile timers for mercenaries and gate demons.</li> <li>Timer for swan song.</li> <li>Growing plants.</li> </ul> </dd> <dt>(9/99)</dt><dd> Double pass on dispel magic. <ul> <li>first to remove totally</li> <li>second to remove duration</li> <li>long durations are harder to remove totally</li> <li>critical chance of striking it lucky and removing everything</li> <li>level saved on affects</li> </ul> </dd> <dt>(8/99)</dt><dd> Added planes, a new structure that contains a small amount of general information on the areas it contains, each plane has its own weather system. </dd> <dt>(8/99)</dt><dd> Added a command prog trigger, every command that is run is checked against room, mobs and objects in room and inventory as a trigger, if the trigger is run, the normal command is not run. </dd> <dt>(8/99)</dt><dd> Added the requirement that bandages be used to repair damaged body parts. To balance this, added a skill that allows people to not require bandages (all classes). </dd> <dt>(8/99)</dt><dd> greet_prog/all_greet_prog/leave_prog. Added an extra optional argument which is the directions that are valid for the prog. leave_prog now triggers on all, not just on mobiles. </dd> <dt>(8/99)</dt><dd> Added a new function to pick a target to fight in a standard way. Reduced the size of most of the offensive skill commands. </dd> <dt>(8/99)</dt><dd> Removed the MURDER command. </dd> <dt>(8/99)</dt><dd> Fixed a crash/hang bug with disconnect. </dd> <dt>(8/99)</dt><dd> Damaged Body parts <ul> <li>as well as allowing severing of limbs, allow bits to become damaged, damaged bits come off easier, when hit in a damaged location cop extra damage.</li> <li>Get hit, mostly nothing happens, otherwise find location, <pre> if already damaged increase chance of losing it increase damage done endif if bit comes off standard message create limbs etc... big smack else increase damage done nice message endif </pre></li> </ul> </dd> <dt>(8/99)</dt><dd> Added a quote command, only accessible by immortals through the normal command interpreter. The command uses 'fortune' to produce a random quote when someone quits. </dd> <dt>(8/99)</dt><dd> Added the CAST_PROG trigger which goes off when a spell is cast on a mob. </dd> <dt>(8/99)</dt><dd> Added flag so that mobs running programs can see anything/anyone. </dd> <dt>(8/99)</dt><dd> Added descriptions for areas, can be seen in 'where' and 'look area' </dd> <dt>(7/99)</dt><dd> ITEM_GEM which can store mana <ul> <li>first value how much</li> <li>second value maximum possible</li> <li>third value, which sort of mana it holds</li> <li>players have to hold the gem to use it, if they use it up it goes BANG</li> <li>a recharge spell can add mana to the gem.</li> </ul> </dd> <dt>(7/99)</dt><dd> Added ispell interface as described by Erwin Andreasen. <ul> <li>The 'ispell' command has the facility to add words to a local mud ditionary.</li> <li>the string editor has access to the ispell checker.</li> </ul> </dd> <dt>(7/99)</dt><dd> Changed functions that used static char arrays to so they now return char * and require the passing of an extra argument, to reduce the huge static data segment (and to help make the program thread safe as if it is ever going to be threaded!) </dd> <dt>(7/99)</dt><dd> Changed all calls to do_* and olc (as well as a fair number more) functions require a const char * argument, fixed all potential crash bugs revealed by this, where it was possible to try to change static strings. </dd> <dt>(7/99)</dt><dd> Changed edit_mpadd to be in the format: <code>mpadd <#num> <%type> <$args></code> </dd> <dt>(7/99)</dt><dd> An extra mana slot for spells. <ul> <li>MAGIC_GENERIC, you can use any type of mana to cast the spell.</li> <li>a function which can take any type of mana.</li> </ul> </dd> <dt>(7/99)</dt><dd> Juggle skill for Jesters <ul> <li>Allows a character to juggle several weapons at once.</li> <li>Up to 3 additional weapons juggled.</li> <li>Each extra weapon gives a chance at an extra attack.</li> <li>The more weapons you juggle the more likely you are to drop them all, causing damage to yourself.</li> <li>Each hit is caused by a random weapon, weapons are also shuffled every tick, this shuffle is where the drop check is made.</li> <li>Dropping can be recovered but it gives the juggler lag.</li> </ul> </dd> <dt>(6/99)</dt><dd> Spells and Skills <ul> <li>cyclone: area effect air damage.</li> <li>flood: flood an entire area.</li> <li>catfall: fall from heights with less pain.</li> <li>feast: feed and water all.</li> <li>cream pie: fun damage spell with a chance at blind.</li> <li>faith shield: group armour spell with bonuses for larger groups.</li> <li>tangleweed: web by another name.</li> <li>blink: dodge for sorcerors with mana cost per blink.</li> <li>hellfire: area effect damage for warlocks.</li> </ul> </dd> <dt>(6/99)</dt><dd> Poses for all classes. <ul> <li>stored in system/poses/<class-whoname> with a list of act messages for character and room.</li> <li>editor allows some editing of poses although it's hard to find the one you want. (command 'poseset').</li> </ul> </dd> <dt>(6/99)</dt><dd> Added bounty for player killers so people can set bounty on the heads of enemies. <ul> <li>mobs which take the bounty, aggressive with a trigger on when they kill someone, also hunt down players within a certain range to take the bounty. <li>players with bounty are tagged on 'who' </ul> </dd> <dt>(6/99)</dt><dd> fix the 'hire' command, base costs on the pet shops, <ul> <li>instead of killing themselves mobs go back to the place they repopped at and lick their wounds.</li> <li>mercenaries wont takes hires if they are hurt (unless you crank up the price)</li> <li>same basic idea but a few little checks and some extra code.</li> </ul> </dd> <dt>(6/99)</dt><dd> Added extra stuff to the mercenary code. <ul> <li>You can hire same as always but mobs will cost more if they are hurt.</li> <li>Mercenary mobs will recall back to their repop room when they have finished their hire.</li> <li>Mercenary mobs will autoloot corpses and then compare all the gear with what they own, wearing all the best stuff, thus mercenaries can have a large amount of decent gear, making them harder to kill. BUT they have all the money they autolooted as well, not the hire money though, that's a bit much.</li> </ul> </dd> <dt>(6/99)</dt><dd> Security checks have been added to all mudprog commands. <ul> <li>No mobile with a descriptor can used the 'mpcomm' command.</li> <li>Mp_force temporarily removes the descriptor from a player/mobile so that they can force someone to do anything.</li> </ul> </dd> <dt>(6/99)</dt><dd> The TOAD command can turn a player into anything (until slain). </dd> <dt>(6/99)</dt><dd> Names that cannot be used for new players are stored in a file and this can be edited online. </dd> <dt>(6/99)</dt><dd> Players can now learn languages. </dd> <dt>(6/99)</dt><dd> Added colour to OLC displays. </dd> <dt>(6/99)</dt><dd> Fun slay messages for mucking about immortals. </dd> <dt>(6/99)</dt><dd> All port numbers are 12345. </dd> <dt>(6/99)</dt><dd> Pload/Punload <ul> <li>Allows loading of characters without needing a password.</li> <li>Switch into a ploaded character at any time, no more need for force. </li> </ul> </dd> <dt>(5/99)</dt><dd> Character creation allows 'help' and 'back' commands. </dd> <dt>(5/99)</dt><dd> Cygwin32 support (Makefile and startup scripts). </dd> <dt>(5/99)</dt><dd> Fire/Earth/Water/Air/Spirit Spells <ul> <li>Each character has a stat in each of the spheres as well as a mana for each of the spheres. On character creation players get 2 on all the stats as well as a few free points to distribute thief 1, mar 5, cle 9, mag 10 these add to the stats and the player's initial mana is 5 times the stat value.</li> <li>Spell costs in each sphere and mana for each sphere.</li> <li>Each spell has a mana cost for each of the spheres, the player will need the mana required for each sphere to cast the spell. <li>New functions to determine mana costs for spells and check that sufficient mana exists.</li> <li>Channel skill to allow redirection of mana.</li> <li>Magic stat on each sphere which starts low and can be trained for increasing cost.</li> <li>Training each of the stats will cost 100 times the current value in pracs which also means a mana increase for that sphere.</li> <li>Magic stat determines spell damage (compare with victim) there should be a function which determines damage mods, as well as a function which checks on save vs fire/earth etc...</li> <li>Spheres have a colour associated: fire - red, earth - brown (yellow), air - cyan, water - blue, spirit - white.</li> <li>New functions in the prompt to display mana.</li> <li>New additions to the nanny set of functions to allow modification of base magic stats upon creation.</li> <li>Change old applies to allow all the new applies.</li> <li>'magic_resist' in race_table is changed, make it so it adds to the magic_resist value for the character.</li> <li>race_info, race_tnl, save_spell, sphere_damage_mod</li> <li>PRAC_AIR, PRAC_FIRE... flags for mobiles.</li> </ul> </dd> <dt>(5/99)</dt><dd>Room and Object Programs <ul> <li>Centralised prog_driver to allow passing the info struct.</li> <li>Typedef the info struct, it is used way too much now.</li> <li>Add all the new triggers for objects and rooms.</li> </ul> </dd> </dl> </td> </tr> </table> </body> </html>