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