[comp.archives] [mud...] LPmud 2.1 available by ftp

lars@myab.se (Lars Pensj|) (08/03/90)

Archive-name: lpmud/v2.1
Original-posting-by: lars@myab.se (Lars Pensj|)
Original-subject: LPmud 2.1 available by ftp
Archive-site: alcazar.cd.chalmers.se [129.16.48.100]
Archive-directory: /pub
Reposted-by: emv@math.lsa.umich.edu (Edward Vielmetti)

I sent this last week, but it didn't seem to arrive to the news group, so here
it is again.

LPmud 2.1 is now available by anonymous ftp from 'alcazar.cd.chalmers.se'
(129.16.48.100) in pub. The file is named 'lpmud-2.1.tar.Z'.

These are the changes to 2.1 from 2.0:

1.  A lot of memory leaks removed.

2.  A specialised malloc() for LPmud.

    The new malloc will use the algotrith 'best fit', and use as little
    overhead as possible. It maintains several free lists for different
    blocks sizes. A function 'combine_free_list()' is called once 60
    seconds that will join addjacent free blocks together.

3.  LPC functions can now be 'static'.

    This fix a lot of security problems, and make programs more documented :-)

4.  New functions call_out() and remove_call_out();

    Call a function in current object after a delay, with an argument. This
    takes off load from the heart beat. It is currently used for decaying
    corpses and burning torches.

5.  += Now accepts strings on the left side.

6.  New function creator().

    Give the name of the wizard that cloned the object. Good to have
    to trace monsters and weapons.

7.  Assignments are treated as expressions, not statements.

    At last, you can do 'if (flag = 0) ...' :-)
    Long awaited fix.

8.  Big bugs has been fixed.

9.  Some of the gunk written to the debug file has been removed.

10. The present() function is changed so that 'get axe from corpse 3' works.

11. Even more security holes removed.

12. The file obj/living.h has been renamed into obj/living.c, and a new
    living.h now does 'inherit "obj/living";'.

Below is a list of new things implemented in LPmud 2.0. Some of them might
be older because I had forgotten when they were implemented.

1. Functions can now have more than one argument. call_other() does also
   support this.

2. An object can inherit from another object. All variables will be
   copied, and all functions will be available. This is "memory cheap".

3. String managements have been sped up aprox 3 times (since 1.3.3).

4. The ip-number of the player is saved with the player object. If the player
   calls the game from a different number than last time, the previous
   will be printed out. This is to enhance security.

5. It is now possible to lock out players from a special ip-address, or
   a whole area.

6. There is a new function 'time()', that gives the number of seconds since
   1970.

7. The 'status' command does better calculation of total memory used. Still not
   enough, though.

8. A lot of security holes has been removed.

9. A memory saving string space has been introduced. This space contains
   some often used strings, and reuse them at compile time.

10. The bug/typo/idea command now sends a message to the log file of the
    wizard that owns the current room.

11. A quest system has been developed. To become wizard, you must solve all
    quests. The quests is listed at adventurers guild. Any wizard can create
    a quest (only one), and it must be approved by an arch wizard. These quests
    forces the players to solve puzzles, not just go around killing monsters.
    The quests should no be hard to solve. Rather, they should force the player
    to explore a bigger part of the game.

-- 
    Lars Pensj|
    lars@myab.se