------------------------------------------------------------------------------- MORPH HOWTO ------------------------------------------------------------------------------- The 'morph' command installed on this MUCK (hmorph.muf) is probably the most powerful you ever encountered on any MU*. Yet, it has been thoroughly designed so to make it easy to use and compatible with the two most commonly used morph programs: Triggur's and Jaffa's. In this howto, you will learn how to use hmorph.muf with its basic features first, then with its more advanced ones. NOTE: while I will use the full #option names in this howto, all the 'morph' command options can be abbreviated down to their shortest, unambiguous value. For example, #u and #update are synonymous... 1.- Basic features. You got a character already, with all its properties set (description, sex, species, smell, taste, feel, fly flag, etc...). You want to give this character a new "form" (i.e. you will have to change some of its properties), and still be able to switch back and forth between its old form and the new one. This is where 'morph' can help you a big deal. You first have to register the current form of your character with the morph command. Let's say that this character is a boring human. You'll probably want to save it under the "human" morph name. You may do this either in the way of Triggur's or Jaffa's morph programs. Jaffa's way: morph #save human The MUCK replies with: > Saved morph "human" for Paul(#6543PBCJ). (assuming your character's name is Paul). Triggur's way: morph #add And the MUCK prompts you with: > Enter a name (15 characters max) to associate with this morph, or '.' to > abort. human > > Morph: human > > Full name or info for this morph (as shown in the #list of morphs). > Default setting: > male human > Current setting: > <DEFAULT SETTING> > Enter the new string, or a single space to keep the current one, or a '.' to use the default, or '.abort' to abort. . > > For the following messages, full pronoun substitution is supported > relatively to the one being morphed: > %a/%A for absolute possessive (his/hers/its, His/Hers/Its), > %s/%S for subjective pronouns (he/she/it, He/She/It), > %o/%O for objective pronouns (him/her/it, Him/Her/It), > %p/%P for possessive pronouns (his/her/its, His/Her/Its), > %r/%R for reflexive pronouns (himself/herself/itself, Himself/Herself/ > Itself), > %n/%N for the name. > > Message seen by everyone when you change to this shape (note that this > message will also be parsed for MPI): > Default setting: > %n changes into a male human. > Current setting: > <DEFAULT SETTING> > Enter the new string, or a single space to keep the current one, or a '.' > to use the default, or '.abort' to abort. . > > Morph saved. Use 'morph human' to change to it or 'qmorph human' to change > to it without emitting the message. Your "human" form is now registered. You can check this by listing the morphs you currently have, with: morph #list > List of morphs for Paul(#6543PBCJ): > - human : male human (current) > Done. (assuming your character's name is Paul). You can now safely change everything you want among the properties that 'morph' saved for you, while being able to switch back instantly to your "human" form later with 'morph human'. The properties saved by 'morph' (by default, because we will see in the advanced features how to save more properties) can be listed with 'morph #props'. They are most of the properties you can set with 'editplayer', as well as the ones set with 'view', and 'naked'. Let's give your character its new form, now... Type 'editplayer' (or 'ep' for short) and edit its species, sex, description, etc... Let's say that the new form of your character is a werewolf. Once you exited editplayer and are ready to save the new morph, just type (here, Jaffa's morph way, but you could as well #add like shown above): morph #save werewolf > Saved morph "werewolf" for Paul(#6543PBCJ). You can now switch back to your human form with: morph human > Paul changes into a male human. (assuming your character is a male). If there are any other players in the same room with you, they will see the "Paul changes into a male human." message as well. This is the default message (this can also be changed for each morph), and is in the following format: <name> changes into a <sex> <species>. If you want to morph without the others being notified, you can use the 'qmorph' command, like this: qmorph werewolf > Quietly morphed into werewolf. While you're still notified (the format for this message being: "Quietly morphed into <morph name>"), the other players around you will not be. Note that you can check for the name of your current morph by either typing 'morph' alone, or with 'morph #list' where it is appended with "(current)" in the list issued by this command. You may want to update one of your morphs from time to time. This can easily be done by morphing first into this given morph, using editplayer or any utility/ command to update your morph, then typing 'morph #update' to save the changes you just made. Alternatively, you may overwrite an old morph with the #save or #add options, and in this case hmorph.muf will ask you for confirmation before overwriting it. Finally, you can get rid of old morphs, with 'morph #delete <morph name>', or 'morph #remove' for an interactive, prompt-driven removal. In either case, hmorph.muf will ask you for confirmation. 2.- Advanced features. Beside the features described above and which are common to most morph programs, you can make use of more advanced features which are unique to hmorph.muf. One of its nicest features is its ability to save any property you want ! To do this, just type 'morph #editprops' and add one property (or propdir) name per line before saving the list with '.end'. For example, you may want to use a "belly" property in your @description so that you can make morphs which only differ by the size of their belly, without having to edit their description everytime. Let's say that the description for your human morph is set to: "You see a male human with a {prop:belly} belly." Then you can 'morph #editprops' and add "belly" to the list, before proceeding as follow: @set me=belly:flat and well toned > Property set. morph #update > Updated morph "human" for Paul(#6543PBCJ). @set me=belly:very fat > Property set. morph #save fat-human > Saved morph "fat-human" for Paul(#6543PBCJ). @set me=belly:stuffed and rounded > Property set. morph #save stuffed-human > Saved morph "stuffed-human" for Paul(#6543PBCJ). You will then endup with three different morphs which only differ by their belly, which will be reflected by their description. Of course, you don't really need 'morph' to get the same result (you may just use the @desc above and '@set' manually the "belly" property whenever you need to change your belly), but the combination of many properties can make this feature much more interesting... Another interesting possibility offered by hmorph.muf is its ability to change your name while morphing. This can be useful to avoid registering many different player objects while you will hardly use each of them more than once in a while. The only thing you have to do, is to change your name with: @name me=new_name your_password and to either #save (or #add) a new morph, or #update an existing one. Then, to allow hmorph.muf to change your name for you every time you will morph, you type: morph #password your_password Your password is then stored into a wizard read-only property (of course, should you change your password later, you will also need to type the latter command again, with the new password as its parameter). Please note that this is only needed for player objects (zombies do not need a password to have their name changed). Many other things are possible with hmorph.muf, such as setting your morphing messages on a per-morph basis, or morphing non-players/puppets objects, or using MPI code while morphing, or allowing others to morph you, or setting up objects so that they morph together with the character carrying them... This howto will be expanded, but in the mean time, you can find out by yourself about all these features with 'morph #help', 'morph #help2' and 'morph #help3'. |