This page assumes some familiarity with morphing programs in general (Yes,
there is more than one!) and with what seems to be the most popular,
Triggur's "Morph Hammer" in particular.
The way this program works is simply by copying data around. Storing a
morph (morph #add) copies you current description data plus some
information you must type in, to a directory (on your character) rather
appropriately called _morph#. Morphing (morph name where
name is the name given to a morph when you stored it)
"transforms" you character by copying the data from that morph
over your current description data.
This is actually quite important if you want to modify your description
after storing a morph. If you modify your character you
must store it
as a new morph (or store over an old one by using the same name again)
before you morph again! If not, your new data will be overwritten by old,
and you're back at square one.
This has happened both to me and friends of mine, and not during my/their
first weeks either! There is a way to avoid the risk and some other hassle
as well though.
Some players don't want to correct small mistakes in their
morphs because it's so much trouble to morph into the appropriate shape,
edit it and then store it again just to correct a few typos. An alternative
is to edit your morph data directly! You just have to know how it's stored.
If you use the ex command to look at your character data
(ex me=/ actually)
after storing a morph, you will find the _morph# directory plus
some other new properties that need not concern us here. Type
ex me=_morph#/
(Yes, the slash is significant) for a closer look and you should see
something like this:
dir /_morph#/dog#/:(no value) dir /_morph#/cat#/:(no value) dir /_morph#/fox#/:(no value)This means your character has three morphs called dog, cat and fox, and if they are correctly set up, morph dog for instance should turn your character into a dog. *Woof!*
/_morph#/dog#/desc#/ /_morph#/dog#/message /_morph#/dog#/name /_morph#/dog#/osay /_morph#/dog#/say /_morph#/dog#/scent /_morph#/dog#/sex /_morph#/dog#/speciesEach of them has a value of course, but this is a fictive example, so I just thought I'd save myself the trouble of making up some data. <g> All of these data can be edited directly, the desc#/ subdirectory (which is really a "list") with LSEdit (type lsedit me=_morph#/dog#/desc in this case, for instance) and the others with the @set and change commands. The desc list is what overwrites the redesc list in the main directory, message is the message displayed (with your name at the start) when you morph (unless you "qmorph" of course), and the rest should be obvious once you see a real data directory with values...
Okay, for my next trick I will... point out a bug. The morph program will not only store and use morphs, but erase them as well. Anyway, that's what it says! Closer examination of the database shows that the morph data is still there, all the program did was remove the reference to it in the _regmorphs property (which is a list of REGistered morphs). This is not important if all you do is add morphs and use the ones you've got, but if you add and delete morphs a lot, remember to clean up your morph directory once in a while!
Another thing you can do with morphs in addition to adding, deleting and
using them is... moving them. A couple of less known commands are the
UNIX-inspired (well as far as the names are concerned anyway) cp
and mv. These will respectively CoPy data from one place to
another (from your character to an object and vice versa, for example), and
MoVe data by first copying it and then erasing the original. If you want to
transfer description data to an alt or a friend's character. for instance,
this can be done manually bit by bit, or in one go by storing the data in a
morph and copying that. You can only copy to and from objects you control,
so here's how it's done:
1) The donor should have the description stored as a morph, and the
receiver should prepare by storing a morph by the same name. This is just
to get the database set up correctly, it doesn't matter what (desc) data it
contains at this point.
2) Let's say the donor wants to give away or share its "dog"
morph. The donor @creates an object (let's call it "stick") and
sets it @chownable.
3) The donor copies data to the stick with
cp me=_morph#/dog#/,stick (this is to share the data, to give it
away entirely use mv, then morph #remove to remove the
reference to the morph) and hands it to the receiver.
4) The receiver @chowns the stick and copies the data to him/herself with
cp stick=*,me
5) Receiver can now turn into a dog by typing morph dog - just
remember what I said about storing your old description first! (Unless this
is an entirely new, "blank" character of course! Or if this is to
be the receiver's only form, just morph and erase the morph data
afterwards.)
6) Receiver should then @recycle the stick (unless someone else wants to
share the same morph).
The method above can also be used to transfer descriptions to a puppet (Yes
Virginia, puppets can morph as well!) but is even simpler because you can
transfer the data directly to the puppet!
One thing about morphing puppets: Some Mucks (like Spindizzy and Fuzzy
Logic) have an advanced puppet control program that enables you to enter a
special mode where all your commands are sent directly to a puppet even
when not prefixed with the special "control action". Don't use
this mode to let a puppet store a morph! At least one version of the
program will quit the remote mode when you enter just a space to accept a
default value. So do at least that part by "manual remote".
Whoever wrote this program in the first place (even coders are only known by their character names (at the time of writing the program) most of the time...) had the sense to suggest (in the help text) that you limit the number of morphs you're carrying around. Yes, I said suggest - some wizzes are going to hate me for revealing official secrets <g>, but as far as I can tell, what Triggur says about limiting the number of morphs (to ten) is just his suggestion and not a strictly enforced rule. If it is, then a lot of players are violating it. I have heard of players with dozens of morphs, even one who had a hundred!
And a final word: As I said at the beginning, there are a number of different morph programs out there. They do not necessarily work the same way, so be careful about mixing them!