Re: ascii pfiles ideas

From: Patrick Dughi (
Date: 01/16/01

> >        If you want an advanced feature request; make it so one idnum/name
> >could potentially load up with another persons 'stuff'.  Perhaps just mask
> >off some of it (so you could get disguises pretty much for'd be
> >just one sort of mask), or nearly nothing at all - and end up with a
> >polymorph behavior (at least, thats sorta how i did a generic polymorph).
> By stuff do you mean pfile data as well as objects?

        Actually stuff meant pfile data only.  Sorry I phrased that badly.
I whipped up a quick no-frills polymorph system before with just a mask
and two loads to the same data structure.  In brief, things like
experience, level, olc access, and the sort were in the mask.  Then I'd
load the player, then load their polymorphed form through the mask.
 step 1      step 2               step 3              step 4
 empty   real file load    poly load through mask   End file struct
   _         _       _         _              _        _
  | |       | | <-- |x|       |x| <-- == <-- |y|      |y|
  | |       | | <-- |x|       |x|     [] <-- |y|      |x|
  | |       | | <-- |x|       |x| <-- == <-- |y|      |y|
  | |       | | <-- |x|       |x| <-- == <-- |y|      |y|
  | |       | | <-- |x|       |x| <-- == <-- |y|      |y|
  | |       | | <-- |x|       |x|     [] <-- |y|      |x|
  |_|       |_| <-- |x|       |x|     [] <-- |y|      |x|

        Where x is original data, and y is 'polymorph' data.  Saving is
done in the same way; though _each_ file (the poly data file, and char
file) has it's own save. (yes, each player can have 2 effective files).
In this case, the mask works in reverse, only the masked data is written
to the real file, but everything is written to the poly file.

        If the system is not built for this, it causes problems; using
'set' for example, on polyed chars.  In brief, it comes down to a
necessary ability to tell the character load/save functions "use a mask or
not" - or perhaps even "load one, use mask, load two".

        In truth, this is just an 'advanced' feature thing.. I doubt many
people would use it much.  It just strikes me as odd that on every mud
i've played, every one clamours for a polymorph functionality, and it's
very difficult to provide a _good_ system to do so.  When they do get it,
their use and ideas of it stink.  Perhaps - I think - it's just that there
hasn't been enough exposure to the ability to easily implement polymorph
that causes such small levels of variety in it's uses.

        Just think though - werewolves, vampires, etc; our most current
popular fantasy media subjects, allowed in circle with a few minor code

> >        The small price to pay for an easy way to determine short and long
> >term player alterations, like exp rate gain, level rate gain, stat
> >changes, basically any point system saved on the character that's subject
> >to change!
> >
> >        Just think what a balancer could do with all that info
> >ready-sorted for them.
> That's an excellent idea.  I cringe when I think of trying to code the
> balancer, but writing diffs shouldn't be too difficult.
        Well, it's not like the mud has to do everything.  This sounds
like a job for Perl. (queue bold-adventurer music)

        I'm sure that someone would eventually write a generic system for
ordering and sorting the data. I can think of a few right now.  After it's
all in one accessable place, then something like 'get the average time
difference between level 5 and level 20 for all players' is simple. Wow.
Powerful too.


   | FAQ: |
   | Archives: |

This archive was generated by hypermail 2b30 : 12/03/01 PST