New for 2021!
Async is a multi-command script containing a subset of trimmed-down Palette like commands that has its own independent time-line.
Async can be considered asynchronous because it could be called from SmartDancer or Performance HUD *autofx or another Palette or external vendor device AND it has its own time line by making use of ‘delays’.
Script is named: !!Animesh Async v?.??
Async can NOW be called from a simple script but the format is different than being called from the *thrower nc.
The “@” (ampersand) used in the following documentation only, to show multiple options for a command or parameter .
IMPORTANT: There are now 2 formats for commands. 1 format is used for those using the Thrower option of the Palette. The other format is for “everyone/everything else” including: local chat command, external event schedulers, Artiste Trainer, Artiste SmartDancer, Artiste Performance HUD via *autofx. You should usually see 2 types of examples for each command. One uses commas as separators, the other uses the slash.
Notice that we use the slash “/” for non-palette sending formats instead of comma “,” which is used for Palette-based commands in the *thrower nc.
The receiving channel for Async, defaults to -369, but can be overwritten using the *async notecard.
Notice also that we use a SINGLE pound-sign “#” in place of the comma when it comes to specifying vectors and rotations.
The general example below has just 2 entries. A (animation target) and R (rez). Also be aware that the Target command is now strongly recommended as the FIRST command in an Async command line.
And finally, we now use the carat “^” to separate multiple parameters, as in, more than one.
Example:
-369,Async/A/Target/AT/REZ/rezball/<1#1#1>^<0#0#0#1>^<2#0#2.66>^1^0^0^5
NOTE: The Async script and its notecard (*async – REQUIRED) must go inside the ROOT prim of a link set.
Async executes a string of sets-of-3 commands. Limit is 255 characters on 1 line. Async was initially designed for monster battles but can now be used for anything else that could apply.
After specifying a channel, you must follow the channel by a comma and then the word Async followed by 1 or more sets of 3 element instructions. Optionally you can specify the number of times you want all the following commands to execute. You can have more than one type/command on a line.
The GlowFader script is required when you choose:
GF,GL,RL, LEV, TIP, or IMP, or you want to be able to stop animations after a StopAsync or HALT.
? = means nothing is required normally so it can be empty OR have something there.>>BUT when using the Archives yyou MUST have at least 1 dummy character there.
************************$$$$$$$$$
LOOPING
You can loop a whole control line by using the Async## format.
Example: -369,Async4/A/T/ball/A/Start/Howl/D/D/2 /A/Stop/Howl/D/D/3 –— this will perform the Howl animation as well as the following commands 4 times in succession.
i.e. Start; Delay; Stop; Delay; Start; Delay; Stop; Delay; etc.
Example: -369,Async/ will execute all of the following commands ONCE.
Example: -369,Async5/ will execute all of the following commands FIVE times.
Show Video: ==> Looping Video Demo
************************* $$$$$$$$
ANIMATE and TARGET
Specify name of an animated mesh object intended to receive a Start, Stop, or Target.
Stops or Starts an animation or specifies a target for subsequent commands. When using the Start or Stop command, the animation-name is the ACTUAL animation name, unlike the “M” command that uses the nickname from the *async nc.
Be sure Animated Mesh box is checked on the Features tab when attempting to start or stop an animation in an animated object.
Note that some animations are created as one-shot while others are created to loop.
For looped animations, use a Delay “D” command followed by an A/Stop/animation-name command to do timed animations.
Also note that Start and not start is required. Stop and not stop is required.
Be sure to include the animations in the object containing the Async script
A,(Start@Stop@Target),animation-name
A/(Start@Stop@Target)/animation-name
A/Target/ObjectName
A/Stop/AnimationName
A/Start/AnimationName
NEW! Target can now be abbreviated
Example
A,T,Katana,
A/T/Katana/
Instead of:
A,Target,Katana,
A/Target/Katana/
************************* $$$$$$$$a
ANIMATE ON COLLISION
Animates actual animation-name upon collision, when on, after any delay has been expired. Automatically stops a previously ran animation.
AOC,(on@off),actual-animation-name^delay-before-animating
AOC/(on@off)/actual-animation-name^delay-before-animating
Examples:
AOC/on/Monster Howl^3.7
AOC/off/?
************************* $$$$$$$$
ATTACH
Attaches itself to the body part indicated, after a collision and after accepting permissions to attach. Rez the object containing the Async script prior to using it so that it asks for ATTACH Permissions.
Show Video ==> Attach/Detach
Wearing the Follower-Relay is required.
ATT,,(bodypartnumber)
ATT//(bodypartnumber)
Example:
ATT/?/5
************************* $$$$$$$$
CHAT
Sends a chat message on channel (usually the command AND parms).
WARNING: You cannot send a chat message to yourself (same object as Async script that’s sending
C,Channel,messagetosend
C/Channel/messagetosend
Example:
C/-1234/particleson
****** $$$$$$$$
DELAY
Delay in seconds (between commands)
Show Video ==>Delay
D,D,delay-time(decimal)
D/D/delay-time(decimal)
IMPORTANT !!!!
Commands that MOVE and use CONVEX HULL and precede a DELAY must be handled carefully. The DELAY happens at the same time as the MOVE because the MOVE is asynchronous so you will need to adjust the DELAY up enough to compensate for the time the MOVE takes then add additional DELAY time.
As of this writing, commands that require CONVEX HULL are:
1 – IMPULSE
2 – LEVITATE
3 – RAISE/LOWER
4 – TIP
************************* $$$$$$$$
DETACH
Detach object that the Async script is in from the avatar wearing it.
Show Video ==> Attach/Detach
Requires: Attach,on in the *async nc
DET,,
DET/?/
************************* $$$$$$$$
ENDING DISPOSITION
|
This Type (E) contains commands that are useful for ENDING a sequence (i.e. fading out (fadehide) a monster then deleting (KILL_MESH) it);
Show Video ==>Show/Hide
Show Video ==>Show/Hide Link
Show Video ==>ShowHideLink Delay
Show Video ==>FadeShowHide
Show Video ==>FadeShowHide Link
E,(Ending disposition),
E/(Ending disposition)/
E,(fadehide@fadeshow@hide@show@KILL_MESH),(duration for fades)^(linkName/linkno/ALL) — Ending disposition
E/(fadehide@fadeshow@hide@show@KILL_MESH)/(duration for fades)/(linkName@linkno@ALL) — Ending disposition
fadehide,duration,linkname@linkno@ALL
fadeshow,duration,linkname@linkno@ALL
hide,linkname@linkno@ALL
show,linkname@linkno@ALL
fadehide/duration/linkname@linkno@ALL
fadeshow/duration/linkname@linkno@ALL
hide/linkname@linkno@ALL
show/linkname@linkno@ALL
Examples:
E/show/ALL
E/hide/ALL
E/show/nose
E/hide/nose
E/fadehide/100^nose
E/fadeshow/100^ALL
************************* $$$$$$$$
GLOWFADER SCRIPT CONTROL
Allows the stop, start, or deletion of the GlowFader script.
GFC/0/? – Stops the GlowFader Script from running
GFC/1/? – Starts the GlowFader Script from running
GFC/2/? – Deletes the GlowFader Script
************************* $$$$$$$$
GLOW-FADER
Glows or fades or glows AND Fades (GlowAndFade) one or ALL links within a specified glow-amount range (GlowMin & GlowMax) for a given amount of time (GlowTotalTime) or a given number of recurring times (GlowOccurances) using a specified increment (GlowIncrement), AND from a given start (GlowStartAmount) and final amount (GlowFinal) with an intervening delay between cycles(GlowCycleDelay).
Show Video ==>GlowFader
Requires addition of the GlowFader script;
GF/(ALL@linkno@link-name)/(see below)
^GlowStartAmount ; Initial glow amount at start of each cycle. 0.0 to 1.0 -1 means use default values or values previously set
^fGlowMin ; 0.0 to 1.0: This value, when reached causes an end of cycle
^fGlowMax ; 0.0 to 1.0: This value, when reached causes end of cycle
^fGlowFinal ; 0.0 to 1.0: Forced final glow amount value after all occurrences
^fGlowCycleDelay: Time in seconds between each increment
^fGlowIncrement: Amount of Glow that increments or decrements each Cycle-Delay
^iGlowOccurances : Number of times a maxxed/minned out completed cycle repeats
^iGlowTotalTime : Maximum time in seconds before all occurrence(s) end
NOTE: If both GlowOccurances and TotalTime are zero then the glow/fade is continuous, as in forever.
^GlowUpAndDown : 1 means yes, glow cycle will repeat forward and backward. If 1, then extra cycle happens in reverse after Glow-Max reached and cycles back down to Glow-Min or vice-versa.
^GlowAndFade : 1 = Glow Only; 2 = GlowAndFade; 3 = Fade Only – if GlowAndFade or FadeOnly then fade values mirror glow values.
ZERO (0) Glow value equals 1 Transparency (or opaque)
A ONE (1) Glow value equals 0 Transparency (or invisible)
Example:
-369,Async/A/T/AZ/GF/rezball/0^0^1^0^1.0^0.1^3^9^1^2
GlowLinks: 2
StartAmount: 0.000000
GlowMin: 0.000000
GlowMax: 1.000000
GlowFinal: 0.000000
GlowCycleDelay: 1.000000
GlowIncrement: 0.100000
GlowOccurances: 3
GlowTotalTime: 9.000000
GlowUpAndDown: 1
GlowAndFader: 2
************************* $$$$$$$$
GLOW
Glow specified link(s) and Duration of glow…returns to 0 amount after duration ends.
Show Vide ==> Glow
GL,ALL(link-name@linkNo),glow-amount^glowDuration
GL/ALL(link-name@linkNo)/glow-amount^glowDuration
Examples:
GL,ALL,0.3^5.0 – 5 second duration of glow amount 0.3 then back to 0
GL/earth/0.3^5 – 5 second duration of glow amount 0.3 then back to 0
************************* $$$$$$$$
GROW/SHRINK
Grows (or Shrinks) an object by increasing or decreasing its scale by a given amount in specified increments over a specified time.
Show Video==>Grow
Experiment with settings. You probably always want repositionZ to be any non-zero value else the rescaling will submerge half the object into the ground in the case of values 1.0 or greater…or hover into the air for values less than 1.0.
Please note that times are approximate and will vary with extreme number of steps. Also note that repositioningZ approximately doubles the amount of time it will take.
GR,scaleAmount,time^steps^repositionZ
GR/scaleAmount/time^steps^repositionZ
Examples:
GR/3.0/10^20^1 (Grows)
GR/0.4/10^20^1 (Shrinks)
************************* $$$$$$$$
IMPULSE
Applies a 1 second push to a “physical” object specified by xyz coordinates for xyz magnitudes or force. This particular command can respond to collisions.
REQUIRES the GlowFader script
Show Video==>Impulse
IMP/(1@0)/<x#y#z>,<x#y#z>,3,10,0.2
IMP/(1@0)/{x*y*z}^{x*y*z}^collisionvalues^fadeduration^glowamount
The 1 or 0 specifies coordinate system. 1 = local. 0 = world. It is recommended that you usually use local.
x, y, and z values specify direction and magnitude of the 1 second force.
x, y, and z values specify direction and magnitude of the angular velocity or visible rotation
Be sure your rotation orientation is the same between tries.
AVOID resting object on a large flat surface. Give it a small fake (invisible) surface underneath it.
The following new Async Menu is meant to help expedite certain features related to IMPulse..
There is a 10-second default Auto-Return that can be overridden in the *async n.
RESET saves the current position and rotation so that a ReHome will return to that default. Auto-Return also returns to the saved position and rotation AS WELL as setting the static to Non-PHYSICAL.
ZeroRotation is recommended in-between tries as it resets the rotation to ZERO. (This assumes that your object started out with a zero rotation which is recommended if possible). It also sets the object to Non-PHYSICAL.
When Impulse is executed, it now AUTOMATICALLY sets the status to PHYSICAL just prior to firing.
On your 1st attempts it might be wise to turn on Ten-Meters. This prevents your object from going beyond 10 meters but you will get an error if it does. Not a big deal. Once you are comfortable then select SimRestrict. This negates the Ten-Meter restriction but does implore a return should the object try to fly out of the sim.
CAUTION: Specifying a Ten-Meter limit will interfere with Collisions and only work the first time. You would have to do a RESET after your 1st try which would be successful.
Example:
IMP/1/{0*2.66*4.8}^{1*0*0}^3^10^0.2
The 3 indicates that you want to turn the impulsed object non-physical (stop it) and also have it fade to invisible. (1+2 = 3)
The 10 indicates time of any fade specified. The 0.2 after it represents the glow value, if any.
0 or 1 — 1 – OnCollisionNonPhys — 1 is NON-PHYS
0 or 1 — 2 – OnCollisionFadeToHide — 1 fades out to invisible
0 or 1 — 4 – OnCollisonChat –chats on predefined chan & cmd
0 or 1 — 8 – OnCollisionGlow — 1 is glow
0 or 1 — 16 – OnCollisionShow — show on rez
0 or 1 — 32 – OnCollisionHide — hide on rez
0 or 1 — 64 – OnCollisionFadeToShow — fadein on rez
0 or 1 — 128 – IgnoreFirstCollision
0 or 1 — 256 – OnCollisionTemporary — sets status to temporary
0 or 1 — 512 – OnCollisionAttach — attaches to default
0 or 1 — 1024 – OnCollisionDie — 1 deletes/kills object
ONLY 1,2,8,128,256,512, and 1024 are really useful for IMP (applied impulse) or REZ
************************* $$$$$$$$
COLOR
Colors specified links using faces
Show Video ==> Color
K,(ALL@linkName@linkNo)/color-vector^colorDuration before white^faces (-1 == ALL_FACES)
Example:
-369,Async/A/Target/ArtistePalette_04_Z/K/3/{1*0*1}^5^-1
NOTE: When duration is 0, or less than 0, the color change is permanent and does not revert back to white. For ALL you can also specify 0 if only one link.
************************* >>>><<<<
LEVITATE
Start or Stop or Pause a Levitation or Movement
Levitates/Moves an object along one or more specified axises continuously when Start-ed until a Stop command is encountered. Can optionally also reverse direction.
Show Video: ==> Levitation Demo Video
Requires Shape type of CONVEX_HULL
Requires addition of the GlowFader script;
LEV/(Start@Pause@Stop@Play)/Vector^Mode(D@F@L@P@R)^POSx^POSy^POSz^ROTx^ROTy^ROTz^DurationU^(DurationD@duration for 1 rotation for vector time 3)^DelayU^DelayD
U = stands for Up
D = stands for Down
POS = Position
ROT = Rotation
Duration(U or D) = how long the the complex keyframed movement will last going in one direction
Delay(U or D) = how much time passes in seconds before the next motion reverses itself
Mode = D=Up and Down; F =Forward; R=Reverse; P=PingPong; L=Loop;
Vector = 1, 2, or 3; 1 = 1 vector; 2 = 2 vectors for Up and Down – the 2nd vector is created from the current POSITION and ROTATION; 3 = a special vector intended for a LOOPED rotation
10-24-21
POSx^POSy^POSz^ROTx^ROTy^ROTz <== these values are now obtained after moving your object where you want it to go then pressing the ConvexHull button on the movable object. Copy and paste them into the LEV command. Since it has to be ConvexHull in order for it to levitate, then no harm-done. (I was out of buttons)
Some values (durations, delays) are decimal(i.e. 2.7)
Example:
LEV/Start/1^F^192^ 160^3023^0^270^0^10
LEV/Start/1^L^192^ 160^3023^0^270^0^10
LEV/Start/1^P^192^ 160^3023^0^270^0^10
LEV/Start/1^R^192^ 160^3023^0^270^0^10
LEV/Start/2^D^192^160^3023^0^270^0^10^3^5^1
(the 10 is duration up; the 3 is duration down; the 5 is delay before coming down. the 1 is delay before going back up)
LEV/Start/3^F^192^ 160^3023^0^270^0^1.1^0.5
(a loop will happen for the Y axis after 1.1 seconds have passed with a each 2*PI radians taking 0.5 seconds) 2*Pi radions = 360 degrees so 1 revolution takes 0.5 seconds)
LEV/Pause/
LEV/Stop/
LEV/Play/
************************* >>>><<<<
LINK/SPIN
Causes a link to rotate on from 1 to 3 axis at a given rotation speed. Example, Below: rotation speed is 3.5 and link No is 6. Axis x,y,z is 1,0,3.
Example: Values of 1,0,3 means the Z axis rotates 3 times faster than the x axis.
Show Video==> LinkSpin
LS,3.5,1,0,3,6
LS/3.5/1^0^3^6
To STOP the link, use 0 for speed:
LS,0,1,0,3,6
LS/0/1^0^3^6
This is a client-side rotation. It is suggested that you use the RO command described further below, instead of LS, if you want to rotate a full linkset. But you could use a link value of -1 for LinkSpin to spin the full linkset.
CAVEAT: You CANNOT spin ONLY the ROOT PRIM (i.e. Prim #1).
Example:
-369,Async/A/T/Laptop/LS/1.0/0^0^1^2
************************* $$$$$$$$
PALETTE
Sends palette commands and its associated parameters to embedded palette scripts in same object
P,palette-command,params — limited to the inner-actions list currently
************************* $$$$$$$$
REZ
REZZES an embedded object in same object as the Async script to a position offset from rezzer and rotation offset from rezzer with a specified velocity . After velocity is start-param. It is optional and is special-use-case only.
Show Video==>Rez
Set rezzable object to PHYSICAL. (For ease of handling, set rezzable object to LOCKED AFTER setting it to PHYSICAL).
Adjust gravity down of REZZABLE object to increase loftiness
REZ,name-of-object-to-rez,params
Example:
REZ,rezball,<1#1#1>^<0#0#0#1>^<2#0#2.66>^123
REZ/rezball/{1*1*1}^{0*0*0*1}^{2*0*2.66}^123
0 or 1 — 1 – OnCollisionNonPhys — 1 is NON-PHYS
0 or 1 — 2 – OnCollisionFadeToHide — 1 fades out to invisible
0 or 1 — 4 – OnCollisonChat –chats on predefined chan & cmd
0 or 1 — 8 – OnCollisionGlow — 1 is glow
0 or 1 — 16 – OnCollisionShow — show on rez
0 or 1 — 32 – OnCollisionHide — hide on rez
0 or 1 — 64 – OnCollisionFadeToShow — fadein on rez
0 or 1 — 128 – IgnoreFirstCollision
0 or 1 — 256 – OnCollisionTemporary — sets status to temporary
0 or 1 — 512 – OnCollisionAttach — attaches to default
0 or 1 — 1024 – OnCollisionDie — 1 deletes/kills object
ONLY 1,2,8,128,256,512, and 1024 are really useful for IMP (applied impulse) or REZ
************************* >>>><<<<
RAISE/LOWER
MOVES an object a set distance UP or DOWN over time on a the world Z -axis based on command of up or dn. Meant for simple Raises and Lowers.
Show Video ==>Raise/Lower
REQUIRES the GlowFader script
IMPORTANT: Requires ConvexHull
RL,(up@dn),time,distance,axis
Example:
-369,Async/A/Target/StageWall/RL/up/5.0^10^z
This moves a wall called StageWall up 10 meters taking 5 seconds for the move assuming z axis is up/down. StageWall would contain the Async script.
Using an axis of “x” or “y” has not been guaranteed to work in the direction you might expect. Experiment at your own risk, for now.
************************* >>>><<<<
ROTATE
Rotate continuously around specified non-zero axis with a specified speed.
CLIENT-SIDE execution.
Show Video ==>Rotate
RO/?/0.5^0^1^1
Notice the double / (forward slash as there is no command)
0.5 is speed (gain) 0^1^1 is x,y,z axis of rotations
Example:
To start:
Async,A,T,HudTest,RO,,F
To stop:
Async/A/T/HudTest/RO//0.0^0^1^1
*************************$$$$$$$$
SIT-2-SIT
Requires RLV be enabled in your viewer. Forces the avatar to SIT on the Target. Sit2Sit uses object-name. UUID uses the key of the object, useful for when there are multiple objects of the same name. Be aware that the key (UUID) changes each time a copyable object is rezzed. You must be the owner of the object you are trying to sit on.
Show Video: ==> Sit-2-Sit
Wearing the Follower-Relay is required.
S2S,(sit2sit@uuid),Target(object-name or UUID)
S2S/(sit2sit@uuid)/Target(object-name or UUID)
Enter the key of the person or owner of the object that the controlling sender is sending the command to the object holding the Async script.
You need to enter a new authorizing agent into the *async notecard (changed from *monsteranims)
I have enabled sit-2-sit feature in the new Async script. The Async script, you can think of as a watered down palette with the most useful features of the Palette. It has one optional notecard.
I discovered that you don’t need to be sitting on a palette in order to sit at a target. You just need to be the owner of the device sending the sit-2-sit to you. i.e. just a cube with the single Async script in it and also be the owner of the target, as an example.
Give the name or UUID of the target.
I expanded the sensor and sit-to range from 30m to 96m. Note: a target beyond 8 meters will require the target be primed with a 1-line script that assigns a sit-target to the target. See me for it. Also, technically, knowing the UUID, you can sit-2-sit region-wide. I just tested it. I went from 20m to over 3000m. Also, see me if this is something you need.
************************* >>>><<<<
SPIN
Spins around the Z axis at a given speed which is Spin Speed times PI. PI is half a revolution, so 2*PI (2 times PI) is a full revolution. So a value of 2 would mean one revolution every second. A value of 1 would mean one revolution every 2 seconds.
Show Video ==> Spin
SP,(start@stop),SpinSpeed/
SP/(start@stop)/SpinSpeed/
Examples:
SP/start/1
SP/stop/?/
stop requires 2 slashes
************************* $$$$$$$$
STATUS (OBJECT)
Sets Object Status to PHYSICAL or NON PHYSICAL.
Sets Prim Property to TEMP or NON_TEMP.
Sets Prim Shape to CONVEX HULL.
WARNING: Will not set TEMPORARY if object is not COPIABLE by OWNER.
STA,(PHYS@TEMP@CONV),(0@1)
STA/(PHYS@TEMP@CONV)/(0@1)
Examples:
STA/PHYS/0
STA/CONV/?
STA/TEMP/1
************************* $$$$$$$$
STOPME (both scripts)
Set the 1 or 2 scripts to NOT RUNNING
In rare cases you may want to stop a target in its tracks, stopping its scripts WITHOUT any type of resetting. After this function, the only way to reuse the target is by MANUALLY setting the scripts to RUNNING.
StopMe/?/?
************************* $$$$$$$$
TEMPORARY ON COLLISION
This command turns object temporary such that it auto-deletes itself upon collision. This could also be done using a delay and KILL_MESH. TOC is cleaner, shorter, and more precise.
TOC,,
TOC/?/?
************************* >>>><<<<
TIP
Rotates around the supplied axis in the command location for a specific time in secondsforturn thru the specified angle. Use a minus sign in front of the axis for a revere axis tip.
Show Video==>Tip
Requires Convex Hull
TIP,(x@y@z),angle,secondsforturn
TIP/(x@y@z)/angle^secondsforturn/
Example:
-369,Async/A/T/AZ/TIP/z/90^5/
************************* $$$$$$$$
TEXTURE
Paints the specified texture-name or texture-UUID onto the link and face specified. You must own the texture.
Show Video ==> Texture
TXR,texturename@textureUUID),(linkName@LinkNo@ALL)^faceno (-1 = ALL FACES)
TXR/(texturename@textureUUID)/(linkName@LinkNo@ALL)^faceno (-1 = ALL FACES)
If texture-name is used then the texture must be loaded into the object that contains the Async script
TXR/fancyt/ALL^-1
************************* $$$$$$$$
TARGET SHORTCUT for PALETTE
Shortcut target specification when target is a standard Palette Name (i.e. ArtistePalette_03_B)
T,T,03_B
T/T/03_B
******************************************
******************************************
******************************************
*async notecard entries
************
Attach
Attach,(on@off)
This is required if you plan to attach (ATT) or detach (DET) an object that exists in-world as opposed to inside ones inventory. Wearing the RELAY is NOT required for attach/detach
************
AuthorizedLeaderAndControllerRegistrant
AuthorizedLeaderAndControllerRegistrant,(owner UUID of desired target)
This will be your UUID that is in your profile. This is only required when you are using the Sit2Sit feature. It helps insure that when validating an object to sit on twhen there multiple objects of the same name, that the there is only on object of the required sit target and that it belongs to you. If you want to sit on another persons object then use their UUID instead. Make sure only object, belonging to them of the same name, exists.
************
AutoReturn
AutoReturn,(time in seconds)
The default is 10 seconds. This etnry/value only has meaning when you are using the Impulse feature. It will return the propelled object after THAT number of seconds. Use 0 if you do NOT want the object to AutoReturn to its launch point.
************
AsyncChannel
AsyncChannel,(channel to channel between command and ASYNC’ed object)
The default is -369. Channel numbers must match. The AsyncChannel in the *async notecard must match either:
1 – The channel type in a LOCAL chat command
2 – Default channel (AsyncChannel) in the *trainer nc if command sent from TRAINER
3 – Channle specified in the command sent via a SCHEDULER
Different ASYNC’ed objects can have DIFFERENT channels but only ONE channel is valid for any one given sent of commands for a given command line.
************
ChatOnCollision
COC,channel,on-command,off-command,duration of on-command
Example: COC,77,blood on,blood off,1
This command usually would go into an object to be rezzed. It is used because we cannot pass all this information from the rezzer to the rezzed object. The on-command will be sent upon collision-detection for the duration after which the off-command will be executed. Both on and off commands use the same channel.
************
IgnoreCollisions
IgnoreCollisions,(on@off)
Sometimes an object to rez will trigger a premature-collision as it collides with the inside of the rezzer or other nearby object. This allows the collision-detection process to IGNORE the 1st collision but RECOGNIZED the NEXT collision. This entry is only valid inside the object to be rezzed.
************
IgnoreCollisionIfDistanceLessThan
IgnoreCollisionIfDistanceLessThan,(distance in meters)
The default value is an arbitray 2 meters. Use this entry when you want to (usually) reduce the DISTANCE used to determine if a valid collision has occurred.
DISTANCE is calculated as the difference between home position (position on reset of rezzed object) and the distance of the collided object.
A value if 0 means to ignore this check. Any distance will be valid.
************
Standing1
Standing1,animation name
If used, this animation must exist inside an ANIMESH type object. It will be played upon reset.
**************
**************
Attach,on
AuthorizedLeaderAndControllerRegistrant,870aa9f5-02b8-4195-a159-ac15cfbd8db9
AutoReturn,5
AsyncChannel,-370
COC,77,blood on,blood off,1
IgnoreCollisions,on
IgnoreCollisionIfDistanceLessThan,0
Standing1,standing
***************
******************************************
******************************************
******************************************
*** FOR PALETTE OWNERS ONLY ***
Async is normally triggered based on a collision or at-range condition from a thrower. It bears repeating that a collision between 2 items must contain at least 1 physical object.
INSIDE the *thrower notecard for those owning the Artiste Palette|
/*Posts Target
/* AsyncOn
/*Type : A=Animate, C=Chat, D=Delay, E=End, P=Pal
/*Command : Start, Stop, Target, Delay, chat-command, KILL_MESH, Hide, FadeIn, FadeOut
/*Parm : animation-name, channel, seconds, animesh-name
Example Below (The following example is the format from the *thrower notecard. Notice it uses COMMAS and NOT SLASHES)
AsyncOnRange,on,C,blood on,-51,D,Delay,1.0,A,Target,ArtistePalette_04_B,A,Start,Spin Fall,D,Delay,7,A,Start,Dead1,D,Delay,8,C,blood off,-51,D,Delay,2,E,Hide,””
This was used in a Boomerang
AsyncOnCollide,off,C,blood on,-51,D,Delay,1.0,A,Target,ArtistePalette_04_B,A,Start,Spin Fall,D,Delay,7,A,Start,Dead1,D,Delay,8,C,blood off,-51,D,Delay,2,E,Hide,””
This feature example combines hitting, consequence (blood spurt), animation(s), delays, and disposition (hide blood and then hide animesh) to an Animesh via an entry on the *thrower nc and a new script added to the Animesh.
*** FOR PALETTE OWNERS ONLY ***
*************************
FOLLOWING M and I have been deprecated and implementation suspended until further notice
Execute animations listed in the *async
M,Start@Stop,stand1— does animation Standing1
M,Start@Stop,stand2 — does animation Standing2
M,Start@Stop,howl— does animation Howl
M,Start@Stop,attack— does animation Attack
M,Start@Stop,fall— does animation Fall
M,Start@Stop,crawl— does animation Crawl
M,Start@Stop,pushed— does animation Pushed
M,Start@Stop,menace— does animation Menace
M,Start@Stop,dance1— does animation Dance1
M,Start@Stop,dance2— does animation Dance2
M,Start@Stop,hover— does animation Hover
M,Start@Stop,other— does animation Other
M,Start@Stop,Idler — randomly animates the idled animations
M/(Start@Stop)/attack
Example:
M/Start/attack
Example of *async nc:
Standing1,MDHUlycanstandMC1x
Standing2,MDHUlycanstand1MC1x
Howl,Monster Howl
Jump,Monster Jump
Attack,Monster Attack
Fall,Spin Fall
Crawl,Dead1
Pushed,
Menace
Dance1,idle
Dance2
Hover
Other
Idle,
END
Idled animations execute randomly for the specified amount of time when Started
Idle,anim1,10
Idle,anim2,10
Idle,anim3,10
Idler – Ability to Stop or Start the Idler
I,I,(Stop@Start)
I/I/(Stop@Start)
The idler randomizes a set of animations that you choose.
You will need to Stop the Idler before trying to animate a new animation.
NOTE: The new StopIdler button on Trainer will use the TargetPalette entry indicated in the *trainer nc in the Trainer.