
Warning: Undefined array key "media" in /volume1/web/wiki/feed.php on line 235

Warning: Undefined array key "media" in /volume1/web/wiki/feed.php on line 274

Warning: Undefined array key "media" in /volume1/web/wiki/feed.php on line 385

Warning: Undefined array key "media" in /volume1/web/wiki/feed.php on line 235

Warning: Undefined array key "media" in /volume1/web/wiki/feed.php on line 274

Warning: Undefined array key "media" in /volume1/web/wiki/feed.php on line 385

Warning: Undefined array key "media" in /volume1/web/wiki/feed.php on line 235

Warning: Undefined array key "media" in /volume1/web/wiki/feed.php on line 274

Warning: Undefined array key "media" in /volume1/web/wiki/feed.php on line 385

Warning: Undefined array key "media" in /volume1/web/wiki/feed.php on line 235

Warning: Undefined array key "media" in /volume1/web/wiki/feed.php on line 274

Warning: Undefined array key "media" in /volume1/web/wiki/feed.php on line 385

Warning: Undefined array key "media" in /volume1/web/wiki/feed.php on line 235

Warning: Undefined array key "media" in /volume1/web/wiki/feed.php on line 274

Warning: Undefined array key "media" in /volume1/web/wiki/feed.php on line 385

Warning: Undefined array key "media" in /volume1/web/wiki/feed.php on line 235

Warning: Undefined array key "media" in /volume1/web/wiki/feed.php on line 274

Warning: Undefined array key "media" in /volume1/web/wiki/feed.php on line 385

Warning: Undefined array key "media" in /volume1/web/wiki/feed.php on line 235

Warning: Undefined array key "media" in /volume1/web/wiki/feed.php on line 274

Warning: Undefined array key "media" in /volume1/web/wiki/feed.php on line 385

Warning: Undefined array key "media" in /volume1/web/wiki/feed.php on line 235

Warning: Undefined array key "media" in /volume1/web/wiki/feed.php on line 274

Warning: Undefined array key "media" in /volume1/web/wiki/feed.php on line 385
<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://itclive.spdns.de/wiki/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>move IT Home Base</title>
        <description></description>
        <link>http://itclive.spdns.de/wiki/</link>
        <lastBuildDate>Sun, 05 Apr 2026 21:08:28 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>http://itclive.spdns.de/wiki/lib/tpl/peanutbutter2/images/favicon.ico</url>
            <title>move IT Home Base</title>
            <link>http://itclive.spdns.de/wiki/</link>
        </image>
        <item>
            <title>Dimmen</title>
            <link>http://itclive.spdns.de/wiki/archiv/opensim/downloads/scripts/dimmen?do=revisions&amp;rev=1575021519</link>
            <description>
&lt;h2 class=&quot;sectionedit1&quot; id=&quot;dimmen&quot;&gt;Dimmen&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Mit dem diesem Script kann ein Objekt generiert werden dass bei Berührung ein Menü öffnet und mit dem dann die Transparanz anderer Objekte kontrolliert werden kann.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Dimmen&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dimmen&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-189&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;kontrollobjekt&quot;&gt;Kontrollobjekt&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Dieses Script muss in das Objekt, das quasi als Fernbedienung dienen soll. Die Namen werden dabei im Array WALL_OPTIONS festgelegt.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// (C) 2007 Abba Thiebaud&amp;gt;SecondLifer  
// Please remember, I do not offer support for this script; your use of
// this script is your acknowledgement and agreement to the above
// terms.
//
// DO NOT REMOVE THE ABOVE HEADER FOR ANY REASON WHATSOEVER.
 
// Window Controller Script (put into controller prim)
list TINT_OPTIONS = [&amp;quot;40%&amp;quot;, &amp;quot;20%&amp;quot;, &amp;quot;None&amp;quot;, &amp;quot;100%&amp;quot;, &amp;quot;80%&amp;quot;, &amp;quot;60%&amp;quot;];
list WALL_OPTIONS = [&amp;quot;Lower Front&amp;quot;, &amp;quot;Lower Back&amp;quot;, &amp;quot;Lower Sides&amp;quot;, &amp;quot;Upper Front&amp;quot;, &amp;quot;Upper Back&amp;quot;, &amp;quot;Upper Sides&amp;quot;, &amp;quot;Ceiling&amp;quot;, &amp;quot;All&amp;quot;];
integer UPPER_FRONT = -28394;
integer LOWER_FRONT = -28395;
integer UPPER_BACK  = -28396;
integer LOWER_BACK  = -28397;
integer UPPER_SIDE  = -28398;
integer LOWER_SIDE  = -28399;
integer CEILING     = -28400;
integer CHANNEL     = -28393;
integer wallChannel;
integer allWalls;
 
PaintAllWalls(string tintLevel)
{
    integer i;
    integer j;
    
    j = -28394;
 
    for (i = 0; i &amp;lt; 7; i++)
    {
        llSay(j, tintLevel);
        j--;
    } // end for
} // end PaintAllWalls
   
