@@ THis is shifter code for with Amaranth's chargen, and it @@ has code for garou, bastet and nuwisha. FOr corax and ratkin @@ I suggest you either find a coder to do it or tell me how the @@ rules are for those so I can add them. This shifter code will @@ allow shifting, and if players set them they can change names @@ and +fingers with each form. Descs for each form are also given, @@ default ones but players can also choose to make their own. @@ Once installed for basic info type '+shift' and it will tell you what to do. @create Shifter Globals @@ You need to look if the following is the way that +finger @@ is set up on your mush as well. You need to fill in the @@ names of the attributes as they are set on the player, this @@ list will differ per version of mush mux or even of finger @@ code. the following list is for the code given with mux @@ 2.1 So look at your +help +finger and see which attributes @@ are set and how and put the exact attribute names in a list @@ like below. &fingerattributes Shifter GLobals=email position short-desc fullname age fame app_age plan rp-prefs alts themesong quote off-hours temperment vacation url @@ the rest of the code you can just copy and paste &left Shifter Globals=[mid(%0,0,%1)] &nuwishashift Shifter Globals=$+nshift *:@switch [gt(match(first(get(%#/race)),nuwisha),0)]=0,@pemit %#=I'm sorry but you are not a Nuwisha so cannot use this code.,{@switch [strlen(get(%#/form))]=0,@pemit %#=You have not set your original form yet. Please do so with '+nshift/set
' so it is known what form you are shifting from.,{@name %#=[switch(strlen(get(%#/[u(me/left,lcstr(%0),3)]name)),0,[name(%#)],[get(%#/[u(me/left,lcstr(%0),3)]name)])];@dolist [get(me/fingerattributes)]=&## %#=[get(%#/[u(me/left,lcstr(%0),3)]##)];@switch [u(me/left,lcstr(%0),3)]=hom,{@pemit/contents [loc(%#)]=%N slowly starts shifting into homid form until the form is complete.;&form %#=[u(me/left,lcstr(%0),3)];@dolist [lattr(%#/temp*)]=&## %#=;@switch [gt(words(get(%#/desc[u(me/left,%0,3)])),3)]=0,@desc %#=[get(me/homiddesc)],@desc %#=[get(%#/desc[u(me/left,%0,3)])]},tsi,{@pemit/contents [loc(%#)]=%N slowly starts shifting into Tsitsu form until the form is complete.;@dolist [lattr(%#/temp*)]=&## %#=;@switch [lcstr(get(%#/form))]=hom,&homdesc %#=[get(%#/desc)];&form %#=[u(me/left,lcstr(%0),3)];@wait 2=&tempstrength %#=[add(get(%#/strength),1)];@wait 2=&tempdexterity %#=[add(get(%#/dexterity),1)];@wait 2=&tempstamina %#=[add(get(%#/stamina),2)];@wait 2=&tempmanipulation %#=[sub(get(%#/manipulation),1)];@switch [gt(words(get(%#/desc[u(me/left,%0,3)])),0)]=0,@desc %#=[get(me/tsitsudesc)],@desc %#=[get(%#/desc[u(me/left,%0,3)])]},man,{@pemit/contents [loc(%#)]=%N slowly starts shifting into Manabozho form until the form is complete.;@dolist [lattr(%#/temp*)]=&## %#=;@switch [lcstr(get(%#/form))]=hom,&homdesc %#=[get(%#/desc)];&form %#=[u(me/left,lcstr(%0),3)];@wait 2=&tempstrength %#=[add(get(%#/strength),2)];@wait 2=&tempdexterity %#=[add(get(%#/dexterity),3)];@wait 2=&tempstamina %#=[add(get(%#/stamina),3)];@wait 2=&tempmanipulation %#=[switch([gte(sub(get(%#/manipulation),2),0)],1,[sub(get(%#/manipulation),2)],0)];@wait 2=&tempappearance %#=0;@switch [gt(words(get(%#/desc[u(me/left,%0,3)])),0)]=0,@desc %#=[get(me/manabozhodesc)],@desc %#=[get(%#/desc[u(me/left,%0,3)])]},sen,{@pemit/contents [loc(%#)]=%N slowly starts shifting into Sendeh form until the form is complete.;@dolist [lattr(%#/temp*)]=&## %#=;@switch [lcstr(get(%#/form))]=hom,&homdesc %#=[get(%#/desc)];&form %#=[u(me/left,lcstr(%0),3)];@wait 2=&tempstrength %#=[add(get(%#/strength),2)];@wait 2=&tempdexterity %#=[add(get(%#/dexterity),3)];@wait 2=&tempstamina %#=[add(get(%#/stamina),3)];@wait 2=&tempmanipulation %#=[switch([gte(sub(get(%#/manipulation),3),0)],1,[sub(get(%#/manipulation),2)],0)];@switch [gt(words(get(%#/desc[u(me/left,%0,3)])),0)]=0,@desc %#=[get(me/sendehdesc)],@desc %#=[get(%#/desc[u(me/left,%0,3)])]},lat,{@dolist [lattr(%#/temp*)]=&## %#=;@pemit/contents [loc(%#)]=%N slowly starts shifting into Latrani form until the form is complete.;@switch [lcstr(get(%#/form))]=hom,&homdesc %#=[get(%#/desc)];&form %#=[u(me/left,lcstr(%0),3)];@switch [gt(words(get(%#/desc[u(me/left,%0,3)])),0)]=0,@desc %#=[get(me/latranidesc)],@desc %#=[get(%#/desc[u(me/left,%0,3)])];@wait 2=@wait 2=&tempdexterity %#=[add(get(%#/dexterity),3)];@wait 2=@wait 2=&tempstamina %#=[add(get(%#/stamina),3)];@wait 2=@wait 2=&tempmanipulation %#=[switch([gte(sub(get(%#/manipulation),3),0)],1,[sub(get(%#/manipulation),3)],0)]},{@pemit %#=I'm sorry but I do not know that form for Nuwisha. Please chose either of the following: Homid Tsitsu Manabozho Sendeh Latrani.;@dolist [get(me/fingerattributes)]=&## %#=[get(%#/[u(me/left,lcstr(get(%#/form)),3)]##)]}}} &nuwishaformset Shifter Globals=$+nshift/set *:@switch [gt(match(first(get(%#/race)),nuwisha),0)]=0,@pemit %#=I'm sorry but you are not a Nuwisha so cannot use this code.,{@switch [gt(strlen(get(%#/form)),0)]=1,@pemit %#=You need to use the normal +nshift code to change forms. This command is only to set your first form.,{@switch [u(me/left,lcstr(%0),3)]=hom,{&form %#=[u(me/left,lcstr(%0),3)];@pemit %#=You have set your form to Homid and your current name and fingers attributes now are set to below to that form.;&homname %#=[name(%#)];@dolist [get(me/fingerattributes)]={&hom## %#=[get(%#/##)]}},tsi,{&form %#=[u(me/left,lcstr(%0),3)];@pemit %#=You have set your form to Tsitsu and your current name and fingers attributes now are set to below to that form.;&tsiname %#=[name(%#)];@dolist [get(me/fingerattributes)]={&tsi## %#=[get(%#/##)]}},man,{&form %#=[u(me/left,lcstr(%0),3)];@pemit %#=You have set your form to Manabozho and your current name and fingers attributes now are set to below to that form.;&manname %#=[name(%#)];@dolist [get(me/fingerattributes)]={&man## %#=[get(%#/##)]}},sen,{&form %#=[u(me/left,lcstr(%0),3)];@pemit %#=You have set your form to Sendeh and your current name and fingers attributes now are set to below to that form.;&senname %#=[name(%#)];@dolist [get(me/fingerattributes)]={&sen## %#=[get(%#/##)]}},lat,{&form %#=[u(me/left,lcstr(%0),3)];@pemit %#=You have set your form to Latrani and your current name and fingers attributes now are set to below to that form.;&latname %#=[name(%#)];@dolist [get(me/fingerattributes)]={&lat## %#=[get(%#/##)]}},@pemit %#=I'm sorry but I do not know that form for Nuwisha. Please chose either of the following: Homid Tsitsu Manabozho Sendeh Latrani.}} &nuwishadescset Shifter Globals=$+nshift/desc *=*:@switch [gt(match(first(get(%#/race)),nuwisha),0)]=0,@pemit %#=I'm sorry but you are not a Nuwisha so cannot use this code.,{@switch [u(me/left,lcstr(%0),3)]=hom,{&deschom %#=%1;@pemit %#=You have set your desc for Homid},tsi,{&desctsi %#=%1;@pemit %#=You have set your desc for Tsitsu},man,{&descman %#=%1;@pemit %#=You have set your desc for Manabozho},sen,{&descsen %#=%1;@pemit %#=You have set your desc for Sendeh},lat,{&desclat %#=%1;@pemit %#=You have set your desc for Latrani}},@pemit %#=I'm sorry but I do not know that form for Nuwisha. Please chose either of the following: Homid Tsitsu Manabozho Sendeh Latrani.} &homiddesc Shifter Globals=Before you is a normal human, a person just like any other, except that he or she is not wearing any clothes. &tsitsudesc Shifter Globals=This a person that is a little on the hairy side. There is short, thin caramel colored hair all over their body. Their body seems to be of good muscular tone and they stand just a bit higher than the average person. Their facial features take on a more angular look and their mouth seems to come out from their face giving them an unusual look. &manabozhodesc Shifter Globals=A creature that is a nightmarish cross between some kind of dog or wolf and man. The short caramel colored fur covers it's body from the tip of it's snout to the bottom of it's paw like feet. This monstrosity stands well over 8 feet tall and looks as of it could rip a normal man in half. The head is that of a dog/wolf complete with sharp pointy teeth in it's maul. The ears are pointed dog ears on top of it's head and the eyes are primal in nature. There are claws on it's paw like hands and feet and also a tail coming from the base of the creatures spine. &sendehdesc Shifter Globals=This has got to be the largest wolf/dog you have ever seen. It is at least twice the size of a normal dog and it's sharp teeth and claws are proportional to it's size. &latranidesc Shifter Globals=A coyote, of caramel colored fur and hungry eyes. &garoushift Shifter Globals=$+gshift *:@switch [gt(match(first(get(%#/race)),garou),0)]=0,@pemit %#=I'm sorry but you are not a garou so cannot use this code.,{@switch [strlen(get(%#/form))]=0,@pemit %#=You have not set your original form yet. Please do so with '+gshift/set ' so it is known what form you are shifting from.,{@name %#=[switch(strlen(get(%#/[u(me/left,lcstr(%0),3)]name)),0,[name(%#)],[get(%#/[u(me/left,lcstr(%0),3)]name)])];@dolist [get(me/fingerattributes)]=&## %#=[get(%#/[u(me/left,lcstr(%0),3)]##)];@switch [u(me/left,lcstr(%0),3)]=hom,{@pemit/contents [loc(%#)]=%N slowly starts shifting into homid form until the form is complete.;&form %#=[u(me/left,lcstr(%0),3)];@dolist [lattr(%#/temp*)]=&## %#=;@switch [gt(words(get(%#/desc[u(me/left,%0,3)])),3)]=0,@desc %#=[get(me/homiddesc)],@desc %#=[get(%#/desc[u(me/left,%0,3)])]},gla,{@pemit/contents [loc(%#)]=%N slowly starts shifting into glabro form until the form is complete.;@dolist [lattr(%#/temp*)]=&## %#=;@switch [lcstr(get(%#/form))]=hom,&homdesc %#=[get(%#/desc)];&form %#=[u(me/left,lcstr(%0),3)];@wait 2=&tempstrength %#=[add(get(%#/strength),2)];@wait 2=&tempappearance %#=[sub(get(%#/appearance),1)];@wait 2=&tempstamina %#=[add(get(%#/stamina),2)];@wait 2=&tempmanipulation %#=[sub(get(%#/manipulation),1)];@switch [gt(words(get(%#/desc[u(me/left,%0,3)])),0)]=0,@desc %#=[get(me/glabrodesc)],@desc %#=[get(%#/desc[u(me/left,%0,3)])]},cri,{@pemit/contents [loc(%#)]=%N slowly starts shifting into crinos form until the form is complete.;@dolist [lattr(%#/temp*)]=&## %#=;@switch [lcstr(get(%#/form))]=hom,&homdesc %#=[get(%#/desc)];&form %#=[u(me/left,lcstr(%0),3)];@wait 2=&tempstrength %#=[add(get(%#/strength),4)];@wait 2=&tempdexterity %#=[add(get(%#/dexterity),1)];@wait 2=&tempstamina %#=[add(get(%#/stamina),3)];@wait 2=&tempmanipulation %#=[switch([gte(sub(get(%#/manipulation),3),0)],1,[sub(get(%#/manipulation),3)],0)];@wait 2=&tempappearance %#=0;@switch [gt(words(get(%#/desc[u(me/left,%0,3)])),0)]=0,@desc %#=[get(me/crinosdesc)],@desc %#=[get(%#/desc[u(me/left,%0,3)])]},his,{@pemit/contents [loc(%#)]=%N slowly starts shifting into hispo form until the form is complete.;@dolist [lattr(%#/temp*)]=&## %#=;@switch [lcstr(get(%#/form))]=hom,&homdesc %#=[get(%#/desc)];&form %#=[u(me/left,lcstr(%0),3)];@wait 2=&tempstrength %#=[add(get(%#/strength),3)];@wait 2=&tempdexterity %#=[add(get(%#/dexterity),2)];@wait 2=&tempstamina %#=[add(get(%#/stamina),3)];@wait 2=&tempmanipulation %#=[switch([gte(sub(get(%#/manipulation),3),0)],1,[sub(get(%#/manipulation),3)],0)];@switch [gt(words(get(%#/desc[u(me/left,%0,3)])),0)]=0,@desc %#=[get(me/hispodesc)],@desc %#=[get(%#/desc[u(me/left,%0,3)])]},lup,{@dolist [lattr(%#/temp*)]=&## %#=;@pemit/contents [loc(%#)]=%N slowly starts shifting into lupus form until the form is complete.;@switch [lcstr(get(%#/form))]=hom,&homdesc %#=[get(%#/desc)];&form %#=[u(me/left,lcstr(%0),3)];@switch [gt(words(get(%#/desc[u(me/left,%0,3)])),0)]=0,@desc %#=[get(me/lupusdesc)],@desc %#=[get(%#/desc[u(me/left,%0,3)])];@wait 2=@wait 2=&tempstrength %#=[add(get(%#/strength),1)];@wait 2=@wait 2=&tempdexterity %#=[add(get(%#/dexterity),2)];@wait 2=@wait 2=&tempstamina %#=[add(get(%#/stamina),3)];@wait 2=@wait 2=&tempmanipulation %#=[switch([gte(sub(get(%#/manipulation),3),0)],1,[sub(get(%#/manipulation),3)],0)]},{@pemit %#=I'm sorry but I do not know that form for garou. Please chose either of the following: Homid glabro crinos hispo lupus.;@dolist [get(me/fingerattributes)]=&## %#=[get(%#/[u(me/left,lcstr(get(%#/form)),3)]##)]}}} &garouformset Shifter Globals=$+gshift/set *:@switch [gt(match(first(get(%#/race)),garou),0)]=0,@pemit %#=I'm sorry but you are not a garou so cannot use this code.,{@switch [gt(strlen(get(%#/form)),0)]=1,@pemit %#=You need to use the normal +gshift code to change forms. This command is only to set your first form.,{@switch [u(me/left,lcstr(%0),3)]=hom,{&form %#=[u(me/left,lcstr(%0),3)];@pemit %#=You have set your form to Homid and your current name and fingers attributes now are set to below to that form.;&homname %#=[name(%#)];@dolist [get(me/fingerattributes)]={&hom## %#=[get(%#/##)]}},gla,{&form %#=[u(me/left,lcstr(%0),3)];@pemit %#=You have set your form to glabro and your current name and fingers attributes now are set to below to that form.;&glaname %#=[name(%#)];@dolist [get(me/fingerattributes)]={&gla## %#=[get(%#/##)]}},cri,{&form %#=[u(me/left,lcstr(%0),3)];@pemit %#=You have set your form to crinos and your current name and fingers attributes now are set to below to that form.;&criname %#=[name(%#)];@dolist [get(me/fingerattributes)]={&cri## %#=[get(%#/##)]}},his,{&form %#=[u(me/left,lcstr(%0),3)];@pemit %#=You have set your form to hispo and your current name and fingers attributes now are set to below to that form.;&hisname %#=[name(%#)];@dolist [get(me/fingerattributes)]={&his## %#=[get(%#/##)]}},lup,{&form %#=[u(me/left,lcstr(%0),3)];@pemit %#=You have set your form to lupus and your current name and fingers attributes now are set to below to that form.;&lupname %#=[name(%#)];@dolist [get(me/fingerattributes)]={&lup## %#=[get(%#/##)]}},@pemit %#=I'm sorry but I do not know that form for garou. Please chose either of the following: Homid glabro crinos hispo lupus.}} &garoudescset Shifter Globals=$+gshift/desc *=*:@switch [gt(match(first(get(%#/race)),garou),0)]=0,@pemit %#=I'm sorry but you are not a garou so cannot use this code.,{@switch [u(me/left,lcstr(%0),3)]=hom,{&deschom %#=%1;@pemit %#=You have set your desc for Homid},gla,{&descgla %#=%1;@pemit %#=You have set your desc for glabro},cri,{&desccri %#=%1;@pemit %#=You have set your desc for crinos},his,{&deschis %#=%1;@pemit %#=You have set your desc for hispo},lup,{&desclup %#=%1;@pemit %#=You have set your desc for lupus},@pemit %#=I'm sorry but I do not know that form for garou. Please chose either of the following: Homid glabro crinos hispo lupus.} &glabrodesc Shifter Globals=This is a person that looks like they could use a good shave as there is a fine layer of hair all over their body, including their face. They are slightly taller than normal and with a much better build. Though those fingernails and toenails definitely could be used to be cut. &crinosdesc Shifter Globals=A beast that inspires primal fear. It is roughly humanoid shape, though that is where the similarities end. The body is covered in a thick fur, and there are claws on it's huge hands and it's feet look more like paws. A furry tail hangs down at the base of his spine, but what really catches your eyes is it's head. The face is not human, There is a snout where the mouth and nose should be, complete with large sharp white canine teeth. The ears are set higher than they should be and are pointed and furry just like a wolf. They seem to be right out of a bad horror movie, half wolf, and half man. &hispodesc Shifter Globals=This large wolf is twice the size it should normally be. You can see the rippling muscle underneath it's shaggy fur, and almost feel the raw power it possesses. &lupusdesc Shifter Globals=A wolf, complete with fur, busy tail and a jaw filled with sharp teeth. &nshifthelp Shifter GLobals=$+nshift/help:@pemit %#=This command helps Nuwisha to shift forms. The Nuwisha forms are: Homid Tsitsu Manabozho Sendeh Latrani. The following commands can be used:%r+nshift %t%t%tto shift to the chosen form%r+nshift/set %t%tsets your form before using the code%r+nshift/desc =%tsets other descs then the standard ones%r+nshift/name =%tsets your name for a specific form%r%rPlease give the code at least 5 seconds before using +stats or rolling after having shifted. It takes quite some calculations.%r%rThe code will allow you to set different names for all forms, and also to change your +finger for those forms. To change the finger set the finger fields on yourself but place the first three letters of the form before each field. so for example &homurl me= will do it. When you set your form your normal finger fields are automatically saved under the form you chose. Any you add later you will have to use hom or it will disappear at your first shift! &gshifthelp Shifter GLobals=$+gshift/help:@pemit %#=This command helps Garou to shift forms. The Garou forms are: Homid Glabro Crinos Hispo Lupus. The following commands can be used:%r+gshift %t%t%tto shift to the chosen form%r+gshift/set %t%tsets your form before using the code %r+gshift/desc =%tsets other descs then the standard ones%r+gshift/name =%tsets your name for a specific form%r%rPlease give the code at least 5 seconds before using +stats or rolling after having shifted. It takes quite some calculations.%r%rThe code will allow you to set different names for all forms, and also to change your +finger for those forms. To change the finger set the finger fields on yourself but place the first three letters of the form before each field. so for example &homurl me= will do it. When you set your form your normal finger fields are automatically saved under the form you chose. Any you add later you will have to use hom or it will disappear at your first shift! &bshifthelp Shifter GLobals=$+bshift/help:@pemit %#=This command helps Bastet to shift forms. The Bastet forms are: Homid Sokto Crinos Chatro Feline. The following commands can be used:%r+bshift %t%t%tto shift to the chosen form%r+bshift/set %t%tsets your form before using the code %r+bshift/desc =%tsets other descs then the standard ones%r+bshift/name =%tsets your name for a specific form%r%rPlease give the code at least 5 seconds before using +stats or rolling after having shifted. It takes quite some calculations.%r%rThe code will allow you to set different names for all forms, and also to change your +finger for those forms. To change the finger set the finger fields on yourself but place the first three letters of the form before each field. so for example &homurl me= will do it. When you set your form your normal finger fields are automatically saved under the form you choose. Any you add later you will have to use hom or it will disappear at your first shift! &chatrodesc Shifter Globals=This large cat is over twice the size of the biggest lion and it looks just like the saber tooth cats out of the prehistoric times. There is a set of large sharp, bone crunching fangs that hangs well past the cat's chin, out of it's ugly big face. The top jaw has an over bite to accommodate the large fangs, and the neck is thick with powerful muscles to help hold the cat's head up and to aid in that devastating bite it is capabible of. The rest of the cat's body tapers down from high, wide shoulders to a sloping low rear. The tail is short and stubby to keep the cat in perfect balance. And let's not even talk about those large set of claws on all of it's paws. &bastetCrinosdesc Shifter Globals=This nightmare in front of you looks straight out of a bad horror movie. A creature standing at least 8 feet tall towers over looking like a mix between human and great cat. The body stands upright in humanoid form but that is where most of the resemblances stops. There is a thick coat of fur covering the whole body including the tail at the base of their spine. The arms end in huge paws with long sharp claws on them and there is a matching set on the beasts feet. The face is the most remarkable as there is a small snout where the nose and mouth should be, complete with a set of long whiskers. The ears are set high up on the head and are pointed and also furry. &soktodesc Shifter Globals=This ethereal creature, reminds you of something out of a fairy tale book. They seem to be taller, leaner, and muscular wiry build. There is a thin layer of hair that covers their whole body, lending a soft feel to counteract the power they possess underneath. The ears are pointed, the lips protrude a little on the sides as the owner has small fangs where the canine teeth should be. The nails also seem to be a bit thicker and a little longer than normal. &felinedesc Shifter Globals=A graceful creature of the big cat family. The fur is beautiful well groomed to a glistening shine right down to the tip of it's tail. Pert ears stand up alert on top of it's head while it's lips protrude out on the sides a bit as it covers up it's fangs. The claws are retracted in large paws but you can guess how fast they can come out. &Bagheerasokto Shifter Globals=1 1 2 -1 -1 &Bagheeracrinos Shifter Globals=3 3 3 -3 -5 &Bagheerachatro Shifter Globals=2 3 3 -3 -2 &Bagheerafeline Shifter Globals=1 3 2 -3 0 &Balamsokto Shifter Globals=2 1 2 -1 -1 &Balamcrinos Shifter Globals=3 3 3 -4 -5 &Balamchatro Shifter Globals=3 2 3 -4 -5 &Balamfeline Shifter Globals=2 3 2 -3 0 &Bubastisokto Shifter Globals=0 1 0 0 1 &Bubasticrinos Shifter Globals=1 3 1 -2 -3 &Bubastichatro Shifter Globals=2 4 1 -2 -5 &Bubastifeline Shifter Globals=-1 4 1 0 0 &Ceilicansokto Shifter Globals=0 2 1 0 1 &Ceilicancrinos Shifter Globals=1 3 1 0 -2 &Ceilicanchatro Shifter Globals=0 4 1 -2 -2 &Ceilicanfeline Shifter Globals=1 4 0 -2 0 &Khansokto Shifter Globals=2 1 2 -1 -1 &Khancrinos Shifter Globals=3 2 3 -3 -5 &Khanchatro Shifter Globals=4 2 3 -3 -5 &Khanfeline Shifter Globals=2 2 3 -3 0 &Pumoncasokto Shifter Globals=1 2 2 -1 0 &Pumoncacrinos Shifter Globals=3 3 4 -3 -5 &Pumoncachatro Shifter Globals=3 3 3 -3 -5 &Pumoncafeline Shifter Globals=2 3 3 0 0 &Qualmisokto Shifter Globals=0 2 0 0 1 &Qualmicrinos Shifter Globals=1 3 1 -2 -5 &Qualmichatro Shifter Globals=1 4 1 -2 -5 &Qualmifeline Shifter Globals=0 4 0 -2 0 &Simbasokto Shifter Globals=2 1 2 -1 -1 &Simbacrinos Shifter Globals=3 2 3 -2 -5 &Simbachatro Shifter Globals=3 2 3 -2 -5 &Simbafeline Shifter Globals=3 3 2 -1 0 &Swarasokto Shifter Globals=1 2 1 -1 0 &Swaracrinos Shifter Globals=2 4 3 -3 -5 &Swarachatro Shifter Globals=2 4 3 -3 -5 &Swarafeline Shifter Globals=1 4 2 -3 0 &bastetshift Shifter Globals=$+bshift *:@switch [gt(match(first(get(%#/race)),bastet),0)]=0,@pemit %#=I'm sorry but you are not a bastet so cannot use this code.,{@switch [strlen(get(%#/form))]=0,@pemit %#=You have not set your original form yet. Please do so with '+bshift/set ' so it is known what form you are shifting from.,{@name %#=[switch(strlen(get(%#/[u(me/left,lcstr(%0),3)]name)),0,[name(%#)],[get(%#/[u(me/left,lcstr(%0),3)]name)])];@dolist [get(me/fingerattributes)]=&## %#=[get(%#/[u(me/left,lcstr(%0),3)]##)];@switch [u(me/left,lcstr(%0),3)]=hom,{@pemit/contents [loc(%#)]=%N slowly starts shifting into homid form until the form is complete.;&form %#=[u(me/left,lcstr(%0),3)];@dolist [lattr(%#/temp*)]=&## %#=;@switch [gt(words(get(%#/desc[u(me/left,%0,3)])),3)]=0,@desc %#=[get(me/homiddesc)],@desc %#=[get(%#/desc[u(me/left,%0,3)])]},sok,{@pemit/contents [loc(%#)]=%N slowly starts shifting into sokto form until the form is complete.;@dolist [lattr(%#/temp*)]=&## %#=;@switch [lcstr(get(%#/form))]=hom,&homdesc %#=[get(%#/desc)];&form %#=[u(me/left,lcstr(%0),3)];@wait 2=&tempstrength %#=[switch([gt(add(get(%#/strength),extract(get(me/[extract(get(%#/race),6,1)]sokto),1,1)),0)],0,0,[add(get(%#/strength),extract(get(me/[extract(get(%#/race),6,1)]sokto),1,1))])];@wait 2=&tempdexterity %#=[switch([gt(add(get(%#/dexterity),extract(get(me/[extract(get(%#/race),6,1)]sokto),2,1)),0)],0,0,[add(get(%#/dexterity),extract(get(me/[extract(get(%#/race),6,1)]sokto),2,1))])];@wait 2=&tempstamina %#=[switch([gt(add(get(%#/stamina),extract(get(me/[extract(get(%#/race),6,1)]sokto),3,1)),0)],0,0,[add(get(%#/stamina),extract(get(me/[extract(get(%#/race),6,1)]sokto),3,1))])];@wait 2=&tempmanipulation %#=[switch([gt(add(get(%#/manipulation),extract(get(me/[extract(get(%#/race),6,1)]sokto),4,1)),0)],0,0,[add(get(%#/manipulation),extract(get(me/[extract(get(%#/race),6,1)]sokto),4,1))])];@wait 2=&tempappearance %#=[switch([gt(add(get(%#/appearance),extract(get(me/[extract(get(%#/race),6,1)]sokto),5,1)),0)],0,0,[add(get(%#/appearance),extract(get(me/[extract(get(%#/race),6,1)]sokto),5,1))])];@switch [gt(words(get(%#/desc[u(me/left,%0,3)])),0)]=0,@desc %#=[get(me/soktodesc)],@desc %#=[get(%#/desc[u(me/left,%0,3)])]},cri,{@pemit/contents [loc(%#)]=%N slowly starts shifting into crinos form until the form is complete.;@dolist [lattr(%#/temp*)]=&## %#=;@switch [lcstr(get(%#/form))]=hom,&homdesc %#=[get(%#/desc)];&form %#=[u(me/left,lcstr(%0),3)];@wait 2=&tempstrength %#=[switch([gt(add(get(%#/strength),extract(get(me/[extract(get(%#/race),6,1)]crinos),1,1)),0)],0,0,[add(get(%#/strength),extract(get(me/[extract(get(%#/race),6,1)]crinos),1,1))])];@wait 2=&tempdexterity %#=[switch([gt(add(get(%#/dexterity),extract(get(me/[extract(get(%#/race),6,1)]crinos),2,1)),0)],0,0,[add(get(%#/dexterity),extract(get(me/[extract(get(%#/race),6,1)]crinos),2,1))])];@wait 2=&tempstamina %#=[switch([gt(add(get(%#/stamina),extract(get(me/[extract(get(%#/race),6,1)]crinos),3,1)),0)],0,0,[add(get(%#/stamina),extract(get(me/[extract(get(%#/race),6,1)]crinos),3,1))])];@wait 2=&tempmanipulation %#=[switch([gt(add(get(%#/manipulation),extract(get(me/[extract(get(%#/race),6,1)]crinos),4,1)),0)],0,0,[add(get(%#/manipulation),extract(get(me/[extract(get(%#/race),6,1)]crinos),4,1))])];@wait 2=&tempappearance %#=[switch([gt(add(get(%#/appearance),extract(get(me/[extract(get(%#/race),6,1)]crinos),5,1)),0)],0,0,[add(get(%#/appearance),extract(get(me/[extract(get(%#/race),6,1)]crinos),5,1))])];@switch [gt(words(get(%#/desc[u(me/left,%0,3)])),0)]=0,@desc %#=[get(me/bastetcrinosdesc)],@desc %#=[get(%#/desc[u(me/left,%0,3)])]},cha,{@pemit/contents [loc(%#)]=%N slowly starts shifting into chatro form until the form is complete.;@dolist [lattr(%#/temp*)]=&## %#=;@switch [lcstr(get(%#/form))]=hom,&homdesc %#=[get(%#/desc)];&form %#=[u(me/left,lcstr(%0),3)];@wait 2=&tempstrength %#=[switch([gt(add(get(%#/strength),extract(get(me/[extract(get(%#/race),6,1)]chatro),1,1)),0)],0,0,[add(get(%#/strength),extract(get(me/[extract(get(%#/race),6,1)]chatro),1,1))])];@wait 2=&tempdexterity %#=[switch([gt(add(get(%#/dexterity),extract(get(me/[extract(get(%#/race),6,1)]chatro),2,1)),0)],0,0,[add(get(%#/dexterity),extract(get(me/[extract(get(%#/race),6,1)]chatro),2,1))])];@wait 2=&tempstamina %#=[switch([gt(add(get(%#/stamina),extract(get(me/[extract(get(%#/race),6,1)]chatro),3,1)),0)],0,0,[add(get(%#/stamina),extract(get(me/[extract(get(%#/race),6,1)]chatro),3,1))])];@wait 2=&tempmanipulation %#=[switch([gt(add(get(%#/manipulation),extract(get(me/[extract(get(%#/race),6,1)]chatro),4,1)),0)],0,0,[add(get(%#/manipulation),extract(get(me/[extract(get(%#/race),6,1)]chatro),4,1))])];@wait 2=&tempappearance %#=[switch([gt(add(get(%#/appearance),extract(get(me/[extract(get(%#/race),6,1)]chatro),5,1)),0)],0,0,[add(get(%#/appearance),extract(get(me/[extract(get(%#/race),6,1)]chatro),5,1))])];@switch [gt(words(get(%#/desc[u(me/left,%0,3)])),0)]=0,@desc %#=[get(me/chatrodesc)],@desc %#=[get(%#/desc[u(me/left,%0,3)])]},fel,{@dolist [lattr(%#/temp*)]=&## %#=;@pemit/contents [loc(%#)]=%N slowly starts shifting into feline form until the form is complete.;@switch [lcstr(get(%#/form))]=hom,&homdesc %#=[get(%#/desc)];&form %#=[u(me/left,lcstr(%0),3)];@switch [gt(words(get(%#/desc[u(me/left,%0,3)])),0)]=0,@desc %#=[get(me/felinedesc)],@desc %#=[get(%#/desc[u(me/left,%0,3)])];@wait 2=&tempstrength %#=[switch([gt(add(get(%#/strength),extract(get(me/[extract(get(%#/race),6,1)]feline),1,1)),0)],0,0,[add(get(%#/strength),extract(get(me/[extract(get(%#/race),6,1)]feline),1,1))])];@wait 2=&tempdexterity %#=[switch([gt(add(get(%#/dexterity),extract(get(me/[extract(get(%#/race),6,1)]feline),2,1)),0)],0,0,[add(get(%#/dexterity),extract(get(me/[extract(get(%#/race),6,1)]feline),2,1))])];@wait 2=&tempstamina %#=[switch([gt(add(get(%#/stamina),extract(get(me/[extract(get(%#/race),6,1)]feline),3,1)),0)],0,0,[add(get(%#/stamina),extract(get(me/[extract(get(%#/race),6,1)]feline),3,1))])];@wait 2=&tempmanipulation %#=[switch([gt(add(get(%#/manipulation),extract(get(me/[extract(get(%#/race),6,1)]feline),4,1)),0)],0,0,[add(get(%#/manipulation),extract(get(me/[extract(get(%#/race),6,1)]feline),4,1))])];@wait 2=&tempappearance %#=[switch([gt(add(get(%#/appearance),extract(get(me/[extract(get(%#/race),6,1)]feline),5,1)),0)],0,0,[add(get(%#/appearance),extract(get(me/[extract(get(%#/race),6,1)]feline),5,1))])]},{@pemit %#=I'm sorry but I do not know that form for bastet. Please chose either of the following: Homid sokto crinos chatro feline.;@dolist [get(me/fingerattributes)]=&## %#=[get(%#/[u(me/left,lcstr(get(%#/form)),3)]##)]}}} &bastetformset Shifter Globals=$+bshift/set *:@switch [gt(match(first(get(%#/race)),bastet),0)]=0,@pemit %#=I'm sorry but you are not a bastet so cannot use this code.,{@switch [gt(strlen(get(%#/form)),0)]=1,@pemit %#=You need to use the normal +bshift code to change forms. This command is only to set your first form.,{@switch [u(me/left,lcstr(%0),3)]=hom,{&form %#=[u(me/left,lcstr(%0),3)];@pemit %#=You have set your form to Homid and your current name and fingers attributes now are set to below to that form.;&homname %#=[name(%#)];@dolist [get(me/fingerattributes)]={&hom## %#=[get(%#/##)]}},sok,{&form %#=[u(me/left,lcstr(%0),3)];@pemit %#=You have set your form to sokto and your current name and fingers attributes now are set to below to that form.;&sokname %#=[name(%#)];@dolist [get(me/fingerattributes)]={&sok## %#=[get(%#/##)]}},cri,{&form %#=[u(me/left,lcstr(%0),3)];@pemit %#=You have set your form to crinos and your current name and fingers attributes now are set to below to that form.;&criname %#=[name(%#)];@dolist [get(me/fingerattributes)]={&cri## %#=[get(%#/##)]}},cha,{&form %#=[u(me/left,lcstr(%0),3)];@pemit %#=You have set your form to chatro and your current name and fingers attributes now are set to below to that form.;&chaname %#=[name(%#)];@dolist [get(me/fingerattributes)]={&cha## %#=[get(%#/##)]}},fel,{&form %#=[u(me/left,lcstr(%0),3)];@pemit %#=You have set your form to feline and your current name and fingers attributes now are set to below to that form.;&felname %#=[name(%#)];@dolist [get(me/fingerattributes)]={&fel## %#=[get(%#/##)]}},{@pemit %#=I'm sorry but I do not know that form for bastet. Please chose either of the following: Homid sokto crinos chatro feline.}}} &bastetdescset Shifter Globals=$+bshift/desc *=*:@switch [gt(match(first(get(%#/race)),bastet),0)]=0,@pemit %#=I'm sorry but you are not a bastet so cannot use this code.,{@switch [u(me/left,lcstr(%0),3)]=hom,{&deschom %#=%1;@pemit %#=You have set your desc for Homid},sok,{&descsok %#=%1;@pemit %#=You have set your desc for sokto},cri,{&desccri %#=%1;@pemit %#=You have set your desc for crinos},cha,{&desccha %#=%1;@pemit %#=You have set your desc for chatro},fel,{&descfel %#=%1;@pemit %#=You have set your desc for feline},{@pemit %#=I'm sorry but I do not know that form for bastet. Please chose either of the following: Homid sokto crinos chatro feline.} &shiftinginfo Shifter Globals=$+shift*:@pemit %#=If you wish to shift, you need to use a race specific command. Use +gshift if you are Garou, +bshift if you are Bastet, +nshift if you are Nuwisha. Unfortunately shifter code for other shifters is not up yet, so if you are another shifter race please ask your local wizard for the way to shift. for more information +shift/help. &namefind Shifter Globals=[iter([lattr(%0/???name)],[get(%0/##)], ,|)] &garouname Shifter Globals=$+gshift/name *=*:@switch [match(first(get(%#/race)),garou)]=0,@pemit %#=I'm sorry but since you're not a garou you cannot use this code,{@switch [match(homid glabro crinos hispo lupus,%0)]=0,@pemit %#=I do not know that form for Garou. Please choose from homid glabro crinos hispo lupus.,{@switch [gte(match([fold(me/namesearch,[search(type=player)])],%1,|),0)]=1,{@switch [gte(match([name(%#)]|[switch(gt(strlen(get(%#/alias)),0),1,[get(%#/alias)]|)][iter([lattr(%#/???name)],[get(%#/##)], ,|)],%1,|),0)]=1,{@pemit %#=You used that name yourself so you can use it for more forms then one. Your %0 name is saved as %1.;&[u(me/left,%0,3)]name %#=%1},@pemit %#={I'm sorry but someone else has allready taken that name, please use another spelling or - instead of spaces or something like that.}},{&[u(me/left,%0,3)]name %#=%1;Your %0 name is saved as %1.}}} &namesearch Shifter Globals=[name(%1)]|[switch(gt(strlen(get(%1/alias)),0),1,[get(%1/alias)]|)][u(me/namefind,%1)]%0 &nuwishaname Shifter Globals=$+nshift/name *=*:@switch [match(first(get(%#/race)),nuwisha)]=0,@pemit %#=I'm sorry but since you're not a nuwisha you cannot use this code,{@switch [match(homid tsitsu manabozho sendeh latrani,%0)]=0,@pemit %#=I do not know that form for nuwisha. Please choose from homid manabozho sendeh latrani.,{@switch [gte(match([fold(me/namesearch,[search(type=player)])],%1,|),0)]=1,{@switch [gte(match([name(%#)]|[switch(gt(strlen(get(%#/alias)),0),1,[get(%#/alias)]|)][iter([lattr(%#/???name)],[get(%#/##)], ,|)],%1,|),0)]=1,{@pemit %#=You used that name yourself so you can use it for more forms then one. Your %0 name is saved as %1.;&[u(me/left,%0,3)]name %#=%1},@pemit %#={I'm sorry but someone else has allready taken that name, please use another spelling or - instead of spaces or something like that.}},{&[u(me/left,%0,3)]name %#=%1;Your %0 name is saved as %1.}}} &bastetname Shifter Globals=$+bshift/name *=*:@switch [match(first(get(%#/race)),bastet)]=0,@pemit %#=I'm sorry but since you're not a bastet you cannot use this code,{@switch [match(Homid Sokto Crinos Chatro Feline,%0)]=0,@pemit %#=I do not know that form for bastet. Please choose from Homid Sokto Crinos Chatro Feline.,{@switch [gte(match([fold(me/namesearch,[search(type=player)])],%1,|),0)]=1,{@switch [gte(match([name(%#)]|[switch(gt(strlen(get(%#/alias)),0),1,[get(%#/alias)]|)][iter([lattr(%#/???name)],[get(%#/##)], ,|)],%1,|),0)]=1,{@pemit %#=You used that name yourself so you can use it for more forms then one. Your %0 name is saved as %1.;&[u(me/left,%0,3)]name %#=%1},@pemit %#={I'm sorry but someone else has allready taken that name, please use another spelling or - instead of spaces or something like that.}},{&[u(me/left,%0,3)]name %#=%1;Your %0 name is saved as %1.}}} &removetaint Shifter Globals=$+taint/rem *:@switch [orflags(%#,wWZ)]=0,{@pemit %#=I'm sorry but since you are not staff you cannot use this command.},{@switch [match(type(*%0),PLAYER)]=0,{@pemit %#=I'm sorry but %0 does not seem to be the name of a player.},{&tainted[num(*%0)] me=;@pemit %#=The taint has been removed.}} &looktaint Shifter Globals=$+taint/look *:@switch [orflags(%#,wWZ)]=0,{@pemit %#=I'm sorry but since you are not staff you cannot use this command.},{@switch [match(type(*%0),PLAYER)]=0,{@pemit %#=I'm sorry but %0 does not seem to be a player.},{@switch [hasattr(#3005,tainted[num(*%0)])]=0,{@pemit %#=That player is not tainted.},{@pemit %#=%0's custom taint is set to: [get(#3005/tainted[num(*%0)])]}}} &taintset Shifter Globals=$+taint *=*:@switch [orflags(%#,wWZ)]=0,{@pemit %#=I'm sorry but since you are not staff you cannot use this command.},{@switch [match(type(*%0),PLAYER)]=0,{@pemit %#=I'm sorry but %0 does not seem to be a player.},{&tainted[num(*%0)] me=%1;@pemit %#=You have set %0's taint to %1.}} &tainthelp Shifter Globals=$+taint:@pemit %#=The following commands are meant to use sensewyrm or find taint:%r%r+sensewyrm %tfor a shifter with that gift to sense wyrm.%r%rFor staffers:%r+taint =%tto set taint for name.%r+taint/look %tto check taint for %r+taint/rem %tto remove the taint on &wyrmsense shifter globals=$+sensewyrm *:@switch [strlen(get(%#/specsense-wyrm))]=0,@pemit %#=I'm sorry but you do not seem to have the gift sense wyrm..,{@switch [gt(sub(secs(),u(lastsensed%#)),600)]=0,@pemit %#=You need to wait at least 10 minutes before you can use sense wyrm again.,{@switch [match(type(*%0),PLAYER)]=0,{@pemit %#=I'm sorry but %0 does not seem to be a player.},{@switch [match(loc(*%0),loc(%#))]=0,@pemit %#=I'm sorry but you need to be in one room with %0.,{&lastsensed%# me=[secs()];[setq(2,[u(me/roll,[add(get(%#/perception),get(%#/abilknooccult))],6)])];[setq(8,[u(sw_calc_fn, %0)])];@switch [gt(%q2,0)]=1,{@pemit %#=%rYou try to sense wyrm on %0 and sense [%q8] taint.%r.},@pemit %#=You concentrate on [name(*%0)] and sense no taint.}}}} &SW_CALC_FN shifter globals=[switch([gte(match(parse(lattr(me/tainted*),#[after(##,#)]),[num(*%0)]),1)],1,[get(me/tainted[num(*%0)])],0,[switch([gt(get(*%0/systhumanity),0)],0,[switch(hasattr(*%0,systpath),0,no,1,[switch(get(*%0/systpath)],1,mild,2,mild,3,mild,4,mild-medium,5,mild-medium,6,medium,7,medium,8,strong,9,strong ,10,strong)])],1,[switch(get(*%0/systhumanity),1,strong,2,strong,3,strong,4,medium,5,mild -medium,6,mild,7,no,8,no,9,no,10,no)])] &roll shifter globals= [setq(0,0)][trim([iter(lnum(%0),[setq(1,rand(10))][switch(1,gte(add(1,r(1)),%1),[setq(0,add (r(0),1))],eq(r(1),0),[setq(0,sub(r(0),1))])])][r(0)])] @set Shifter GLobals=inherit @set Shifter GLobals=safe