Shift

From City of Hope MUSH
Jump to navigation Jump to search

Before you begin

Before you start using any of the shift forms. PLEASE PLEASE PLEASE cut and paste the following commands. This will keep you from shifting when anyone else in the room shifts!

@lock me=me

@lock/use me=me

@lock/enter me=me&!me

Option 1

From Klem:

As I said, this is my coding that I use, so you will have to swap your names for what you will remember your many forms :)

Also note - you can NAME these anything you want if you prefer glabro rather than caveman, just put glabro in the spots where caveman is, and so on

&CMD_HUMAN me=$+human:+shift SHIFTER-HOMID;@name me=human name goes here;&short-desc me=Tiny desc here;@desc me=%r%r%t desc goes here. %r

&CMD_WOLF me=$+wolf:+shift Garou-lupus;@name me=rite name here;&short-desc me=Tiny desc here;@desc me=%r%r%t desc goes here. %r

&CMD_DIRE me=$+dire:+shift Garou-hispo;@name me=rite name here;&short-desc me=Tiny desc here;@desc me=%r%r%t desc goes here. %r

&CMD_CAVEMAN me=$+caveman: +shift Garou-glabro;@name me=rite name here;&short-desc me=Tiny desc here;@desc me=%r%r%t desc goes here. %r

&CMD_CRINOS me=$+crinos: +shift Garou-crinos;@name me=rite name here;&short-desc me=Tiny desc here;@desc me=%r%r%t desc goes here. %r

Then to shift, type "+crinos" or whatever.

Option 2

From Klem:

Alternative. This will work with descs that have semicolons in them.

Also note - you can NAME these anything you want if you prefer glabro rather than caveman, just put glabro in the spots where caveman is, and so on

&human_desc me=desc goes here

&lupus_desc me=desc goes here

&hispo_desc me=desc goes here

&glabro_desc me=desc goes here

&crinos_desc me=desc goes here

&CMD_HUMAN me=$+human:+shift SHIFTER-HOMID;@name me=human name goes here;&short-desc me=Tiny desc here;@desc me=[u(human_desc)]

&CMD_WOLF me=$+wolf:+shift Garou-lupus;@name me=rite name here;&short-desc me=Tiny desc here;@desc me=[u(lupus_desc)]

&CMD_DIRE me=$+dire:+shift Garou-hispo;@name me=rite name here;&short-desc me=Tiny desc here;@desc me=[u(hispo_desc)]

&CMD_CAVEMAN me=$+caveman: +shift Garou-glabro;@name me=rite name here;&short-desc me=Tiny desc here;@desc me=[u(glabro_desc)]

&CMD_CRINOS me=$+crinos: +shift Garou-crinos;@name me=rite name here;&short-desc me=Tiny desc here;@desc me=[u(crinos_desc)]

Option 3: Separating Data from Code

From Felix:

A more compact alternative. This one works even if your descs contain semi-colons or use functions. It also separates out your information (names, descs, short-descs) from the code, making it easy to update. Once you set the command, you should never have to touch it again. Just update the NAME_*, FORM_*, and FORM_*-SHORT attributes when you want to change them.

Syntax: +homid, +glabro, +crinos, +hispo, and +lupus

The command:
&CMD_SHIFT me=$^\+(homid|glabro|crinos|hispo|lupus)$:@switch match(v(NOW_FORM),%1)=1,think You're already in %1 form.,{+shift [ifelse(match(%1,homid),shifter-homid,garou-%1)];&NOW_FORM me=%1;@name me=ifelse(member(homid glabro,%1),v(NAME_MAIN),v(NAME_RITE))}

Once you've set it, you'll also need to:
@set me/cmd_shift=regexp

The setup:
@desc me=[u(FORM_[v(NOW_FORM)])]

&SHORT-DESC me=[v(FORM_[v(NOW_FORM)]-SHORT)]

&NAME_MAIN me=<Name>
For example: &NAME_MAIN me=Bob

&NAME_RITE me=<Ritename>
For example: &NAME_RITE me=Verbs-the-Noun

&FORM_<form> me=<Desc>
For example: &FORM_LUPUS me=Many words about me being a wolf!

&FORM_<form>-short me=<Shortdesc>
For example: &FORM_LUPUS-SHORT me=Look, a wolf!

You'll need a &FORM_<form> for each of your forms, and a &FORM_<form>-short for each form you want to have a shortdesc. This code also assumes that your homid and glabro forms use your main name, and the other three use the ritename. If you want to change anything aside from name, desc, and short-desc, you can still use the &DATA_ASHIFT set of attributes to do so.

Option 4: the built-in code

Another alternative. This is the method built into the +shift code.

&DATA_ASHIFT_GAROU-CRINOS me=@name me=rite name here;&short-desc me=Tiny desc here;@desc me=%r%r%t desc goes here. %r

etc.

Then to shift, type "+shift garou-crinos" or whatever. "+shift/forms" lists what options are available. "+help shift example" gives a somewhat more detailed example, including @alias stuff.

Important: If you use this method, then DO NOT include "+shift" as one of the commands, otherwise you'll trigger an infinite loop.

But I'm a Fera!

Whenever the above instructions say 'garou', change to:

  • Bastet - Use your tribe
  • Mokole and Ratkin - Form names vary more than other breeds, option 3 would require a non-trivial code rewrite
  • Others - Use your breed

Whenever the above instructions say 'glabro', 'crinos', 'hispo', or 'lupus', change to your breed's versions

  • e.g. for Bastet: 'sokto', 'crinos', 'chatro', 'feline'
  • Some breeds have a different number of forms (e.g. Ananasi)

'shifter-homid' is the same for all breeds.

Again, "+shift/forms" lists what options are available, e.g. SIMBA-SOKTO.

This applies no matter which of the above methods you choose.