
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:58:41 +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>Besucherzähler mit E-Mail Benachrichtigung</title>
            <link>http://itclive.spdns.de/wiki/archiv/opensim/downloads/scripts/besucherzaehler_email?do=revisions&amp;rev=1575021518</link>
            <description>
&lt;h2 class=&quot;sectionedit1&quot; id=&quot;besucherzaehler_mit_e-mail_benachrichtigung&quot;&gt;Besucherzähler mit E-Mail Benachrichtigung&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Damit dieses Script funktionieren kann muss zuerst in der OpenSIM-Konfigurationsdatei opensim.ini die E-Mail Funktion im Abschnitt SMTP eingeschaltet und konfiguriert werden. 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;// Besucherzähler mit E-Mail Benachrichtung
// von Blub Blinker, www.swiss-sl.ch

float range = 100; // sucht im Radius von 100 Metern nach Besuchern
float rate = 10.0; // Zeitabstand in der erneut gesucht wird, 1,0 = 1 Sekunde

// E-Mail Adresse auf die eigene anpassen
string email_address = &amp;quot;adresse@domain.xyz&amp;quot;;

// Name der zu kontrollierenden Region
// Die versandte E-Mail beinhaltet die Koordinaten
string location_name = &amp;quot;OpenSIM-Region&amp;quot;;

list single_name_list;
list visitor_list;

integer isNameOnList( string name )
{
list single_name_list;
single_name_list += name;

return (-1 != llListFindList( visitor_list, single_name_list ) );
}

sendEmail()
{
string csv = llList2CSV( visitor_list );
llEmail( email_address, &amp;quot;Visitor List: &amp;quot; + location_name, csv );
}

resetList()
{
single_name_list = llDeleteSubList(single_name_list, 0, llGetListLength(single_name_list));
llSay( 0, &amp;quot;Reset abgeschlossen&amp;quot;);
}

