Search This Blog

Monday, August 8, 2011

HOLY MACROS!!!

Expect corrections and updates! *blows the eraser dust off the page*

MACROs were added to give the user more of a customizable experience.  These abilities extend farther than just shout or play an animation. The powerful MACRO engine can drive the core features of the HUD. It is designed to allow other scripters the ability to mesh their scripts into the HUD and use the core features. 

Macros are identified on the display by ‘M@’ or 'M!' as leading characters in the name.  This helps you to find one quickly, plus the command interpreter process it differently. This provides an additional boost to performance.
The 'M!' will not execute when you are running in 'Random' or 'Sequence' modes. It will continue the previously executed event until the timer fires the next event.

Running a Macro will not stop an existing active animation UNLESS you are firing a new animation, issuing a [STOP] command or issuing a [NOANI] command. This means if you EMOTE via a Macro you won't halt your dancing.

Macros are case and spacing sensitive. Proper syntax is important! You will get some strange results if Macro stream is not written correctly.

You write a Macro on a note card and load it into the HUD the same way you load a dance in. You must then click the 'Floppy' button and follow the loading possess to load it in to the storage slot. See Demos included with the HUD and How to Load for more information.

[NAME] or [!NAME] -  [NAME]given name|
Used to declare a macro.The text following will be use to identify the the macro in the HUDs display list. The command must then be terminated using '|'.

If '!' is used it will protect the macro from random mode executions. Any macro with the 'M!' prefix with not auto fire in a sequence or random mode event. The Macro Compiler will continue the previously executed event until the random timer fires the next event.
 [NAME]Give T-shirt|  or  [!NAME]Give T-shirt| 
 
[HUD SMALL] – Shrinks HUD to small size.  This does not hide the HUD.

[HUD BIG] – Expands HUD to full size. This does not show the HUD from a hidden position.

[HUD STATS] – Displays memory usage, current selected database,…


[HUD SHARE]ON/OFF – (Poetry of Dance Only) Turns off remote HUD sharing. Does not allow remote HUDs to piggy back on your HUD and uses your dance slots and animations. Remote control functions are turned off too.

[LISTANI] –Sends a list to chat of all of the animations in the HUD with a total count at the end of the list.
[LISTSD] –Sends a list to chat of all of the sound files in the HUD with a total count at the end of the list.
[LISTTEX] –Sends a list to chat of all of the textures/pictures in the HUD with a total count at the end of the list.
[LISTLM] –Sends a list to chat of all of the landmarks in the HUD with a total count at the end of the list.
[LISTNC] –Sends a list to chat of all of the note cards in the HUD with a total count at the end of the list.
[LISTOBJ] –Sends a list to chat of all of the objects in the HUD with a total count at the end of the list.


[NEXT]
(BARRE V2.1, Poetry of Dance)- Moves to next line in display list. This is typically used in conjunction with the [JUMP] or [LOOP:xx] commands in dance sequences or multi line macros.
The following lines create a jump to point in a sequence. This is useful for creating loops in a sequence.
[NAME]Top|[NEXT]
[NAME]Go To Top|[JUMP]Top

 [JUMP] – [JUMP] Reference line |
 Jumps to any command or dance in the current database. This will find the first instance of the ‘Reference line’ indicated after the jump command and run it. Execution will continue on from the jump to point in the list. All other sequence of events is bypassed.
The following line will jump to a line or dance called ‘Top’
[NAME]Go To Top|[JUMP]Top

[LOOP:xxx] [LOOP:number of loops] Jump to line|  
(BARRE V2.1, Poetry of Dance)-  When executed will jump to the line indicated until it has looped the specified number of times. Can have commands following it and will execute those command when the final loop cycle is completed. LOOP can execute over 200,000,000 loops in a sequence. The command is reset at the first execution of a new LOOP command. Only 1 loop cycle can be active at one time.
The Following will loop 3 times to ‘Top’. When finished it will say “Done Looping” then execute the [NEXT] command.
[NAME]Top|[NEXT]
SomeDance|7
[NAME]Loop to Top|[LOOP:3]Top|[SAY]Done Looping|[NEXT]

[REPEAT]- Creates an endless loop.  Pause will force it out of repeat mode. If un-pausing and the macro with the repeat is still selected the REPEAT function with start over again until a different macro or animation is selected.

[MYNAME]- lets you rename the HUD so it displays a different name when saying something in chat. This is useful for joking around or event hosting.

[ENDNAME] – Returns the name of the HUD to its default name.

[PLAY]- Plays the sound file listed, if the sound file is not in inventory it will error. This function will play sounds if UUID is given instead of the name of the file. This is useful if you don’t want to load the sound file into the inventory of the HUD.

[VOLUME] – [VOLUME]Number
Sets the sound play volume 1.0 is loudest, 0.1 is softest.
[NAME]Volume .5[VOLUME]0.5
 
[AVSELECT][AVSELECT]
This function fires the radar function allowing you to select an avatar name from a dynamically generated display list. The HUD will now only focus ‘Gives, URLs, and Invites at this specific avatar until another AVSELECT  has be ran.
The range of the radar is set to 96 meters. This is the maximum range allowed my Second Life. The radar returns a list first 16 avatars it sees. This is generally the closest avatars it sees. Sometimes newly TPed in avatars are not seen on laggy SIMs.  If the avatar you wish to select does not show up on the list it helps to move closer to the avatar you are trying to select. 16 is a high limit that is set by Linden Labs. Currently it is not possible to exceed this limit in a sensor sweep.