default {
    state_entry()
    {
        llListen(CHANNEL, &amp;quot;&amp;quot;, NULL_KEY, &amp;quot;&amp;quot;); // listen for dialog answers (from multiple users)
    } // end state_entry()
 
    touch_start(integer total_number)
    {
        llDialog(llDetectedKey(0), &amp;quot;Which wall would you like to tint?&amp;quot;, WALL_OPTIONS, CHANNEL); // present dialog on click
        allWalls = 0;
    } // end touch_start()
 
    listen(integer channel, string name, key id, string message)
    {
        if (llListFindList(TINT_OPTIONS + WALL_OPTIONS, [message]) != -1)  // verify dialog choice
        {
            if (message == &amp;quot;Upper Front&amp;quot;)
            {
                llDialog(id, &amp;quot;How much tint would you like?&amp;quot;, TINT_OPTIONS, CHANNEL);
                wallChannel = UPPER_FRONT;
            }
            else if (message == &amp;quot;Upper Back&amp;quot;)
            {
                llDialog(id, &amp;quot;How much tint would you like?&amp;quot;, TINT_OPTIONS, CHANNEL);
                wallChannel = UPPER_BACK;
            }
            else if (message == &amp;quot;Upper Sides&amp;quot;)
            {
                llDialog(id, &amp;quot;How much tint would you like?&amp;quot;, TINT_OPTIONS, CHANNEL);
                wallChannel = UPPER_SIDE;
            }
            else if (message == &amp;quot;Lower Front&amp;quot;)
            {
                llDialog(id, &amp;quot;How much tint would you like?&amp;quot;, TINT_OPTIONS, CHANNEL);
                wallChannel = LOWER_FRONT;
            }
            else if (message == &amp;quot;Lower Back&amp;quot;)
            {
                llDialog(id, &amp;quot;How much tint would you like?&amp;quot;, TINT_OPTIONS, CHANNEL);
                wallChannel = LOWER_BACK;
            }
            else if (message == &amp;quot;Lower Sides&amp;quot;)
            {
                llDialog(id, &amp;quot;How much tint would you like?&amp;quot;, TINT_OPTIONS, CHANNEL);
                wallChannel = LOWER_SIDE;
            }
            else if (message == &amp;quot;Ceiling&amp;quot;)
            {
                llDialog(id, &amp;quot;How much tint would you like?&amp;quot;, TINT_OPTIONS, CHANNEL);
                wallChannel = CEILING;
            }
            else if(message == &amp;quot;All&amp;quot;)
            {
                llDialog(id, &amp;quot;How much tint would you like?&amp;quot;, TINT_OPTIONS, CHANNEL);
                allWalls = 1;
             }
 
            if (message == &amp;quot;100%&amp;quot;)
            {
                if(allWalls == 1)
                {
                    PaintAllWalls(&amp;quot;100&amp;quot;);
                }
                else
                {
                    llSay(wallChannel, &amp;quot;100&amp;quot;);
                }
             }
            else if (message == &amp;quot;80%&amp;quot;)
            {
                if(allWalls == 1)
                {
                    PaintAllWalls(&amp;quot;80&amp;quot;);
                }
                else
                {
                    llSay(wallChannel, &amp;quot;80&amp;quot;);
                }
             }
            else if (message == &amp;quot;60%&amp;quot;)
            {
                if(allWalls == 1)
                {
                    PaintAllWalls(&amp;quot;60&amp;quot;);
                }
                else
                {
                    llSay(wallChannel, &amp;quot;60&amp;quot;);
                }
             }
            else if (message == &amp;quot;40%&amp;quot;)
            {
                if(allWalls == 1)
                {
                    PaintAllWalls(&amp;quot;40&amp;quot;);
                }
                else
                {
                    llSay(wallChannel, &amp;quot;40&amp;quot;);
                }
             }
            else if (message == &amp;quot;20%&amp;quot;)
            {
                if(allWalls == 1)
                {
                    PaintAllWalls(&amp;quot;20&amp;quot;);
                }
                else
                {
                    llSay(wallChannel, &amp;quot;20&amp;quot;);
                }
             }
            else if (message == &amp;quot;None&amp;quot;)
            {
                if(allWalls == 1)
                {
                    PaintAllWalls(&amp;quot;0&amp;quot;);
                }
                else
                {
                    llSay(wallChannel, &amp;quot;0&amp;quot;);
                }
             }
          } // end if (valid message)
    }  // end listen
} // end default&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Kontrollobjekt&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;kontrollobjekt&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;190-5776&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;dimm-objekt&quot;&gt;Dimm-Objekt&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Dieses Script muss in alle wählbaren Objekte. Dabei muss ein Channel durch Entfernen des Platzhalters aktiviert werden, wodurch das Objekt durch das Kontrollscript ansprechbar wird.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;//Here the target aka Windows, put this script into them.
//integer chan = -28394; // uncomment for UPPER_FRONT
//integer chan = -28395; // uncomment for LOWER_FRONT
//integer chan = -28396; // uncomment for UPPER_BACK
//integer chan = -28397; // uncomment for LOWER_BACK
//integer chan = -28398; // uncomment for UPPER_SIDE
//integer chan = -28399; // uncomment for LOWER_SIDE
//integer chan = -28400; // uncomment for CEILING
 
