Describe Concept

Stephen Zepp zoran at enid.com
Sun Mar 1 16:08:05 CET 1998


This is a re-post of a previous message, do to the revival of a similar thread.

I've been thinking about this for a few days, after hearing about it here and
seeing it on Kavir's mud, and I'd like to hear thoughts/suggestions on a
generic module to describe objects, people, etc.For simplicity's sake, I'm gonna
just talk about objects here.  In addition, ( I'd like to see if this works ),
I'd like to keep a "data definition" block at the top of the message and all
replies, so that we can update info easily for all people that are interested
to stay current.  I suggest cut/paste of this definition block from message to
message, adding in any changes with a /* person's name */ so that we can all
stay current...not sure if this is gonna work, but might make it easier!


DEFINITION:
module to describe an object to a player dynamically based on features of the
object, illumination, perception of the viewer, and knowledge of the user,
taking into acount actual features and any "spoof", or disguised features.

features_type:
{
  string_array * format[MAX_ILLUM_LEVEL];
     /* X amount of char * format, allowing for different illumination levels.
       format[ILLUM_BRIGHT].msg = 
       "$n $d.#P $e, and $s.#-P #M $a $m.#-M #S"armourer $q #-S." 
       etc., one format string for each illum level */
  feature_val base;
  feature_val encrusted;
  feature_val engraved;
};

feature_val is your storage method of values of various things relating to the
object:
  base : material, general obvious info like stained, damaged, broken, pointy,
etc.
  encrusted: things that are "attached" to the object...gems, wrappings, glued
on, whatever.
  engraved: sigils, runes, names, whatever might be written on an object.
format strings:
  how the info is presented for this object.  $ values are textual conversions
of feature_vals, and # values are character specific checks:
  $n name ( namespace or item class type if not named )
  $d general obvious description stuff
  $e encrusted descriptions
  $s sigils, engravings, runes
  $a magical auras
  $m other magical "spells" embedded in the object
  $q quality of the object

  #P check char perception
  #M check char magical sight
  #S check specific player skill named in next keyword
  #-<X> close specific check.

END DEFINITION



Okay, now an explanation :)  This is a first run design, trying to get some
brainstorming going, so a lot of things haven't been thought out. 
 
        First of all, an object has a set of real features, and a set of
"disguise" features. Perception is automatically checked for each $ val to
determine which to use, and different features from each may be noticed (
disguised and real ).
        The format string is _one_ idea to help avoid having samo samo
descriptions of objects.  Normally, stock descs will be used, but it allows the
olc to give specific prototypes for the complete description text.
        $ vals work similar to Merc's act values, defining places within the
output string to redefine based on atm features of the object.
        feature_vals are dynamic, some able to be changed after object
creation, some not.

        I'm thinking that each way of observing an object ( scan, look, study )
gives different chances of penetrating disguises, and noting smaller details.
        One major problem so far that I see is that once you know that Sting
has three emeralds and a ruby hidden in the hilt, you should always be able to
see them, and if someone points them out to you, you should be able to see them
even if your perception sucks ( well, not _always_, but you get the idea).


Okay, comments?

Z



More information about the mud-dev-archive mailing list