[ME] - Sets HUD focus on the HUD owner and gives the HUD the owners name. This function can play havoc with [AVSELECT]. To avoid this issue use the [ME] before the [AVSELECT] function.

[GIVE] – [GIVE]Category Number OR [GIVE]Item Name
Gives an object, clothing, notecard, texture/picture, … to the avatar that the HUD was told to focus on. .  [AVSELECT] must be used before [GIVE] so that the HUD has focus on an avatar to give something to.
 Category 0=Picture, 3=Landmark, 5=Clothing, 6=Object, 7=Notecard, 21=Gesture
This function has 2 modes. The first is a selection mode. When you put a category number after the [GIVE] statement it will display a list of items in the HUD inventory that are of that category. You can then select the item and it will be sent to the avatar that has HUD focus.
The second mode is used when you have the name of the item you are giving entered after the [GIVE] statement. The HUD will not ask you anything but simply give out the item to the avatar that has the HUDs focus.
The following macro displays the name “Give T-shirt”. It asks for the avatar that you want to focus the GIVE at. It will then display a list of clothing items in the inventory of the HUD. As soon as you select the item from the list it will be sent to the avatar.
[NAME]Give T-shirt|[AVSELECT][GIVE]5
The following macro displays the name “Give T-shirt”. It asks for the avatar that you want to focus the GIVE at. The [GIVE] function will the look for the item named “RachaelRockersT” and sent it to the avatar.
[NAME]Give T-shirt|[AVSELECT][GIVE]RachaelRockersT

 [URL] – [URL] Message|SomeURL.com
Sends a URL popup to the person the HUD is focused on.  [AVSELECT] must be used before [URL] so that the HUD has focus on an avatar to send the URL to. [AVSELECT] is optional if there is an avatar currently focused on by the HUD.
(To prevent spamming and greifing this function will force the HUD sleep for 10 seconds. Privacy concerns: Using this function can reveal the IP Address of the person opening the URL. Although this is a normal logging function of any website it can be used in combination to reveal ‘alts’ and potentially the identities of the persons opening the URL. Please understand this is not the intended purpose of this function. )
The following macro displays the name “Send Website”. It asks for the avatar that you want to focus the URL at. After the name is selected it sends a popup giving the avatar the choice of opening the website or not.
[NAME]Send Website|[AVSELECT][URL]Rachael Rockers|http://rachealrockers.blogspot.com/

[LOADDB] – [LOADDB]Database Number|Note card Name
Forces HUD to load a database with a specified note card. Use this to load in note cards to databases without having to go through the process of selecting the database and then picking a note card.
The following macro will display the name “Load Happy Dances” and will load “Database 02” with the Note card named “HappyDances” after if it finished loading it will display “Database 02”.
[NAME]Load Happy Dances|[LOADDB]02|HappyDances

[DO] – [DO]RADIO-radiostation.com:8020
The purpose of the DO command is to trigger other 3rd party scripts. These scripts must be designed to interpret the command sent to it.
[DO]RADIO-radiostation.com:8020 this will send to the scripts in the HUD using this command.
llMessageLinked(LINK_SET, 5000, " RADIO-radiostation.com:8020","");
The scripter’s that understand this command will be able to use the information that is send to their script. They will be able to create a script that will DO other functions that are not provided by this HUD.
Note: I won’t answer any questions about this feature. I expect 3rd party creators to have the knowledge to interpret the information I have provided. If you DON’T understand this feature then I suggest that you do not write scripts for it.
I do not support 3rd party scripts and will not trouble shoot or assist with a HUD repair that have them in it.
3rd Party script creators must agree and understand that their scripts will be auto deleted in the event that ‘GOD Mode’ is activated on the HUD.

[STOP]/ [END ALL] Stops everything! This will force any avatars on the HUD to clear their animation lists and put them in a stand animation. This is can be used to clear avatars of pesky animations that won’t go away.  

[NOANI] – stops all animations of all slots. DOES NOT stop the macro. Use this to stop a dance but continue to run the Macro.

[PAUSE:time] will pause the HUD and not fire an event until it has cycled. This cannot be stopped.

Voice Functions
[WHISPER:##] OR [WHISPER]
If you change the voice channel it will not default back to channel 0. You must add in a macro statement like [SAY]| . That will reset the channel to 0.

[SAY:##]  OR  [SAY]
[SHOUT:##]  OR  [SHOUT]
[REGION:##] OR [REGION]##
[SAY]| does the same as [END SAY]  That has been removed from the compiler.
\name inserts the  name of the current AV that has focus from the HUD. To set focus on a AV see the [AVSELECT] or [ME] function. Can be used like this...
[SAY]HI \name.|


Animation Control Functions
The following functions only work with the 'Poetry of Dance' HUD
[INVITE]# Invites to a specific slot

[CLEAR]slot…   Resets that slot to null, dumps Dancers and resets group to null …[AVSELECT][INVITE]slot

[GROUP]X|ANIMATE or PS …. (tells channel x to play that animation)

[SET GROUP]##,SLOT...  (puts slot on channel x) this sets it to that group

No comments:

Post a Comment