Image Only
The simplest HUD simply displays a texture of information. It does not have any hotspots on it. It's used for information purposes only.
LOADING|5ab5041b-0505-4d1d-8e57-d1208c9f0e8e
LOADING|5ab5041b-0505-4d1d-8e57-d1208c9f0e8e
Client Grid
QQ Touch Panels provides default grids that are 2x2 to 8x8 spots, called DEFAULT2 to DEFAULT8. These panel definitions cover the entire texture with a perfectly sized grid of whatever size. In order to define the items on the grid you use the ITEMS command. When the text of the item begins with a $ this is a special client only command which has special features:
GRID|TOP|5ab5041b-0505-4d1d-8e57-d1208c9f0e8e|DEFAULT3
ITEMS|$message,Visit Facebook at https://www.facebook.com/Marvelous-Mania-for-SL-1937996856436753
ITEMS|$whispher,0,Hello, have a wonderful day.
ITEMS|$slurl,https://maps.secondlife.com/secondlife/Morris/131/102/10
ITEMS|$teleport,https://maps.secondlife.com/secondlife/Morris/131/102/10
ITEMS|$navigate,PAGE2
GRID|TOP|5ab5041b-0505-4d1d-8e57-d1208c9f0e8e|DEFAULT2
ITEMS|$navigate,TOP
This grid creates a 3x3 grid and for the first 5 items there is an action that can occur:
The second grid "PAGE2" will activate the top left corner of the texture and create a single button that navigates back to the TOP page.
GRID|TOP|5ab5041b-0505-4d1d-8e57-d1208c9f0e8e|DEFAULT3
ITEMS|$message,Visit Facebook at https://www.facebook.com/Marvelous-Mania-for-SL-1937996856436753
ITEMS|$whispher,0,Hello, have a wonderful day.
ITEMS|$slurl,https://maps.secondlife.com/secondlife/Morris/131/102/10
ITEMS|$teleport,https://maps.secondlife.com/secondlife/Morris/131/102/10
ITEMS|$navigate,PAGE2
GRID|TOP|5ab5041b-0505-4d1d-8e57-d1208c9f0e8e|DEFAULT2
ITEMS|$navigate,TOP
This grid creates a 3x3 grid and for the first 5 items there is an action that can occur:
- Issues a llDialog() message box with a simple OK button. Allows you to display any text you want in the box.
- Sends a message on a channel to any objects within 5m of the HUD. ($say and $shout are also available).
- Opens the Second Life map, showing the Morris location.
- Teleports the user to the Morris location.
- Navigates to a new page called PAGE2.
The second grid "PAGE2" will activate the top left corner of the texture and create a single button that navigates back to the TOP page.
Server Grid
Once you extingush what you can do with special client commands ($navigate, $message, etc.), then the HUD sends all remaining messages back to the server. By default, on channel -2000100001, it can be changed to whatever you want, but there is only one channel in which ITEMS are sent on. If you don't include a CHANNEL to change it, it stays as the default.
CHANNEL|-530000
GRID|NAME|5ab5041b-0505-4d1d-8e57-d1208c9f0e8e|DEFAULT3
ITEMS|Kisses 1|Kisses 2|Kisses 3|Hugs and Hold|Hug and Kiss|Long Embrace|Long Goodbye
This means if the client clicks the first grid square, then the text "Kisses1" is sent on the channel. If you were implementing AVSitter Furniture, support code might look like this:
listen( integer aChannel , string aName , key aUUID , string aMessage ) {
list PARTS = llParseString2List(aMessage,["|"],[]);
string AVKEY = llList2String(PARTS,0);
string DATA = llList2String(PARTS,1);
if ( AVKEY is sitting on furniture ) {
if ( aChannel == -2000100001 ) {
llMessageLinked( LINK_SET , 90000 , DATA , "" );
}
Assuming the AVKEY is sitting on the furniture, then this will play the animation name "Kisses 1" if the user clicked the top-left corner of the texture for the grid.
CHANNEL|-530000
GRID|NAME|5ab5041b-0505-4d1d-8e57-d1208c9f0e8e|DEFAULT3
ITEMS|Kisses 1|Kisses 2|Kisses 3|Hugs and Hold|Hug and Kiss|Long Embrace|Long Goodbye
This means if the client clicks the first grid square, then the text "Kisses1" is sent on the channel. If you were implementing AVSitter Furniture, support code might look like this:
listen( integer aChannel , string aName , key aUUID , string aMessage ) {
list PARTS = llParseString2List(aMessage,["|"],[]);
string AVKEY = llList2String(PARTS,0);
string DATA = llList2String(PARTS,1);
if ( AVKEY is sitting on furniture ) {
if ( aChannel == -2000100001 ) {
llMessageLinked( LINK_SET , 90000 , DATA , "" );
}
Assuming the AVKEY is sitting on the furniture, then this will play the animation name "Kisses 1" if the user clicked the top-left corner of the texture for the grid.
Server (Advanced)
In the above section, we indicated that "there is only one channel in which ITEMS are sent on". This is true for default communications, it's possible to use multiple servers with $say/$shout commands on whatever channels you need.