From 176be29fca03edd366d864398f2d115ce28c1aa6 Mon Sep 17 00:00:00 2001 From: Fred Beckhusen Date: Sun, 17 Mar 2019 23:20:45 -0500 Subject: [PATCH] Add new files --- Script Tests/Script tests.sol | 3 + .../Script tests/Object/GrafittiBoard.lsl | 82 ++++++++++++++++ .../Script tests/Object/KanEd-Test01.lsl | 22 +++++ .../Script tests/Object/KanEd-Test02.lsl | 40 ++++++++ .../Script tests/Object/KanEd-Test03.lsl | 58 ++++++++++++ .../Script tests/Object/KanEd-Test04.lsl | 60 ++++++++++++ .../Script tests/Object/KanEd-Test05.lsl | 39 ++++++++ .../Script tests/Object/KanEd-Test06.lsl | 17 ++++ .../Script tests/Object/KanEd-Test07.lsl | 47 ++++++++++ .../Script tests/Object/KanEd-Test08.lsl | 32 +++++++ .../Script tests/Object/KanEd-Test09.lsl | 80 ++++++++++++++++ .../Script tests/Object/KanEd-Test10.lsl | 66 +++++++++++++ .../Script tests/Object/KanEd-Test11.lsl | 61 ++++++++++++ .../Script tests/Object/KanEd-Test12.lsl | 55 +++++++++++ .../Script tests/Object/KanEd-Test13.lsl | 25 +++++ .../Script tests/Object/KanEd-Test14.lsl | 79 ++++++++++++++++ .../Script tests/Object/KanEd-Test15.lsl | 19 ++++ .../Script tests/Object/KanEd-Test16.lsl | 75 +++++++++++++++ Script Tests/Script tests/Object/llAbs.lsl | 16 ++++ Script Tests/Script tests/Object/llAcos.lsl | 17 ++++ .../Object/llAddToLandBanList.lsl | 93 +++++++++++++++++++ .../Object/llAddToLandPassList.lsl | 93 +++++++++++++++++++ .../Object/llAdjustSoundVolume.lsl | 22 +++++ .../Object/llAllowInventoryDrop.lsl | 24 +++++ .../Script tests/Object/llAngleBetween.lsl | 19 ++++ .../Script tests/Object/llApplyImpulse.lsl | 25 +++++ Script Tests/Script tests/Object/llAsin.lsl | 18 ++++ Script Tests/Script tests/Object/llAtan2.lsl | 20 ++++ .../Object/llAvatarOnSitTarget.lsl | 29 ++++++ .../Script tests/Object/llBase64ToString.lsl | 17 ++++ .../Object/llRemoveFromLandBanList.lsl | 93 +++++++++++++++++++ .../Object/llRemoveFromLandPassList.lsl | 93 +++++++++++++++++++ .../Object/llResetLandBanList.lsl | 93 +++++++++++++++++++ .../Object/llResetLandPassList.lsl | 93 +++++++++++++++++++ Script Tests/Script tests/Object/llSay.lsl | 16 ++++ .../Object/llSetParcelMusicURL.lsl | 16 ++++ Script Tests/Script tests/Object/llSetRot.lsl | 22 +++++ .../Script tests/Object/osTextBoard.lsl | 57 ++++++++++++ .../Script tests/Object/osWeatherMap.lsl | 52 +++++++++++ Script Tests/Script tests/Script tests.prj | 80 ++++++++++++++++ 40 files changed, 1868 insertions(+) create mode 100644 Script Tests/Script tests.sol create mode 100644 Script Tests/Script tests/Object/GrafittiBoard.lsl create mode 100644 Script Tests/Script tests/Object/KanEd-Test01.lsl create mode 100644 Script Tests/Script tests/Object/KanEd-Test02.lsl create mode 100644 Script Tests/Script tests/Object/KanEd-Test03.lsl create mode 100644 Script Tests/Script tests/Object/KanEd-Test04.lsl create mode 100644 Script Tests/Script tests/Object/KanEd-Test05.lsl create mode 100644 Script Tests/Script tests/Object/KanEd-Test06.lsl create mode 100644 Script Tests/Script tests/Object/KanEd-Test07.lsl create mode 100644 Script Tests/Script tests/Object/KanEd-Test08.lsl create mode 100644 Script Tests/Script tests/Object/KanEd-Test09.lsl create mode 100644 Script Tests/Script tests/Object/KanEd-Test10.lsl create mode 100644 Script Tests/Script tests/Object/KanEd-Test11.lsl create mode 100644 Script Tests/Script tests/Object/KanEd-Test12.lsl create mode 100644 Script Tests/Script tests/Object/KanEd-Test13.lsl create mode 100644 Script Tests/Script tests/Object/KanEd-Test14.lsl create mode 100644 Script Tests/Script tests/Object/KanEd-Test15.lsl create mode 100644 Script Tests/Script tests/Object/KanEd-Test16.lsl create mode 100644 Script Tests/Script tests/Object/llAbs.lsl create mode 100644 Script Tests/Script tests/Object/llAcos.lsl create mode 100644 Script Tests/Script tests/Object/llAddToLandBanList.lsl create mode 100644 Script Tests/Script tests/Object/llAddToLandPassList.lsl create mode 100644 Script Tests/Script tests/Object/llAdjustSoundVolume.lsl create mode 100644 Script Tests/Script tests/Object/llAllowInventoryDrop.lsl create mode 100644 Script Tests/Script tests/Object/llAngleBetween.lsl create mode 100644 Script Tests/Script tests/Object/llApplyImpulse.lsl create mode 100644 Script Tests/Script tests/Object/llAsin.lsl create mode 100644 Script Tests/Script tests/Object/llAtan2.lsl create mode 100644 Script Tests/Script tests/Object/llAvatarOnSitTarget.lsl create mode 100644 Script Tests/Script tests/Object/llBase64ToString.lsl create mode 100644 Script Tests/Script tests/Object/llRemoveFromLandBanList.lsl create mode 100644 Script Tests/Script tests/Object/llRemoveFromLandPassList.lsl create mode 100644 Script Tests/Script tests/Object/llResetLandBanList.lsl create mode 100644 Script Tests/Script tests/Object/llResetLandPassList.lsl create mode 100644 Script Tests/Script tests/Object/llSay.lsl create mode 100644 Script Tests/Script tests/Object/llSetParcelMusicURL.lsl create mode 100644 Script Tests/Script tests/Object/llSetRot.lsl create mode 100644 Script Tests/Script tests/Object/osTextBoard.lsl create mode 100644 Script Tests/Script tests/Object/osWeatherMap.lsl create mode 100644 Script Tests/Script tests/Script tests.prj diff --git a/Script Tests/Script tests.sol b/Script Tests/Script tests.sol new file mode 100644 index 00000000..ac8e6692 --- /dev/null +++ b/Script Tests/Script tests.sol @@ -0,0 +1,3 @@ + + + diff --git a/Script Tests/Script tests/Object/GrafittiBoard.lsl b/Script Tests/Script tests/Object/GrafittiBoard.lsl new file mode 100644 index 00000000..c2582e3b --- /dev/null +++ b/Script Tests/Script tests/Object/GrafittiBoard.lsl @@ -0,0 +1,82 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: +// Grafitti board 0.0.2 for OpenSim +// By Justin Clark-Casey (justincc) +// http://justincc.wordpress.com + +// This script is available under the BSD License + +string text = ""; + +integer LISTENING_CHANNEL = 43; + +// XXX Only putting this here as well to get around OpenSim's int -> string casting oddness +string LISTENING_CHANNEL_STRING = "43"; + +// FIXME: Should be dynamic! +integer CHARS_WIDTH = 42; + +// Add some additional graffiti +addGraffiti(string message) +{ + while (llStringLength(message) > CHARS_WIDTH) + { + text += "\n\n" + llGetSubString(message, 0, CHARS_WIDTH - 1); + message = llDeleteSubString(message, 0, CHARS_WIDTH - 1); + } + + text += "\n\n" + message; +} + +// Clear the existing graffiti +clearGraffiti() +{ + text = ""; +} + +// Actually fires the graffiti out to the dynamic texture module +draw() +{ + //llSay(0, text); + string drawList = "PenColour BLACK; MoveTo 40,220; FontSize 32; Text " + text + ";"; + + osSetDynamicTextureData("", "vector", drawList, "1024", 0); +} + +default +{ + state_entry() + { + llSetText( + "Say /" + LISTENING_CHANNEL_STRING + " to add text." + + " Say /" + LISTENING_CHANNEL_STRING + + " !clear to clear board", + <0.0, 1.0, 0.0>, 1.0); + + llListen(LISTENING_CHANNEL, "", NULL_KEY, ""); + + addGraffiti("justincc's graffiti board v0.0.2"); + addGraffiti("Now with primitive word wrap!"); + draw(); + } + + listen(integer channel, string name, key id, string message) + { + if (message == "!clear") + { + clearGraffiti(); + } + else + { + addGraffiti(message); + } + + draw(); + } +} diff --git a/Script Tests/Script tests/Object/KanEd-Test01.lsl b/Script Tests/Script tests/Object/KanEd-Test01.lsl new file mode 100644 index 00000000..51da178a --- /dev/null +++ b/Script Tests/Script tests/Object/KanEd-Test01.lsl @@ -0,0 +1,22 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +default +{ + state_entry() + { + llSay( 0, "Hello, Avatar!"); + } + + touch_start(integer total_number) + { + llSay( 0, "Touched."); + } +} + diff --git a/Script Tests/Script tests/Object/KanEd-Test02.lsl b/Script Tests/Script tests/Object/KanEd-Test02.lsl new file mode 100644 index 00000000..28187e88 --- /dev/null +++ b/Script Tests/Script tests/Object/KanEd-Test02.lsl @@ -0,0 +1,40 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +integer counter; + +default +{ + state_entry() + { + llSay( 0, "Hello, Avatar! Touch to change color and size."); + counter = 0; + } + + touch_start(integer total_number) + { // do these instructions when the object is touched. + counter = counter + 1; + + // choose three random RGB color components between 0. and 1.0. + float redness = llFrand( 1.0 ); + float greenness = llFrand( 1.0 ); + float blueness = llFrand( 1.0 ); + + // combine color components into a vector and use that vector + // to set object color. + vector prim_color = < redness, greenness, blueness >; + llSetColor( prim_color, ALL_SIDES ); // set object color to new color. + + // choose a random number between 0. and 10. for use as a scale factor. + float new_scale = llFrand(10.0) + 1.0; + llSetScale(< new_scale, new_scale, new_scale > ); // set object scale. + llSay( 0, "Touched by angel number " + (string)counter); + } +} + diff --git a/Script Tests/Script tests/Object/KanEd-Test03.lsl b/Script Tests/Script tests/Object/KanEd-Test03.lsl new file mode 100644 index 00000000..ef0376fd --- /dev/null +++ b/Script Tests/Script tests/Object/KanEd-Test03.lsl @@ -0,0 +1,58 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +integer counter; +integer second; + +default +{ + state_entry() + { + llSay( 0, "Hello, Avatar! Touch to change color and size."); + counter = 0; + } + + touch_start(integer total_number) + { + counter = counter + 1; + + llSay( 0, "Touched by angel number " + (string)counter); + + llSetTimerEvent( 2 ); // create a "timer event" every 2 seconds. + } + + timer() // do these instructions every time the timer event occurs. + { + second++; + + // choose three random RGB color components between 0. and 1.0. + float red = llFrand( 1.0 ); + float green = llFrand( 1.0 ); + float blue = llFrand( 1.0 ); + + // combine color components into a vector and use that vector + // to set object color. + vector prim_color = < red, green, blue >; + llSetColor( prim_color, ALL_SIDES ); // set object color to new color. + + // a choose random number between 0. and 10 for use as a scale factor. + float new_scale = llFrand( 10.0 ); + llSetScale(< new_scale, new_scale, new_scale > ); // set object scale. + + if ( second > 19 ) // then time to wrap this up. + { + // turn object black, print "resting" message, and reset object.... + llSetColor( < 0, 0, 0 >, ALL_SIDES ); + + llSay( 0, "Object now resting and resetting script." ); + llResetScript(); // return object to ready state. + } + } +} + diff --git a/Script Tests/Script tests/Object/KanEd-Test04.lsl b/Script Tests/Script tests/Object/KanEd-Test04.lsl new file mode 100644 index 00000000..15ace64f --- /dev/null +++ b/Script Tests/Script tests/Object/KanEd-Test04.lsl @@ -0,0 +1,60 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +integer counter; +integer second; +vector startPosition; + +default +{ + state_entry() + { + llSay( 0, "Hello, Avatar! Touch to change position."); + counter = 0; + startPosition = llGetPos(); + } + + touch_start(integer total_number) + { + counter = counter + 1; + + llSay( 0, "Touched by angel number " + (string)counter); + + llSetTimerEvent( 1 ); // arrange for a "timer event" every second. + } + + timer() // do these instructions every time the timer event occurs. + { + second++; + + // choose three random distances between 0. and 10.0. + float X_distance = llFrand( 10.0 ); + float Y_distance = llFrand( 10.0 ); + float Z_distance = llFrand( 10.0 ); + + // combine these distance components into a vector and use it + // to increment the starting position and reposition the object. + vector increment = < X_distance, Y_distance, Z_distance >; + vector newPosition = startPosition + increment; + llSetPos( newPosition ); // reposition object. + + if ( second > 19 ) // then time to wrap this up. + { + // move object back to starting position... + while ( llVecDist( llGetPos(), startPosition ) > 0.001) + { + llSetPos( startPosition ); + } + + llSay( 0, "Object now resting and resetting script." ); + llResetScript(); // return object to ready state. + } + } +} + diff --git a/Script Tests/Script tests/Object/KanEd-Test05.lsl b/Script Tests/Script tests/Object/KanEd-Test05.lsl new file mode 100644 index 00000000..99e9f52c --- /dev/null +++ b/Script Tests/Script tests/Object/KanEd-Test05.lsl @@ -0,0 +1,39 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +default +{ + state_entry() + { + llSay( 0, "Hello, Avatar!"); + vector startPoint = llGetPos(); + } + + touch_start(integer total_number) + { + llSay( 0, "Touched." ); + + // Define a rotation of 10 degrees around the Y-axis. + rotation Y_10 = llEuler2Rot( < 0, 10 * DEG_TO_RAD, 0 > ); + + // now rotate the object 10 degrees in the X-Z plane during + // each loop iteration. note that each call to llSetRot + // causes a .2 second delay. + integer i; + for( i = 1; i < 100; i++ ) + { + // rotate object in the X-Z plane around its own Y-axis. + rotation newRotation = llGetRot() * Y_10; + + llSetRot( newRotation ); + } + llSay( 0, "Rotation stopped" ); + } +} + diff --git a/Script Tests/Script tests/Object/KanEd-Test06.lsl b/Script Tests/Script tests/Object/KanEd-Test06.lsl new file mode 100644 index 00000000..32a30a70 --- /dev/null +++ b/Script Tests/Script tests/Object/KanEd-Test06.lsl @@ -0,0 +1,17 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +default +{ + state_entry() + { + llTargetOmega( < 0, 1, 1 >, .2 * PI, 1.0 ); + } +} + diff --git a/Script Tests/Script tests/Object/KanEd-Test07.lsl b/Script Tests/Script tests/Object/KanEd-Test07.lsl new file mode 100644 index 00000000..5bec9799 --- /dev/null +++ b/Script Tests/Script tests/Object/KanEd-Test07.lsl @@ -0,0 +1,47 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +vector rotationCenter; + +default +{ + state_entry() + { + llSay( 0, "Hello, Avatar!"); + vector startPoint = llGetPos(); + rotationCenter = startPoint + < 3, 3, 3 >; + // distance to the point of rotation should probably be a + // function of the max dimension of the object. + } + + touch_start(integer total_number) + { + llSay( 0, "Touched." ); + + // Define a "rotation" of 10 degrees around the z-axis. + rotation Z_15 = llEuler2Rot( < 0, 0, 15 * DEG_TO_RAD > ); + + integer i; + for( i = 1; i < 100; i++ ) // limit simulation time in case of + { // unexpected behavior. + vector currentPosition = llGetPos(); + + vector currentOffset = currentPosition - rotationCenter; + + // rotate the offset vector in the X-Y plane around the + // distant point of rotation. + vector rotatedOffset = currentOffset * Z_15; + vector newPosition = rotationCenter + rotatedOffset; + + llSetPos( newPosition ); + } + llSay( 0, "Orbiting stopped" ); + } +} + diff --git a/Script Tests/Script tests/Object/KanEd-Test08.lsl b/Script Tests/Script tests/Object/KanEd-Test08.lsl new file mode 100644 index 00000000..897b4714 --- /dev/null +++ b/Script Tests/Script tests/Object/KanEd-Test08.lsl @@ -0,0 +1,32 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +default +{ + state_entry() + { + llSay( 0, "Hello, Avatar! Touch to launch me straight up."); + llSetStatus( 1, TRUE ); // turn on physics. + } + + touch_start(integer total_number) + { + vector start_color = llGetColor( ALL_SIDES ); // save current color. + llSetColor( < 1.0, 0.0, 0.0 > , ALL_SIDES ); // set color to red. + + float objMass = llGetMass(); + float Z_force = 20.0 * objMass; + + llApplyImpulse( < 0.0, 0.0, Z_force >, FALSE ); + + llSay( 0, "Impulse of " + (string)Z_force + " applied." ); + llSetColor( start_color , ALL_SIDES ); // set color to green. + } +} + diff --git a/Script Tests/Script tests/Object/KanEd-Test09.lsl b/Script Tests/Script tests/Object/KanEd-Test09.lsl new file mode 100644 index 00000000..af9821cb --- /dev/null +++ b/Script Tests/Script tests/Object/KanEd-Test09.lsl @@ -0,0 +1,80 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +vector startPos; +vector curPos; +vector curForce; +integer second; + +default +{ + state_entry() + { + llSay( 0, "Hello, Avatar! Touch to launch me straight up."); + llSetStatus( 1, TRUE ); + startPos = < 0, 0, 0 >; + } + + touch_start(integer total_number) + { + startPos = llGetPos(); + curPos = startPos; + curForce = < 0, 0, 0 >; + second = 0; + + llSetColor( < 1.0, 0.0, 0.0 > , ALL_SIDES ); // set color to red. + + float objMass = llGetMass(); + float Z_force = 10.2 * objMass; + + llSetForce( < 0.0, 0.0, Z_force >, FALSE ); + + llSay( 0, "Force of " + (string)Z_force + " being applied." ); + llSetTimerEvent(1); + } + + timer() + { + second++; + curPos = llGetPos(); + float curDisplacement = llVecMag( curPos - startPos ); + + if( ( curDisplacement > 30. ) && // then object is too far away, and + ( llGetForce() != < 0.0, 0.0, 0.0 > ) ) // force not already zero, + { // then let gravity take over, and change color to green. + llSetForce( < 0.0, 0.0, 0.0 >, FALSE ); + llSetColor( < 0, 1.0, 0 >, ALL_SIDES ); + llSay( 0, "Force removed; object in free flight." ); + } + + if ( second > 19 ) // then time to wrap this up. + { + // turn object blue and zero force to be safe.... + llSetColor( < 0, 0, 1.0 >, ALL_SIDES ); // change color to blue. + llSetForce( < 0, 0, 0 >, FALSE ); + + // ...move object back to starting position... + // ...after saving current status of Physics attribute. + integer savedStatus = llGetStatus( 1 ); + llSetStatus( 1, FALSE ); // turn physics off. + while ( llVecDist( llGetPos(), startPos ) > 0.001) + { + llSetPos( startPos ); + } + llSetStatus( 1, savedStatus ); // restore Physics status. + + //...and then turn color to black and Reset the script. + llSetColor( < 1, 1, 1 >, ALL_SIDES ); + llSetTimerEvent( 0 ); // turn off timer events. + llSay( 0, "Done and resetting script." ); + llResetScript(); // return object to ready state. + } + } +} + diff --git a/Script Tests/Script tests/Object/KanEd-Test10.lsl b/Script Tests/Script tests/Object/KanEd-Test10.lsl new file mode 100644 index 00000000..3a4eb79e --- /dev/null +++ b/Script Tests/Script tests/Object/KanEd-Test10.lsl @@ -0,0 +1,66 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +vector startPosition; +float groundLevel; + +default +{ + state_entry() + { + llListen( 0, "", llGetOwner(), ""); + + startPosition = llGetPos(); + groundLevel = llGround( startPosition ); + + llSay( 0, "Control this object with chat commands like:" ); + llSay( 0, "'up' or 'down' followed by a distance." ); + } + + listen( integer channel, string name, key id, string message ) + { + // separate the input into blank-delmited tokens. + list parsed = llParseString2List( message, [ " " ], [] ); + + // get the first part--the "command". + string command = llList2String( parsed, 0 ); + + // get the second part--the "distance". + string distance_string = llList2String( parsed, 1 ); + float distance = ( float )distance_string; + + vector position = llGetPos(); + + if( command == "up" ) + { + if( ( position.z + distance ) < (startPosition.z + 10.0 ) ) + { + llSetPos( llGetPos() + < 0, 0, distance > ); // move up + llSetText( "Went up " + (string)distance, < 1, 0, 0 >, 1 ); + } + else + { + llSetText( "Can't go so high.", < 1, 0, 0 >, 1 ); + } + } + else if( command == "down" ) + { + if( ( position.z - distance ) > groundLevel ) + { + llSetPos( llGetPos() + < 0, 0, -distance > ); // move down + llSetText( "Went down " + (string)distance, < 1, 0, 0 >, 1 ); + } + else + { + llSetText( "Can't go so low.", < 1, 0, 0 >, 1 ); + } + } + } +} + diff --git a/Script Tests/Script tests/Object/KanEd-Test11.lsl b/Script Tests/Script tests/Object/KanEd-Test11.lsl new file mode 100644 index 00000000..d8aac4d1 --- /dev/null +++ b/Script Tests/Script tests/Object/KanEd-Test11.lsl @@ -0,0 +1,61 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +integer dialog_channel= 427; // set a dialog channel +list menu = [ "Go up", "Go down" ]; +vector startPosition; +float groundLevel; + +default +{ + state_entry() + { + // arrange to listen for dialog answers (from multiple users) + llListen( dialog_channel, "", NULL_KEY, ""); + + startPosition = llGetPos(); + groundLevel = llGround( startPosition ); + } + + touch_start(integer total_number) + { + llDialog( llDetectedKey( 0 ), "What do you want to do?", menu, + dialog_channel ); + } + + listen(integer channel, string name, key id, string choice ) + { + vector position = llGetPos(); + + // if a valid choice was made, implement that choice if possible. + // (llListFindList returns -1 if choice is not in the menu list.) + if ( llListFindList( menu, [ choice ]) != -1 ) + { + if ( choice == "Go up" ) + { + if( position.z < ( startPosition.z + 10.0 ) ) + { + llSetPos( llGetPos() + < 0, 0, 1.0 > ); // move up + } + } + else if( choice == "Go down" ) + { + if( position.z > ( groundLevel + 1.0 ) ) + { + llSetPos( llGetPos() + < 0, 0, -1.0 > ); // move down + } + } + } + else + { + llSay( 0, "Invalid choice: " + choice ); + } + } +} + diff --git a/Script Tests/Script tests/Object/KanEd-Test12.lsl b/Script Tests/Script tests/Object/KanEd-Test12.lsl new file mode 100644 index 00000000..deac8947 --- /dev/null +++ b/Script Tests/Script tests/Object/KanEd-Test12.lsl @@ -0,0 +1,55 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +vector startPosition; +float groundLevel; + +default +{ + state_entry() + { + // get permission to take over the avatar's control inputs. + llRequestPermissions( llGetOwner(), PERMISSION_TAKE_CONTROLS ); + + startPosition = llGetPos(); + groundLevel = llGround( startPosition ); + } + + run_time_permissions( integer perm ) // event for processing + // permission dialog. + { + if ( perm & PERMISSION_TAKE_CONTROLS ) // permission has been given. + { + // go ahead and take over the forward and backward controls. + llTakeControls( CONTROL_FWD | CONTROL_BACK, TRUE, FALSE ); + } + } + + control( key id, integer held, integer change ) // event for processing + // key press. + { + vector position = llGetPos(); + + if ( change & held & CONTROL_FWD ) + { // the "move forward" control has been activated. + if( position.z < (startPosition.z + 10.0) ) + { + llSetPos( llGetPos() + < 0, 0, 1.0 >); // move up + } + } + else if ( change & held & CONTROL_BACK ) + { // the "move backward" key has been activated. + if( position.z > groundLevel + 1.0 ) + { + llSetPos( llGetPos() + < 0, 0, -1.0 >); // move down + } + } + } +} + diff --git a/Script Tests/Script tests/Object/KanEd-Test13.lsl b/Script Tests/Script tests/Object/KanEd-Test13.lsl new file mode 100644 index 00000000..6071024b --- /dev/null +++ b/Script Tests/Script tests/Object/KanEd-Test13.lsl @@ -0,0 +1,25 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +default +{ + state_entry() + { + llSay( 0, "Hello, Avatar!"); + } + + touch_start(integer total_number) + { + llSay( 0, "Touched."); + + llRezObject("Object1", llGetPos() + < 0, 0, 2 >, ZERO_VECTOR, + ZERO_ROTATION, 42); + } +} + diff --git a/Script Tests/Script tests/Object/KanEd-Test14.lsl b/Script Tests/Script tests/Object/KanEd-Test14.lsl new file mode 100644 index 00000000..8b74e69f --- /dev/null +++ b/Script Tests/Script tests/Object/KanEd-Test14.lsl @@ -0,0 +1,79 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +integer createdObjectCounter; +integer linkedObjectCounter; + +default +{ + state_entry() + { + llSay( 0, "Hello, Avatar!"); + linkedObjectCounter = 0; // zero the linked object counter. + } + + touch_start(integer total_number) + { + if( createdObjectCounter <= 0 ) // nothing has yet been linked, + { // begin object creation sequence... + // ask for permissions now, since it will be too late later. + llRequestPermissions( llGetOwner(), PERMISSION_CHANGE_LINKS ); + } + else // just do whatever should be done upon touch without + { // creating new objects to link. + // insert commands here to respond to a touch. + } + } + + run_time_permissions( integer permissions_granted ) + { + if( permissions_granted == PERMISSION_CHANGE_LINKS ) + { // create 2 objects. + llRezObject("Object1", llGetPos() + < 1, 0, 2 >, + ZERO_VECTOR, ZERO_ROTATION, 42); + createdObjectCounter = createdObjectCounter + 1; + + llRezObject("Object1", llGetPos() + < -1, 0, 2 >, + ZERO_VECTOR, ZERO_ROTATION, 42); + createdObjectCounter = createdObjectCounter + 1; + + } + else + { + llOwnerSay( "Didn't get permission to change links." ); + return; + } + } + + object_rez( key child_id ) + { + llOwnerSay( "rez happened and produced object with key " + + (string)child_id ); + + // link as parent to the just created child. + llCreateLink( child_id, TRUE ); + + // if all child objects have been created then the script can + // continue to work as a linked set of objects. + linkedObjectCounter++; + if( linkedObjectCounter >= 2 ) + { + // Change all child objects in the set to red (including parent). + llSetLinkColor( LINK_ALL_CHILDREN, < 1, 0, 0 >, ALL_SIDES ); + + // Make child object "2" half-tranparent. + llSetLinkAlpha( 2, .5, ALL_SIDES ); + + // Insert commands here to manage subsequent activity of the + // linkset, like this command to rotate the result: + // llTargetOmega( < 0, 1, 1 >, .2 * PI, 1.0 ); + } + } +} + diff --git a/Script Tests/Script tests/Object/KanEd-Test15.lsl b/Script Tests/Script tests/Object/KanEd-Test15.lsl new file mode 100644 index 00000000..a6d0901a --- /dev/null +++ b/Script Tests/Script tests/Object/KanEd-Test15.lsl @@ -0,0 +1,19 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +default +{ + state_entry() + { + llSetStatus(STATUS_PHANTOM,TRUE); + llSetTexture("lit_texture", ALL_SIDES); + llSetTextureAnim (ANIM_ON | LOOP, ALL_SIDES, 4, 4, 0, 0, 15.0); + } +} + diff --git a/Script Tests/Script tests/Object/KanEd-Test16.lsl b/Script Tests/Script tests/Object/KanEd-Test16.lsl new file mode 100644 index 00000000..2fb17120 --- /dev/null +++ b/Script Tests/Script tests/Object/KanEd-Test16.lsl @@ -0,0 +1,75 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +// This is a script designed to orbit its owner. +vector startPos; +vector curPos; + +vector offset; // offset from Agent +integer iteration; +float rotationRate; // degrees of rotation per iteration +float sensorInterval; // seconds between sensor scan. + +default +{ + state_entry() + { + llOwnerSay( "Hello, Avatar! Touch to start orbiting." ); + llSetStatus( 1, FALSE ); // turn Physics off. + offset = < 2, 2, 1 >; + iteration = 0; + rotationRate = .5; + sensorInterval = .3; + } + + touch_start(integer total_number) + { + startPos = llGetPos(); + curPos = startPos; + + llSleep( .1 ); + + key id = llGetOwner(); + llSensorRepeat( "", id, AGENT, 96, PI, sensorInterval ); + } + + sensor(integer total_number) + { + iteration++; + + if( iteration > 300 ) + { + llResetScript(); + } + + if( llDetectedOwner( 0 ) == llGetOwner() ) + { // the detected Agent is my owner. + vector position = llDetectedPos(0); // find Owner position. + + // calculate next object position relative both to the Owner's + // position and the current time interval counter. That is, + // use the iteration counter to define a rotation, multiply + // the rotation by the constant offset to get a rotated offset + // vector, and add that rotated offset to the current position + // to defne the new position. + + float degreeRotation = llRound( rotationRate * iteration ) % 360; + rotation Rotation = + llEuler2Rot( < 0, 0, degreeRotation * DEG_TO_RAD > ); + vector rotatedOffset = offset * Rotation; + position += rotatedOffset; + + // change the location of the object and save the current (rotated) + // offset for use during the next iteration. + llSetPos( position ); + offset = rotatedOffset; + } + } +} + diff --git a/Script Tests/Script tests/Object/llAbs.lsl b/Script Tests/Script tests/Object/llAbs.lsl new file mode 100644 index 00000000..6a99754d --- /dev/null +++ b/Script Tests/Script tests/Object/llAbs.lsl @@ -0,0 +1,16 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +default +{ + state_entry() + { + llOwnerSay("The absolute value of -4 is: "+(string)llAbs(-4) ); + } +} diff --git a/Script Tests/Script tests/Object/llAcos.lsl b/Script Tests/Script tests/Object/llAcos.lsl new file mode 100644 index 00000000..6a64d01f --- /dev/null +++ b/Script Tests/Script tests/Object/llAcos.lsl @@ -0,0 +1,17 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +default +{ + state_entry() + { + float r = llFrand(2) - 1.0; + llOwnerSay("The arccosine of " + (string)r + " is " + llAcos(r)); + } +} diff --git a/Script Tests/Script tests/Object/llAddToLandBanList.lsl b/Script Tests/Script tests/Object/llAddToLandBanList.lsl new file mode 100644 index 00000000..8716e411 --- /dev/null +++ b/Script Tests/Script tests/Object/llAddToLandBanList.lsl @@ -0,0 +1,93 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +//Commands are: +///5 ban:full_avatar_name +///5 tempban:full_avatar_name +///5 unban:full_avatar_name +///5 pass:full_avatar_name +///5 unpass:full_avatar_name +///5 clearban +///5 clearpass + +string command; + +default +{ + state_entry() + { + llListen(5, "", llGetOwner(), ""); + } + + on_rez(integer param) + { + llResetScript(); + } + + listen(integer chan, string name, key id, string message) + { + if (command != "") + { + llOwnerSay("Sorry, still processing last command, try again in a second."); + } + + list args = llParseString2List(message,[":"],[]); + command = llToLower(llList2String(args,0)); + + if (command == "clearbans") + { + llResetLandBanList(); + } + if (command == "clearpass") + { + llResetLandPassList(); + } + else + { + llSensor(llList2String(args,1),NULL_KEY,AGENT,96,PI); + } + } + + no_sensor() + { + command = ""; + } + + sensor(integer num) + { + integer i; + for (i=0; i< num; ++i) + { + if (command == "ban") + { + // Ban indefinetely + llAddToLandBanList(llDetectedKey(i),0.0); + } + if (command == "tempban") + { + // Ban for 1 hour. + llAddToLandBanList(llDetectedKey(i),1.0); + } + if (command == "unban") + { + llRemoveFromLandBanList(llDetectedKey(i)); + } + if (command == "pass") + { + // Add to land pass list for 1 hour + llAddToLandPassList(llDetectedKey(i),1.0); + } + if (command == "unpass") + { + llRemoveFromLandPassList(llDetectedKey(i)); + } + } + command = ""; + } +} diff --git a/Script Tests/Script tests/Object/llAddToLandPassList.lsl b/Script Tests/Script tests/Object/llAddToLandPassList.lsl new file mode 100644 index 00000000..8716e411 --- /dev/null +++ b/Script Tests/Script tests/Object/llAddToLandPassList.lsl @@ -0,0 +1,93 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +//Commands are: +///5 ban:full_avatar_name +///5 tempban:full_avatar_name +///5 unban:full_avatar_name +///5 pass:full_avatar_name +///5 unpass:full_avatar_name +///5 clearban +///5 clearpass + +string command; + +default +{ + state_entry() + { + llListen(5, "", llGetOwner(), ""); + } + + on_rez(integer param) + { + llResetScript(); + } + + listen(integer chan, string name, key id, string message) + { + if (command != "") + { + llOwnerSay("Sorry, still processing last command, try again in a second."); + } + + list args = llParseString2List(message,[":"],[]); + command = llToLower(llList2String(args,0)); + + if (command == "clearbans") + { + llResetLandBanList(); + } + if (command == "clearpass") + { + llResetLandPassList(); + } + else + { + llSensor(llList2String(args,1),NULL_KEY,AGENT,96,PI); + } + } + + no_sensor() + { + command = ""; + } + + sensor(integer num) + { + integer i; + for (i=0; i< num; ++i) + { + if (command == "ban") + { + // Ban indefinetely + llAddToLandBanList(llDetectedKey(i),0.0); + } + if (command == "tempban") + { + // Ban for 1 hour. + llAddToLandBanList(llDetectedKey(i),1.0); + } + if (command == "unban") + { + llRemoveFromLandBanList(llDetectedKey(i)); + } + if (command == "pass") + { + // Add to land pass list for 1 hour + llAddToLandPassList(llDetectedKey(i),1.0); + } + if (command == "unpass") + { + llRemoveFromLandPassList(llDetectedKey(i)); + } + } + command = ""; + } +} diff --git a/Script Tests/Script tests/Object/llAdjustSoundVolume.lsl b/Script Tests/Script tests/Object/llAdjustSoundVolume.lsl new file mode 100644 index 00000000..d9d86975 --- /dev/null +++ b/Script Tests/Script tests/Object/llAdjustSoundVolume.lsl @@ -0,0 +1,22 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +default +{ + state_entry() + { + llListen(42, "", llGetOwner(), ""); + } + listen(integer chan, string name, key id, string msg) + { + float value = (float)msg; + llAdjustSoundVolume(value); + llOwnerSay("Volume set to: " + (string)value + " of 1.0"); + } +} diff --git a/Script Tests/Script tests/Object/llAllowInventoryDrop.lsl b/Script Tests/Script tests/Object/llAllowInventoryDrop.lsl new file mode 100644 index 00000000..cad50ab6 --- /dev/null +++ b/Script Tests/Script tests/Object/llAllowInventoryDrop.lsl @@ -0,0 +1,24 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE:integer allow; + +default +{ + touch_start(integer num) + { + llAllowInventoryDrop(allow = !allow); + llOwnerSay("llAllowInventoryDrop == "+llList2String(["FALSE","TRUE"],allow)); + } + changed(integer change) + { + if (change & CHANGED_ALLOWED_DROP) //note that it's & and not &&... it's bitwise! + { + 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."); + } + } +} diff --git a/Script Tests/Script tests/Object/llAngleBetween.lsl b/Script Tests/Script tests/Object/llAngleBetween.lsl new file mode 100644 index 00000000..da796268 --- /dev/null +++ b/Script Tests/Script tests/Object/llAngleBetween.lsl @@ -0,0 +1,19 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: +default +{ + state_entry() + { + rotation aRot = ZERO_ROTATION; + rotation bRot = llGetRot(); + float aBetween = llAngleBetween( aRot, bRot ); + llOwnerSay((string)aBetween); + //llGetRot() being < 0, 0, 90 > this should report 1.570796 + } +} diff --git a/Script Tests/Script tests/Object/llApplyImpulse.lsl b/Script Tests/Script tests/Object/llApplyImpulse.lsl new file mode 100644 index 00000000..e50d8831 --- /dev/null +++ b/Script Tests/Script tests/Object/llApplyImpulse.lsl @@ -0,0 +1,25 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +//Rez an object, and drop this script in it. +//This will launch it at the owner. +default +{ + state_entry() + { + list p = llGetObjectDetails(llGetOwner(), [OBJECT_POS]); + if(p != []) + { + llSetStatus(STATUS_PHYSICS, TRUE); + vector pos = llList2Vector(p, 0); + vector direction = llVecNorm(pos - llGetPos()); + llApplyImpulse(direction * 100, 0); + } + } +} diff --git a/Script Tests/Script tests/Object/llAsin.lsl b/Script Tests/Script tests/Object/llAsin.lsl new file mode 100644 index 00000000..30111b07 --- /dev/null +++ b/Script Tests/Script tests/Object/llAsin.lsl @@ -0,0 +1,18 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +// Touch the object with this script in it to see the arcsine of random numbers! +default +{ + touch_start(integer num) + { + float r = llFrand(2) - 1.0; + llOwnerSay("The arcsine of " + (string)r + " is " + llAsin(r)); + } +} diff --git a/Script Tests/Script tests/Object/llAtan2.lsl b/Script Tests/Script tests/Object/llAtan2.lsl new file mode 100644 index 00000000..6368ff85 --- /dev/null +++ b/Script Tests/Script tests/Object/llAtan2.lsl @@ -0,0 +1,20 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +default +{ + state_entry() + { + float num1 = llFrand(100.0); + float num2 = llFrand(100.0); + llOwnerSay("y = " + (string)num1); + llOwnerSay("x = " + (string)num2); + llOwnerSay("The tangent of y divided by x is " + (string)llAtan2(num1, num2)); + } +} diff --git a/Script Tests/Script tests/Object/llAvatarOnSitTarget.lsl b/Script Tests/Script tests/Object/llAvatarOnSitTarget.lsl new file mode 100644 index 00000000..5391a3a0 --- /dev/null +++ b/Script Tests/Script tests/Object/llAvatarOnSitTarget.lsl @@ -0,0 +1,29 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +default +{ + state_entry() + { + // set sit target, otherwise this will not work + llSitTarget(<0.0, 0.0, 0.1>, ZERO_ROTATION); + } + changed(integer change) + { + if (change & CHANGED_LINK) + { + key av = llAvatarOnSitTarget(); + //evaluated as true if not NULL_KEY or invalid + if (av) + { + llSay(0, "Hello " + llKey2Name(av) + ", thank you for sitting down"); + } + } + } +} diff --git a/Script Tests/Script tests/Object/llBase64ToString.lsl b/Script Tests/Script tests/Object/llBase64ToString.lsl new file mode 100644 index 00000000..17bf80d6 --- /dev/null +++ b/Script Tests/Script tests/Object/llBase64ToString.lsl @@ -0,0 +1,17 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +default +{ + state_entry() + { + string test = llBase64ToString("U2VjcmV0Ok9wZW4="); + llOwnerSay(test); + } +} diff --git a/Script Tests/Script tests/Object/llRemoveFromLandBanList.lsl b/Script Tests/Script tests/Object/llRemoveFromLandBanList.lsl new file mode 100644 index 00000000..8716e411 --- /dev/null +++ b/Script Tests/Script tests/Object/llRemoveFromLandBanList.lsl @@ -0,0 +1,93 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +//Commands are: +///5 ban:full_avatar_name +///5 tempban:full_avatar_name +///5 unban:full_avatar_name +///5 pass:full_avatar_name +///5 unpass:full_avatar_name +///5 clearban +///5 clearpass + +string command; + +default +{ + state_entry() + { + llListen(5, "", llGetOwner(), ""); + } + + on_rez(integer param) + { + llResetScript(); + } + + listen(integer chan, string name, key id, string message) + { + if (command != "") + { + llOwnerSay("Sorry, still processing last command, try again in a second."); + } + + list args = llParseString2List(message,[":"],[]); + command = llToLower(llList2String(args,0)); + + if (command == "clearbans") + { + llResetLandBanList(); + } + if (command == "clearpass") + { + llResetLandPassList(); + } + else + { + llSensor(llList2String(args,1),NULL_KEY,AGENT,96,PI); + } + } + + no_sensor() + { + command = ""; + } + + sensor(integer num) + { + integer i; + for (i=0; i< num; ++i) + { + if (command == "ban") + { + // Ban indefinetely + llAddToLandBanList(llDetectedKey(i),0.0); + } + if (command == "tempban") + { + // Ban for 1 hour. + llAddToLandBanList(llDetectedKey(i),1.0); + } + if (command == "unban") + { + llRemoveFromLandBanList(llDetectedKey(i)); + } + if (command == "pass") + { + // Add to land pass list for 1 hour + llAddToLandPassList(llDetectedKey(i),1.0); + } + if (command == "unpass") + { + llRemoveFromLandPassList(llDetectedKey(i)); + } + } + command = ""; + } +} diff --git a/Script Tests/Script tests/Object/llRemoveFromLandPassList.lsl b/Script Tests/Script tests/Object/llRemoveFromLandPassList.lsl new file mode 100644 index 00000000..8716e411 --- /dev/null +++ b/Script Tests/Script tests/Object/llRemoveFromLandPassList.lsl @@ -0,0 +1,93 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +//Commands are: +///5 ban:full_avatar_name +///5 tempban:full_avatar_name +///5 unban:full_avatar_name +///5 pass:full_avatar_name +///5 unpass:full_avatar_name +///5 clearban +///5 clearpass + +string command; + +default +{ + state_entry() + { + llListen(5, "", llGetOwner(), ""); + } + + on_rez(integer param) + { + llResetScript(); + } + + listen(integer chan, string name, key id, string message) + { + if (command != "") + { + llOwnerSay("Sorry, still processing last command, try again in a second."); + } + + list args = llParseString2List(message,[":"],[]); + command = llToLower(llList2String(args,0)); + + if (command == "clearbans") + { + llResetLandBanList(); + } + if (command == "clearpass") + { + llResetLandPassList(); + } + else + { + llSensor(llList2String(args,1),NULL_KEY,AGENT,96,PI); + } + } + + no_sensor() + { + command = ""; + } + + sensor(integer num) + { + integer i; + for (i=0; i< num; ++i) + { + if (command == "ban") + { + // Ban indefinetely + llAddToLandBanList(llDetectedKey(i),0.0); + } + if (command == "tempban") + { + // Ban for 1 hour. + llAddToLandBanList(llDetectedKey(i),1.0); + } + if (command == "unban") + { + llRemoveFromLandBanList(llDetectedKey(i)); + } + if (command == "pass") + { + // Add to land pass list for 1 hour + llAddToLandPassList(llDetectedKey(i),1.0); + } + if (command == "unpass") + { + llRemoveFromLandPassList(llDetectedKey(i)); + } + } + command = ""; + } +} diff --git a/Script Tests/Script tests/Object/llResetLandBanList.lsl b/Script Tests/Script tests/Object/llResetLandBanList.lsl new file mode 100644 index 00000000..8716e411 --- /dev/null +++ b/Script Tests/Script tests/Object/llResetLandBanList.lsl @@ -0,0 +1,93 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +//Commands are: +///5 ban:full_avatar_name +///5 tempban:full_avatar_name +///5 unban:full_avatar_name +///5 pass:full_avatar_name +///5 unpass:full_avatar_name +///5 clearban +///5 clearpass + +string command; + +default +{ + state_entry() + { + llListen(5, "", llGetOwner(), ""); + } + + on_rez(integer param) + { + llResetScript(); + } + + listen(integer chan, string name, key id, string message) + { + if (command != "") + { + llOwnerSay("Sorry, still processing last command, try again in a second."); + } + + list args = llParseString2List(message,[":"],[]); + command = llToLower(llList2String(args,0)); + + if (command == "clearbans") + { + llResetLandBanList(); + } + if (command == "clearpass") + { + llResetLandPassList(); + } + else + { + llSensor(llList2String(args,1),NULL_KEY,AGENT,96,PI); + } + } + + no_sensor() + { + command = ""; + } + + sensor(integer num) + { + integer i; + for (i=0; i< num; ++i) + { + if (command == "ban") + { + // Ban indefinetely + llAddToLandBanList(llDetectedKey(i),0.0); + } + if (command == "tempban") + { + // Ban for 1 hour. + llAddToLandBanList(llDetectedKey(i),1.0); + } + if (command == "unban") + { + llRemoveFromLandBanList(llDetectedKey(i)); + } + if (command == "pass") + { + // Add to land pass list for 1 hour + llAddToLandPassList(llDetectedKey(i),1.0); + } + if (command == "unpass") + { + llRemoveFromLandPassList(llDetectedKey(i)); + } + } + command = ""; + } +} diff --git a/Script Tests/Script tests/Object/llResetLandPassList.lsl b/Script Tests/Script tests/Object/llResetLandPassList.lsl new file mode 100644 index 00000000..8716e411 --- /dev/null +++ b/Script Tests/Script tests/Object/llResetLandPassList.lsl @@ -0,0 +1,93 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +//Commands are: +///5 ban:full_avatar_name +///5 tempban:full_avatar_name +///5 unban:full_avatar_name +///5 pass:full_avatar_name +///5 unpass:full_avatar_name +///5 clearban +///5 clearpass + +string command; + +default +{ + state_entry() + { + llListen(5, "", llGetOwner(), ""); + } + + on_rez(integer param) + { + llResetScript(); + } + + listen(integer chan, string name, key id, string message) + { + if (command != "") + { + llOwnerSay("Sorry, still processing last command, try again in a second."); + } + + list args = llParseString2List(message,[":"],[]); + command = llToLower(llList2String(args,0)); + + if (command == "clearbans") + { + llResetLandBanList(); + } + if (command == "clearpass") + { + llResetLandPassList(); + } + else + { + llSensor(llList2String(args,1),NULL_KEY,AGENT,96,PI); + } + } + + no_sensor() + { + command = ""; + } + + sensor(integer num) + { + integer i; + for (i=0; i< num; ++i) + { + if (command == "ban") + { + // Ban indefinetely + llAddToLandBanList(llDetectedKey(i),0.0); + } + if (command == "tempban") + { + // Ban for 1 hour. + llAddToLandBanList(llDetectedKey(i),1.0); + } + if (command == "unban") + { + llRemoveFromLandBanList(llDetectedKey(i)); + } + if (command == "pass") + { + // Add to land pass list for 1 hour + llAddToLandPassList(llDetectedKey(i),1.0); + } + if (command == "unpass") + { + llRemoveFromLandPassList(llDetectedKey(i)); + } + } + command = ""; + } +} diff --git a/Script Tests/Script tests/Object/llSay.lsl b/Script Tests/Script tests/Object/llSay.lsl new file mode 100644 index 00000000..0f0ad364 --- /dev/null +++ b/Script Tests/Script tests/Object/llSay.lsl @@ -0,0 +1,16 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +default +{ + state_entry() + { + llSay(0,"This is an incredibly useless program." ); + } +} diff --git a/Script Tests/Script tests/Object/llSetParcelMusicURL.lsl b/Script Tests/Script tests/Object/llSetParcelMusicURL.lsl new file mode 100644 index 00000000..41437167 --- /dev/null +++ b/Script Tests/Script tests/Object/llSetParcelMusicURL.lsl @@ -0,0 +1,16 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +default +{ + state_entry() + { + llSetParcelMusicURL("http://www.archive.org/download/Torley_Wong_-_The_Final_Selection/Torley_Wong-Lovers__Dance.mp3"); + } +} diff --git a/Script Tests/Script tests/Object/llSetRot.lsl b/Script Tests/Script tests/Object/llSetRot.lsl new file mode 100644 index 00000000..6526017a --- /dev/null +++ b/Script Tests/Script tests/Object/llSetRot.lsl @@ -0,0 +1,22 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +default +{ + state_entry() + { + llOwnerSay("Touch me"); + } + touch_start(integer total_number) + { + rotation Y_10 = llEuler2Rot( < 0, 0, 30 * DEG_TO_RAD > ); + rotation newRotation = llGetRot() * Y_10; + llSetRot( newRotation ); + } +} diff --git a/Script Tests/Script tests/Object/osTextBoard.lsl b/Script Tests/Script tests/Object/osTextBoard.lsl new file mode 100644 index 00000000..d2963e4a --- /dev/null +++ b/Script Tests/Script tests/Object/osTextBoard.lsl @@ -0,0 +1,57 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +string title = ""; +string subtitle = ""; +string text = ""; +string add = ""; +integer channel = 0; // if this is >= 0, llSay on that channel on updates + +push_text() +{ + compile_text(); + draw_text(); +} + +compile_text() +{ + title = "Some Title"; + subtitle = "Some subtitle"; + + text = "Plenty of text for the main body.\n"; + text += "You need to manual do line breaks\n"; + text += "here. No word wrap yet."; + + add = "Additional text at the bottom"; +} + +draw_text() +{ + string drawList = "MoveTo 40,80; PenColour RED; FontSize 48; Text " + title + ";"; + drawList += "MoveTo 160,160; FontSize 32; Text " + subtitle + ";"; + drawList += "PenColour BLACK; MoveTo 40,220; FontSize 24; Text " + text + ";"; + drawList += "PenColour RED; FontName Times New Roman; MoveTo 40,900; Text " + add + ";"; + osSetDynamicTextureData("", "vector", drawList, "1024", 0); +} + +default { + state_entry() + { + push_text(); + } + + touch_start(integer count) + { + push_text(); + if (channel >= 0) { + llSay(channel, text); + } + } + +} diff --git a/Script Tests/Script tests/Object/osWeatherMap.lsl b/Script Tests/Script tests/Object/osWeatherMap.lsl new file mode 100644 index 00000000..1f66dbb7 --- /dev/null +++ b/Script Tests/Script tests/Object/osWeatherMap.lsl @@ -0,0 +1,52 @@ +// :CATEGORY:Scripting +// :AUTHOR:Justin Clark-Casey (justincc) +// :KEYWORDS:Opensim +// :REV:1 +// :WORLD:Opensim +// :DESCRIPTION: +// One of many tests for Opensim +// :CODE: + +integer count = 0; +integer refreshRate = 300; +string URL1 = "http://icons.wunderground.com/data/640x480/2xus_rd.gif"; +string URL2 = "http://icons.wunderground.com/data/640x480/2xus_sf.gif"; +string URL3 = "http://icons.wunderground.com/data/640x480/2xus_st.gif"; +string dynamicID=""; +string contentType="image"; + +refresh_texture() +{ + count++; + string url = ""; + integer c = count % 3; + + if (c == 0) { + url = URL1; + } else if (c == 1) { + url = URL2; + } else { + url = URL3; + } + // refresh rate is not yet respected here, which is why we need the timer + osSetDynamicTextureURL(dynamicID, contentType ,url , "", refreshRate ); +} + +default +{ + state_entry() + { + refresh_texture(); + llSetTimerEvent(refreshRate); // create a "timer event" every 300 seconds. + } + + timer() + { + refresh_texture(); + } + + touch_start(integer times) + { + refresh_texture(); + } +} diff --git a/Script Tests/Script tests/Script tests.prj b/Script Tests/Script tests/Script tests.prj new file mode 100644 index 00000000..e8031abc --- /dev/null +++ b/Script Tests/Script tests/Script tests.prj @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +