daleken/
daleken/data/notes/
daleken/data/player/
daleken/data/system/poses/
daleken/doc/Homepage/images/
daleken/log/
<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.&nbsp; Added an extra
	optional argument which is the directions that are valid for the
	prog.&nbsp; 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 &lt;#num&gt; &lt;%type&gt; &lt;$args&gt;</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>