Difference between revisions of "String Parsing"
m (→Formatting) |
(→Pronoun Substitutions) |
||
Line 76: | Line 76: | ||
:You can also use ^bold^, ^blink^, ^italics^, ^underline^ | :You can also use ^bold^, ^blink^, ^italics^, ^underline^ | ||
− | === | + | === Pronouns === |
− | :%a/%A for absolute possessive (his/hers/its, His/Hers/Its) | + | These will display the correct gender of the pronoun according to the container of the description. |
− | :%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 <item>, His/Her/Hir/Its <item>) |
− | :% | + | ::Example: Who's book is it? It's %p book. |
− | :%r/%R for reflexive pronouns (himself/herself/itself,Himself/Herself/Itself) | + | :%a/%A for absolute possessive pronouns (his/hers/hirs/its, His/Hers/Hirs/Its) |
+ | ::Example: Who's book is it? It's %a. | ||
+ | :%s/%S for subjective pronouns (he/she/shi/it, He/She/Shi/It) | ||
+ | ::Example: %S got the book. | ||
+ | :%o/%O for objective pronouns (him/her/hirs/it, Him/Her/Hir/It) | ||
+ | ::Example: The book fell on %o. | ||
+ | :%r/%R for reflexive pronouns (himself/herself/hirself/itself,Himself/Herself/hirself/Itself) | ||
+ | ::Example: Chris did it all by %r. | ||
:%n/%N for the player's name. | :%n/%N for the player's name. | ||
− | + | ::The shopkeeper's name is %n . | |
− | |||
=== Sub-values === | === Sub-values === |
Revision as of 23:53, 23 December 2011
String Parsing (SP) refers to some of the underlying guts of the MUD. You can use it to liven up your creature submissions, rooms, and even your own description. While it's a bit limited in power compared to other languages, it's easy to read and learn.
If you're new to programming, it's recommended you use notepad to work in. This lets you save your files localy in case of a disconnect, and avoids weird formatting issues that sometimes pop up in Word. If you're going to be using SP heavily, look for a programming editor like Notepad++ (Win) or Fraise (Mac).
Contents
Basic Syntax
Formatting
Everything in SP is contained in brackets []. Though SP is supposedly case insensitive, it's recommended you use only lowercase.
There should be no spaces after the leading bracket or before the trailing bracket.
- [like this]
- [ not like this ]
Line breaks are bad. Avoid them within brackets, and within [if...][end if] sections.
This is bad.
- Hi [player]![if [player] is male]
- I'm a
- boy![end if]
This is good.
- Hi! [player]!
- [if [player] is male]I'm a boy![end if]
Nesting
You may nest [if..][end if] tests. Do NOT nest [one of]...[at random] sections.
- [if [player] is male]I'm a boy[if [player] is female] and a girl[end if]![end if]
Functions
- [variable] will show the value of that variable.
- [stat (stat name) of [(person name)]] -- Show a stat!
- If-Then tests are formatted as [if X]item 1[otherwise]item 2[end if].
- You do not need to include [otherwise] but you must finish with [end if]
- To test multiple items in one check use [if a and b and c], Not [if a and if b and if c]
- You can nest if-thens, but remember your [end if]s.
- Randoms are [one of]X[or]Y[or]Z[at random]. Do NOT nest randoms.
- Comparisons
- [if X is Y] or [if X is not Y]
- [if stat (stat name) of (person name) = (number)]
- [if stat (stat name) of (person name) > (number)]
- [if stat (stat name) of (person name) < (number)] -- Do stat comparisons!
- test for a power [if POWER NAME is owned by TARGET]
- Test gender
- [if TARGET is male] - Does TARGET have a cock?
- [if TARGET is female] - Does TARGET have a pussy?
- [if TARGET is not male] and [if TARGET is not female] - Testing for absence of cock/pussy
- [if TARGET is not male and TARGET is not female] - Combining tests. Only a neuter will pass this.
- [if TARGET is male and TARGET is female] - Combining tests. Only a herm will pass this.
- Test ferility
- [if TARGET is fertile] - Non-females cannot be fertile and will always fail this test.
Targets
Target variables must be encased within brackets ([player], [victor], etc).
victor
- returns the name of the winner in a fight (creature desc only)loser
- returns the loser of a fight (creature desc only)player
- returns the container(player) of the descriptionlooker
- returns the viewer of a descriptioninfected
- returns target of infection (creature infection message only)
Stats
- pregnant - returns pregnancy value. Anything over 0 means pregnant.
[If stat pregnant of loser >0]
- Adventuring Group - returns name of player group
- [skin] -- returns the primary user's skin, primary user can be tricky at times, safest to use in descs and transformations. (better to use mutation/skin)
- freecred - returns target's freecred balance
- hp - returns target's HP percent of total HP (To get raw HP, use 'stat HP') Will return 0 or 100 after mentoring up/down until the next reg 'tick'.
Colors
- Surround the color name in carets (for example, ^red^), then return to normal with ^normal^
- Valid colors: Red, blue, green, cyan, yellow, brown, black, white, gray/grey, possibly others.
- You can also use ^bold^, ^blink^, ^italics^, ^underline^
Pronouns
These will display the correct gender of the pronoun according to the container of the description.
- %p/%P for possessive pronouns (his/her/its <item>, His/Her/Hir/Its <item>)
- Example: Who's book is it? It's %p book.
- %a/%A for absolute possessive pronouns (his/hers/hirs/its, His/Hers/Hirs/Its)
- Example: Who's book is it? It's %a.
- %s/%S for subjective pronouns (he/she/shi/it, He/She/Shi/It)
- Example: %S got the book.
- %o/%O for objective pronouns (him/her/hirs/it, Him/Her/Hir/It)
- Example: The book fell on %o.
- %r/%R for reflexive pronouns (himself/herself/hirself/itself,Himself/Herself/hirself/Itself)
- Example: Chris did it all by %r.
- %n/%N for the player's name.
- The shopkeeper's name is %n .
Sub-values
mutation/skin
- returns skin mutationmutation/head
- returns head mutationmutation/arms
- returns arms mutationmutation/torso
- returns torso mutationmutation/cock
- returns groin mutationmutation/legs
- returns legs mutation
Creature Only Code
These will not work in personal or room descriptions.
- [increase the (stat) of (person name) by (number)] Modify stats, negative numbers are cool. Whole numbers only.
- [impregnate (person name) with (person name)] -- Causes a chance for babies. The first is the mother. Both need proper parts.
- [set the <variable> of <person> to <value>] - Set a custom value on the target.
- [end] -- Used in defeat# and victory# to end the processing in that block if [end] remains after displaying that block.
- infected - returns target of infection (creature infection message only)
Example Code
NPC Name Tracking
By Damaged: You want to say, have a particular name hang about, on the player, so that once they have given in
[if stat Fox/Name of player = 0]"Oh, have we not met? My name is [one of]Lilly[increase the Fox/Name of player by 1][or]Michelle[increase the Fox/Name of player by 2][or]Jenny[increase the Fox/Name of player by 3][at random], and I am going to fuck you nine ways from tuesday!"[otherwise]"Oh, [player]!" [if stat Fox/Name of player = 1]Lilly[end if][if stat Fox/Name of player = 2]Michelle[end if][if stat Fox/Name of player = 3]Jenny[end if] says, "Its tuesday again!"[end if]
Set player color
by Damaged:
str /Infection/Goo Girl/Skin/Transform:A ripple of tingles rushes through your entire body as you sink towards the ground, then rise again, wobbling along the way. A glance at a hand shows that you can see right through your now [set the Goo Girl/texture of player to [one of]jellied[or]gelatine like[or]translucent[at random]] [set the Goo Girl/color of player to [one of]blue[or]red[or]purple[at random]]
Deprecated Code
These functions and items do not work anymore, but are listed for legacy purposes.
- [infect (person name) with (infection name) at (number)] -- has a (number)% chance of infecting the named person with the named infection.