aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/bin/assets/ScriptsAssetSet
diff options
context:
space:
mode:
Diffstat (limited to 'bin/assets/ScriptsAssetSet')
-rw-r--r--bin/assets/ScriptsAssetSet/GrafittiBoard.lsl74
-rw-r--r--bin/assets/ScriptsAssetSet/KanEd-Test01.lsl13
-rw-r--r--bin/assets/ScriptsAssetSet/KanEd-Test02.lsl31
-rw-r--r--bin/assets/ScriptsAssetSet/KanEd-Test03.lsl49
-rw-r--r--bin/assets/ScriptsAssetSet/KanEd-Test04.lsl51
-rw-r--r--bin/assets/ScriptsAssetSet/KanEd-Test05.lsl30
-rw-r--r--bin/assets/ScriptsAssetSet/KanEd-Test06.lsl8
-rw-r--r--bin/assets/ScriptsAssetSet/KanEd-Test07.lsl38
-rw-r--r--bin/assets/ScriptsAssetSet/KanEd-Test08.lsl23
-rw-r--r--bin/assets/ScriptsAssetSet/KanEd-Test09.lsl71
-rw-r--r--bin/assets/ScriptsAssetSet/KanEd-Test10.lsl57
-rw-r--r--bin/assets/ScriptsAssetSet/KanEd-Test11.lsl52
-rw-r--r--bin/assets/ScriptsAssetSet/KanEd-Test12.lsl46
-rw-r--r--bin/assets/ScriptsAssetSet/KanEd-Test13.lsl16
-rw-r--r--bin/assets/ScriptsAssetSet/KanEd-Test14.lsl70
-rw-r--r--bin/assets/ScriptsAssetSet/KanEd-Test15.lsl10
-rw-r--r--bin/assets/ScriptsAssetSet/KanEd-Test16.lsl66
-rw-r--r--bin/assets/ScriptsAssetSet/ScriptsAssetSet.xml243
-rw-r--r--bin/assets/ScriptsAssetSet/llAbs.lsl7
-rw-r--r--bin/assets/ScriptsAssetSet/llAcos.lsl8
-rw-r--r--bin/assets/ScriptsAssetSet/llAddToLandBanList.lsl84
-rw-r--r--bin/assets/ScriptsAssetSet/llAddToLandPassList.lsl84
-rw-r--r--bin/assets/ScriptsAssetSet/llAdjustSoundVolume.lsl13
-rw-r--r--bin/assets/ScriptsAssetSet/llAllowInventoryDrop.lsl17
-rw-r--r--bin/assets/ScriptsAssetSet/llAngleBetween.lsl11
-rw-r--r--bin/assets/ScriptsAssetSet/llApplyImpulse.lsl16
-rw-r--r--bin/assets/ScriptsAssetSet/llAsin.lsl9
-rw-r--r--bin/assets/ScriptsAssetSet/llAtan2.lsl11
-rw-r--r--bin/assets/ScriptsAssetSet/llAvatarOnSitTarget.lsl20
-rw-r--r--bin/assets/ScriptsAssetSet/llBase64ToString.lsl8
-rw-r--r--bin/assets/ScriptsAssetSet/llRemoveFromLandBanList.lsl84
-rw-r--r--bin/assets/ScriptsAssetSet/llRemoveFromLandPassList.lsl84
-rw-r--r--bin/assets/ScriptsAssetSet/llResetLandBanList.lsl84
-rw-r--r--bin/assets/ScriptsAssetSet/llResetLandPassList.lsl84
-rw-r--r--bin/assets/ScriptsAssetSet/llSay.lsl7
-rw-r--r--bin/assets/ScriptsAssetSet/llSetParcelMusicURL.lsl7
-rw-r--r--bin/assets/ScriptsAssetSet/llSetRot.lsl13
-rw-r--r--bin/assets/ScriptsAssetSet/osTextBoard.lsl48
-rw-r--r--bin/assets/ScriptsAssetSet/osWeatherMap.lsl43
39 files changed, 1690 insertions, 0 deletions
diff --git a/bin/assets/ScriptsAssetSet/GrafittiBoard.lsl b/bin/assets/ScriptsAssetSet/GrafittiBoard.lsl
new file mode 100644
index 0000000..83adfb1
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/GrafittiBoard.lsl
@@ -0,0 +1,74 @@
1// Grafitti board 0.0.2 for OpenSim
2// By Justin Clark-Casey (justincc)
3// http://justincc.wordpress.com
4
5// This script is available under the BSD License
6
7string text = "";
8
9integer LISTENING_CHANNEL = 43;
10
11// XXX Only putting this here as well to get around OpenSim's int -> string casting oddness
12string LISTENING_CHANNEL_STRING = "43";
13
14// FIXME: Should be dynamic!
15integer CHARS_WIDTH = 42;
16
17// Add some additional graffiti
18addGraffiti(string message)
19{
20 while (llStringLength(message) > CHARS_WIDTH)
21 {
22 text += "\n\n" + llGetSubString(message, 0, CHARS_WIDTH - 1);
23 message = llDeleteSubString(message, 0, CHARS_WIDTH - 1);
24 }
25
26 text += "\n\n" + message;
27}
28
29// Clear the existing graffiti
30clearGraffiti()
31{
32 text = "";
33}
34
35// Actually fires the graffiti out to the dynamic texture module
36draw()
37{
38 //llSay(0, text);
39 string drawList = "PenColour BLACK; MoveTo 40,220; FontSize 32; Text " + text + ";";
40
41 osSetDynamicTextureData("", "vector", drawList, "1024", 0);
42}
43
44default
45{
46 state_entry()
47 {
48 llSetText(
49 "Say /" + LISTENING_CHANNEL_STRING + " <message> to add text."
50 + " Say /" + LISTENING_CHANNEL_STRING
51 + " !clear to clear board",
52 <0.0, 1.0, 0.0>, 1.0);
53
54 llListen(LISTENING_CHANNEL, "", NULL_KEY, "");
55
56 addGraffiti("justincc's graffiti board v0.0.2");
57 addGraffiti("Now with primitive word wrap!");
58 draw();
59 }
60
61 listen(integer channel, string name, key id, string message)
62 {
63 if (message == "!clear")
64 {
65 clearGraffiti();
66 }
67 else
68 {
69 addGraffiti(message);
70 }
71
72 draw();
73 }
74}
diff --git a/bin/assets/ScriptsAssetSet/KanEd-Test01.lsl b/bin/assets/ScriptsAssetSet/KanEd-Test01.lsl
new file mode 100644
index 0000000..5f8a0aa
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/KanEd-Test01.lsl
@@ -0,0 +1,13 @@
1default
2{
3 state_entry()
4 {
5 llSay( 0, "Hello, Avatar!");
6 }
7
8 touch_start(integer total_number)
9 {
10 llSay( 0, "Touched.");
11 }
12}
13
diff --git a/bin/assets/ScriptsAssetSet/KanEd-Test02.lsl b/bin/assets/ScriptsAssetSet/KanEd-Test02.lsl
new file mode 100644
index 0000000..2506d95
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/KanEd-Test02.lsl
@@ -0,0 +1,31 @@
1integer counter;
2
3default
4{
5 state_entry()
6 {
7 llSay( 0, "Hello, Avatar! Touch to change color and size.");
8 counter = 0;
9 }
10
11 touch_start(integer total_number)
12 { // do these instructions when the object is touched.
13 counter = counter + 1;
14
15 // choose three random RGB color components between 0. and 1.0.
16 float redness = llFrand( 1.0 );
17 float greenness = llFrand( 1.0 );
18 float blueness = llFrand( 1.0 );
19
20 // combine color components into a vector and use that vector
21 // to set object color.
22 vector prim_color = < redness, greenness, blueness >;
23 llSetColor( prim_color, ALL_SIDES ); // set object color to new color.
24
25 // choose a random number between 0. and 10. for use as a scale factor.
26 float new_scale = llFrand(10.0) + 1.0;
27 llSetScale(< new_scale, new_scale, new_scale > ); // set object scale.
28 llSay( 0, "Touched by angel number " + (string)counter);
29 }
30}
31
diff --git a/bin/assets/ScriptsAssetSet/KanEd-Test03.lsl b/bin/assets/ScriptsAssetSet/KanEd-Test03.lsl
new file mode 100644
index 0000000..f371ee9
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/KanEd-Test03.lsl
@@ -0,0 +1,49 @@
1integer counter;
2integer second;
3
4default
5{
6 state_entry()
7 {
8 llSay( 0, "Hello, Avatar! Touch to change color and size.");
9 counter = 0;
10 }
11
12 touch_start(integer total_number)
13 {
14 counter = counter + 1;
15
16 llSay( 0, "Touched by angel number " + (string)counter);
17
18 llSetTimerEvent( 2 ); // create a "timer event" every 2 seconds.
19 }
20
21 timer() // do these instructions every time the timer event occurs.
22 {
23 second++;
24
25 // choose three random RGB color components between 0. and 1.0.
26 float red = llFrand( 1.0 );
27 float green = llFrand( 1.0 );
28 float blue = llFrand( 1.0 );
29
30 // combine color components into a vector and use that vector
31 // to set object color.
32 vector prim_color = < red, green, blue >;
33 llSetColor( prim_color, ALL_SIDES ); // set object color to new color.
34
35 // a choose random number between 0. and 10 for use as a scale factor.
36 float new_scale = llFrand( 10.0 );
37 llSetScale(< new_scale, new_scale, new_scale > ); // set object scale.
38
39 if ( second > 19 ) // then time to wrap this up.
40 {
41 // turn object black, print "resting" message, and reset object....
42 llSetColor( < 0, 0, 0 >, ALL_SIDES );
43
44 llSay( 0, "Object now resting and resetting script." );
45 llResetScript(); // return object to ready state.
46 }
47 }
48}
49
diff --git a/bin/assets/ScriptsAssetSet/KanEd-Test04.lsl b/bin/assets/ScriptsAssetSet/KanEd-Test04.lsl
new file mode 100644
index 0000000..5aa25af
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/KanEd-Test04.lsl
@@ -0,0 +1,51 @@
1integer counter;
2integer second;
3vector startPosition;
4
5default
6{
7 state_entry()
8 {
9 llSay( 0, "Hello, Avatar! Touch to change position.");
10 counter = 0;
11 startPosition = llGetPos();
12 }
13
14 touch_start(integer total_number)
15 {
16 counter = counter + 1;
17
18 llSay( 0, "Touched by angel number " + (string)counter);
19
20 llSetTimerEvent( 1 ); // arrange for a "timer event" every second.
21 }
22
23 timer() // do these instructions every time the timer event occurs.
24 {
25 second++;
26
27 // choose three random distances between 0. and 10.0.
28 float X_distance = llFrand( 10.0 );
29 float Y_distance = llFrand( 10.0 );
30 float Z_distance = llFrand( 10.0 );
31
32 // combine these distance components into a vector and use it
33 // to increment the starting position and reposition the object.
34 vector increment = < X_distance, Y_distance, Z_distance >;
35 vector newPosition = startPosition + increment;
36 llSetPos( newPosition ); // reposition object.
37
38 if ( second > 19 ) // then time to wrap this up.
39 {
40 // move object back to starting position...
41 while ( llVecDist( llGetPos(), startPosition ) > 0.001)
42 {
43 llSetPos( startPosition );
44 }
45
46 llSay( 0, "Object now resting and resetting script." );
47 llResetScript(); // return object to ready state.
48 }
49 }
50}
51
diff --git a/bin/assets/ScriptsAssetSet/KanEd-Test05.lsl b/bin/assets/ScriptsAssetSet/KanEd-Test05.lsl
new file mode 100644
index 0000000..86727cf
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/KanEd-Test05.lsl
@@ -0,0 +1,30 @@
1default
2{
3 state_entry()
4 {
5 llSay( 0, "Hello, Avatar!");
6 vector startPoint = llGetPos();
7 }
8
9 touch_start(integer total_number)
10 {
11 llSay( 0, "Touched." );
12
13 // Define a rotation of 10 degrees around the Y-axis.
14 rotation Y_10 = llEuler2Rot( < 0, 10 * DEG_TO_RAD, 0 > );
15
16 // now rotate the object 10 degrees in the X-Z plane during
17 // each loop iteration. note that each call to llSetRot
18 // causes a .2 second delay.
19 integer i;
20 for( i = 1; i < 100; i++ )
21 {
22 // rotate object in the X-Z plane around its own Y-axis.
23 rotation newRotation = llGetRot() * Y_10;
24
25 llSetRot( newRotation );
26 }
27 llSay( 0, "Rotation stopped" );
28 }
29}
30
diff --git a/bin/assets/ScriptsAssetSet/KanEd-Test06.lsl b/bin/assets/ScriptsAssetSet/KanEd-Test06.lsl
new file mode 100644
index 0000000..158d676
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/KanEd-Test06.lsl
@@ -0,0 +1,8 @@
1default
2{
3 state_entry()
4 {
5 llTargetOmega( < 0, 1, 1 >, .2 * PI, 1.0 );
6 }
7}
8
diff --git a/bin/assets/ScriptsAssetSet/KanEd-Test07.lsl b/bin/assets/ScriptsAssetSet/KanEd-Test07.lsl
new file mode 100644
index 0000000..a1258f9
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/KanEd-Test07.lsl
@@ -0,0 +1,38 @@
1vector rotationCenter;
2
3default
4{
5 state_entry()
6 {
7 llSay( 0, "Hello, Avatar!");
8 vector startPoint = llGetPos();
9 rotationCenter = startPoint + < 3, 3, 3 >;
10 // distance to the point of rotation should probably be a
11 // function of the max dimension of the object.
12 }
13
14 touch_start(integer total_number)
15 {
16 llSay( 0, "Touched." );
17
18 // Define a "rotation" of 10 degrees around the z-axis.
19 rotation Z_15 = llEuler2Rot( < 0, 0, 15 * DEG_TO_RAD > );
20
21 integer i;
22 for( i = 1; i < 100; i++ ) // limit simulation time in case of
23 { // unexpected behavior.
24 vector currentPosition = llGetPos();
25
26 vector currentOffset = currentPosition - rotationCenter;
27
28 // rotate the offset vector in the X-Y plane around the
29 // distant point of rotation.
30 vector rotatedOffset = currentOffset * Z_15;
31 vector newPosition = rotationCenter + rotatedOffset;
32
33 llSetPos( newPosition );
34 }
35 llSay( 0, "Orbiting stopped" );
36 }
37}
38
diff --git a/bin/assets/ScriptsAssetSet/KanEd-Test08.lsl b/bin/assets/ScriptsAssetSet/KanEd-Test08.lsl
new file mode 100644
index 0000000..d29428c
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/KanEd-Test08.lsl
@@ -0,0 +1,23 @@
1default
2{
3 state_entry()
4 {
5 llSay( 0, "Hello, Avatar! Touch to launch me straight up.");
6 llSetStatus( 1, TRUE ); // turn on physics.
7 }
8
9 touch_start(integer total_number)
10 {
11 vector start_color = llGetColor( ALL_SIDES ); // save current color.
12 llSetColor( < 1.0, 0.0, 0.0 > , ALL_SIDES ); // set color to red.
13
14 float objMass = llGetMass();
15 float Z_force = 20.0 * objMass;
16
17 llApplyImpulse( < 0.0, 0.0, Z_force >, FALSE );
18
19 llSay( 0, "Impulse of " + (string)Z_force + " applied." );
20 llSetColor( start_color , ALL_SIDES ); // set color to green.
21 }
22}
23
diff --git a/bin/assets/ScriptsAssetSet/KanEd-Test09.lsl b/bin/assets/ScriptsAssetSet/KanEd-Test09.lsl
new file mode 100644
index 0000000..095f942
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/KanEd-Test09.lsl
@@ -0,0 +1,71 @@
1vector startPos;
2vector curPos;
3vector curForce;
4integer second;
5
6default
7{
8 state_entry()
9 {
10 llSay( 0, "Hello, Avatar! Touch to launch me straight up.");
11 llSetStatus( 1, TRUE );
12 startPos = < 0, 0, 0 >;
13 }
14
15 touch_start(integer total_number)
16 {
17 startPos = llGetPos();
18 curPos = startPos;
19 curForce = < 0, 0, 0 >;
20 second = 0;
21
22 llSetColor( < 1.0, 0.0, 0.0 > , ALL_SIDES ); // set color to red.
23
24 float objMass = llGetMass();
25 float Z_force = 10.2 * objMass;
26
27 llSetForce( < 0.0, 0.0, Z_force >, FALSE );
28
29 llSay( 0, "Force of " + (string)Z_force + " being applied." );
30 llSetTimerEvent(1);
31 }
32
33 timer()
34 {
35 second++;
36 curPos = llGetPos();
37 float curDisplacement = llVecMag( curPos - startPos );
38
39 if( ( curDisplacement > 30. ) && // then object is too far away, and
40 ( llGetForce() != < 0.0, 0.0, 0.0 > ) ) // force not already zero,
41 { // then let gravity take over, and change color to green.
42 llSetForce( < 0.0, 0.0, 0.0 >, FALSE );
43 llSetColor( < 0, 1.0, 0 >, ALL_SIDES );
44 llSay( 0, "Force removed; object in free flight." );
45 }
46
47 if ( second > 19 ) // then time to wrap this up.
48 {
49 // turn object blue and zero force to be safe....
50 llSetColor( < 0, 0, 1.0 >, ALL_SIDES ); // change color to blue.
51 llSetForce( < 0, 0, 0 >, FALSE );
52
53 // ...move object back to starting position...
54 // ...after saving current status of Physics attribute.
55 integer savedStatus = llGetStatus( 1 );
56 llSetStatus( 1, FALSE ); // turn physics off.
57 while ( llVecDist( llGetPos(), startPos ) > 0.001)
58 {
59 llSetPos( startPos );
60 }
61 llSetStatus( 1, savedStatus ); // restore Physics status.
62
63 //...and then turn color to black and Reset the script.
64 llSetColor( < 1, 1, 1 >, ALL_SIDES );
65 llSetTimerEvent( 0 ); // turn off timer events.
66 llSay( 0, "Done and resetting script." );
67 llResetScript(); // return object to ready state.
68 }
69 }
70}
71
diff --git a/bin/assets/ScriptsAssetSet/KanEd-Test10.lsl b/bin/assets/ScriptsAssetSet/KanEd-Test10.lsl
new file mode 100644
index 0000000..de16df7
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/KanEd-Test10.lsl
@@ -0,0 +1,57 @@
1vector startPosition;
2float groundLevel;
3
4default
5{
6 state_entry()
7 {
8 llListen( 0, "", llGetOwner(), "");
9
10 startPosition = llGetPos();
11 groundLevel = llGround( startPosition );
12
13 llSay( 0, "Control this object with chat commands like:" );
14 llSay( 0, "'up' or 'down' followed by a distance." );
15 }
16
17 listen( integer channel, string name, key id, string message )
18 {
19 // separate the input into blank-delmited tokens.
20 list parsed = llParseString2List( message, [ " " ], [] );
21
22 // get the first part--the "command".
23 string command = llList2String( parsed, 0 );
24
25 // get the second part--the "distance".
26 string distance_string = llList2String( parsed, 1 );
27 float distance = ( float )distance_string;
28
29 vector position = llGetPos();
30
31 if( command == "up" )
32 {
33 if( ( position.z + distance ) < (startPosition.z + 10.0 ) )
34 {
35 llSetPos( llGetPos() + < 0, 0, distance > ); // move up
36 llSetText( "Went up " + (string)distance, < 1, 0, 0 >, 1 );
37 }
38 else
39 {
40 llSetText( "Can't go so high.", < 1, 0, 0 >, 1 );
41 }
42 }
43 else if( command == "down" )
44 {
45 if( ( position.z - distance ) > groundLevel )
46 {
47 llSetPos( llGetPos() + < 0, 0, -distance > ); // move down
48 llSetText( "Went down " + (string)distance, < 1, 0, 0 >, 1 );
49 }
50 else
51 {
52 llSetText( "Can't go so low.", < 1, 0, 0 >, 1 );
53 }
54 }
55 }
56}
57
diff --git a/bin/assets/ScriptsAssetSet/KanEd-Test11.lsl b/bin/assets/ScriptsAssetSet/KanEd-Test11.lsl
new file mode 100644
index 0000000..e4b4048
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/KanEd-Test11.lsl
@@ -0,0 +1,52 @@
1integer dialog_channel= 427; // set a dialog channel
2list menu = [ "Go up", "Go down" ];
3vector startPosition;
4float groundLevel;
5
6default
7{
8 state_entry()
9 {
10 // arrange to listen for dialog answers (from multiple users)
11 llListen( dialog_channel, "", NULL_KEY, "");
12
13 startPosition = llGetPos();
14 groundLevel = llGround( startPosition );
15 }
16
17 touch_start(integer total_number)
18 {
19 llDialog( llDetectedKey( 0 ), "What do you want to do?", menu,
20 dialog_channel );
21 }
22
23 listen(integer channel, string name, key id, string choice )
24 {
25 vector position = llGetPos();
26
27 // if a valid choice was made, implement that choice if possible.
28 // (llListFindList returns -1 if choice is not in the menu list.)
29 if ( llListFindList( menu, [ choice ]) != -1 )
30 {
31 if ( choice == "Go up" )
32 {
33 if( position.z < ( startPosition.z + 10.0 ) )
34 {
35 llSetPos( llGetPos() + < 0, 0, 1.0 > ); // move up
36 }
37 }
38 else if( choice == "Go down" )
39 {
40 if( position.z > ( groundLevel + 1.0 ) )
41 {
42 llSetPos( llGetPos() + < 0, 0, -1.0 > ); // move down
43 }
44 }
45 }
46 else
47 {
48 llSay( 0, "Invalid choice: " + choice );
49 }
50 }
51}
52
diff --git a/bin/assets/ScriptsAssetSet/KanEd-Test12.lsl b/bin/assets/ScriptsAssetSet/KanEd-Test12.lsl
new file mode 100644
index 0000000..eaa885b
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/KanEd-Test12.lsl
@@ -0,0 +1,46 @@
1vector startPosition;
2float groundLevel;
3
4default
5{
6 state_entry()
7 {
8 // get permission to take over the avatar's control inputs.
9 llRequestPermissions( llGetOwner(), PERMISSION_TAKE_CONTROLS );
10
11 startPosition = llGetPos();
12 groundLevel = llGround( startPosition );
13 }
14
15 run_time_permissions( integer perm ) // event for processing
16 // permission dialog.
17 {
18 if ( perm & PERMISSION_TAKE_CONTROLS ) // permission has been given.
19 {
20 // go ahead and take over the forward and backward controls.
21 llTakeControls( CONTROL_FWD | CONTROL_BACK, TRUE, FALSE );
22 }
23 }
24
25 control( key id, integer held, integer change ) // event for processing
26 // key press.
27 {
28 vector position = llGetPos();
29
30 if ( change & held & CONTROL_FWD )
31 { // the "move forward" control has been activated.
32 if( position.z < (startPosition.z + 10.0) )
33 {
34 llSetPos( llGetPos() + < 0, 0, 1.0 >); // move up
35 }
36 }
37 else if ( change & held & CONTROL_BACK )
38 { // the "move backward" key has been activated.
39 if( position.z > groundLevel + 1.0 )
40 {
41 llSetPos( llGetPos() + < 0, 0, -1.0 >); // move down
42 }
43 }
44 }
45}
46
diff --git a/bin/assets/ScriptsAssetSet/KanEd-Test13.lsl b/bin/assets/ScriptsAssetSet/KanEd-Test13.lsl
new file mode 100644
index 0000000..7238a9b
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/KanEd-Test13.lsl
@@ -0,0 +1,16 @@
1default
2{
3 state_entry()
4 {
5 llSay( 0, "Hello, Avatar!");
6 }
7
8 touch_start(integer total_number)
9 {
10 llSay( 0, "Touched.");
11
12 llRezObject("Object1", llGetPos() + < 0, 0, 2 >, ZERO_VECTOR,
13 ZERO_ROTATION, 42);
14 }
15}
16
diff --git a/bin/assets/ScriptsAssetSet/KanEd-Test14.lsl b/bin/assets/ScriptsAssetSet/KanEd-Test14.lsl
new file mode 100644
index 0000000..2c60035
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/KanEd-Test14.lsl
@@ -0,0 +1,70 @@
1integer createdObjectCounter;
2integer linkedObjectCounter;
3
4default
5{
6 state_entry()
7 {
8 llSay( 0, "Hello, Avatar!");
9 linkedObjectCounter = 0; // zero the linked object counter.
10 }
11
12 touch_start(integer total_number)
13 {
14 if( createdObjectCounter <= 0 ) // nothing has yet been linked,
15 { // begin object creation sequence...
16 // ask for permissions now, since it will be too late later.
17 llRequestPermissions( llGetOwner(), PERMISSION_CHANGE_LINKS );
18 }
19 else // just do whatever should be done upon touch without
20 { // creating new objects to link.
21 // insert commands here to respond to a touch.
22 }
23 }
24
25 run_time_permissions( integer permissions_granted )
26 {
27 if( permissions_granted == PERMISSION_CHANGE_LINKS )
28 { // create 2 objects.
29 llRezObject("Object1", llGetPos() + < 1, 0, 2 >,
30 ZERO_VECTOR, ZERO_ROTATION, 42);
31 createdObjectCounter = createdObjectCounter + 1;
32
33 llRezObject("Object1", llGetPos() + < -1, 0, 2 >,
34 ZERO_VECTOR, ZERO_ROTATION, 42);
35 createdObjectCounter = createdObjectCounter + 1;
36
37 }
38 else
39 {
40 llOwnerSay( "Didn't get permission to change links." );
41 return;
42 }
43 }
44
45 object_rez( key child_id )
46 {
47 llOwnerSay( "rez happened and produced object with key " +
48 (string)child_id );
49
50 // link as parent to the just created child.
51 llCreateLink( child_id, TRUE );
52
53 // if all child objects have been created then the script can
54 // continue to work as a linked set of objects.
55 linkedObjectCounter++;
56 if( linkedObjectCounter >= 2 )
57 {
58 // Change all child objects in the set to red (including parent).
59 llSetLinkColor( LINK_ALL_CHILDREN, < 1, 0, 0 >, ALL_SIDES );
60
61 // Make child object "2" half-tranparent.
62 llSetLinkAlpha( 2, .5, ALL_SIDES );
63
64 // Insert commands here to manage subsequent activity of the
65 // linkset, like this command to rotate the result:
66 // llTargetOmega( < 0, 1, 1 >, .2 * PI, 1.0 );
67 }
68 }
69}
70
diff --git a/bin/assets/ScriptsAssetSet/KanEd-Test15.lsl b/bin/assets/ScriptsAssetSet/KanEd-Test15.lsl
new file mode 100644
index 0000000..425c9ee
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/KanEd-Test15.lsl
@@ -0,0 +1,10 @@
1default
2{
3 state_entry()
4 {
5 llSetStatus(STATUS_PHANTOM,TRUE);
6 llSetTexture("lit_texture", ALL_SIDES);
7 llSetTextureAnim (ANIM_ON | LOOP, ALL_SIDES, 4, 4, 0, 0, 15.0);
8 }
9}
10
diff --git a/bin/assets/ScriptsAssetSet/KanEd-Test16.lsl b/bin/assets/ScriptsAssetSet/KanEd-Test16.lsl
new file mode 100644
index 0000000..536ff19
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/KanEd-Test16.lsl
@@ -0,0 +1,66 @@
1// This is a script designed to orbit its owner.
2vector startPos;
3vector curPos;
4
5vector offset; // offset from Agent
6integer iteration;
7float rotationRate; // degrees of rotation per iteration
8float sensorInterval; // seconds between sensor scan.
9
10default
11{
12 state_entry()
13 {
14 llOwnerSay( "Hello, Avatar! Touch to start orbiting." );
15 llSetStatus( 1, FALSE ); // turn Physics off.
16 offset = < 2, 2, 1 >;
17 iteration = 0;
18 rotationRate = .5;
19 sensorInterval = .3;
20 }
21
22 touch_start(integer total_number)
23 {
24 startPos = llGetPos();
25 curPos = startPos;
26
27 llSleep( .1 );
28
29 key id = llGetOwner();
30 llSensorRepeat( "", id, AGENT, 96, PI, sensorInterval );
31 }
32
33 sensor(integer total_number)
34 {
35 iteration++;
36
37 if( iteration > 300 )
38 {
39 llResetScript();
40 }
41
42 if( llDetectedOwner( 0 ) == llGetOwner() )
43 { // the detected Agent is my owner.
44 vector position = llDetectedPos(0); // find Owner position.
45
46 // calculate next object position relative both to the Owner's
47 // position and the current time interval counter. That is,
48 // use the iteration counter to define a rotation, multiply
49 // the rotation by the constant offset to get a rotated offset
50 // vector, and add that rotated offset to the current position
51 // to defne the new position.
52
53 float degreeRotation = llRound( rotationRate * iteration ) % 360;
54 rotation Rotation =
55 llEuler2Rot( < 0, 0, degreeRotation * DEG_TO_RAD > );
56 vector rotatedOffset = offset * Rotation;
57 position += rotatedOffset;
58
59 // change the location of the object and save the current (rotated)
60 // offset for use during the next iteration.
61 llSetPos( position );
62 offset = rotatedOffset;
63 }
64 }
65}
66
diff --git a/bin/assets/ScriptsAssetSet/ScriptsAssetSet.xml b/bin/assets/ScriptsAssetSet/ScriptsAssetSet.xml
new file mode 100644
index 0000000..eae9642
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/ScriptsAssetSet.xml
@@ -0,0 +1,243 @@
1<Nini>
2 <Section Name="llAbs">
3 <Key Name="assetID" Value="3b055e3f-b19d-11dc-8314-0800200c9a66" />
4 <Key Name="name" Value="llAbs" />
5 <Key Name="assetType" Value="10" />
6 <Key Name="fileName" Value="llAbs.lsl" />
7 </Section>
8 <Section Name="llAcos">
9 <Key Name="assetID" Value="6519bf39-b19f-11dc-8314-0800200c9a66" />
10 <Key Name="name" Value="llAcos" />
11 <Key Name="assetType" Value="10" />
12 <Key Name="fileName" Value="llAcos.lsl" />
13 </Section>
14 <Section Name="llAddToLandBanList">
15 <Key Name="assetID" Value="7ceba3f1-b1a0-11dc-8314-0800200c9a66" />
16 <Key Name="name" Value="llAddToLandBanList" />
17 <Key Name="assetType" Value="10" />
18 <Key Name="fileName" Value="llAddToLandBanList.lsl" />
19 </Section>
20 <Section Name="llAddToLandPassList">
21 <Key Name="assetID" Value="609047e7-b390-11dc-8314-0800200c9a66" />
22 <Key Name="name" Value="llAddToLandPassList" />
23 <Key Name="assetType" Value="10" />
24 <Key Name="fileName" Value="llAddToLandPassList.lsl" />
25 </Section>
26 <Section Name="llAdjustSoundVolume">
27 <Key Name="assetID" Value="56df4bcd-b393-11dc-8314-0800200c9a66" />
28 <Key Name="name" Value="llAdjustSoundVolume" />
29 <Key Name="assetType" Value="10" />
30 <Key Name="fileName" Value="llAdjustSoundVolume.lsl" />
31 </Section>
32 <Section Name="llAllowInventoryDrop">
33 <Key Name="assetID" Value="54d6962d-b394-11dc-8314-0800200c9a66" />
34 <Key Name="name" Value="llAllowInventoryDrop" />
35 <Key Name="assetType" Value="10" />
36 <Key Name="fileName" Value="llAllowInventoryDrop.lsl" />
37 </Section>
38 <Section Name="llAngleBetween">
39 <Key Name="assetID" Value="6b341609-b34e-11dc-8314-0800200c9a66" />
40 <Key Name="name" Value="llAngleBetween" />
41 <Key Name="assetType" Value="10" />
42 <Key Name="fileName" Value="llAngleBetween.lsl" />
43 </Section>
44 <Section Name="llAsin">
45 <Key Name="assetID" Value="7e7422ed-b425-11dc-8314-0800200c9a66" />
46 <Key Name="name" Value="llAsin" />
47 <Key Name="assetType" Value="10" />
48 <Key Name="fileName" Value="llAsin.lsl" />
49 </Section>
50 <Section Name="llAtan2">
51 <Key Name="assetID" Value="7e7422ef-b425-11dc-8314-0800200c9a66" />
52 <Key Name="name" Value="llAtan2" />
53 <Key Name="assetType" Value="10" />
54 <Key Name="fileName" Value="llAtan2.lsl" />
55 </Section>
56 <Section Name="llApplyImpulse">
57 <Key Name="assetID" Value="714ec679-b419-11dc-8314-0800200c9a66" />
58 <Key Name="name" Value="llApplyImpulse" />
59 <Key Name="assetType" Value="10" />
60 <Key Name="fileName" Value="llApplyImpulse.lsl" />
61 </Section>
62 <Section Name="llAvatarOnSitTarget">
63 <Key Name="assetID" Value="579fc821-b426-11dc-8314-0800200c9a66" />
64 <Key Name="name" Value="llAvatarOnSitTarget" />
65 <Key Name="assetType" Value="10" />
66 <Key Name="fileName" Value="llAvatarOnSitTarget.lsl" />
67 </Section>
68 <Section Name="llBase64ToString">
69 <Key Name="assetID" Value="1d4c71d9-b428-11dc-8314-0800200c9a66" />
70 <Key Name="name" Value="llBase64ToString" />
71 <Key Name="assetType" Value="10" />
72 <Key Name="fileName" Value="llBase64ToString.lsl" />
73 </Section>
74 <Section Name="llRemoveFromLandBanList">
75 <Key Name="assetID" Value="299b2101-b392-11dc-8314-0800200c9a66" />
76 <Key Name="name" Value="llRemoveFromLandBanList" />
77 <Key Name="assetType" Value="10" />
78 <Key Name="fileName" Value="llRemoveFromLandBanList.lsl" />
79 </Section>
80 <Section Name="llRemoveFromLandPassList">
81 <Key Name="assetID" Value="299b2103-b392-11dc-8314-0800200c9a66" />
82 <Key Name="name" Value="llRemoveFromLandPassList" />
83 <Key Name="assetType" Value="10" />
84 <Key Name="fileName" Value="llRemoveFromLandPassList.lsl" />
85 </Section>
86 <Section Name="llResetLandBanList">
87 <Key Name="assetID" Value="366ac8e7-b391-11dc-8314-0800200c9a66" />
88 <Key Name="name" Value="llResetLandBanList" />
89 <Key Name="assetType" Value="10" />
90 <Key Name="fileName" Value="llResetLandBanList.lsl" />
91 </Section>
92 <Section Name="llSay">
93 <Key Name="assetID" Value="366ac8e9-b391-11dc-8314-0800200c9a66" />
94 <Key Name="name" Value="llSay" />
95 <Key Name="assetType" Value="10" />
96 <Key Name="fileName" Value="llSay.lsl" />
97 </Section>
98 <Section Name="llSetParcelMusicURL">
99 <Key Name="assetID" Value="3603a4f8-b360-11dc-8314-0800200c9a66" />
100 <Key Name="name" Value="llSetParcelMusicURL" />
101 <Key Name="assetType" Value="10" />
102 <Key Name="fileName" Value="llSetParcelMusicURL.lsl" />
103 </Section>
104 <Section Name="llSetRot">
105 <Key Name="assetID" Value="220baef9-b376-11dc-8314-0800200c9a66" />
106 <Key Name="name" Value="llSetRot" />
107 <Key Name="assetType" Value="10" />
108 <Key Name="fileName" Value="llSetRot.lsl" />
109 </Section>
110 <Section Name="osTextBoard">
111 <Key Name="assetID" Value="2ddcb059-20c5-d169-4c42-673f16d3284b" />
112 <Key Name="name" Value="osTextBoard" />
113 <Key Name="assetType" Value="10" />
114 <Key Name="fileName" Value="osTextBoard.lsl" />
115 </Section>
116 <Section Name="osWeatherMap">
117 <Key Name="assetID" Value="d63ad3ec-b687-6c38-410d-31ba3e50ce4d" />
118 <Key Name="name" Value="osWeatherMap" />
119 <Key Name="assetType" Value="10" />
120 <Key Name="fileName" Value="osWeatherMap.lsl" />
121 </Section>
122 <Section Name="GrafittiBoard">
123 <Key Name="assetID" Value="81305ee4-8caa-9e0a-69a4-76ed57df0c8f" />
124 <Key Name="name" Value="GrafittiBoard" />
125 <Key Name="assetType" Value="10" />
126 <Key Name="fileName" Value="GrafittiBoard.lsl" />
127 </Section>
128
129 <!-- Adding the Kan-ED tests to the Assets -->
130
131 <Section Name="Kan-Ed Test1">
132 <Key Name="assetID" Value="42b6ac70-d21f-11dd-ad8b-0800200c9a66" />
133 <Key Name="name" Value="Kan-Ed Test1" />
134 <Key Name="assetType" Value="10" />
135 <Key Name="fileName" Value="KanEd-Test01.lsl" />
136 </Section>
137
138 <Section Name="Kan-Ed Test2">
139 <Key Name="assetID" Value="42b6ac71-d21f-11dd-ad8b-0800200c9a66" />
140 <Key Name="name" Value="Kan-Ed Test2" />
141 <Key Name="assetType" Value="10" />
142 <Key Name="fileName" Value="KanEd-Test02.lsl" />
143 </Section>
144
145 <Section Name="Kan-Ed Test3">
146 <Key Name="assetID" Value="42b6ac72-d21f-11dd-ad8b-0800200c9a66" />
147 <Key Name="name" Value="Kan-Ed Test3" />
148 <Key Name="assetType" Value="10" />
149 <Key Name="fileName" Value="KanEd-Test03.lsl" />
150 </Section>
151
152 <Section Name="Kan-Ed Test4">
153 <Key Name="assetID" Value="42b6ac73-d21f-11dd-ad8b-0800200c9a66" />
154 <Key Name="name" Value="Kan-Ed Test4" />
155 <Key Name="assetType" Value="10" />
156 <Key Name="fileName" Value="KanEd-Test04.lsl" />
157 </Section>
158
159 <Section Name="Kan-Ed Test5">
160 <Key Name="assetID" Value="42b6ac74-d21f-11dd-ad8b-0800200c9a66" />
161 <Key Name="name" Value="Kan-Ed Test5" />
162 <Key Name="assetType" Value="10" />
163 <Key Name="fileName" Value="KanEd-Test05.lsl" />
164 </Section>
165
166 <Section Name="Kan-Ed Test6">
167 <Key Name="assetID" Value="42b6ac75-d21f-11dd-ad8b-0800200c9a66" />
168 <Key Name="name" Value="Kan-Ed Test6" />
169 <Key Name="assetType" Value="10" />
170 <Key Name="fileName" Value="KanEd-Test06.lsl" />
171 </Section>
172
173 <Section Name="Kan-Ed Test7">
174 <Key Name="assetID" Value="42b6ac76-d21f-11dd-ad8b-0800200c9a66" />
175 <Key Name="name" Value="Kan-Ed Test7" />
176 <Key Name="assetType" Value="10" />
177 <Key Name="fileName" Value="KanEd-Test07.lsl" />
178 </Section>
179
180 <Section Name="Kan-Ed Test8">
181 <Key Name="assetID" Value="42b6ac77-d21f-11dd-ad8b-0800200c9a66" />
182 <Key Name="name" Value="Kan-Ed Test8" />
183 <Key Name="assetType" Value="10" />
184 <Key Name="fileName" Value="KanEd-Test08.lsl" />
185 </Section>
186
187 <Section Name="Kan-Ed Test9">
188 <Key Name="assetID" Value="42b6ac78-d21f-11dd-ad8b-0800200c9a66" />
189 <Key Name="name" Value="Kan-Ed Test9" />
190 <Key Name="assetType" Value="10" />
191 <Key Name="fileName" Value="KanEd-Test09.lsl" />
192 </Section>
193
194 <Section Name="Kan-Ed Test10">
195 <Key Name="assetID" Value="42b6ac79-d21f-11dd-ad8b-0800200c9a66" />
196 <Key Name="name" Value="Kan-Ed Test10" />
197 <Key Name="assetType" Value="10" />
198 <Key Name="fileName" Value="KanEd-Test10.lsl" />
199 </Section>
200
201 <Section Name="Kan-Ed Test11">
202 <Key Name="assetID" Value="42b6ac7a-d21f-11dd-ad8b-0800200c9a66" />
203 <Key Name="name" Value="Kan-Ed Test11" />
204 <Key Name="assetType" Value="10" />
205 <Key Name="fileName" Value="KanEd-Test11.lsl" />
206 </Section>
207
208 <Section Name="Kan-Ed Test12">
209 <Key Name="assetID" Value="42b6ac7b-d21f-11dd-ad8b-0800200c9a66" />
210 <Key Name="name" Value="Kan-Ed Test12" />
211 <Key Name="assetType" Value="10" />
212 <Key Name="fileName" Value="KanEd-Test12.lsl" />
213 </Section>
214
215 <Section Name="Kan-Ed Test13">
216 <Key Name="assetID" Value="42b6ac7c-d21f-11dd-ad8b-0800200c9a66" />
217 <Key Name="name" Value="Kan-Ed Test13" />
218 <Key Name="assetType" Value="10" />
219 <Key Name="fileName" Value="KanEd-Test13.lsl" />
220 </Section>
221
222 <Section Name="Kan-Ed Test14">
223 <Key Name="assetID" Value="42b6ac7d-d21f-11dd-ad8b-0800200c9a66" />
224 <Key Name="name" Value="Kan-Ed Test14" />
225 <Key Name="assetType" Value="10" />
226 <Key Name="fileName" Value="KanEd-Test14.lsl" />
227 </Section>
228
229 <Section Name="Kan-Ed Test15">
230 <Key Name="assetID" Value="42b6ac7e-d21f-11dd-ad8b-0800200c9a66" />
231 <Key Name="name" Value="Kan-Ed Test15" />
232 <Key Name="assetType" Value="10" />
233 <Key Name="fileName" Value="KanEd-Test15.lsl" />
234 </Section>
235
236 <Section Name="Kan-Ed Test16">
237 <Key Name="assetID" Value="42b6ac7f-d21f-11dd-ad8b-0800200c9a66" />
238 <Key Name="name" Value="Kan-Ed Test16" />
239 <Key Name="assetType" Value="10" />
240 <Key Name="fileName" Value="KanEd-Test16.lsl" />
241 </Section>
242
243</Nini>
diff --git a/bin/assets/ScriptsAssetSet/llAbs.lsl b/bin/assets/ScriptsAssetSet/llAbs.lsl
new file mode 100644
index 0000000..2b37584
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/llAbs.lsl
@@ -0,0 +1,7 @@
1default
2{
3 state_entry()
4 {
5 llOwnerSay("The absolute value of -4 is: "+(string)llAbs(-4) );
6 }
7}
diff --git a/bin/assets/ScriptsAssetSet/llAcos.lsl b/bin/assets/ScriptsAssetSet/llAcos.lsl
new file mode 100644
index 0000000..5450bc0
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/llAcos.lsl
@@ -0,0 +1,8 @@
1default
2{
3 state_entry()
4 {
5 float r = llFrand(2) - 1.0;
6 llOwnerSay("The arccosine of " + (string)r + " is " + llAcos(r));
7 }
8}
diff --git a/bin/assets/ScriptsAssetSet/llAddToLandBanList.lsl b/bin/assets/ScriptsAssetSet/llAddToLandBanList.lsl
new file mode 100644
index 0000000..f2df357
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/llAddToLandBanList.lsl
@@ -0,0 +1,84 @@
1//Commands are:
2///5 ban:full_avatar_name
3///5 tempban:full_avatar_name
4///5 unban:full_avatar_name
5///5 pass:full_avatar_name
6///5 unpass:full_avatar_name
7///5 clearban
8///5 clearpass
9
10string command;
11
12default
13{
14 state_entry()
15 {
16 llListen(5, "", llGetOwner(), "");
17 }
18
19 on_rez(integer param)
20 {
21 llResetScript();
22 }
23
24 listen(integer chan, string name, key id, string message)
25 {
26 if (command != "")
27 {
28 llOwnerSay("Sorry, still processing last command, try again in a second.");
29 }
30
31 list args = llParseString2List(message,[":"],[]);
32 command = llToLower(llList2String(args,0));
33
34 if (command == "clearbans")
35 {
36 llResetLandBanList();
37 }
38 if (command == "clearpass")
39 {
40 llResetLandPassList();
41 }
42 else
43 {
44 llSensor(llList2String(args,1),NULL_KEY,AGENT,96,PI);
45 }
46 }
47
48 no_sensor()
49 {
50 command = "";
51 }
52
53 sensor(integer num)
54 {
55 integer i;
56 for (i=0; i< num; ++i)
57 {
58 if (command == "ban")
59 {
60 // Ban indefinetely
61 llAddToLandBanList(llDetectedKey(i),0.0);
62 }
63 if (command == "tempban")
64 {
65 // Ban for 1 hour.
66 llAddToLandBanList(llDetectedKey(i),1.0);
67 }
68 if (command == "unban")
69 {
70 llRemoveFromLandBanList(llDetectedKey(i));
71 }
72 if (command == "pass")
73 {
74 // Add to land pass list for 1 hour
75 llAddToLandPassList(llDetectedKey(i),1.0);
76 }
77 if (command == "unpass")
78 {
79 llRemoveFromLandPassList(llDetectedKey(i));
80 }
81 }
82 command = "";
83 }
84}
diff --git a/bin/assets/ScriptsAssetSet/llAddToLandPassList.lsl b/bin/assets/ScriptsAssetSet/llAddToLandPassList.lsl
new file mode 100644
index 0000000..f2df357
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/llAddToLandPassList.lsl
@@ -0,0 +1,84 @@
1//Commands are:
2///5 ban:full_avatar_name
3///5 tempban:full_avatar_name
4///5 unban:full_avatar_name
5///5 pass:full_avatar_name
6///5 unpass:full_avatar_name
7///5 clearban
8///5 clearpass
9
10string command;
11
12default
13{
14 state_entry()
15 {
16 llListen(5, "", llGetOwner(), "");
17 }
18
19 on_rez(integer param)
20 {
21 llResetScript();
22 }
23
24 listen(integer chan, string name, key id, string message)
25 {
26 if (command != "")
27 {
28 llOwnerSay("Sorry, still processing last command, try again in a second.");
29 }
30
31 list args = llParseString2List(message,[":"],[]);
32 command = llToLower(llList2String(args,0));
33
34 if (command == "clearbans")
35 {
36 llResetLandBanList();
37 }
38 if (command == "clearpass")
39 {
40 llResetLandPassList();
41 }
42 else
43 {
44 llSensor(llList2String(args,1),NULL_KEY,AGENT,96,PI);
45 }
46 }
47
48 no_sensor()
49 {
50 command = "";
51 }
52
53 sensor(integer num)
54 {
55 integer i;
56 for (i=0; i< num; ++i)
57 {
58 if (command == "ban")
59 {
60 // Ban indefinetely
61 llAddToLandBanList(llDetectedKey(i),0.0);
62 }
63 if (command == "tempban")
64 {
65 // Ban for 1 hour.
66 llAddToLandBanList(llDetectedKey(i),1.0);
67 }
68 if (command == "unban")
69 {
70 llRemoveFromLandBanList(llDetectedKey(i));
71 }
72 if (command == "pass")
73 {
74 // Add to land pass list for 1 hour
75 llAddToLandPassList(llDetectedKey(i),1.0);
76 }
77 if (command == "unpass")
78 {
79 llRemoveFromLandPassList(llDetectedKey(i));
80 }
81 }
82 command = "";
83 }
84}
diff --git a/bin/assets/ScriptsAssetSet/llAdjustSoundVolume.lsl b/bin/assets/ScriptsAssetSet/llAdjustSoundVolume.lsl
new file mode 100644
index 0000000..4c2d397
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/llAdjustSoundVolume.lsl
@@ -0,0 +1,13 @@
1default
2{
3 state_entry()
4 {
5 llListen(42, "", llGetOwner(), "");
6 }
7 listen(integer chan, string name, key id, string msg)
8 {
9 float value = (float)msg;
10 llAdjustSoundVolume(value);
11 llOwnerSay("Volume set to: " + (string)value + " of 1.0");
12 }
13}
diff --git a/bin/assets/ScriptsAssetSet/llAllowInventoryDrop.lsl b/bin/assets/ScriptsAssetSet/llAllowInventoryDrop.lsl
new file mode 100644
index 0000000..ca6087c
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/llAllowInventoryDrop.lsl
@@ -0,0 +1,17 @@
1integer allow;
2
3default
4{
5 touch_start(integer num)
6 {
7 llAllowInventoryDrop(allow = !allow);
8 llOwnerSay("llAllowInventoryDrop == "+llList2String(["FALSE","TRUE"],allow));
9 }
10 changed(integer change)
11 {
12 if (change & CHANGED_ALLOWED_DROP) //note that it's & and not &&... it's bitwise!
13 {
14 llOwnerSay("The inventory has changed as a result of a user without mod permissions dropping an item on the prim and it being allowed by the script.");
15 }
16 }
17}
diff --git a/bin/assets/ScriptsAssetSet/llAngleBetween.lsl b/bin/assets/ScriptsAssetSet/llAngleBetween.lsl
new file mode 100644
index 0000000..21cd851
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/llAngleBetween.lsl
@@ -0,0 +1,11 @@
1default
2{
3 state_entry()
4 {
5 rotation aRot = ZERO_ROTATION;
6 rotation bRot = llGetRot();
7 float aBetween = llAngleBetween( aRot, bRot );
8 llOwnerSay((string)aBetween);
9 //llGetRot() being < 0, 0, 90 > this should report 1.570796
10 }
11}
diff --git a/bin/assets/ScriptsAssetSet/llApplyImpulse.lsl b/bin/assets/ScriptsAssetSet/llApplyImpulse.lsl
new file mode 100644
index 0000000..add7a08
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/llApplyImpulse.lsl
@@ -0,0 +1,16 @@
1//Rez an object, and drop this script in it.
2//This will launch it at the owner.
3default
4{
5 state_entry()
6 {
7 list p = llGetObjectDetails(llGetOwner(), [OBJECT_POS]);
8 if(p != [])
9 {
10 llSetStatus(STATUS_PHYSICS, TRUE);
11 vector pos = llList2Vector(p, 0);
12 vector direction = llVecNorm(pos - llGetPos());
13 llApplyImpulse(direction * 100, 0);
14 }
15 }
16}
diff --git a/bin/assets/ScriptsAssetSet/llAsin.lsl b/bin/assets/ScriptsAssetSet/llAsin.lsl
new file mode 100644
index 0000000..ad37ccd
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/llAsin.lsl
@@ -0,0 +1,9 @@
1// Touch the object with this script in it to see the arcsine of random numbers!
2default
3{
4 touch_start(integer num)
5 {
6 float r = llFrand(2) - 1.0;
7 llOwnerSay("The arcsine of " + (string)r + " is " + llAsin(r));
8 }
9}
diff --git a/bin/assets/ScriptsAssetSet/llAtan2.lsl b/bin/assets/ScriptsAssetSet/llAtan2.lsl
new file mode 100644
index 0000000..9fc1c63
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/llAtan2.lsl
@@ -0,0 +1,11 @@
1default
2{
3 state_entry()
4 {
5 float num1 = llFrand(100.0);
6 float num2 = llFrand(100.0);
7 llOwnerSay("y = " + (string)num1);
8 llOwnerSay("x = " + (string)num2);
9 llOwnerSay("The tangent of y divided by x is " + (string)llAtan2(num1, num2));
10 }
11}
diff --git a/bin/assets/ScriptsAssetSet/llAvatarOnSitTarget.lsl b/bin/assets/ScriptsAssetSet/llAvatarOnSitTarget.lsl
new file mode 100644
index 0000000..47e9588
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/llAvatarOnSitTarget.lsl
@@ -0,0 +1,20 @@
1default
2{
3 state_entry()
4 {
5 // set sit target, otherwise this will not work
6 llSitTarget(<0.0, 0.0, 0.1>, ZERO_ROTATION);
7 }
8 changed(integer change)
9 {
10 if (change & CHANGED_LINK)
11 {
12 key av = llAvatarOnSitTarget();
13 //evaluated as true if not NULL_KEY or invalid
14 if (av)
15 {
16 llSay(0, "Hello " + llKey2Name(av) + ", thank you for sitting down");
17 }
18 }
19 }
20}
diff --git a/bin/assets/ScriptsAssetSet/llBase64ToString.lsl b/bin/assets/ScriptsAssetSet/llBase64ToString.lsl
new file mode 100644
index 0000000..f0987cb
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/llBase64ToString.lsl
@@ -0,0 +1,8 @@
1default
2{
3 state_entry()
4 {
5 string test = llBase64ToString("U2VjcmV0Ok9wZW4=");
6 llOwnerSay(test);
7 }
8}
diff --git a/bin/assets/ScriptsAssetSet/llRemoveFromLandBanList.lsl b/bin/assets/ScriptsAssetSet/llRemoveFromLandBanList.lsl
new file mode 100644
index 0000000..f2df357
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/llRemoveFromLandBanList.lsl
@@ -0,0 +1,84 @@
1//Commands are:
2///5 ban:full_avatar_name
3///5 tempban:full_avatar_name
4///5 unban:full_avatar_name
5///5 pass:full_avatar_name
6///5 unpass:full_avatar_name
7///5 clearban
8///5 clearpass
9
10string command;
11
12default
13{
14 state_entry()
15 {
16 llListen(5, "", llGetOwner(), "");
17 }
18
19 on_rez(integer param)
20 {
21 llResetScript();
22 }
23
24 listen(integer chan, string name, key id, string message)
25 {
26 if (command != "")
27 {
28 llOwnerSay("Sorry, still processing last command, try again in a second.");
29 }
30
31 list args = llParseString2List(message,[":"],[]);
32 command = llToLower(llList2String(args,0));
33
34 if (command == "clearbans")
35 {
36 llResetLandBanList();
37 }
38 if (command == "clearpass")
39 {
40 llResetLandPassList();
41 }
42 else
43 {
44 llSensor(llList2String(args,1),NULL_KEY,AGENT,96,PI);
45 }
46 }
47
48 no_sensor()
49 {
50 command = "";
51 }
52
53 sensor(integer num)
54 {
55 integer i;
56 for (i=0; i< num; ++i)
57 {
58 if (command == "ban")
59 {
60 // Ban indefinetely
61 llAddToLandBanList(llDetectedKey(i),0.0);
62 }
63 if (command == "tempban")
64 {
65 // Ban for 1 hour.
66 llAddToLandBanList(llDetectedKey(i),1.0);
67 }
68 if (command == "unban")
69 {
70 llRemoveFromLandBanList(llDetectedKey(i));
71 }
72 if (command == "pass")
73 {
74 // Add to land pass list for 1 hour
75 llAddToLandPassList(llDetectedKey(i),1.0);
76 }
77 if (command == "unpass")
78 {
79 llRemoveFromLandPassList(llDetectedKey(i));
80 }
81 }
82 command = "";
83 }
84}
diff --git a/bin/assets/ScriptsAssetSet/llRemoveFromLandPassList.lsl b/bin/assets/ScriptsAssetSet/llRemoveFromLandPassList.lsl
new file mode 100644
index 0000000..f2df357
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/llRemoveFromLandPassList.lsl
@@ -0,0 +1,84 @@
1//Commands are:
2///5 ban:full_avatar_name
3///5 tempban:full_avatar_name
4///5 unban:full_avatar_name
5///5 pass:full_avatar_name
6///5 unpass:full_avatar_name
7///5 clearban
8///5 clearpass
9
10string command;
11
12default
13{
14 state_entry()
15 {
16 llListen(5, "", llGetOwner(), "");
17 }
18
19 on_rez(integer param)
20 {
21 llResetScript();
22 }
23
24 listen(integer chan, string name, key id, string message)
25 {
26 if (command != "")
27 {
28 llOwnerSay("Sorry, still processing last command, try again in a second.");
29 }
30
31 list args = llParseString2List(message,[":"],[]);
32 command = llToLower(llList2String(args,0));
33
34 if (command == "clearbans")
35 {
36 llResetLandBanList();
37 }
38 if (command == "clearpass")
39 {
40 llResetLandPassList();
41 }
42 else
43 {
44 llSensor(llList2String(args,1),NULL_KEY,AGENT,96,PI);
45 }
46 }
47
48 no_sensor()
49 {
50 command = "";
51 }
52
53 sensor(integer num)
54 {
55 integer i;
56 for (i=0; i< num; ++i)
57 {
58 if (command == "ban")
59 {
60 // Ban indefinetely
61 llAddToLandBanList(llDetectedKey(i),0.0);
62 }
63 if (command == "tempban")
64 {
65 // Ban for 1 hour.
66 llAddToLandBanList(llDetectedKey(i),1.0);
67 }
68 if (command == "unban")
69 {
70 llRemoveFromLandBanList(llDetectedKey(i));
71 }
72 if (command == "pass")
73 {
74 // Add to land pass list for 1 hour
75 llAddToLandPassList(llDetectedKey(i),1.0);
76 }
77 if (command == "unpass")
78 {
79 llRemoveFromLandPassList(llDetectedKey(i));
80 }
81 }
82 command = "";
83 }
84}
diff --git a/bin/assets/ScriptsAssetSet/llResetLandBanList.lsl b/bin/assets/ScriptsAssetSet/llResetLandBanList.lsl
new file mode 100644
index 0000000..f2df357
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/llResetLandBanList.lsl
@@ -0,0 +1,84 @@
1//Commands are:
2///5 ban:full_avatar_name
3///5 tempban:full_avatar_name
4///5 unban:full_avatar_name
5///5 pass:full_avatar_name
6///5 unpass:full_avatar_name
7///5 clearban
8///5 clearpass
9
10string command;
11
12default
13{
14 state_entry()
15 {
16 llListen(5, "", llGetOwner(), "");
17 }
18
19 on_rez(integer param)
20 {
21 llResetScript();
22 }
23
24 listen(integer chan, string name, key id, string message)
25 {
26 if (command != "")
27 {
28 llOwnerSay("Sorry, still processing last command, try again in a second.");
29 }
30
31 list args = llParseString2List(message,[":"],[]);
32 command = llToLower(llList2String(args,0));
33
34 if (command == "clearbans")
35 {
36 llResetLandBanList();
37 }
38 if (command == "clearpass")
39 {
40 llResetLandPassList();
41 }
42 else
43 {
44 llSensor(llList2String(args,1),NULL_KEY,AGENT,96,PI);
45 }
46 }
47
48 no_sensor()
49 {
50 command = "";
51 }
52
53 sensor(integer num)
54 {
55 integer i;
56 for (i=0; i< num; ++i)
57 {
58 if (command == "ban")
59 {
60 // Ban indefinetely
61 llAddToLandBanList(llDetectedKey(i),0.0);
62 }
63 if (command == "tempban")
64 {
65 // Ban for 1 hour.
66 llAddToLandBanList(llDetectedKey(i),1.0);
67 }
68 if (command == "unban")
69 {
70 llRemoveFromLandBanList(llDetectedKey(i));
71 }
72 if (command == "pass")
73 {
74 // Add to land pass list for 1 hour
75 llAddToLandPassList(llDetectedKey(i),1.0);
76 }
77 if (command == "unpass")
78 {
79 llRemoveFromLandPassList(llDetectedKey(i));
80 }
81 }
82 command = "";
83 }
84}
diff --git a/bin/assets/ScriptsAssetSet/llResetLandPassList.lsl b/bin/assets/ScriptsAssetSet/llResetLandPassList.lsl
new file mode 100644
index 0000000..f2df357
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/llResetLandPassList.lsl
@@ -0,0 +1,84 @@
1//Commands are:
2///5 ban:full_avatar_name
3///5 tempban:full_avatar_name
4///5 unban:full_avatar_name
5///5 pass:full_avatar_name
6///5 unpass:full_avatar_name
7///5 clearban
8///5 clearpass
9
10string command;
11
12default
13{
14 state_entry()
15 {
16 llListen(5, "", llGetOwner(), "");
17 }
18
19 on_rez(integer param)
20 {
21 llResetScript();
22 }
23
24 listen(integer chan, string name, key id, string message)
25 {
26 if (command != "")
27 {
28 llOwnerSay("Sorry, still processing last command, try again in a second.");
29 }
30
31 list args = llParseString2List(message,[":"],[]);
32 command = llToLower(llList2String(args,0));
33
34 if (command == "clearbans")
35 {
36 llResetLandBanList();
37 }
38 if (command == "clearpass")
39 {
40 llResetLandPassList();
41 }
42 else
43 {
44 llSensor(llList2String(args,1),NULL_KEY,AGENT,96,PI);
45 }
46 }
47
48 no_sensor()
49 {
50 command = "";
51 }
52
53 sensor(integer num)
54 {
55 integer i;
56 for (i=0; i< num; ++i)
57 {
58 if (command == "ban")
59 {
60 // Ban indefinetely
61 llAddToLandBanList(llDetectedKey(i),0.0);
62 }
63 if (command == "tempban")
64 {
65 // Ban for 1 hour.
66 llAddToLandBanList(llDetectedKey(i),1.0);
67 }
68 if (command == "unban")
69 {
70 llRemoveFromLandBanList(llDetectedKey(i));
71 }
72 if (command == "pass")
73 {
74 // Add to land pass list for 1 hour
75 llAddToLandPassList(llDetectedKey(i),1.0);
76 }
77 if (command == "unpass")
78 {
79 llRemoveFromLandPassList(llDetectedKey(i));
80 }
81 }
82 command = "";
83 }
84}
diff --git a/bin/assets/ScriptsAssetSet/llSay.lsl b/bin/assets/ScriptsAssetSet/llSay.lsl
new file mode 100644
index 0000000..dea6fc0
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/llSay.lsl
@@ -0,0 +1,7 @@
1default
2{
3 state_entry()
4 {
5 llSay(0,"This is an incredibly useless program." );
6 }
7}
diff --git a/bin/assets/ScriptsAssetSet/llSetParcelMusicURL.lsl b/bin/assets/ScriptsAssetSet/llSetParcelMusicURL.lsl
new file mode 100644
index 0000000..ec8bf4d
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/llSetParcelMusicURL.lsl
@@ -0,0 +1,7 @@
1default
2{
3 state_entry()
4 {
5 llSetParcelMusicURL("http://www.archive.org/download/Torley_Wong_-_The_Final_Selection/Torley_Wong-Lovers__Dance.mp3");
6 }
7}
diff --git a/bin/assets/ScriptsAssetSet/llSetRot.lsl b/bin/assets/ScriptsAssetSet/llSetRot.lsl
new file mode 100644
index 0000000..ebdad2f
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/llSetRot.lsl
@@ -0,0 +1,13 @@
1default
2{
3 state_entry()
4 {
5 llOwnerSay("Touch me");
6 }
7 touch_start(integer total_number)
8 {
9 rotation Y_10 = llEuler2Rot( < 0, 0, 30 * DEG_TO_RAD > );
10 rotation newRotation = llGetRot() * Y_10;
11 llSetRot( newRotation );
12 }
13}
diff --git a/bin/assets/ScriptsAssetSet/osTextBoard.lsl b/bin/assets/ScriptsAssetSet/osTextBoard.lsl
new file mode 100644
index 0000000..7aacab4
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/osTextBoard.lsl
@@ -0,0 +1,48 @@
1string title = "";
2string subtitle = "";
3string text = "";
4string add = "";
5integer channel = 0; // if this is >= 0, llSay on that channel on updates
6
7push_text()
8{
9 compile_text();
10 draw_text();
11}
12
13compile_text()
14{
15 title = "Some Title";
16 subtitle = "Some subtitle";
17
18 text = "Plenty of text for the main body.\n";
19 text += "You need to manual do line breaks\n";
20 text += "here. No word wrap yet.";
21
22 add = "Additional text at the bottom";
23}
24
25draw_text()
26{
27 string drawList = "MoveTo 40,80; PenColour RED; FontSize 48; Text " + title + ";";
28 drawList += "MoveTo 160,160; FontSize 32; Text " + subtitle + ";";
29 drawList += "PenColour BLACK; MoveTo 40,220; FontSize 24; Text " + text + ";";
30 drawList += "PenColour RED; FontName Times New Roman; MoveTo 40,900; Text " + add + ";";
31 osSetDynamicTextureData("", "vector", drawList, "1024", 0);
32}
33
34default {
35 state_entry()
36 {
37 push_text();
38 }
39
40 touch_start(integer count)
41 {
42 push_text();
43 if (channel >= 0) {
44 llSay(channel, text);
45 }
46 }
47
48}
diff --git a/bin/assets/ScriptsAssetSet/osWeatherMap.lsl b/bin/assets/ScriptsAssetSet/osWeatherMap.lsl
new file mode 100644
index 0000000..6a2232b
--- /dev/null
+++ b/bin/assets/ScriptsAssetSet/osWeatherMap.lsl
@@ -0,0 +1,43 @@
1integer count = 0;
2integer refreshRate = 300;
3string URL1 = "http://icons.wunderground.com/data/640x480/2xus_rd.gif";
4string URL2 = "http://icons.wunderground.com/data/640x480/2xus_sf.gif";
5string URL3 = "http://icons.wunderground.com/data/640x480/2xus_st.gif";
6string dynamicID="";
7string contentType="image";
8
9refresh_texture()
10{
11 count++;
12 string url = "";
13 integer c = count % 3;
14
15 if (c == 0) {
16 url = URL1;
17 } else if (c == 1) {
18 url = URL2;
19 } else {
20 url = URL3;
21 }
22 // refresh rate is not yet respected here, which is why we need the timer
23 osSetDynamicTextureURL(dynamicID, contentType ,url , "", refreshRate );
24}
25
26default
27{
28 state_entry()
29 {
30 refresh_texture();
31 llSetTimerEvent(refreshRate); // create a "timer event" every 300 seconds.
32 }
33
34 timer()
35 {
36 refresh_texture();
37 }
38
39 touch_start(integer times)
40 {
41 refresh_texture();
42 }
43}