// Hilfe Befehle
sayHelp( integer is_owner )
{
if( is_owner )
{
llSay( 0, &amp;quot;Dieses Objekt speichert die Namen von jedem Avatars der&amp;quot; );
llSay( 0, &amp;quot;in den Bereich von &amp;quot;+ (string)((integer)range) + &amp;quot; Metern kommt.&amp;quot; );
llSay( 0, &amp;quot;Kommandos die der Besitzer sagen kann:&amp;quot; );
llSay( 0, &amp;quot;&amp;#039;help&amp;#039; - Zeigt diese Anleitung&amp;quot; );
llSay( 0, &amp;quot;&amp;#039;say list&amp;#039; - Zeigt die Namen aller Avatare auf der Liste&amp;quot;);
llSay( 0, &amp;quot;&amp;#039;reset list&amp;#039; - Loescht die Namen auf der Liste&amp;quot; );
llSay( 0, &amp;quot;&amp;#039; email list&amp;#039; - Sendet die Namen auf der Liste als E-Mail&amp;quot; );
}
else
{
llSay( 0, &amp;quot;Sorry, nur der Besitzer kann editieren.&amp;quot; );
}
}

// Script-Start
default
{
state_entry()
{
llSay(0, &amp;quot;Besucherzaehler wurde gestartet.&amp;quot;);
llSay(0, &amp;quot;Der Besitzer kann mit &amp;#039;help&amp;#039; eine Kurzanleitung anfordern.&amp;quot;);
llSensorRepeat( &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, AGENT, range, TWO_PI, rate );
llListen(0, &amp;quot;&amp;quot;, llGetOwner(), &amp;quot;&amp;quot;);

// Wechsle hier das Zeitintervall in der die E-Mail Benachrichtigung zugesandt werden soll (Standard ist 60x60 Sekunden)
// = 3600 Sekunden = 1x pro Stunde
llSetTimerEvent( 60 * 60 );
}

// Sendet die E-Mail im oben angegebenem Zeitintervall
timer()
{
sendEmail();
resetList();

}

// Gibt den Hilfe-Befehl aus beim anklicken
touch_start( integer num_detected )
{
integer i;
for( i = 0; i &amp;lt; num_detected; i++ )
{
sayHelp( llDetectedKey(i) == llGetOwner() );
}
}

// Erfasst die Avatare mit Zeitstempel
sensor( integer number_detected )
{
integer i;
for( i = 0; i &amp;lt; number_detected; i++ )
{

// Den Eigentümer nicht mitzählen
if( llDetectedKey( i ) != llGetOwner() )
{
string detected_name = llDetectedName( i );
if( isNameOnList( detected_name ) == FALSE ) // Ja oder Nein, TRUE oder FALSE
{
float seconds = llGetWallclock();
float minutes = seconds / 60.0;
float hours = minutes / 60.0;
integer hours_int = (integer) hours;
integer minutes_int = ((integer)minutes) % 60;
if( minutes_int &amp;lt; 10 )
{
visitor_list += (string) hours_int + &amp;quot;:0&amp;quot; + (string) minutes_int;
}
else
{
visitor_list += (string) hours_int + &amp;quot;:&amp;quot; + (string) minutes_int;
}

visitor_list += detected_name;
}
}
}
}

// Besitzer-Befehle
listen( integer channel, string name, key id, string message )
{
if( id != llGetOwner() )
{
return;
}

if( message == &amp;quot;help&amp;quot; ) // Tippe im Chat /0 help und Du erhälst Hilfe zu den Befehlen
{
sayHelp( TRUE );
}
else
if( message == &amp;quot;say list&amp;quot; ) // Tippe im Chat /0 say list und Du erhälst eine Liste aller Avatare
{
llSay( 0, &amp;quot;Avatar-Liste:&amp;quot; );
integer len = llGetListLength( visitor_list );
integer i;
for( i = 0; i &amp;lt; len; i++ )
{
llSay( 0, llList2String(visitor_list, i) );
}
llSay( 0, &amp;quot;Gesamt = &amp;quot; + (string)len );
}
else
if( message == &amp;quot;email list&amp;quot; )
{
sendEmail();
llSay(0, &amp;quot;E-Mail wird versendet.&amp;quot;);

}

else
if( message == &amp;quot;reset list&amp;quot; ) // Tippe im Chat /0 reset list um die Liste zurückzusetzen
{
visitor_list = llDeleteSubList(visitor_list, 0, llGetListLength(visitor_list));
llSay( 0, &amp;quot;Reset erfolgreich.&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:38 +0000</pubDate>
        </item>
        <item>
            <title>Sensor Door</title>
            <link>http://itclive.spdns.de/wiki/archiv/opensim/downloads/scripts/sensor_door?do=revisions&amp;rev=1575021523</link>
            <description>
&lt;h2 class=&quot;sectionedit1&quot; id=&quot;sensor_door&quot;&gt;Sensor Door&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;// Fixyou Kit&amp;#039;s sensor door script with unknown avatar detection.
// Door can be opened by up to 10 avatars, set up by name in the list.
// The door scans for any avatars witin a distance of &amp;quot;scandist&amp;quot; and reports any avatar that is not on the access list
// If known avatars get within a distance of &amp;quot;distdoor&amp;quot; to the door, it will open
//plz IM me if you have questions! Have fun!

//set names of avatars you want to allow access:
string access1 = &amp;quot;Fixyou Kit&amp;quot;;
string access2 = &amp;quot; &amp;quot;;
string access3 = &amp;quot; &amp;quot;;
string access4 = &amp;quot; &amp;quot;;
string access5 = &amp;quot; &amp;quot;;
string access6 = &amp;quot; &amp;quot;;
string access7 = &amp;quot; &amp;quot;;
string access8 = &amp;quot; &amp;quot;;
string access9 = &amp;quot; &amp;quot;;
string access10 = &amp;quot; &amp;quot;;
integer distodoor = 3; // set distance (meters) between avatar and door to open
integer scandist = 500; //set scanning distance
string Ava_detected;
integer ava_known = 0;

default
{
state_entry()
{
llSensorRepeat(&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,AGENT,scandist,TWO_PI,10.0);
llWhisper(0,&amp;quot;Scanner is active&amp;quot;);
}

sensor(integer total_number)
{
integer x;
for (x = 0; x &amp;lt; total_number; x++)
{
vector pos = llGetPos();
string Ava_detected = llDetectedName(x);
float diff = llVecDist(pos,llDetectedPos(x));
integer dist = llRound(diff);
if(Ava_detected==access1 || Ava_detected==access2 || Ava_detected==access3 || Ava_detected==access4 || Ava_detected==access5 || Ava_detected==access6 || Ava_detected==access7 || Ava_detected==access8 || Ava_detected==access9 || Ava_detected==access10)
{
ava_known = 1;
}
if(ava_known == 0)
{
string detected = Ava_detected + &amp;quot; @ &amp;quot; + ((string)dist) + &amp;quot;m&amp;quot;;
llWhisper(0,detected);
}
if(dist &amp;lt; distodoor)
{
if(ava_known == 1)
{
llWhisper(0,((string)dist)+&amp;quot; &amp;quot; + ((string)distodoor));
llPlaySound(&amp;quot;startrekdoor&amp;quot;, 0.5);
llSay(0, &amp;quot;Door open for &amp;quot;+(llDetectedName(0)));
llSetPrimitiveParams([PRIM_PHANTOM, TRUE]);
llSleep (15);
llSetPrimitiveParams([PRIM_PHANTOM, FALSE]);
dist = 100;
}
else
{
llSetPrimitiveParams([PRIM_PHANTOM, FALSE]);
llSay(0, &amp;quot;Sorry &amp;quot;+(llDetectedName(0))+&amp;quot;, can&amp;#039;t let you enter, you are not on the access list&amp;quot;);
}
}
}
}


no_sensor()
{
llWhisper(0,&amp;quot;No activity within &amp;quot; + ((string)scandist) + &amp;quot;m&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:43 +0000</pubDate>
        </item>
        <item>
            <title>Teleport</title>
            <link>http://itclive.spdns.de/wiki/archiv/opensim/downloads/scripts/teleport?do=revisions&amp;rev=1575021524</link>
            <description>
&lt;h2 class=&quot;sectionedit1&quot; id=&quot;teleport&quot;&gt;Teleport&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;//Teleport v2.02 by Pablo Pharmanaut
//based on code by Cubey Terra

integer totalPos = 4;                    //This integer should equal total number of positions
integer currentPos = 1;
string currentpos;

vector vPos1 = &amp;lt;117,152,22&amp;gt;;             //These are vectors for the positions to
vector vPos2 = &amp;lt;81,23, 103&amp;gt;;             //which you wish to teleport
vector vPos3 = &amp;lt;83, 49.00, 29&amp;gt;;
vector vPos4 = &amp;lt;67,120,22&amp;gt;;
//vector vPos5 = &amp;lt;143.3,238.8,50.2&amp;gt;;

string sPos1 = &amp;quot;Position One&amp;quot;;           //name of positions, if desired.  This helps
string sPos2 = &amp;quot;Position Two&amp;quot;;           //you to know where you are going!
string sPos3 = &amp;quot;Position Three&amp;quot;;
string sPos4 = &amp;quot;Position Four&amp;quot;;
//string sPos5 = &amp;quot;Position Five&amp;quot;;

vector currentvPos;

setPos()
{
    if (currentPos == 1)
    {
        currentpos = sPos1;
        currentvPos = vPos1;
    }
    else if (currentPos == 2)             
    {                                     
        currentpos = sPos2;               
        currentvPos = vPos2;             
    }                                     
    else if (currentPos == 3)
    {
        currentpos = sPos3;
        currentvPos = vPos3;
    }
    else if (currentPos == 4)
    {
        currentpos = sPos4;
        currentvPos = vPos4;
    }
//  else if (currentPos == 5)
//  {
//      currentpos = sPos5;
//      currentvPos = vPos5;
//  }
   
    //add else if section here with higher currentPos integer to add TP destinations.
    //Don&amp;#039;t forget to increase totalPos integer at top of script

    vector pos = llGetPos();
    llSetText(&amp;quot;Teleport to &amp;quot;+currentpos+&amp;quot;\nTouch me to change destination&amp;quot;,&amp;lt;1,1,1&amp;gt;,1.0);
    vector offset = currentvPos - pos;
    llSitTarget(offset, ZERO_ROTATION);
}

default
{
    state_entry()
    {
        llSetSitText(&amp;quot;Teleport&amp;quot;);            //This changes HUD display from &amp;quot;sit&amp;quot; to &amp;quot;Teleport&amp;quot;
    }
    touch_start(integer total_number)
    {
        currentPos += 1;
        if (currentPos &amp;gt; totalPos) currentPos = 1;
        setPos();
    }
    changed(integer change)
    {
        if ((change &amp;amp; CHANGED_LINK)==CHANGED_LINK)
        {
            if (llAvatarOnSitTarget() != NULL_KEY)
            {
                llUnSit(llAvatarOnSitTarget());
            }
        }
    }
}&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>Texture Rotator</title>
            <link>http://itclive.spdns.de/wiki/archiv/opensim/downloads/scripts/texture_rotator?do=revisions&amp;rev=1575021525</link>
            <description>
&lt;h2 class=&quot;sectionedit1&quot; id=&quot;texture_rotator&quot;&gt;Texture Rotator&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;//Texture Rotator
default 
{ 
    state_entry() 
    { 
        llSetTextureAnim(ANIM_ON | SMOOTH |LOOP| ROTATE, ALL_SIDES, 0, 0, 0, TWO_PI, .2); 
    } 
}&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:45 +0000</pubDate>
        </item>
        <item>
            <title>Visitor List Recorder</title>
            <link>http://itclive.spdns.de/wiki/archiv/opensim/downloads/scripts/visitor_list_recorder?do=revisions&amp;rev=1575021525</link>
            <description>
&lt;h2 class=&quot;sectionedit1&quot; id=&quot;visitor_list_recorder&quot;&gt;Visitor List Recorder&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;// Global variables
list visitor_list;
float range = 10.0; // in meters
float rate = 1.0; // in seconds


// Functions
integer isNameOnList( string name )
{
    integer len = llGetListLength( visitor_list );
    integer i;
    for( i = 0; i &amp;lt; len; i++ )
    {
        if( llList2String(visitor_list, i) == name )
        {
            return TRUE;
        }
    }
    return FALSE;
}

// States
default
{
    state_entry()
    {
        llSay(0, &amp;quot;Visitor List Maker started...&amp;quot;);
        llSay(0, &amp;quot;The owner can say &amp;#039;help&amp;#039; for instructions.&amp;quot;);
        llSensorRepeat( &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, AGENT, range, TWO_PI, rate );
        llListen(0, &amp;quot;&amp;quot;, llGetOwner(), &amp;quot;&amp;quot;);
    }
     
               
    sensor( integer number_detected )
    {
        integer i;
        for( i = 0; i &amp;lt; number_detected; i++ )
        {
            if( llDetectedKey( i ) != llGetOwner() )
            {
                string detected_name = llDetectedName( i );
                if( isNameOnList( detected_name ) == FALSE )
                {
                    visitor_list += detected_name;
                }
            }
        }   
    }
   
    listen( integer channel, string name, key id, string message )
    {
        if( id != llGetOwner() )
        {
            return;
        }
       
        if( message == &amp;quot;help&amp;quot; )
        {
            llSay( 0, &amp;quot;This object records the names of everyone who&amp;quot; );
            llSay( 0, &amp;quot;comes within &amp;quot;+ (string)range + &amp;quot; meters.&amp;quot; );
            llSay( 0, &amp;quot;Commands the owner can say:&amp;quot; );
            llSay( 0, &amp;quot;&amp;#039;help&amp;#039;  - Shows these instructions.&amp;quot; );
            llSay( 0, &amp;quot;&amp;#039;say list&amp;#039;   - Says the names of all visitors on the list.&amp;quot;);
            llSay( 0, &amp;quot;&amp;#039;reset list&amp;#039; - Removes all the names from the list.&amp;quot; );
        }
        else
        if( message == &amp;quot;say list&amp;quot; )
        {
            llSay( 0, &amp;quot;Visitor List:&amp;quot; );
            integer len = llGetListLength( visitor_list );
            integer i;
            for( i = 0; i &amp;lt; len; i++ )
            {
                llSay( 0, llList2String(visitor_list, i) );
            }
            llSay( 0, &amp;quot;Total = &amp;quot; + (string)len );
        }
        else
        if( message == &amp;quot;reset list&amp;quot; )
        {
            visitor_list = llDeleteSubList(visitor_list, 0, llGetListLength(visitor_list));
            llSay( 0, &amp;quot;Done resetting.&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:45 +0000</pubDate>
        </item>
    </channel>
</rss>
