This is a list of LORD RHP codes, for all current or planned programs as
of this release (11-10-97).   Brought up to date, for RHPTest usage,
on October 31, 2002.

The RHP language uses codes that have a @ on both sides.
Some codes do not work with some programs, a key follows:

(X,X.XX) indicates what program and versions it does not work with.  No
version means it does not work at all.

 0: RHP v1 definition, not in any current programs
 1: The L.O.R.D. Cavern v1.3+
 2: The Outlands Tavern v1.3+
 3: The Gateway v1.0+
---------------------------------------------------------------------------

These are the LORD color codes used by RHPTest, LordStat, L.O.R.D. Cavern,
The Outlands Tavern, and The Gateway.  The ` symbol is located above the
1 key on the computer keyboard.  It is NOT an apostrophe.
----------------------------------------------------------

`1: Blue                `2: Green                `3: Cyan
`4: Magenta             `5: Violet               `6: Brown
`7: Lt. Grey            `8: Drk. Grey            `9: Lt. Blue
`0: Lt. Green           `!: Lt. Cyan             `@: Lt. Magenta
`#: Lt. Violet          `$: Lt. Brown (Yellow)   `%: White
`^: Black
---------------------------------------------------------------------------

This first set is just normal commands with no parameters.

@;@@PROGRAM@ xxxxxxxxxxx  What program its for, LORDCAVE or OUTLANDS
                          (1:1.3a-1.3e).  Covers Gateway 1.0+ also.
@;@@VERSION@ xxxx         Version of program the script is compatible with
@;@@NAME@ xxxxxxxxx       Optional name for RHP (for SETUP), maximum
                          length is 50 characters (v1.4+)

Example Notes:  @VERSION@ 1.5 would be used for a LORD Cavern
script using the new @SKILLUSE@ RHP code.
-----------------------------------------------------------------

This set is just random commands.

@;@              Comment, everyting on a line with this at the front
                 will be ignored (works in recording).
@CLEAR@          Clear the screen (works in recording).
@MORE@           Pause for key-press with "<MoRE>"
@DELAY@          Small delay (250 milliseconds)
@END@            Stop program and pause
@KILL@           Stop program, pause, and kill player (player is
                 notified)  (1:1.3a).  All three IGMs support it.

@KILLSAVE@                Same as KILL code, but factors in Fairy.
                          No fairy - player is killed, and notified.
                          Has fairy - (1) It saves them from death,
                          heals wounds, and leaves.  (2) It is on
                          "strike", so player is killed and notified.
                          The Fairy decision is made randomly by the
                          IGM:  "Save player" or "Go on Strike".
                          (RHPTest 1.2+, 1:v1.5+, 2:v1.4+, 3:v1.1+)

@EXIT@             Stop program, pause, and exit to LORD (1:1.3a)
@STATS@            Shows the player's stats (all programs)
@GETROOM@          Stop program, pause, give the player a room and
                   exit to BBS.   For Outlands Tavern usage only.
@RUNRHP@ xxxxxxxx.xxx  Quit current RHP and run xxxxxxxx.xxx (1:1.3e)
                   Usable by RHPTEST and each IGM.
---------------------------------------------------------------------------

This set is for writing to a player's MAIL?.DAT and LORD's LOGNOW.TXT.

@MAIL@      Start writing to mail
@MAILEND@   Stop writing to mail
@NEWS@      Start writing to LOGNOW.TXT
@NEWSLINE@  Stop writing to LOGNOW.TXT and add a line "-=-=-=-"
              centered (on-screen, when file is displayed.)
@NEWSEND@   Stop writing to LOGNOW.TXT

To write to another file, use these (only one file at a time):

@FILE@ xxxxxxxx.xxx  Start appending to file xxxxxxxx.xxx (1:1.3e)
@FILEEND@            Stop writing to file (1:1.3e)
    (This is not currently supported by RHPTest or either IGM.)
---------------------------------------------------------------------------

The following two sets can be used in Mail and News recordings.

  The next set is for designating sections (of a script) to go to.

  @#xxxxxxxx         Section designation, no maximun length
  @GOTO@ @#xxxxxxxx  Go to section xxxxxxxx after this command
---------------------------------------------------------------------------

  The one in this section is for writing lengths of spaces.

  @SPACE@ x  Write x spaces to screen/file
---------------------------------------------------------------------------

This new set is for testing existing information and can be used in
Mail or News recording.

Example: @IF@ FEMALE @GOTO@ @#Help (if player is Female, goto section
                                  @#Help)
Example: @IF@ EXPERIENCE>0 @GOTO@ @#Help (if experience is greater than
                                  0, goto section @#Help)
Example @IF@ FIGHTER `9Good job! (if player is a Death Knight, write
                                  `9Good job! to file/screen)
Example @IFNOT@ MAGIC `9Good job! (if player is not a Magician, write
                                  `9Good job! to file/screen)

@IF@ condition command  Test condition, if True, do command.  Command
                   can be any RHP @ command or one line text.  Condition
                   can have math in it (see variables section). (v1.3a+)
@IFNOT@ condition command  Test condition, if False, do command.
                   Command can be any RHP @ command or one line text.
                   Condition can have math in it (see the Variables
                   section). (v1.4+)

Usable conditions for the @IF@ and @IFNOT@ statements:
--------------------------------------------------
 FEMALE     : returns if player is Female
 MALE       : returns if player is Male
 FIGHTER    : returns if player is currently a Death Knight
 MAGIC      : returns if player is currently a Magic User
 THIEF      : returns if player is currently a Thief
 HORSE      : returns if player has a Horse
 FAIRY      : returns if player has a Fairy
 MARRIED    : returns if player is married, works with Violet and Seth
              Able marriages as well as player to player.
 SPIRITS    : returns if player is in High Spirits (v1.3c+)
 WEIRDEVENT : returns if player will have a Weird Event in the forest
              (v1.3c+)
 HEALED     : returns if player is healed (v1.4+)
 x<y        : returns if number x is less than a number y
 x>y        : returns if number x is greater than a number y
 x<>y       : returns if x is not equal to y
 x=y        : returns if x is equal to y
----------------------------------------

 BARDSONG   : Returns if player has heard Bard Sing in Inn.
              (RHPTest 1.2+, 1:v1.5+, 2:v1.4+, 3:v1.1+)
 FLIRTED    : Returns if player has Flirted With another Player yet.
              (RHPTest 1.2+, 1:v1.5+, 2:v1.4+, 3:v1.1+).
 SETHVIOLET : Returns if player has Flirted with Violet or Seth.
              (RHPTest 1.2+, 1:v1.5+, 2:v1.4+, 3:v1.1+)
 SEENMASTER : Returns if player has Seen Master yet.
              (RHPTest 1.2+, 1:v1.5+, 2:v1.4+, 3:v1.1+)
 SEENDRAGON : Returns if player has Seen the Red Dragon yet.
              (RHPTest 1.2+, 1:v1.5+, 2:v1.4+, 3:v1.1+)

Any number can be used as X or Y, or you can use player stats.
-----------------------------------------------------------------

Player stats that can be used as x or y:

 SEARCH     : Cave searches        (L.O.R.D. Cavern, Rhptest)
 VISITS     : Visits Left          (The Gateway, Rhptest)
 DRUNKLEVEL : Level of Drunk-ness  (Outlands Tavern, Rhptest)
 -------------------------------------------------
 FOREST     : Forest fights
 FIGHTS     : Player fights
 KIDS       : Kids
 DEFENCE    : Defense Points.
 DEFENSE    : Defense Points (1: v1.5+, 2:v1.4+, 3:v1.2+, RHPTest 1.2+)
 STRENGTH   : Strength Points
 EXPERIENCE : Experience Points
 LAYS       : Lays
 SKILL      : Current skill type points amount
 HITPOINTS  : Current HitPoints
 HITMAX     : Max HitPoints
 GEMS       : Gems
 GOLD       : Gold in hand
 BANK       : Gold in bank
 CHARM      : Charm
 WEAPON     : Weapon number
 ARMOUR     : Armour number
 LEVEL      : Player's level (1:1.3c)
 KILLS      : Number of player kills (1:1.3c)
 ALLGOLD    : Total amount of gold (1:v1.4+)
 WINS       : Number of times player has won (1:v1.4+)
----------------------------------------
 SKILLUSE   : Skill Usage Points amount, for current Skill.
              (1:v1.5+, 2:v1.4+, 3:v1.2+, RHPTest 1.2+)
============================================================

ALLGOLD can only be displayed in a script, using @*@ALLGOLD@*@
in a text statement.  LEVEL, CLASS, and WINS are display-only
variables, which can't be set by the script writer.
==================================================================

The following set is for prompting for Input (from player).  The
single character section is used to act on the Input data.  The
program runner acts on the first matching section found, so don't
use the same selections nested.

Example: @PROMPT@ CD (prompts for C and D selections.  You MUST
                      have @##C and @##D sections later in script.)

@YESNO@        Prompt for Y/n, Y and N sections
@PROMPT@ xx..  Prompt for selections xx.., selections must be
             capitalized.  The first selection will be the default one.
@RANDOM@ x     Random number between 1 and x, each number a section
@##x           Single character section, can be called with @GOTO@
-----------------------------------------------------------------

The following set has some special properties.  If you put a = before
the number x, it makes that attribute equal to x.  If you put %, it adds
/ subtracts x% of the existing attribute to the attribute.  Ones marked
with a $ can be used in Mail without the = option and may just increment
the attribute by 1.  Player is notified with a 'You LOSE/GAIN x <type>!'
in both Mail and on screen, except not in Mail for those that just
increment.

You can also do one math operation (/,*,+,-) in a line. (1.4+)

NEW: Putting *@LEVEL@ multiplies something times the player's level.

Example: @EXPERIENCE@ %-15 (Subtracts 15% of experience)
Example: @GOLD@ =0 (Sets gold in hand to 0)
Example: @EXPERIENCE@ 4*LEVEL (Adds 4 times the player's level to
                               their Experience.) (v1.3c+)
-------------------------
Example: @SKILLUSE@ +1   (Adds 1 to current Skill's Uses)
Example: @SKILL@ -1      (Deletes 1 skill point, of current class)

@SEARCH@ x      Cavern searches   (for L.O.R.D. Cavern use only)
@FOREST@ x      Forest fights ($)
@FIGHTS@ x      Player fights ($)
@KIDS@ x        Kids  ($ increments number by 1, ignores x)
@DEFENCE@ x     Defence ($)
@DEFENSE@ x     Defense ($)          (Added in July 2002)
@STRENGTH@ x    Strength ($)
@EXPERIENCE@ x  Experience ($)
@LAYS@ x        Lays ($ increments number by 1, ignores x)
@SKILL@ x       Current Skill type (if resulting number is above 40 the
                Skill value is set to 40, no uses are given)
                ($ increments number by 1, ignores x)
@HITPOINTS@ x   Current HitPoints
@HITMAX@ x      Max HitPoints ($)
@GEMS@ x        Gems
@GOLD@ x        Gold in Hand ($)
@BANK@ x        Gold in Bank ($)
@CHARM@ x       Charm ($)(increments number by 1, ignores x, = option can
                be used)
@KILLS@ x       Number of player kills (1:1.3c)
--------------------

@SKILLUSE@ x    For current Skill's Use Points. x - Set field to
                what X is.  ($) - Increments field by 1.  {*SEE NOTE*}
                (1: v1.5+, 2: v1.4+, 3:v1.1+, RHPTest v1.2+)
                ($ increments number by 1, ignores x)

Other examples:
  @CLASS@ - As indicated previously, script can change player's
            Skill Class to 1, 2, or 3.  Would immediately affect
            script handling of @SKILL@, @SKILLUSE@, @FIGHTER@,
            @MAGIC@, and @THIEF@ codes.  Could also cause changes in
            how player was affected in the IGM itself, afterwards.
  @WEAPON@ - Weapon number.  Can be set between 1 and 15.
             Usage of Code, will probably not drop/raise Strength points.
  @ARMOUR@ - Armour number.  Can be set between 1 and 15.
             Usage of Code, will probably not drop/raise Defense points.
----------------------------------------------------------------------

@VARIABLE1@ x   RHP variable 1 for math, is forgotten after RHP is done
@VARIABLE2@ x   RHP variable 2 for math, is forgotten after RHP is done
@VARIABLE3@ x   RHP variable 3 for math, is forgotten after RHP is done
@VARIABLE4@ x   RHP variable 4 for math, is forgotten after RHP is done
@VARIABLE5@ x   RHP variable 5 for math, is forgotten after RHP is done
----------------------------------------------------------------------

These codes are special player value changers that don't act like the
earlier ones.  They cannot be used in mail.  Player is NOT notified.

@FAIRY@       Changes if user has a Fairy.  Takes no parameters.  If
              user has a Fairy, it's taken else one is given. (1:v1.3a+)
@HORSE@       Changes if user has a Horse.  Takes no parameters.  If
              user has a Horse, it's taken else one is given. (1:v1.3a+)
@SEX@         Changes user's sex.  Takes no parameters. (v1.3a+)
@ARMOUR@      Changed!  Changes armour name to built in name (same as in
              The Skeleton Happening) (1:v1.3a+, changed v1.3d+)
@WEAPON@      Changed!  Changes weapon name to built-in name (same as in
              The Skeleton Happening) (1:v1.3a+, changed v1.3d+)
@WEIRDEVENT@  Changes if user will have a weird event in the forest,
              that is if they will find gems when entering. (v1.3c+)
@SPIRITS@     Changes the player's spirits, from high to low or from low
              to high. (1:v1.3c+)
@HEAL@        Heals the player.  (1:v1.4+)
----------------------------------------

NOTE:  If Weapon/Armour names are specified in a RHP Script, they
       may NOT exceed 20 spaces in length.
---------------------------------------------------------------------------

    For L.O.R.D. Cavern v1.5+, Outlands Tavern v1.4+, Gateway v1.1+,
    and RHPTest v1.2+ usage only:
@BARDSONG@       Indicates whether player has have heard Bard Sing.
@FLIRTED@        Indicates whether player has Flirted with Player yet.
@SETHVIOLET@     Indicates whether player has Flirted with either
                 Violet or Seth Able.
@SEENMASTER@     Indicates whether player has Seen their Master yet.
@SEENDRAGON@     Indicates whether player has Seen the Red Dragon yet.
----------------------------------------------------------------------

10/23/02: Applies to all three IGMs and RHPTest:
----------------------
Variables like these work like the older LORD style codes, you put them
in a string to Output, and they get replaced by the corresponding value.
Place the word you want in between @*@ like so:

  Example: `4Hello, @*@NAME@*@!

ALLGOLD    : Player's total gold (In Hand + In Bank)
ARMOUR     : Player's armour name (same as `a)
BANK       : Player's bank gold
CHARM      : Player's charm
CLASS      : Player's class (eg. "Death Knight")
DEFENCE    : Player's defense points
DEFENSE    : Player's defense points   (Rhptest v1.2+, 1:v1.5+)
EXPERIENCE : Player's experience
FIGHTS     : Player's human fights left
FOREST     : Player's forest fights left
GOLD       : Player's gold on hand
HITPOINTS  : Player's current hitpoints
HITMAX     : Player's maximum hitpoints
KILLS      : Player's number of player kills
KIDS       : Player's number of kids
LAYS       : Player's number of lays
LEVEL      : Player's level
NAME       : Player's name (same as `n lord code)
MARRIED    : Player's spouse's name (same as `m)
STRENGTH   : Player's strength
SKILL      : Player's skill level for current class
SEARCH     : Player's cave searches left
VARIABLE1  : RHP variable 1
VARIABLE2  : RHP variable 2
VARIABLE3  : RHP variable 3
VARIABLE4  : RHP variable 4
VARIABLE5  : RHP variable 5
WEAPON     : Player's weapon name (same as `w)
WINS       : Number of times player has won
-------------------------

SKILLUSE   : Player's Skill Use Points for current Skill.
             (RhpTest v1.2+, 1:1.5+)
-----------------------------------------------------------------

07/15/02: Applies to RHPTest v1.2+, and the October 2002 LORD IGM
releases:

CLEANMODE - Used in script to do one set of commands if LORD is
    in Clean Mode.  Second set done if LORD is in normal mode.
    Here are two examples of how to use it:

@IF@ CLEANMODE `1You're naughty!
-- If LORD is in clean mode, it displays the "You're naughty" phrase
on screen.  Can also be used with the @GOTO@ command, etc.

@IFNOT@ CLEANMODE <your statement>
-- If Clean mode NOT in use, then <your statement> content is
displayed on-screen.  Usable with @GOTO@ command, etc.

----------------------------
@IFNOT@ note:  All variables that can be used with @IF@ may also be
used with @IFNOT@.
---------------------------------------------------------------------

Usage of the @VARIABLEx@ Codes:  07/16/2002
    The @VARIABLE1@ through @VARIABLE5@ codes may be used in The
L.O.R.D. Cavern, Outlands Tavern, and The Gateway to store math
computation data that are multi-step.  IOW, the standard RHP scripts
easily handle x*y type mathematics.  But something like A*B/C would
require two separate math computation statement lines in a script.

    You store data in the five VARIABLE codes while getting to your
final result for complex math.

To code GOLD = LEVEL*2*GEMS would be done like this:
  Statement #1: @VARIABLE1@=0    (Presets variable for data handling)
  Statement #2: @VARIABLE1@ @LEVEL@*2       (Stores result of Level*2)
  Statement #3: @GOLD@ @VARIABLE1@*GEMS     (Multiples Variable1 * Gems)
  The result of @VARIABLE1@*GEMS is assigned to the @GOLD@ variable.
---------------------------------------------------------------------

The following codes can be put anywhere in a line, even in mail
and news recording.  They are case sensitive!

`n  Put player's name
`a  Put player's armour name
`w  Put player's weapon name
`m  Put player's spouse's name if married (1:1.3a)
`l  Do not linefeed (put at the end of a line)
`s  Put player's sex (he/she)
`o  Put player's opposite sex (he/she)
`[  Put player's sex possesive (his/her)
`]  Put player's opposite sex possesive (his/her)
`<  Put player's sex (him/her) (1:1.3a)
`>  Put player's opposite sex (him/her) (1:1.3a)
-----------------------------------------------------------------

RHPTest info for testing Gateway RHP Scripts:
---------------------------------------------
The @USER1@ to @USER5@ variables, @VISITS@ variable, and if conditions
and in-line includes for those variables are only usable with The
Gateway IGM.  Example: @#@VISITS@#@.
---------------------------------------------------------------------

End of LordCode.txt.  Mostly duplicates what is inside Rhptcode.txt.
Donald Tidmore, maintainer and updater.
File copyrighted by Jason Brown.

Email: ktidmore@bellsouth.net.  OR donald.tidmore@usa.net.

[END]   Updated on October 31, 2002.