default
{
        state_entry()
        {
                llListen(chan, &amp;quot;&amp;quot;, NULL_KEY, &amp;quot;&amp;quot; );
        }
 
        listen( integer channel, string name, key id, string message )
        {
                if ( message == &amp;quot;100&amp;quot; )
                {
                        llSetAlpha(1.0, ALL_SIDES);
                }
                else if ( message == &amp;quot;80&amp;quot; )
                {
                        llSetAlpha(0.8, ALL_SIDES);
                }
                else if ( message == &amp;quot;60&amp;quot; )
                {
                        llSetAlpha(0.6, ALL_SIDES);
                }
                else if ( message == &amp;quot;40&amp;quot; )
                {
                        llSetAlpha(0.4, ALL_SIDES);
                }
                else if ( message == &amp;quot;20&amp;quot; )
                {
                        llSetAlpha(0.2, ALL_SIDES);
                }
                else if ( message == &amp;quot;0&amp;quot; )
                {
                        llSetAlpha(0.0, ALL_SIDES);
                }
        }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Dimm-Objekt&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dimm-objekt&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;5777-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
        <category>archiv:opensim:downloads:scripts</category>
            <pubDate>Fri, 29 Nov 2019 10:58:39 +0000</pubDate>
        </item>
        <item>
            <title>Simple Radar</title>
            <link>http://itclive.spdns.de/wiki/archiv/opensim/downloads/scripts/simple_radar?do=revisions&amp;rev=1575021523</link>
            <description>
&lt;h2 class=&quot;sectionedit1&quot; id=&quot;simple_radar&quot;&gt;Simple Radar&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;//Sable Till - Radar/scannar script.
//You can get a copy of the license this script is under at http://www.gnu.org/copyleft/gpl.html
//Copyright (C) 2006 Sable Till

//This program is free software; you can redistribute it and/or
//modify it under the terms of the GNU General Public License
//as published by the Free Software Foundation; either version 2
//of the License, or (at your option) any later version.

//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
//GNU General Public License for more details.

//You should have received a copy of the GNU General Public License
//along with this program; if not, write to the Free Software
//Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

string status=&amp;quot;none&amp;quot;;
list people;
integer maxScanDistance;
vector color = &amp;lt;0,1,1&amp;gt;;
integer maxPeople = 8;
integer scanType = AGENT;
integer scanFreq=1;

integer count(string name) {
integer i = llListFindList(people, [name]);
if(i ==-1){
people+=[name, 0];
return 0;
} else {
integer count = llList2Integer(people, i+1);
people=llListReplaceList(people, [count+scanFreq], i+1, i+1);
return count;
}
}

//calculate time strings with proper units that are sensibly rounded
string time(integer cnt) {
if(cnt&amp;gt;3600) {
return (string)(cnt/3600)+&amp;quot;hr &amp;quot; + (string)((cnt%3600)/60) +&amp;quot;min&amp;quot;;
}else {
if(cnt&amp;gt;60) {
return (string)(cnt/60)+&amp;quot;min&amp;quot;;
} else {
return (string)cnt+&amp;quot;s&amp;quot;;
}
}
}

//I&amp;#039;m pretty sure there&amp;#039;s a better way to do this but I&amp;#039;m trying to calculate the angle between
//North and the target so I can work out which direction it is in.
float getAngle(vector me, vector target) {
float hyp = llVecDist(me, target);
float yDiff = target.y-me.y;
float xDiff = target.x-me.x;
float angle = llSin(yDiff/hyp);
if(xDiff&amp;gt;0 &amp;amp;&amp;amp; yDiff&amp;gt;0) {
return angle*RAD_TO_DEG;
}
if(xDiff&amp;gt;0 &amp;amp;&amp;amp; yDiff&amp;lt;0) {
return 90-angle*RAD_TO_DEG;
}
if(xDiff&amp;lt;0 &amp;amp;&amp;amp; yDiff&amp;gt;0) {
return angle*RAD_TO_DEG+270;
}
if(xDiff&amp;lt;0 &amp;amp;&amp;amp; yDiff&amp;lt;0) {
return angle*RAD_TO_DEG + 270;
}
return angle*RAD_TO_DEG;
}

default
{
state_entry()
{
llSensorRepeat(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;,scanType, 96, PI, scanFreq);
llSetTimerEvent(6);
}

sensor(integer num_detected) {
people=[];
string result;
integer n=-1;
integer distance=0;
integer detDist;
string name;

vector pos = llGetPos();
//get the dist, name and direction of everyone we just scanned.
for(n=0;n&amp;lt;num_detected &amp;amp;&amp;amp; n&amp;lt;maxPeople;++n) {
vector detPos = llDetectedPos(n);
detDist = (integer)llVecDist(pos, detPos);
float angle = getAngle(llGetPos(), detPos);
name = llKey2Name(llDetectedKey(n));
if(detDist&amp;lt;96) {
people+=detDist;
people+=name;
people+=angle;
}
}
//sort the strided list
people = llListSort(people, 3, TRUE);
//construct settext
num_detected = llGetListLength(people)/3;
for(n=0;n&amp;lt;num_detected;++n) {
detDist=llList2Integer(people, n*3);
name = llList2String(people, n*3+1);
float dir = llList2Float(people, n*3+2);
if(detDist&amp;gt;20 &amp;amp;&amp;amp; distance&amp;lt;=20) {
result+=&amp;quot;&amp;lt;- Chat Range Limit -&amp;gt;\n&amp;quot;;
}
result+=name;
if(detDist&amp;lt;20) {
integer cnt = count(name);
result+=&amp;quot; [&amp;quot;+time(cnt)+&amp;quot;]&amp;quot;;
}
result+=&amp;quot; [&amp;quot;+(string)detDist+&amp;quot;m]&amp;quot;;

if(dir &amp;lt; 0 || dir &amp;gt; 360) {
llOwnerSay(&amp;quot;Error:&amp;quot;+(string)dir+&amp;quot;:&amp;quot;+name);
}
//determine which compass direction they are in.
if(dir &amp;lt;= 22.5) {
result+=&amp;quot; N\n&amp;quot;;
} else {
if(dir &amp;gt; 22.5 &amp;amp;&amp;amp; dir &amp;lt;= 67.5) {
result+=&amp;quot; NE\n&amp;quot;;
} else {
if(dir &amp;gt; 67.5 &amp;amp;&amp;amp; dir &amp;lt;= 112.5) {
result+=&amp;quot; E\n&amp;quot;;
} else {
if(dir &amp;gt; 112.5 &amp;amp;&amp;amp; dir &amp;lt;= 157.5) {
result+=&amp;quot; SE\n&amp;quot;;
} else {
if(dir &amp;gt; 157.5 &amp;amp;&amp;amp; dir &amp;lt;= 202.5) {
result+=&amp;quot; S\n&amp;quot;;
} else {
if(dir &amp;gt; 202.5 &amp;amp;&amp;amp; dir &amp;lt;= 247.5) {
result+=&amp;quot; SW\n&amp;quot;;
} else {
if(dir &amp;gt; 247.5 &amp;amp;&amp;amp; dir &amp;lt;= 292.5) {
result+=&amp;quot; W\n&amp;quot;;
} else {
if(dir &amp;gt; 292.5 &amp;amp;&amp;amp; dir &amp;lt;= 337.5) {
result+=&amp;quot; NW\n&amp;quot;;
} else {
if(dir &amp;gt; 337.5 &amp;amp;&amp;amp; dir &amp;lt; 360) {
result+=&amp;quot; N\n&amp;quot;;
}
}
}

}}}}}}

distance=detDist;
}


//If we detected more (or the same number of) people as maxPeople then shrink down the scan distance to just
//the distance to the furthest one. Otherwise increment it a bit in case there are people further out.
if(num_detected&amp;gt;=maxPeople) {
maxScanDistance=distance+10;
} else {
maxScanDistance+=10;
}

result+=&amp;quot;\nStatus:&amp;quot;+status;
//adjust max people based on the length of result
if(llStringLength(result)&amp;gt;254) {
maxPeople--;
llOwnerSay(&amp;quot;Length is &amp;quot;+(string)llStringLength(result) +
&amp;quot; Decrementing maxPeople to &amp;quot;+(string)maxPeople);
} else {
if(llStringLength(result)&amp;lt;200 &amp;amp;&amp;amp; num_detected&amp;gt;maxPeople) {
maxPeople++;
llOwnerSay(&amp;quot;Length is &amp;quot;+(string)llStringLength(result) +
&amp;quot; Incrementing maxPeople to &amp;quot;+(string)maxPeople);
}
}
llSetText(result, color, 1);
}

no_sensor() {
llSetText(&amp;quot;Status:&amp;quot;+status, color, 1);
maxScanDistance+=10;
llSensorRepeat(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, scanType, maxScanDistance, PI, scanFreq);
}

//all we do here is check the sims fps and dilation and tone down our scanning if necessary.
timer() {
float fps = llGetRegionFPS();
float timeDilation = llGetRegionTimeDilation();

integer scanDistance;
if(fps&amp;lt;35 || timeDilation &amp;lt;0.9) {
if(maxScanDistance&amp;gt;30) {
scanDistance=30;
}
scanFreq=240;
status = &amp;quot;poor&amp;quot;;
llSetTimerEvent(240);
color=&amp;lt;1,0,0&amp;gt;;
} else
{
if(fps&amp;lt;40 || timeDilation&amp;lt;0.95) {
if(maxScanDistance&amp;gt;64) {
scanDistance=64;
} else {
scanDistance=maxScanDistance;
}
scanFreq=30;
status = &amp;quot;ok&amp;quot;;
llSetTimerEvent(120);
color=&amp;lt;1,1,0&amp;gt;;
} else
{
if(maxScanDistance&amp;gt;96) {
scanDistance=96;
} else {
scanDistance=maxScanDistance;
}
scanFreq=1;
llSetTimerEvent(60);
status = &amp;quot;good&amp;quot;;
color=&amp;lt;0,1,1&amp;gt;;
}}
llSensorRepeat(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;, scanType, scanDistance, PI, scanFreq);
}

}&lt;/pre&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
        <category>archiv:opensim:downloads:scripts</category>
            <pubDate>Fri, 29 Nov 2019 10:58:43 +0000</pubDate>
        </item>
        <item>
            <title>Snow 2 (Schnee)</title>
            <link>http://itclive.spdns.de/wiki/archiv/opensim/downloads/scripts/snow_2?do=revisions&amp;rev=1575021524</link>
            <description>
&lt;h2 class=&quot;sectionedit1&quot; id=&quot;snow_2_schnee&quot;&gt;Snow 2 (Schnee)&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;Snow
{
	quota	30000
	material	Flare
	particle_width	0.3
	particle_height	0.3
	cull_each	true
	renderer	billboard
	sorted	true
	local_space	false
	iteration_interval	0
	nonvisible_update_timeout	0
	billboard_type	point
	billboard_origin	center
	billboard_rotation_type	texcoord
	common_up_vector	0 1 0
	point_rendering	false
	accurate_facing	false

	emitter Box
	{
		angle	0
		colour	1 1 1 1
		colour_range_start	1 1 1 1
		colour_range_end	1 1 1 1
		direction	0 -1 0
		emission_rate	1250
		position	0 5 0
		velocity	10
		velocity_min	10
		velocity_max	15
		time_to_live	20
		time_to_live_min	20
		time_to_live_max	20
		duration	0
		duration_min	0
		duration_max	0
		repeat_delay	0
		repeat_delay_min	0
		repeat_delay_max	0
		width	200
		height	200
		depth	1
	}

	affector DeflectorPlane
	{
		plane_point	0 0 0
		plane_normal	0 1 0
		bounce	0
	}

	affector DirectionRandomiser
	{
		randomness	7
		scope	1
		keep_velocity	true
	}
}&lt;/pre&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
        <category>archiv:opensim:downloads:scripts</category>
            <pubDate>Fri, 29 Nov 2019 10:58:44 +0000</pubDate>
        </item>
        <item>
            <title>Binary Clock</title>
            <link>http://itclive.spdns.de/wiki/archiv/opensim/downloads/scripts/binary_clock?do=revisions&amp;rev=1575021518</link>
            <description>
&lt;h2 class=&quot;sectionedit1&quot; id=&quot;binary_clock&quot;&gt;Binary Clock&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;// Binary Clock Script
// By Fox Diller
// OMG INSANITY!
 
list bTime;
list oTime;
 
integer token;
 
string dec2bin(integer dec)
{
    if (dec == 0) return &amp;quot;0000&amp;quot;;
    if (dec == 1) return &amp;quot;0001&amp;quot;;
    if (dec == 2) return &amp;quot;0010&amp;quot;;
    if (dec == 3) return &amp;quot;0011&amp;quot;;
    if (dec == 4) return &amp;quot;0100&amp;quot;;
    if (dec == 5) return &amp;quot;0101&amp;quot;;
    if (dec == 6) return &amp;quot;0110&amp;quot;;
    if (dec == 7) return &amp;quot;0111&amp;quot;;
    if (dec == 8) return &amp;quot;1000&amp;quot;;
    if (dec == 9) return &amp;quot;1001&amp;quot;;
    return &amp;quot;0000&amp;quot;;
}
 
BuildClock()
{
    integer shiftraw = (integer)llGetWallclock();
 
    integer hours = shiftraw / 3600;
    integer minutes = (shiftraw % 3600) / 60;
    integer seconds = shiftraw % 60;
 
    bTime = [hours   / 10, hours   % 10,
             minutes / 10, minutes % 10,
             seconds / 10, seconds % 10];
 
}
 
displayBDC()
{
    integer current_rowA = llList2Integer(bTime, 0);
    integer old_rowA = llList2Integer(oTime, 0);
    if (current_rowA != old_rowA)
    {
        string rowA = dec2bin(current_rowA);
        integer Acol0 = (integer)llGetSubString(rowA, 3, 3);
        integer Acol1 = (integer)llGetSubString(rowA, 2, 2); 
        llMessageLinked(2, Acol0, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
        llMessageLinked(3, Acol1, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
    } else if (!current_rowA) {
        llMessageLinked(2, 0, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
        llMessageLinked(3, 0, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
    }
 
    integer current_rowB = llList2Integer(bTime, 1);
    integer old_rowB = llList2Integer(oTime, 1);
    if (current_rowB != old_rowB)
    {
        string rowB = dec2bin(current_rowB);
        integer Bcol0 = (integer)llGetSubString(rowB, 3, 3);
        integer Bcol1 = (integer)llGetSubString(rowB, 2, 2);
        integer Bcol2 = (integer)llGetSubString(rowB, 1, 1);
        integer Bcol3 = (integer)llGetSubString(rowB, 0, 0); 
        llMessageLinked(4, Bcol0, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
        llMessageLinked(5, Bcol1, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
        llMessageLinked(6, Bcol2, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
        llMessageLinked(7, Bcol3, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
    } else if (!current_rowB) {
        llMessageLinked(4, 0, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
        llMessageLinked(5, 0, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
        llMessageLinked(6, 0, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
        llMessageLinked(7, 0, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
    }
 
 
    integer current_rowC = llList2Integer(bTime, 2);
    integer old_rowC = llList2Integer(oTime, 2);
    if (current_rowC != old_rowC)
    {     
        string rowC = dec2bin(current_rowC);
        integer Ccol0 = (integer)llGetSubString(rowC, 3, 3);
        integer Ccol1 = (integer)llGetSubString(rowC, 2, 2);
        integer Ccol2 = (integer)llGetSubString(rowC, 1, 1);
        llMessageLinked(8, Ccol0, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
        llMessageLinked(9, Ccol1, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
        llMessageLinked(10, Ccol2, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
    } else if (!current_rowC) {
        llMessageLinked(8, 0, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
        llMessageLinked(9, 0, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
        llMessageLinked(10, 0, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
    }
 
    integer current_rowD = llList2Integer(bTime, 3);
    integer old_rowD = llList2Integer(oTime, 3);
    if (current_rowD != old_rowD)
    {
        string rowD = dec2bin(current_rowD);
        integer Dcol0 = (integer)llGetSubString(rowD, 3, 3);
        integer Dcol1 = (integer)llGetSubString(rowD, 2, 2);
        integer Dcol2 = (integer)llGetSubString(rowD, 1, 1);
        integer Dcol3 = (integer)llGetSubString(rowD, 0, 0); 
        llMessageLinked(11, Dcol0, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
        llMessageLinked(12, Dcol1, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
        llMessageLinked(13, Dcol2, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
        llMessageLinked(14, Dcol3, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
    } else if (!current_rowD) {
        llMessageLinked(11, 0, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
        llMessageLinked(12, 0, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
        llMessageLinked(13, 0, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
        llMessageLinked(14, 0, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
    }
 
    integer current_rowE = llList2Integer(bTime, 4);
    integer old_rowE = llList2Integer(oTime, 4);
    if (current_rowE != old_rowE)
    {
        string rowE = dec2bin(current_rowE);
        integer Ecol0 = (integer)llGetSubString(rowE, 3, 3);
        integer Ecol1 = (integer)llGetSubString(rowE, 2, 2);
        integer Ecol2 = (integer)llGetSubString(rowE, 1, 1);
        llMessageLinked(15, Ecol0, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
        llMessageLinked(16, Ecol1, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
        llMessageLinked(17, Ecol2, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
    } else if (!current_rowE) {
        llMessageLinked(15, 0, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
        llMessageLinked(16, 0, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
        llMessageLinked(17, 0, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
    }
 
    integer current_rowF = llList2Integer(bTime, 5);
    integer old_rowF = llList2Integer(oTime, 5);
    if (current_rowF != old_rowF)
    {
        string rowF = dec2bin(current_rowF);
        integer Fcol0 = (integer)llGetSubString(rowF, 3, 3);
        integer Fcol1 = (integer)llGetSubString(rowF, 2, 2);
        integer Fcol2 = (integer)llGetSubString(rowF, 1, 1);
        integer Fcol3 = (integer)llGetSubString(rowF, 0, 0); 
        llMessageLinked(18, Fcol0, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
        llMessageLinked(19, Fcol1, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
        llMessageLinked(20, Fcol2, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
        llMessageLinked(21, Fcol3, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
    } else if (!current_rowF) {
        llMessageLinked(18, 0, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
        llMessageLinked(19, 0, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
        llMessageLinked(20, 0, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
        llMessageLinked(21, 0, &amp;quot;&amp;quot;, &amp;quot;&amp;quot;);
    }
 
}
 
default
{
    touch_start(integer total_number)
    {
        if (!token &amp;amp;&amp;amp; llDetectedKey(0) == llGetOwner())
        {
            oTime = [];
            bTime = [];
            llSetTimerEvent(1.0);
            token = 1;
            llOwnerSay(&amp;quot;On!&amp;quot;);
        }
 
        else if (token &amp;amp;&amp;amp; llDetectedKey(0) == llGetOwner())
        {
            llSetTimerEvent(0);
            token = 0;
            llOwnerSay(&amp;quot;Off!&amp;quot;);
        }
    }
 
    timer()
    {
        bTime = oTime;
        BuildClock();
        displayBDC();
    }
}&lt;/pre&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
        <category>archiv:opensim:downloads:scripts</category>
            <pubDate>Fri, 29 Nov 2019 10:58:38 +0000</pubDate>
        </item>
        <item>
            <title>Follower</title>
            <link>http://itclive.spdns.de/wiki/archiv/opensim/downloads/scripts/follower?do=revisions&amp;rev=1575021520</link>
            <description>
&lt;h2 class=&quot;sectionedit1&quot; id=&quot;follower&quot;&gt;Follower&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;vector offset = &amp;lt; -1, 0, 1&amp;gt;;  //1 meter behind and 1 meter above owner&amp;#039;s center.
 
default
{
    state_entry()
    {
        llSetStatus(STATUS_PHYSICS, TRUE);
        // Little pause to allow server to make potentially large linked object physical.
        llSleep(0.1);
        // Look for owner within 20 metres in 360 degree arc every 1 seconds.
        llSensorRepeat(&amp;quot;&amp;quot;, llGetOwner(), AGENT, 20.0, PI,1.0);
    }
    sensor(integer total_number)
    {   // Owner detected...
        // Get position and rotation
        vector pos   = llDetectedPos(0);
        rotation rot = llDetectedRot(0);
        // Offset back one metre in X and up one metre in Z based on world coordinates.
        // use whatever offset you want.
        vector worldOffset = offset;
        // Offset relative to owner needs a quaternion.
        vector avOffset = offset * rot;
 
        pos += avOffset;       // use the one you want, world or relative to AV.
 
        llMoveToTarget(pos,0.4);     
    }
}&lt;/pre&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
        <category>archiv:opensim:downloads:scripts</category>
            <pubDate>Fri, 29 Nov 2019 10:58:40 +0000</pubDate>
        </item>
        <item>
            <title>Particle System</title>
            <link>http://itclive.spdns.de/wiki/archiv/opensim/downloads/scripts/particle_system?do=revisions&amp;rev=1575021522</link>
            <description>
&lt;h2 class=&quot;sectionedit1&quot; id=&quot;particle_system&quot;&gt;Particle System&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;//Originally by Ama Omega
default
{
    state_entry()
    {
        llSleep(1); // Do something..
    }
    touch_start(integer total_number)
    {
        // mask flags - set to TRUE (or 1) to enable
        integer bounce = 0;    // Make particles bounce on Z plane of object
        integer glow = 1;        // Make the particles glow
        integer interpColor = 1;    // Go from start to end color
        integer interpSize = 1;    // Go from start to end size
        integer followSource = 1;    // Particles follow the source
        integer followVel = 1;    // Particles turn to velocity direction
        integer wind = 0;        // Particles affected by wind
        //pattern:
        //integer pattern = PSYS_SRC_PATTERN_ANGLE;
        //integer pattern = PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY;
        //integer pattern = PSYS_SRC_PATTERN_ANGLE_CONE;
        //integer pattern = PSYS_SRC_PATTERN_DROP;
        integer pattern = PSYS_SRC_PATTERN_EXPLODE;
        // Select a target for particles to go towards
        // &amp;quot;&amp;quot; for no target, &amp;quot;owner&amp;quot; will follow object owner
        //    and &amp;quot;self&amp;quot; will target this object
        //    or put the key of an object for particles to go to
        //key target = &amp;quot;&amp;quot;;
        key target = &amp;quot;self&amp;quot;;
        //key target = &amp;quot;owner&amp;quot;;
        // particle parameters
        float age = 20;                  // Life of each particle
        float maxSpeed = 1;            // Max speed each particle is spit out at
        float minSpeed = 1;            // Min speed each particle is spit out at
        string texture = &amp;quot;168e6813-096e-07ea-97ae-fd416826f627&amp;quot;;  // Texture used for particles
        float startAlpha = 0;           // Start alpha (transparency) value
        float endAlpha = 1;           // End alpha (transparency) value (if interpColor = TRUE)
        vector startColor = &amp;lt;0,0,1&amp;gt;;    // Start color of particles &amp;lt;R,G,B&amp;gt;
        vector endColor = &amp;lt;1,0,0&amp;gt;;      // End color of particles &amp;lt;R,G,B&amp;gt; (if interpColor = TRUE)
        vector startSize = &amp;lt;1,1,0&amp;gt;;     // Start size of particles &amp;lt;x,y&amp;gt;
        vector endSize = &amp;lt;1,1,0&amp;gt;;       // End size of particles (if interpSize == TRUE)
        vector push = &amp;lt;0,0,0.05f&amp;gt;;          // Force pushed on particles
        // system parameters
        float life = 0;             // Life in seconds for the system to make particles
        integer count = 10;        // How many particles to emit per BURST
        float rate = 0.03f;            // How fast (rate) to emit particles
        float radius = 0.5;          // Radius to emit particles for BURST pattern
        float outerAngle = 1.54;    // Outer angle for all ANGLE patterns
        float innerAngle = 1.55;    // Inner angle for all ANGLE patterns
        vector omega = &amp;lt;0,0,1&amp;gt;;    // Rotation of ANGLE patterns around the source
        integer flags = 0;
        if (target == &amp;quot;owner&amp;quot;) target = llGetOwner();
        if (target == &amp;quot;self&amp;quot;) target = llGetKey();
        if (glow == 1) flags = flags | PSYS_PART_EMISSIVE_MASK;
        if (bounce == 1) flags = flags | PSYS_PART_BOUNCE_MASK;
        if (interpColor == 1) flags = flags | PSYS_PART_INTERP_COLOR_MASK;
        if (interpSize == 1) flags = flags | PSYS_PART_INTERP_SCALE_MASK;
        if (wind == 1) flags = flags | PSYS_PART_WIND_MASK;
        if (followSource == 1) flags = flags | PSYS_PART_FOLLOW_SRC_MASK;
        if (followVel == 1) flags = flags | PSYS_PART_FOLLOW_VELOCITY_MASK;
        if (target != &amp;quot;&amp;quot;) flags = flags | PSYS_PART_TARGET_POS_MASK;
        llParticleSystem([  PSYS_PART_MAX_AGE,7,
            PSYS_PART_FLAGS,flags,
            PSYS_PART_START_COLOR, startColor,
            PSYS_PART_END_COLOR, endColor,
            PSYS_PART_START_SCALE,startSize,
            PSYS_PART_END_SCALE,endSize,
            PSYS_SRC_PATTERN, pattern,
            PSYS_SRC_BURST_RATE,(float)rate,
            PSYS_SRC_ACCEL, push,
            PSYS_SRC_BURST_PART_COUNT,count,
            PSYS_SRC_BURST_RADIUS,(float)radius,
            PSYS_SRC_BURST_SPEED_MIN,(float)minSpeed,
            PSYS_SRC_BURST_SPEED_MAX,(float)maxSpeed,
            PSYS_SRC_TARGET_KEY,target,
            PSYS_SRC_INNERANGLE,(float)innerAngle,
            PSYS_SRC_OUTERANGLE,(float)outerAngle,
            PSYS_SRC_OMEGA, omega,
            PSYS_SRC_MAX_AGE, (float)life,
            PSYS_SRC_TEXTURE, texture,
            PSYS_PART_START_ALPHA, (float)startAlpha,
            PSYS_PART_END_ALPHA, (float)endAlpha
                ]);
    }
}&lt;/pre&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
        <category>archiv:opensim:downloads:scripts</category>
            <pubDate>Fri, 29 Nov 2019 10:58:42 +0000</pubDate>
        </item>
        <item>
            <title>Sleep</title>
            <link>http://itclive.spdns.de/wiki/archiv/opensim/downloads/scripts/sleep?do=revisions&amp;rev=1575021524</link>
            <description>
&lt;h2 class=&quot;sectionedit1&quot; id=&quot;sleep&quot;&gt;Sleep&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Schlaf-Stellung.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;// Francis wuz here
integer broadcast = 20;

// A More Neutral Sleeping Position
//vector target = &amp;lt;-1.06585, 0.71774, 0.18293&amp;gt;;
//rotation targetRot = &amp;lt;0.50028, -0.49972, -0.50028, 0.49972&amp;gt;;

// A More relaxed sleeping position
vector target = &amp;lt;-1.15419, 0.56328, -0.25744&amp;gt;;
rotation targetRot = &amp;lt;0.52105, -0.49829, -0.46875, 0.51038&amp;gt;;

integer debugRotation = FALSE;
key sitAgent = NULL_KEY;
integer gotPermission = FALSE;

integer time = 0;
default
{
    state_entry()
    {
        llSetSitText( &amp;quot;Sleep&amp;quot; );
        llSitTarget( target, targetRot );
        if ( debugRotation ) {
            llListen( 1977, &amp;quot;Rotation Broadcaster&amp;quot;, NULL_KEY, &amp;quot;&amp;quot; );
            llListen( 1978, &amp;quot;Rotation Broadcaster&amp;quot;, NULL_KEY, &amp;quot;&amp;quot; );
        }
    }
    listen(integer channel, string name, key id, string message ) {
        if ( channel == 1977 )
            targetRot = (rotation) message;
        else
            target = (vector) message;
            
        llSitTarget( target, targetRot ); 
        if ( time == 0 )
            llSay(0, (string) targetRot + &amp;quot;, &amp;quot; + (string)target );
        time = (time +1) % 50;
    }
    changed(integer change) {
        if (change &amp;amp; CHANGED_LINK)
        {
            key agent = llAvatarOnSitTarget();
            if ( sitAgent == NULL_KEY &amp;amp;&amp;amp; agent != NULL_KEY ) {
                // Someone new sitting down
                sitAgent = agent;
                llRequestPermissions(sitAgent,PERMISSION_TRIGGER_ANIMATION);
            }
            else if ( sitAgent != NULL_KEY &amp;amp;&amp;amp; agent == NULL_KEY) {
                // sitting down person got up - wake up :)
                if ( gotPermission )
                    llStopAnimation(&amp;quot;sleep&amp;quot;);
                // Reset the script because we don&amp;#039;t have a way of releasing permissions :)
                llResetScript();
            }
        }        
    }
    run_time_permissions(integer parm) {
        if(parm == PERMISSION_TRIGGER_ANIMATION) {
            gotPermission = TRUE;
            llStartAnimation(&amp;quot;sleep&amp;quot;);
        }
    }
    
}&lt;/pre&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
        <category>archiv:opensim:downloads:scripts</category>
            <pubDate>Fri, 29 Nov 2019 10:58:44 +0000</pubDate>
        </item>
        <item>
            <title>Snow Particle Generator (Schnee)</title>
            <link>http://itclive.spdns.de/wiki/archiv/opensim/downloads/scripts/snow?do=revisions&amp;rev=1575021524</link>
            <description>
&lt;h2 class=&quot;sectionedit1&quot; id=&quot;snow_particle_generator_schnee&quot;&gt;Snow Particle Generator (Schnee)&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Lässt Schnee fallen.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;default
{
state_entry()
{
llParticleSystem([
PSYS_PART_FLAGS , 0
//| PSYS_PART_BOUNCE_MASK //Bounce on object&amp;#039;s z-axis
| PSYS_PART_WIND_MASK //Particles are moved by wind
| PSYS_PART_INTERP_COLOR_MASK //Colors fade from start to end
| PSYS_PART_INTERP_SCALE_MASK //Scale fades from beginning to end
| PSYS_PART_FOLLOW_SRC_MASK //Particles follow the emitter
| PSYS_PART_FOLLOW_VELOCITY_MASK//Particles are created at the velocity of the emitter
//| PSYS_PART_TARGET_POS_MASK //Particles follow the target
| PSYS_PART_EMISSIVE_MASK //Particles are self-lit (glow)
//| PSYS_PART_TARGET_LINEAR_MASK//Undocumented--Sends particles in straight line?
,

//PSYS_SRC_TARGET_KEY , NULL_KEY,//The particles will head towards the specified key
//Select one of the following for a pattern:
//PSYS_SRC_PATTERN_DROP Particles start at emitter with no velocity
//PSYS_SRC_PATTERN_EXPLODE Particles explode from the emitter
//PSYS_SRC_PATTERN_ANGLE Particles are emitted in a 2-D angle
//PSYS_SRC_PATTERN_ANGLE_CONE Particles are emitted in a 3-D cone
//PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY Particles are emitted everywhere except for a 3-D cone

PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE_CONE

,PSYS_SRC_TEXTURE, &amp;quot;b03ed4c1-6384-408f-9db9-2d4f6fee164d&amp;quot; //UUID of the desired particle texture, or inventory name
,PSYS_SRC_MAX_AGE, 0.0 //Time, in seconds, for particles to be emitted. 0 = forever
,PSYS_PART_MAX_AGE, 15.0 //Lifetime, in seconds, that a particle lasts
,PSYS_SRC_BURST_RATE, .01 //How long, in seconds, between each emission
,PSYS_SRC_BURST_PART_COUNT, 24 //Number of particles per emission
,PSYS_SRC_BURST_RADIUS, 10.0 //Radius of emission
,PSYS_SRC_BURST_SPEED_MIN, 0.1 //Minimum speed of an emitted particle
,PSYS_SRC_BURST_SPEED_MAX, 0.5 //Maximum speed of an emitted particle
,PSYS_SRC_ACCEL, &amp;lt;0,0,-.20&amp;gt; //Acceleration of particles each second
,PSYS_PART_START_COLOR, &amp;lt;1,1,1&amp;gt; //Starting RGB color
,PSYS_PART_END_COLOR, &amp;lt;1,1,1&amp;gt; //Ending RGB color, if INTERP_COLOR_MASK is on
,PSYS_PART_START_ALPHA, 1.0 //Starting transparency, 1 is opaque, 0 is transparent.
,PSYS_PART_END_ALPHA, 1.0 //Ending transparency
,PSYS_PART_START_SCALE, &amp;lt;.05,.05,.05&amp;gt; //Starting particle size
,PSYS_PART_END_SCALE, &amp;lt;.05,.05,.05&amp;gt; //Ending particle size, if INTERP_SCALE_MASK is on
,PSYS_SRC_ANGLE_BEGIN, 90 * DEG_TO_RAD //Inner angle for ANGLE patterns
,PSYS_SRC_ANGLE_END, 90 * DEG_TO_RAD//Outer angle for ANGLE patterns
,PSYS_SRC_OMEGA, &amp;lt;0.0,0.0,0.0&amp;gt; //Rotation of ANGLE patterns, similar to llTargetOmega()
]);
}
}&lt;/pre&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
        <category>archiv:opensim:downloads:scripts</category>
            <pubDate>Fri, 29 Nov 2019 10:58:44 +0000</pubDate>
        </item>
    </channel>
</rss>
