root/releases/1.6/0p2/CHANGES-3

Revision 20, 16.4 KB (checked in by pennmush, 3 years ago)

PennMUSH 1.50p7 Archival

Line 
1This is a continuation of the change log for PennMUSH, covering Release
2Levels 1.18 and 1.19.
3
4----------------------------------------------------------------------------
5February 25, 1992 -- Lydia Leong (lwl@eniac.seas.upenn.edu) Release Level 1.18
6
7mail.c is problematical. It's an older version of Spellbound mail, and has a
8nasty tendency to crash the MUSH from time to time. It's generally safe to
9use, but if you have a problem with repeated crashes, wipe out the mail
10database.
11
12  -- New functions
13    * ALPHAMIN() and ALPHAMAX() -- return the smallest/biggest word,
14        lexicographically, in a comma-separated list of up to 10 arguments
15    * DIE() -- "rolls" an n-sided die m times, simulating things like "2d6"
16    * LATTR() -- returns a list of attributes on an object
17    * LSEARCH() -- similar to @search, returns a list of dbrefs
18    * SECURE() -- smashes dangerous characters in a string
19    * SECS() -- returns number of seconds since midnight Jan. 1, 1970
20    * SORT() -- lexicographically sorts a comma-separated list of up
21        to ten arguments, returning a space-separated list of words
22    * ZONE() -- returns the zone of an object
23  -- New commands
24    * brief -- like "examine", but does not display attributes
25    * @chzone -- change zone of an object
26    * @chzoneall -- change zone of all objects belonging to a player
27    * @select -- like @switch, but only executes the actions matching the
28    first target it finds (like 2.0 @switch/first)
29    * think -- send a private message to yourself
30    * use -- use an object, triggering @use/@ouse/@ause
31    * @zemit: emit to all rooms in a zone
32  -- New flags
33    * MYOPIC -- player sees everything like he doesn't own it (no dbref
34    numbers and flags appear when you look at something)
35    * TRANSPARENT on rooms -- does "long format" exit names in the room, like:
36    Obvious exits:
37     North leads to Joe's room.
38     East leads to Kitchens.
39  -- New features
40    * Uselocks on objects allow only those that pass the @ulock to use
41    them. This provides for a secure way to get around the problems
42    with INHERIT, and regular security problems, since @ulocks also
43    block $commands from unauthorized users.
44    * @use/@ouse/@ause attributes added, triggered by "use" command.
45    The old "@use/@does" pair is preserved as "@use-does/@does",
46    for backward compatibility.
47    * Zones implemented. Please see the help for details.
48    Anyone who passes the enter lock of a zone object controls all
49      objects in that zone - i.e. has the equivalent of wizard privs
50      in that zone.
51    In addition to regular command matching, you also match commands
52      in the zone of your current room, and your person zone. These
53      are $commands on the master object for the zone. This matching
54      occurs between regular $command matching and global matching.
55    * MUCK-style parent rooms implemented as a subset of zones. Parent rooms
56    are ZMOs which are rooms. Parent room exits and $commands on objects
57    in the parent room are checked before local zone commands.
58    * "Events" file, compile-time option, a file like news and help
59    * Config options DARK_EXITS, TRANSPARENT_EXITS, and TRANSPARENT_ROOMS,
60    which are building defaults.
61    * Site lockout has been improved. It now does wildcards, thanks to
62    T'nor of SouCon MUSH. It is also possible to do registration on sites
63    as well as lockout.
64  -- Fixes and other changes
65    * the usual minor bugfixes
66    * ELOCK() no longer requires player to control either object being
67    evaluated by the function.
68    * @chown and related commands now remove the INHERIT and ROYALTY flags.
69    * @search (and LSEARCH) now allow class restriction "zone".
70    * fixed bug which allowed wizards to set objects they didn't own
71        WIZARD (this should be a god-only priv)
72    * if an object pages a NOSPOOF player, the object's number appears
73        before the message, in a fashion similar to NOSPOOF-flagged emits.
74    * fixed a coredump bug in "give" which was triggered by a wizard "giving"
75    a player extremely large numbers of negative pennies.
76    * fixed a typo in game.c in LOG_FAILED_COMMANDS
77    * startup sequence now prints warning in log if PLAYER_START,
78    MASTER_ROOM, or GUEST_PLAYER are set to invalid values.
79    * @config expanded to give more detailed, informative output.
80    * cleaned up STICKY code and corrected the help text
81    * core dump bug involving rooms and exits trying to execute $commands
82    has been fixed (thanks to GlobalMUSH for pointing this problem out).
83    * "throw" as an alias for "drop" has been removed
84    * others in the room are now notified when someone takes something
85    with "<person> takes <object>" (instead of nothing, if no osucc
86    message was set). The drop message has been changed to
87    "<person> drops <object>", so the verb tenses are the same.
88    * say now has a comma (grammar! What a concept!)
89    * a small bug involving @clone'ing exits in rooms you couldn't link
90    to has been removed
91    * you can now link drop-tos in rooms to "home"
92    * @search now outputs rooms in a format like things (it shows you
93    the owner of the room)
94    * NOSPOOF and TERSE are now player flags; the Nospoof/Terseness of an
95    object is dependent upon its owner's status.
96    * upped MAX_COMMAND_LEN to 1 K (doubled the maximum, in other words).
97    BUFFER_LEN is still only 4 K, though. I don't think this should
98    break anything.
99    * did little tweaks which should remove almost all the compiler warnings
100    * some minor bugfixes in bsd.c
101    * inactivity_check moved to timer.c, where it's done with db fixups
102    * @destroy's output is more informative now
103    * you must know a player's password in order to rename him (in the past,
104    a wizard could use his password instead, and an object owned by
105    the player didn't need a password at all)
106    * fixed coredump bug in @clone caused by the function not duplicating
107    enter or use locks.
108    * alphabetized flag listings somewhat
109    * IDESC now does pronoun substitution
110    * fixed stupid problem in some call to do_move in game.c - initially
111    forgot to pass a type flag, causing problems on some machines
112    * quick #ifndef fix to externs.h that should help convince SysV machines
113    that they like MUSH. Thanks to Delany for this one.
114    * rewrote NOSPOOF code in do_page so it OUGHT to work on all machines
115    (certain systems couldn't take the null string at the beginning of
116    a call to print, in the original version of this)
117----------------------------------------------------------------------------
118May 5, 1992 -- Lydia Leong (lwl@eniac.seas.upenn.edu)  Release level 1.19
119
120  -- New flags
121    * ANSI_DISPLAY - bold-hilites names of attributes, making it easier
122    to read long object listings.
123    * AUDIBLE - exits propagate sound to next room. The room must be set
124    AUDIBLE in order for checking to occur. @prefix is prepended to
125    message. @filter filters out stuff that matches anything in a
126    list of comma-separated patterns.
127    A similar thing is true of objects set AUDIBLE; messages from
128    within them are propagated to the outside world.
129    (Re)Setting stuff AUDIBLE causes a "now broadcasting" or
130    "no longer broadcasting" message to be emitted.
131    * LISTENER - objects which use ^ patterns must now have this set.
132    The benefit is some increased speed, and all objects which are
133    LISTENER are checked for ^ patterns even if they have a @listen.
134        Setting something LISTENER triggers the "grows ears and can now hear"
135    message. When an object loses its listen status (not puppet, not
136    listener, and has no @listen), it "loses its ears and becomes deaf"
137    * MONITOR - wiz-settable flag, notifies player of connects/disconnects
138    * STARTUP flag added. Should massively increase efficiency on startup.
139         Need to define ADD_STARTUP_FLAG when using this for the first time.
140  -- New functions
141    * ABS() returns the absolute value of a number.
142    * BEEP() -- send up to five "alert" bell characters
143    * EVAL() - gets an attribute from an object and does pronoun subst.
144    * LOCATE() -- controlled match with respect to a certain object.
145    * LSTATS() -- returns a breakdown of player's stuff in list form
146    * PMATCH() - partial name-match, returns dbref number of player
147    * ROOM() -- returns absolute location of an object.
148    * SIGN() returns 0, 1, or -1 depending on the sign of a number.
149    * SPACE() -- prints a certain number of spaces
150    * STRCAT() concatenates two strings with no space between them.
151    * UFUN() -- takes a "function name", which is an arbitrary attribute
152    on an object, and arguments, and plugs it through the functions.
153        Allows you to define your own functions.
154    * ZFUN() -- like UFUN, but reads the attribute from the ZMO.
155  -- New features
156    * Name lockout -- a file definable in config.h contains a list of
157        player names which may not be used. Both player creation and
158    player name changes check this (the ok_player_name function
159    now calls a new predicate forbidden_name)
160    * @map command - takes a list and a function, and maps the function
161    onto the list, returning a list. This is basically a variation
162    on @dolist.
163    * @daytime command - turns off @find, @entrances, @search, and LSEARCH()
164    Useful when running on a machine that you don't want to munch a lot
165    of CPU time on.
166    * Enter and exit aliases can now have semi-colon separated lists
167    * Teleport locks added as a subset of enter locks.
168    * Wizards that reach IDLE_TIMEOUT and are set UNFINDABLE are automatically
169    set DARK.
170    * "@uptime" command, gives system uptime. Wizards only.
171    * T'nor's improved @halt code added -- allows clearing of a single
172    object's wait queue. IMMORTAL flag prevents halting of objects.
173    * Chat system! To add new channels or change existing ones, check
174    chat.h, look.c, predicates.c, and speech.c  (grep for
175    CHAT_SYSTEM to find the relevant code)
176    * Maximum login limit, automatically turns logins on and off.
177    * Global and zone aconnect/disconnects added.
178    * Immortal objects no longer use up money.
179    * Royalty no longer uses money, nor is it subject to quota or
180    BUILDER bit restrictions (i.e.treated like wizards are wrt building)
181    * Added '@@' comment signal.
182    * Added new match type, match_controlled_absolute(). This allows players
183    to match things by number, if they control them. Players can now do
184    remote look and get on objects that they own (the new match predicate
185    is in other functions as well, but those two are the major ones).
186    * Game now tells you the time and place of your last login at connect.
187    * Hilites using ANSI control characters have been added, for attribute
188    examines. The AUDIBLE flag is overloaded; it's an unpleasant but
189    workable kludge.
190  -- Fixes
191    * added an extern declaration of match_thing to attrib.c so all
192    compilers deal with the LATTR code
193    * fixed move.c's do_drop to handle dropping of objects in a TEMPLE
194    correctly. Based on Jim Miller's patch (retief@iastate.edu)
195    I also patched it so everything takes place in a logical order
196    and that the stuff which ought to be #ifdef'ed, is.
197    * put in the "rob" code again, as a config option (thanks to Jim
198    Miller for pointing out that it never got used)
199    * STICKY flag split into a thing flag and a room flag (running into huge
200    numbers of flags, and therefore making an attempt to compress the
201    ones that are only applicable to two or fewer types)
202    * fixed ^patterns so %N substitution works properly
203    * fixed bug in did_it involving charges. (Sheesh. This bug's been
204    around for a _long_ time. Dunno why no one pointed it out before.)
205    * recoded FLIP function - now calls a generic utility function which
206    reverses a string, using pointers (much cleaner now).
207    * parent room checks fixed, thanks to Jim Miller. Another stupid bug.
208    * only rooms may have a parent room as their zone
209    * added MUSH restart time to the top of the MUSH log, static variable
210    start_time added.
211    * @version now gives the MUSH name and time of last restart in addition
212    to the code version.
213    * Behavior of @chzone changed by popular request - any wizard can
214    @chzone a player now
215    * Kludges to try to prevent crashes caused by huge lock unparses:
216    do_lock and unparse_boolexp check for overflowing the buffer length,
217    kinda sorta. It's still possible to crash the game, but it's highly
218    improbable. A real fix would require dynamically allocating space.
219    * Added HP-UX compatibility, thanks to Schlake (craig@minos.nmt.edu)
220    Also added his other minor fixes, like properly commenting out
221    trailing text after #endifs, etc.
222    * Did some minor cleanup using the IS macro instead of a written-out
223    type and flag check
224    * You cannot see what an OPAQUE object is carrying even if you own
225    or control it (this is the way it should have been to begin with)
226    * Fixed some more inappropriate calls to toupper() - confuses
227    DECs. Used UPCASE macro instead.
228    * LINK_OK is now valid for all types (dunno why this was changed
229    in the 1.15 code, didn't realize it 'til now)
230    * things that are LINK_OK can now be @triggered even if the
231    INHERIT check fails. This provides some of the security of
232    INHERIT but allows you to avoid clumsy workarounds for
233    objects that only need to @trigger something. The control
234    checks still apply.
235    * Rooms-going-away with the floor falling out from under player
236    messages should hopefully be fixed. The exact origin of this
237    problem isn't known, but a check in dest_info for NOTHING
238    should take care of it. It's a bug dating back to at least
239    PernMUSH 1.06, but it seems to have increased in frequency
240    with this latest code, for an unknown reason.
241    * Fix to display page-returns as 12 hours instead of 24 hours.
242    Can #define MILITARY_TIME
243    * added macro Mobile(x). This is true if x is type THING or PLAYER.
244    ((Typeof(player) == TYPE_PLAYER) || (Typeof(player) == TYPE_THING))
245    is now Mobile(player).
246    ((Typeof(player) == TYPE_ROOM) || (Typeof(player) == TYPE_EXIT))
247    is now !Mobile(x).
248    * config option PARANOID_NOSPOOF added. If this is defined, nospoof
249    also shows the object number of the spoofer.
250    * you can no longer link something to itself.
251    * added GoodObject(x) macro which checks if x is >= 0 and <= db_top
252    * fixed bug in do_trigger which caused crashes if exits linked to home
253    attempted to trigger stuff.
254    * rewrote raw_broadcast using varargs.
255    * prevent people from linking homes to GOING objects
256    * atr_comm_match now automagically returns 0 if the checked object is
257    HALT, since even if a command were matched, it couldn't execute
258    it anyway.
259    * Fixed an #ifdef-#endif problem in bsd.c, thanks to Czakari.
260    * Changed PMATCH to work exactly like page-matching does. It first checks
261    the normal player lookup table; if nothing is found, then it calls
262    the connected player partial lookup. The error messages are now
263    #-1 NOTHING or #-2 AMBIGUOUS. This is a more useful behavior.
264        It notifies of the error, and returns the number.
265    * SUSPECT flag is no longer detectable by non-priv'ed players
266    * flags are shown if objects are VISUAL or DESTROY_OK, always
267    * @poor now gives the player a message
268    * fixed check for TEMPLE room so Verbose objects don't count as
269    Temples! Bleah! (*sigh* still tracking down all the places
270    where the IS macro should be used...)
271    * LOC(), HOME() now always works for royalty. (Oversight)
272    * @poll changes are logged
273    * @chzone on players no longer nukes the W, r, and I flags.
274    * checks on GET() and attribute flags changed -- an attribute
275    which is flagged AF_DARK is no longer gettable at all
276    (like the password! Bleah!)
277    * @chownall and @chzoneall now provide object count.
278    * the value of a cloned object is now the same as the value of its
279    template object
280    * fixed immortal/unfindable problem in do_kill with an IS macro
281    * @listmotd lists all the motds for royalty. Should have been this way
282    before, since royalty get the wizmotd at login.
283    * fixed weird bug that caused players to become owned by God. If someone
284    tried to call atr_add with thing = 0, the privs were done as GOD
285    and the owner of the caller became owned by GOD. Why #0 was treated
286    as a special case baffles me.
287    * Only objects with the same owner can set each other INHERIT. Helps
288    plug a zone-related security hole.
289    * Zone control does not extend to objects set INHERIT.
290    * Fixed bug in create.c that allowed non-builders to link exits and
291    seize unlinked ones, even though they were told they couldn't.
292    * Find now returns the number of objects found
293    * Newlines and 'alert' bell characters can no longer be in @doings.
294  -- Some stuff on versions:
295    * DB header line is +V2 for old format (no changes),
296      +V258 (256+2) for new locks and zones,
297      +V514 for that plus chat system,
298      anything else is +V770 (256*3 + 2)
Note: See TracBrowser for help on using the browser.