Difference between revisions of "MLPV2 Reference Manual"

From Second Life Wiki
Jump to navigation Jump to search
Line 32: Line 32:
==== MENU ====
==== MENU ====


  MENU **mname** | **who** [ | **ballcolors**]
  MENU ''mname'' | ''who'' [ | ''ballcolors']


This creates a menu named **name**.
This creates a menu named ''name''.


Those who can access it are specified by **who**, one of the following:
Those who can access it are specified by ''who'', one of the following:
| ALL | anyone can use it |
| ALL | anyone can use it |
| GROUP | only those who are wearing a group tag that matches the object's group can use it |
| GROUP | only those who are wearing a group tag that matches the object's group can use it |
Line 59: Line 59:
==== TOMENU ====
==== TOMENU ====


  TOMENU **mname**
  TOMENU ''mname'


This creates a button labeled **mname**, leading to menu **name**, which is usually configured in a subsequent MENU statement.
This creates a button labeled **mname**, leading to menu **name**, which is usually configured in a subsequent MENU statement.
Line 65: Line 65:
==== POSE ====
==== POSE ====


  POSE **pname** | **animname** ...
  POSE ''pname'' | ''animname'' ...


This creates a button for a pose labeled **pname**, using the animations listed after the vertical bar.
This creates a button for a pose labeled ''pname'', using the animations listed after the vertical bar.
The animations are applied to the balls specified, in order.  That is, if the ball colors are "PINK BLUE PINK", three animations should be listed.  The first applies to the first pink ball, the second to the blue ball, and the third animation applies to the third ball, which is pink.
The animations are applied to the balls specified, in order.  That is, if the ball colors are "PINK BLUE PINK", three animations should be listed.  The first applies to the first pink ball, the second to the blue ball, and the third animation applies to the third ball, which is pink.


Line 86: Line 86:
==== LINKMSG ====
==== LINKMSG ====


  LINKMSG **name** | **menu**,**primnum**,*lm-num-arg**,**lm-str-arg**
  LINKMSG ''name'' | ''menu'',''primnum'',''lm-num-arg'',''lm-str-arg''


This creates a button labeled **name** that will send the specified link message to other scripts in the object when the button is used.  This is useful for adding scripted features to MLP2 without having to modify MLP2 scripts.
This creates a button labeled **name** that will send the specified link message to other scripts in the object when the button is used.  This is useful for adding scripted features to MLP2 without having to modify MLP2 scripts.


| parameter | meaning |
| parameter | meaning |
| **menu** | 1 if the script receiving the button will pop up a menu.  It causes MLP2 not to repost its menu, to avoid menus stacking up.  0 otherwise -- doesn't inhibit MLP2's remenu feature. |
| ''menu' | 1 if the script receiving the button will pop up a menu.  It causes MLP2 not to repost its menu, to avoid menus stacking up.  0 otherwise -- doesn't inhibit MLP2's remenu feature. |
| **primnum** | primitive number (see llLinkedMessage() documentation) |
| ''primnum' | primitive number (see llLinkedMessage() documentation) |
| **lm-num-arg** | 'num' arg for llLinkedMessage() |
| ''lm-num-arg'' | 'num' arg for llLinkedMessage() |
| **lm-str-arg** | 'str' arg for llLinkedMessage() |
| ''lm-str-arg'' | 'str' arg for llLinkedMessage() |


The menu user's key is passed as the 'key' argument for llLinkedMessage().
The menu user's key is passed as the 'key' argument for llLinkedMessage().

Revision as of 12:32, 31 May 2008

MLPV2 Reference Manual

.MENUITEMS* files

When MLP2 starts or is "Menu Reset", it reads all *.MENUITEMS* files, in the same order as they're listed in object contents ("*" can be anything). You can have as many as you want or just one. MLP2 essentially reads them all as though they've been concatenated into one big file.

The first two things (other than comments) it reads has to be two POSE statements, first for "default" and second for "stand" -- even if you don't use the STAND button anywhere.

After that, it expects directives and menu configurations.

Comments

Comments begin with "//". Any subsequent text on that line is igored.

Directives

Directives affect the behavior of MLP2. They don't cause a button to appear, and it doesn't matter where in the .MENUITEMS* files they are.

MENUORDER

This directive causes all menu buttons to appear in menus in the same order as they appear in the .MENUITEMS* files. If absent, menus are in the group-by-3-backwards order typical of SL menus, like original MLP. If present *anywhere* in the .MENUITEMS files, it affects all menus.

NORELOAD

This directive causes MLP2 not to do a menu reset when rezzed.

Menu configurations

Menu configurations create menus. The first MENU created is the main menu, which a user gets on touching the object. The remaining menus are reached via buttons configured using TOMENU.

MENU

MENU mname | who [ | ballcolors']

This creates a menu named name.

Those who can access it are specified by who, one of the following: | ALL | anyone can use it | | GROUP | only those who are wearing a group tag that matches the object's group can use it | | OWNER | only the object owner can use it |

This is optionally followed by a set of ball colors to be used for all poses in this menu. Currently supported colors are: | BLUE | | PINK |

To change the actual color for the balls, see the ~ball script inside the ~ball object. This is an advanced topic. The next release of MLP2 will support more colors.

Zero to four balls can be specified, supporting poses for up to 4 participants. If a menu has no ball colors listed, it should have no POSE buttons. The balls are rezzed as necessary, when a pose in the menu is selected.

The menu's buttons are configured following the MENU statement.

If there is no TOMENU statement on another menu, and if there are "TOMENU -" statements for the main menu, a button for this menu (labeled **name**) is added to the main menu.

Example:

MENU boy-girl | ALL | BLUE PINK

TOMENU

TOMENU mname'

This creates a button labeled **mname**, leading to menu **name**, which is usually configured in a subsequent MENU statement.

POSE

POSE pname | animname ...

This creates a button for a pose labeled pname, using the animations listed after the vertical bar. The animations are applied to the balls specified, in order. That is, if the ball colors are "PINK BLUE PINK", three animations should be listed. The first applies to the first pink ball, the second to the blue ball, and the third animation applies to the third ball, which is pink.

The ball positions are specified in a .POSITIONS* file, discussed below. If there is no .POSITIONS entry for a pose, the default pose is used. It's a good idea to always set up the default pose first for a new bed, to avoid balls rezzing underground or in other inconvenient locations.

Each animation name should identify an animation in the object's contents. In addition, the animation name specified here can contain a suffix indicating an expression:

| suffix | expression | | * | mouth open | | ::1 | mouth open | | ::2 | surprise | | ::3 | tongue out | | TBD | TBD | | ::20 | eyes closed |

Note that this suffix appears only in the configuration; the animation name in the object's contents should *not* have this suffix.

LINKMSG

LINKMSG name | menu,primnum,lm-num-arg,lm-str-arg

This creates a button labeled **name** that will send the specified link message to other scripts in the object when the button is used. This is useful for adding scripted features to MLP2 without having to modify MLP2 scripts.

| parameter | meaning | | menu' | 1 if the script receiving the button will pop up a menu. It causes MLP2 not to repost its menu, to avoid menus stacking up. 0 otherwise -- doesn't inhibit MLP2's remenu feature. | | primnum' | primitive number (see llLinkedMessage() documentation) | | lm-num-arg | 'num' arg for llLinkedMessage() | | lm-str-arg | 'str' arg for llLinkedMessage() |

The menu user's key is passed as the 'key' argument for llLinkedMessage().

BACK

This creates a button labeled "BACK" that, when used, displays the menu one level up in the menu hierarchy.

STOP

This creates a button labeled "STOP" that, when used, deletes any rezzed balls and unseats any participants.

SWAP

This swaps positions between the first and second balls for any pose. It has no affect on any third or fourth balls in a pose.

RESTART

POSRESET

MENURESET

ADJPOS

SAVEPOS

MEMDUMP

Automore

.POSITIONS* files

The default pose

Menu reset on rez