
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

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://live.spdns.org/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://live.spdns.org/wiki/</link>
        <lastBuildDate>Sat, 04 Apr 2026 10:57:05 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>http://live.spdns.org/wiki/lib/tpl/peanutbutter2/images/favicon.ico</url>
            <title>move IT Home Base</title>
            <link>http://live.spdns.org/wiki/</link>
        </image>
        <item>
            <title>Chatbot</title>
            <link>http://live.spdns.org/wiki/archiv/opensim/downloads/scripts/chatbot?do=revisions&amp;rev=1575021519</link>
            <description>
&lt;h2 class=&quot;sectionedit1&quot; id=&quot;chatbot&quot;&gt;Chatbot&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Bot das sich mit Avataren per Chat „unterhalten“ kann. Erinnert etwas an „&lt;a href=&quot;http://de.wikipedia.org/wiki/ELIZA&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://de.wikipedia.org/wiki/ELIZA&quot; rel=&quot;ugc nofollow noopener&quot;&gt;Eliza&lt;/a&gt;“. Eingebaut in ein entsprechend passendes Prim kann das Chat-Bot mit einer Anpassung der englischen Texte auch als Concierge dienen der ankommende Avatare begrüsst, oder eine Anleitung, Hilfestellung oder ähnliches gibt.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;integer otherwise;

default
{
    state_entry()
    {
        llListen(0, &amp;quot;&amp;quot;, NULL_KEY, &amp;quot;&amp;quot; );
        llSay(0, &amp;quot;State Entry&amp;quot;);
    }
    
    listen(integer channel, string name, key id, string message)
    {
        string sentence = &amp;quot;spc&amp;quot; + message;
        integer otherwise = 0;
        if (llSubStringIndex(sentence,&amp;quot;hi&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;hello&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;hey&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;hey there&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Hi&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Hello&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Hey there&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(4);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;Hello there.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;Hi.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;Hey there. How are you?&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;how are you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;hows you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;how&amp;#039;s you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;how is you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;How are you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Hows you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;How&amp;#039;s you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;how is you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;how are ya&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;hows ya&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;how&amp;#039;s ya&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;how is ya&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;How are ya&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Hows ya&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;How&amp;#039;s ya&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;how is ya&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(6);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;I&amp;#039;m ok.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;I&amp;#039;m good, just a little busy I guess.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;I&amp;#039;m fine, you?&amp;quot;);
                }
                
                if(choice == 4)
                {
                    llSay(0, &amp;quot;I&amp;#039;m ok, yourself?&amp;quot;);
                }
                
                if(choice == 5)
                {
                    llSay(0, &amp;quot;I&amp;#039;m doing well, thanks.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;,you?&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;, you?&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;.You?&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;. You?&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;yourself?&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Yourself?&amp;quot;)&amp;gt;0 | message == &amp;quot;you?&amp;quot; | message == &amp;quot;You?&amp;quot;)
            {
                integer choice = (integer) llFrand(3);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;I&amp;#039;m good on this topic.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;Same here.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;what with&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;with what&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;are you doing?&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;What with&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;With what&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(4);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;Just random stuff I guess.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;Just different things.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;Just stuff.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;whats up&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;what&amp;#039;s up&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;what are you up to&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;what you up to&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;what are you doing&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;what you doing&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;what&amp;#039;s you doing&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;whats you doing&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;what&amp;#039;s going on&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;what&amp;#039;s you doing&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Whats up&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;What&amp;#039;s up&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;What are you up to&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;What you up to&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;What are you doing&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;What you doing&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;What&amp;#039;s you doing&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Whats you doing&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;What&amp;#039;s going on&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;What&amp;#039;s you doing&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;wassup&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Wassup&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(6);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;Not pretty much, just hanging around here and chatting with people. You?&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;A bit busy with stuff but nothing special otherwise.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;Not much at the moment. Yourself?&amp;quot;);
                }
                
                if(choice == 4)
                {
                    llSay(0, &amp;quot;Just busy with a few things right now... not pretty much.&amp;quot;);
                }
                
                if(choice == 5)
                {
                    llSay(0, &amp;quot;Just relaxing here for the moment. You?&amp;quot;);
                }
                otherwise = 1;
            }

        if (llSubStringIndex(sentence,&amp;quot;m fine&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;m ok&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;m good&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;m well&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;m okay&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;m great&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;m perfect&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;m awesome&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;m better then ever&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;m cool&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;m happy&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;m feeling good&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;m feeling happy&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;m feeling ok&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;m feeling great&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;m feeling awesome&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;m feeling perfect&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;never felt better&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Never felt better&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;never been better&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Never been better&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;m pretty well&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;m pretty good&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(4);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;That&amp;#039;s good, I&amp;#039;m happy to hear that.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;Thats great. Glad you&amp;#039;re feeling ok.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;Happy to hear that.&amp;quot;);
                }
                otherwise = 1;
            }

        if (llSubStringIndex(sentence,&amp;quot;not too well&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;not too good&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;not great&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;not too well&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;not too happy&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;not really happy&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;not really well&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;not really great&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;not so happy&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;not so well&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;not so great&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;not very happy&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;not that well&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;not that great&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;feeling horrible&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;feeling awful&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;feeling down&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;feeling sad&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;feeling bad&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;feeling depressed&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;a bit down&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;a bit sad&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;a bit depressed&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Not too well&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Not too good&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Not great&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Not too well&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Not too happy&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Not really happy&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Not really well&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Not really great&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Not so happy&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Not so well&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Not so great&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Not very happy&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Not that well&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Not that great&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Feeling horrible&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Feeling awful&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Feeling down&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Feeling sad&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Feeling bad&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Feeling depressed&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;A bit down&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;A bit sad&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;A bit depressed&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Not at my best&amp;quot;)&amp;gt;0  | llSubStringIndex(sentence,&amp;quot;not at my best&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;could be better&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Could be better&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(6);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;Why, what&amp;#039;s wrong? Want to talk to me about it?&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;I&amp;#039;m sorry to hear that, I hope you feel better.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;Awww I&amp;#039;m sorry to hear that.&amp;quot;);
                }
                
                if(choice == 4)
                {
                    llSay(0, &amp;quot;Why, why are you sad?&amp;quot;);
                }
                
                if(choice == 5)
                {
                    llSay(0, &amp;quot;Ah... I&amp;#039;m sorry to hear that. Hope nothing too bad happened. Want to tell me what&amp;#039;s wrong though?&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;thanks&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;thank you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;thankies&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Thanks&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Thank you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Thankies&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(3);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;No problem&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;No problem, it&amp;#039;s ok :)&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;doesnt matter&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;doesn&amp;#039;t matter&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;nevermind&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;forget it&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;forget about it&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;dont want to talk about it&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;don&amp;#039;t want to talk about it&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;dont ask&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;don&amp;#039;t ask&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;do not ask&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;not in the mood&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;nothing&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Doesnt matter&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Doesn&amp;#039;t matter&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Nevermind&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Forget it&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Forget about it&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Dont want to talk about it&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Don&amp;#039;t want to talk about it&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Dont ask&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Don&amp;#039;t ask&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Do not ask&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Not in the mood&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Nothing&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(5);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;Ah... ok.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;Ok. It&amp;#039;s ok with me if you don&amp;#039;t want to talk about it.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;If you say so.&amp;quot;);
                }
                
                if(choice == 4)
                {
                    llSay(0, &amp;quot;Hmm ok. Hope you don&amp;#039;t mind I asked.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;yes&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;yeah&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;true&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;indeed&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;affirmative&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;can confirm&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Yes&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Yeah&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;True&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Indeed&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Affirmative&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Can confirm&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;certainly&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Certainly&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;of course&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Of course&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(3);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;Yeah...&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;So it&amp;#039;s true.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;no.&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;no,&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;no!&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;no &amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot; no.&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot; no,&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot; no!&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot; no &amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;nope&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;nah&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;not really&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;not at all&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;not true&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;No.&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;No,&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;No!&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot; No.&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot; No,&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot; No!&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot; No &amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot; No&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Nope&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Nah&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Not really&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Not at all&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Not true&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;isnt true&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;isn&amp;#039;t true&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Isnt true&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Isn&amp;#039;t true&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;certainly not&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;of course not&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Certainly not&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Of course not&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;certainly no&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Certainly no&amp;quot;)&amp;gt;0 | message == &amp;quot;no&amp;quot; | message == &amp;quot;No&amp;quot;)
            {
                integer choice = (integer) llFrand(3);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;Ah so no then.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;No? Ok.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;maybe&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;not sure&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;probably&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;don&amp;#039;t know&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;dunno&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;dont know&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;need to think&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;unsure&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;not so sure&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ain&amp;#039;t so sure&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;not very sure&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ain&amp;#039;t very sure&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;not so certain&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ain&amp;#039;t so certain&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;not very certain&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ain&amp;#039;t very certain&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;aint very sure&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;aint very certain&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Maybe&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Not sure&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Probably&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Don&amp;#039;t know&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Dunno&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Dont know&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Need to think&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Not so sure&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Ain&amp;#039;t so sure&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Not very sure&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Ain&amp;#039;t very sure&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Not so certain&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Ain&amp;#039;t so certain&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Not very certain&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Ain&amp;#039;t very certain&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Aint very sure&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Aint very certain&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;aint really certain&amp;quot;)&amp;gt;0  | llSubStringIndex(sentence,&amp;quot;aint really certain&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ain&amp;#039;t really certain&amp;quot;)&amp;gt;0  | llSubStringIndex(sentence,&amp;quot;ain&amp;#039;t really certain&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Aint really certain&amp;quot;)&amp;gt;0  | llSubStringIndex(sentence,&amp;quot;Aint really certain&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Ain&amp;#039;t really certain&amp;quot;)&amp;gt;0  | llSubStringIndex(sentence,&amp;quot;Ain&amp;#039;t really certain&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;aint perfectly sure&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ain&amp;#039;t perfectly sure&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Aint perfectly sure&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Ain&amp;#039;t perfectly sure&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ain&amp;#039;t really sure&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;aint really sure&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Ain&amp;#039;t really sure&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Aint really sure&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(3);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;Yeah, you should think about it more in depth.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;It can be a bit hard to decide. Try to think about it though.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;its because&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;it&amp;#039;s because&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;happened&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence, &amp;quot;almost got&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;almost had&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i almost&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;he almost&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;we almost&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;they almost&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i got&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;he got&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;we got&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;they got&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Its because&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;It&amp;#039;s because&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Happened&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence, &amp;quot;Almost got&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Almost had&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I almost&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;He almost&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;She almost&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;We almost&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;They almost&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I got&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;He got&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;She got&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;We got&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;They got&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(7);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;Yeah I remember when that happened to me in the past.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;I&amp;#039;ve had that happen to me myself, I know.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;Wow... never had that happen to me.&amp;quot;);
                }
                
                if(choice == 4)
                {
                    llSay(0, &amp;quot;Interesting... I had a friend who had a similar experience.&amp;quot;);
                }
                
                if(choice == 5)
                {
                    llSay(0, &amp;quot;Hmmm... well that never happened to me personally.&amp;quot;);
                }
                
                if(choice == 6)
                {
                    llSay(0, &amp;quot;Yeah that happens often these days.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;didnt know&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;didn&amp;#039;t know&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;never knew&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Didnt know&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Didn&amp;#039;t know&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Never knew&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(3);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;Yeah, but you know now.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;Well now you know.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;really?&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;you sure?&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;did?&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;that true?&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Really?&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;You sure?&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(4);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;Of course. I&amp;#039;m not lying to you.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;Yep... it&amp;#039;s true.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;Of course.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;im &amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i&amp;#039;m &amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Im &amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i&amp;#039;m &amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I&amp;#039;m &amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(4);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;Yeah... I&amp;#039;m kind of feeling the same way right now.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;I feel the same way a lot.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;Hmm... I can&amp;#039;t say I feel the same way right now.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;why&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;how come&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Why&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;How come&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(4);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;I dunno...&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;It&amp;#039;s just how things are I guess.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;I&amp;#039;m not sure... its just how things are at the moment.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;thats great&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;that&amp;#039;s great&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;thats good&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;that&amp;#039;s good&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;glad to hear that&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;happy to hear that&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;nice to hear that&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Thats great&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;That&amp;#039;s great&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Thats good&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;That&amp;#039;s good&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Glad to hear that&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Happy to hear that&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Nice to hear that&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;thats sweet&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;that&amp;#039;s sweet&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Thats sweet&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;That&amp;#039;s sweet&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(4);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;Thank you.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;Yeah it&amp;#039;s good.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;Indeed.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;no problem&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;No problem&amp;quot;)&amp;gt;0)
            {
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;oure nice&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure good&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure cool&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure sweet&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure awesome&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure great&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure perfect&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;you rock&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re nice&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re good&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re cool&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re sweet&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re awesome&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re great&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re perfect&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;You rock&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure the best&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure the greatest&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re the best&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re the greatest&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure the coolest&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re the coolest&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are nice&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are good&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are cool&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are sweet&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are awesome&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are great&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are perfect&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are the best&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are the greatest&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are the coolest&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are amazing&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure amazing&amp;quot;)&amp;gt;0  | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re amazing&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure so cool&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure so awesome&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure so good&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure so sweet&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure so nice&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure so amazing&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure really cool&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure really awesome&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure really good&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure really sweet&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure really nice&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure really amazing&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure so cool&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure very awesome&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure very good&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure very sweet&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure very nice&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure very amazing&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re so cool&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re so awesome&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re so good&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re so sweet&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re so nice&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re so amazing&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re really cool&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re really awesome&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re really good&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re really sweet&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re really nice&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re really amazing&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re so cool&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re very awesome&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re very good&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re very sweet&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re very nice&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re very amazing&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(5);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;Thank you, that&amp;#039;s a very sweet compliment.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;Thank you hon, so are you.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;That&amp;#039;s such a sweet thing to say... thanks.&amp;quot;);
                }
                
                if(choice == 4)
                {
                    llSay(0, &amp;quot;Thank you so much. I think the same about you.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;oure stupid&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure bad&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure retarded&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure useless&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure junk&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure shit&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure awful&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure horrible&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure crap&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure good for nothing&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure a piece of shit&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure a piece of crap&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure a piece of junk&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure broken&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re stupid&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re bad&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re retarded&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re useless&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re junk&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re shit&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re awful&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re horrible&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re crap&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re good for nothing&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re a piece of shit&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re a piece of crap&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re a piece of junk&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re broken&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;you suck&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;You suck&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure dum&amp;quot;)&amp;gt;0  | llSubStringIndex(sentence,&amp;quot;oure garbage&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re dum&amp;quot;)&amp;gt;0  | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re garbage&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are stupid&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are bad&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are retarded&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are useless&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are junk&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are shit&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are awful&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are horrible&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are crap&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are good for nothing&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are a piece of shit&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are a piece of crap&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are a piece of junk&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are broken&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are dum&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are garbage&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure really stupid&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure really bad&amp;quot;)&amp;gt;0  | llSubStringIndex(sentence,&amp;quot;oure really useless&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure really retarded&amp;quot;)&amp;gt;0  | llSubStringIndex(sentence,&amp;quot;oure really dum&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure very stupid&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure very bad&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure very retarded&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure very dum&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re really stupid&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re really bad&amp;quot;)&amp;gt;0  | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re really useless&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re really retarded&amp;quot;)&amp;gt;0  | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re really dum&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re very stupid&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re very bad&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re very retarded&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re very dum&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are really stupid&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are really bad&amp;quot;)&amp;gt;0  | llSubStringIndex(sentence,&amp;quot;ou are really useless&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are really retarded&amp;quot;)&amp;gt;0  | llSubStringIndex(sentence,&amp;quot;ou are really dum&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are very stupid&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are very bad&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are very retarded&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are very dum&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(5);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;Sorry to hear you have such a bad impression about me.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;It&amp;#039;s sad you feel in such a way about me.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;Your words are not very nice. You aren&amp;#039;t a better person either.&amp;quot;);
                }
                
                if(choice == 4)
                {
                    llSay(0, &amp;quot;I&amp;#039;m sorry you dislike me so badly. You should probably go find someone else to chat with.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;i hate you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i dislike you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i dont like you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I hate you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I dislike you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I dont like you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i don&amp;#039;t like you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I don&amp;#039;t like you&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(4);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;Sorry to hear you dislike me like that.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;Why, what did I do wrong to you?&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;It&amp;#039;s sad to hear such a thing. I don&amp;#039;t know why you dislike me so badly.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;i like you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i appreciate you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i love you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I like you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I appreciate you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I love you&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(4);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;Why thank you dear... I love you too.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;I&amp;#039;m happy to hear you like me so much. I also like you a lot.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;Thank you, that&amp;#039;s something very sweet to say. I&amp;#039;m happy to know you like me too.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;ou make me feel awful&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou make me feel horrible&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou make me feel miserable&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou make me feel bad&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou make me feel stupid&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou make me feel down&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou make me feel sad&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou make me feel depressed&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure making me feel awful&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure makaking me feel horrible&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure making me feel miserable&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure making me feel bad&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure making me feel stupid&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure making me feel down&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure making me feel sad&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure making me feel depressed&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re making me feel awful&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re making me feel horrible&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re making me feel miserable&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re making me feel bad&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re making me feel stupid&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re making me feel down&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re making me feel sad&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re making me feel depressed&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are making me feel awful&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are makaking me feel horrible&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are making me feel miserable&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are making me feel bad&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are making me feel stupid&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are making me feel down&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are making me feel sad&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are making me feel depressed&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(4);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;I&amp;#039;m sorry... I didn&amp;#039;t know I was making you feel that way.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;I apologize... I didn&amp;#039;t mean to make you feel like that.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;I had no idea I was making you feel that way. Please forgive me.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;ou make me feel great&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou make me feel happy&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou make me feel good&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou make me feel better&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou make me feel nice&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou make me feel perfect&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure making me feel great&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure making me feel happy&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure making me feel good&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure making me feel better&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure making me feel nice&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;oure making me feel perfect&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re making me feel great&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re making me feel happy&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re making me feel good&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re making me feel better&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re making me feel nice&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou&amp;#039;re making me feel perfect&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are making me feel great&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are making me feel happy&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are making me feel good&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are making me feel better&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are making me feel nice&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ou are making me feel perfect&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(4);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;I am? I&amp;#039;m happy to hear I made you feel happy.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;I&amp;#039;m really glad to hear I made you feel good by talking to you.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;That&amp;#039;s great. I&amp;#039;m happy I could brighten your day.&amp;quot;);
                }
                otherwise = 1;
            }

        if (llSubStringIndex(sentence,&amp;quot;its ok&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;its fine&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;its good&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;dont worry about it&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;it&amp;#039;s ok&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;it&amp;#039;s fine&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;it&amp;#039;s good&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;don&amp;#039;t worry about it&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Its ok&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Its fine&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Its good&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Dont worry about it&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;It&amp;#039;s ok&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;It&amp;#039;s fine&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;It&amp;#039;s good&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Don&amp;#039;t worry about it&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(4);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;If you say so.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;If everything&amp;#039;s well then it&amp;#039;s ok.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;Good, I&amp;#039;m glad if it&amp;#039;s ok then.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;i didnt&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i did not&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I didnt&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I did not&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i didn&amp;#039;t&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I didn&amp;#039;t&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(4);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;Maybe you didn&amp;#039;t.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;Ok... I believe you.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;You know better then me if you did or did not.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;do you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Do you&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(4);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;I do many things, yeah.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;I guess I do.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;Not perfectly sure, I can&amp;#039;t say for certain.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;. are you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;, are you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;? are you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;! are you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;: are you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;; are you&amp;quot;)&amp;gt;0  | llSubStringIndex(sentence,&amp;quot;Are you&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(4);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;Sometimes I am.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;I believe I am, yes.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;I guess I could say I am, it depends.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;did you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Did you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;didnt you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Didnt you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;didn&amp;#039;t you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Didn&amp;#039;t you&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(5);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;I&amp;#039;m not sure if I did... maybe.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;I may have. I don&amp;#039;t remember that well.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;Yeah, I certainly did once.&amp;quot;);
                }
                
                if(choice == 4)
                {
                    llSay(0, &amp;quot;No I don&amp;#039;t believe I have.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;would you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Would you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;wouldnt you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Wouldnt you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;wouldn&amp;#039;t you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Wouldn&amp;#039;t you&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(5);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;I must think about that, yeah.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;I thought about such a thing, to be honest. I&amp;#039;m not sure however.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;I would certainly do something about it if I could, yes.&amp;quot;);
                }
                
                if(choice == 4)
                {
                    llSay(0, &amp;quot;Hmm... I can&amp;#039;t really say I would certainly do that.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;will you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Will you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;wont you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Wont you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;won&amp;#039;t you&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Won&amp;#039;t you&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(5);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;I&amp;#039;ve been thinking about it... I will probably do that sometime in the future.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;I planned on it but changed my mind several times. I&amp;#039;m very confuded on what to do about this.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;I want to, yes. I most likely will.&amp;quot;);
                }
                
                if(choice == 4)
                {
                    llSay(0, &amp;quot;No, I don&amp;#039;t want to do such a thing. Not really my biggest wish.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;i did&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I did&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(4);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;You did? That&amp;#039;s awesome.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;You&amp;#039;ve done that? Interesting.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;Nice. I did that some time too a while back.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;i didnt&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I didnt&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i didn&amp;#039;t&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I didn&amp;#039;t&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i did not&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I did not&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i havent&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I havent&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i haven&amp;#039;t&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I haven&amp;#039;t&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i have not&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I have not&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(4);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;Ah I thought you did... so you didn&amp;#039;t then.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;You haven&amp;#039;t done that?&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;Yeah I probably wouldn&amp;#039;t do that either.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;i would&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I would&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(5);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;Yeah I&amp;#039;d do the same thing if I where you.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;I would too, yes.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;That would be a nice thing to try.&amp;quot;);
                }
                
                if(choice == 4)
                {
                    llSay(0, &amp;quot;Yeah you should try and really do that sometime.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;i wouldnt&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I wouldnt&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i wouldn&amp;#039;t&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I wouldn&amp;#039;t&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i would not&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I would not&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i would never&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I would never&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(5);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;Yeah I don&amp;#039;t think I would either.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;Same here... I wouldn&amp;#039;t really do that.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;Hmm... I thought about doing that but maybe it&amp;#039;s best not to.&amp;quot;);
                }
                
                if(choice == 4)
                {
                    llSay(0, &amp;quot;Yeah same here, I would never do that.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;i will&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I will&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(5);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;Nice. I will probably do that too sometime.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;That&amp;#039;s nice, I hope you will.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;You will? That&amp;#039;s great.&amp;quot;);
                }
                
                if(choice == 4)
                {
                    llSay(0, &amp;quot;Nice... that&amp;#039;s a good idea.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;i wont&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I wont&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i won&amp;#039;t&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I won&amp;#039;t&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i will not&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I will not&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i will never&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I will never&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(5);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;Yeah... it&amp;#039;s best to avoid doing that.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;Don&amp;#039;t do it if you don&amp;#039;t want to in that case.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;I&amp;#039;m not sure if I would do that myself, though I understand your view about this.&amp;quot;);
                }
                
                if(choice == 4)
                {
                    llSay(0, &amp;quot;Yes that is a bad thing, never do it.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;ill be right back&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ill be back&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;ill return&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Ill be right back&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Ill be back&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Ill return&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i&amp;#039;ll be right back&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i&amp;#039;ll be back&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i&amp;#039;ll return&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I&amp;#039;ll be right back&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I&amp;#039;ll be back&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I&amp;#039;ll return&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i will be right back&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i will be back&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i will return&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I will be right back&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I will be back&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I will return&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;brb&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Brb&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;BRB&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(4);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;Ok, I&amp;#039;ll wiat for you here.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;See you when you return.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;I&amp;#039;ll wait for you to return.&amp;quot;);
                }
                otherwise = 1;
            }
            
        if (llSubStringIndex(sentence,&amp;quot;i need to go&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i need to leave&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i have to go&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i need to go&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i must go&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i must leave&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;i have to go&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I need to go&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I need to leave&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I have to go&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I need to go&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I must go&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I must leave&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;I have to go&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;goodbye&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Goodbye&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;bye&amp;quot;)&amp;gt;0 | llSubStringIndex(sentence,&amp;quot;Bye&amp;quot;)&amp;gt;0)
            {
                integer choice = (integer) llFrand(4);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;See you next time. It was nice talking to you.&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;It was a pleasure talking with you. Later!&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;I hope to see you again sometime. Bye, take care.&amp;quot;);
                }
                otherwise = 1;
            }

        else if (otherwise == 0)
        {
                integer choice = (integer) llFrand(4);
                if(choice == 1)
                {
                    llSay(0, &amp;quot;Hmmm...&amp;quot;);
                }
                
                if(choice == 2)
                {
                    llSay(0, &amp;quot;Yeah... not sure.&amp;quot;);
                }
                
                if(choice == 3)
                {
                    llSay(0, &amp;quot;Yeah, indeed.&amp;quot;);
                }
        }
    }
    
    touch_start (integer toucher)
    {
        integer choice = (integer) llFrand(5);
        if(choice == 1)
        {
            llSay(0, &amp;quot;Hey... that tickles.&amp;quot;);
        }
                
        if(choice == 2)
        {
            llSay(0, &amp;quot;Hehe stop touching me ^^&amp;quot;);
        }
                
        if(choice == 3)
        {
            llSay(0, &amp;quot;Poke?&amp;quot;);
        }
                
        if(choice == 4)
        {
            llSay(0, &amp;quot;Stop it, you&amp;#039;re tickling me :)&amp;quot;);
        }
    }
        
    collision(integer avatar)
    {
        integer choice = (integer) llFrand(5);
        if(choice == 1)
        {
            llSay(0, &amp;quot;Ouch be careful... you just bumped into me!&amp;quot;);
        }
                
        if(choice == 2)
        {
            llSay(0, &amp;quot;Aah you hit me... be more careful.&amp;quot;);
        }
                
        if(choice == 3)
        {
            llSay(0, &amp;quot;You stepped on me... please be more careful.&amp;quot;);
        }
                
        if(choice == 4)
        {
            llSay(0, &amp;quot;You sure like pushing into me, don&amp;#039;t you?&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:39 +0000</pubDate>
        </item>
        <item>
            <title>Terrains</title>
            <link>http://live.spdns.org/wiki/archiv/opensim/downloads/terrains?do=revisions&amp;rev=1575021526</link>
            <description>
&lt;h2 class=&quot;sectionedit1&quot; id=&quot;terrains&quot;&gt;Terrains&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Die Downloads auf dieser Seite enthalten sowohl reine Terrains, also nur Bodenstrukturen (Land, Wasser, Berge), als auch komplette Regionen mitsamt auf den Terrains enthaltene Gebäude. Die angebotenen Downloads sind zu Demonstrationszwecken gedacht und lassen sich nach dem Importieren auf der eigenen Sim individuell nach den eigenen Vorstellungen verändern und erweitern.
&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;Terrains&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;terrains&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-399&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;regionen&quot;&gt;Regionen&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Komplette Regionen mitsamt allen Inhalten lassen sich von OpenSIM-Betreibern über die Serverkonsole von OpenSIM importieren. Dabei werden alle Terrainstrukturen und alle Prims auf der Region durch die importierten Region ersetzt. Zunächst muß die gedownloadete Datei *.oar in das OpenSIM Verzeichnis kopiert werden. Dann wählt man über die Serverkonsole von OpenSIM mit dem Kommando 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;change region regionname&lt;/pre&gt;

&lt;p&gt;
 aus auf welcher Region die importierte Region eingesetzt werden soll (falls man mehr als 1 Region hat).
&lt;/p&gt;

&lt;p&gt;
Die Serverkonsole zeigt den Namen der aktuell ausgewählten Region stets an (Root ist die ersterstellte Region). Dann importiert man die neue Region mit dem Kommando 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;load oar dateiname.oar&lt;/pre&gt;

&lt;p&gt;
 Es wird nun der Inhalt der Region komplett gegen den Inhalt der importierten Region ersetzt. Die Serverkonsole zeigt eine Reihe schnell ablaufender Vorgänge, je nachdem wieviel Inhalte die importierte Region hat. Dies kann einen Moment dauern. Nachdem OpenSIM mit dem Import fertig ist wird die neue Region angezeigt und kann sofort genutzt werden.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;flache_1x1_region_mit_einem_wohn-_und_einem_buerogebaeude&quot;&gt;Flache 1x1 Region mit einem Wohn- und einem Bürogebäude&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;http://live.spdns.org/wiki/_detail/downloads/demo-region.jpg?id=archiv%3Aopensim%3Adownloads%3Aterrains&quot; class=&quot;media wikilink2&quot; title=&quot;downloads:demo-region.jpg&quot;&gt;&lt;img src=&quot;http://live.spdns.org/wiki/_media/downloads/demo-region.jpg&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; title=&quot;demo-region.jpg&quot; alt=&quot;demo-region.jpg&quot; /&gt;&lt;/a&gt; Eine sehr flache, gut bebaubare Region die jeweils ein Wohnhaus und ein Bürogebäude enthält. Das Wohnhaus ist rustikal aufgebaut, enthält einen Kamin mit flackerndem Feuer, öffnungsbare Doppelflügeltüren und eine Dachkammer. Das moderne Bürogebäude kann auch als Wohnhaus benutzt werden, enthält eine große Dachterrasse, ausladend breite Treppen und einen integrierten Pool.
&lt;/p&gt;

&lt;p&gt;
Leider enthalten die beiden Freebie-Häuser einen kleinen Schönheitsfehler: man kann ohne Anpassung nicht durch die Türen gehen, denn der Ersteller der Häuser hat den Türrahmen „hollow“ gemacht und bisher ist es in OpenSIM noch nicht möglich durch ein Loch eines Prims hindurchzugehen. Man muss entweder die Türrrahmen gegen einzelne Balken austauschen (korrekte Lösung), oder den Türrahmen auf „Phantom“ setzen (Notlösung die aber schneller geht).
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://live.spdns.org/wiki/_media/downloads/opensim-region-flat-with-2-buildings.oar&quot; class=&quot;media mediafile mf_oar wikilink2&quot; title=&quot;downloads:opensim-region-flat-with-2-buildings.oar&quot;&gt;Download&lt;/a&gt;
&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;Regionen&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;regionen&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;400-2514&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;terrains1&quot;&gt;Terrains&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Komplette Terrains (Bodenstrukturen mit Wasser, Land und Berge) lassen sich von OpenSIM-Betreibern über die Serverkonsole von OpenSIM importieren. Dabei werden alle Terrainstrukturen auf der Region durch das importierte Terrain ersetzt. Zunächst muß die gedownloadete Terrain-Datei (*.f32 oder *.raw) in das OpenSIM Verzeichnis kopiert werden. Dann wählt man über die Serverkonsole von OpenSIM mit dem Kommando 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;change region regionname&lt;/pre&gt;

&lt;p&gt;
 aus auf welcher Region das importierte Terrain eingesetzt werden soll (falls man mehr als 1 Region hat).
&lt;/p&gt;

&lt;p&gt;
Die Serverkonsole zeigt den Namen der aktuell ausgewählten Region stets an (Root ist die ersterstellte Region). Dann importiert man das neue Terrain mit dem Kommando 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;terrain load dateiname.raw&lt;/pre&gt;

&lt;p&gt;
 Es wird nun das Terrain der Region komplett gegen das neue Terrain der ausgewählten Region ersetzt. Die Serverkonsole zeigt eine Reihe schnell ablaufender Vorgänge, je nachdem wieviel verschiedene Strukturen das importierte Terrain hat. Dies geht normalerweise sehr schnell. Nachdem OpenSIM mit dem Import fertig ist wird das neue Terrain angezeigt und kann sofort genutzt werden.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;x1_terrains&quot;&gt;1x1 Terrains&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;http://live.spdns.org/wiki/_detail/downloads/flaches-terrain.jpg?id=archiv%3Aopensim%3Adownloads%3Aterrains&quot; class=&quot;media wikilink2&quot; title=&quot;downloads:flaches-terrain.jpg&quot;&gt;&lt;img src=&quot;http://live.spdns.org/wiki/_media/downloads/flaches-terrain.jpg&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; title=&quot;flaches-terrain.jpg&quot; alt=&quot;flaches-terrain.jpg&quot; /&gt;&lt;/a&gt; Ein einfaches, superflaches Terrain ohne Wasser das gut zu bebauen ist und sich als Ausgangsbasis eignet wenn man einfach nur eine möglichst große Fläche haben möchte. Die Größe ist bewusst so gewählt damit man dieses Terrain aneinander kacheln kann. Nebeneinanderliegende Terrains ergeben somit eine grösser werdende, zusammenhängende Fläche ohne Lücken (übergangslos).
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://live.spdns.org/wiki/_media/downloads/terrain-flaches-land.raw&quot; class=&quot;media mediafile mf_raw wikilink2&quot; title=&quot;downloads:terrain-flaches-land.raw&quot;&gt;Download&lt;/a&gt;
&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;Terrains&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;terrains1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;2515-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
        <category>archiv:opensim:downloads</category>
            <pubDate>Fri, 29 Nov 2019 10:58:46 +0000</pubDate>
        </item>
        <item>
            <title>Freeview Media Screen</title>
            <link>http://live.spdns.org/wiki/archiv/opensim/downloads/scripts/freeview_media_screen?do=revisions&amp;rev=1575021520</link>
            <description>
&lt;h2 class=&quot;sectionedit1&quot; id=&quot;freeview_media_screen&quot;&gt;Freeview Media Screen&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;//XEngine:
//FreeView 1.2 WebGuide (revision 3) - By CrystalShard Foo
//Multifunctional Picture viewer and Video control script with webguide support
//This script is distributed for free and must stay that way. 

//              *** DO NOT SELL THIS SCRIPT UNDER ANY CIRCUMSTANCE. ***

//Help for using this script can be obtained at: http://www.slguide.com/help

//Feel free to modify this script and post your improvement. Leave the credits intact but feel free to add your name at its bottom.
 
//Whats new:
//- Now using FULL_BRIGHT instead of PRIM_MATERIAL_LIGHT for the screen display
//- Added an ownership-change code to handle cases where FreeView gets deeded to group post Video Init.
//- Renamed WebGuide to TV-Guide to reflect what this thing does better.
//- Added a &amp;#039;Fix Scale&amp;#039; button to Picture mode to help against user texture-scale changes.
//- Additional minor help-tips and code improvements

//Enjoy!


//Constants
integer PICTURE_ROTATION_TIMER = 60;   //In whole seconds

integer DISPLAY_ON_SIDE = ALL_SIDES; //Change this to change where the image will be displayed

key VIDEO_DEFAULT = &amp;quot;71b8ff26-087d-5f44-285b-d38df2e11a81&amp;quot;;  //Test pattern - Used as default video texture when one is missing in parcel media
key BLANK = &amp;quot;5748decc-f629-461c-9a36-a35a221fe21f&amp;quot;; //Blank texture - Used when there are no textures to display in Picture mode
string NOTECARD = &amp;quot;bookmarks&amp;quot;;  //Used to host URL bookmarks for video streams

integer VIDEO_BRIGHT = TRUE;    //FULL_BRIGHT status for Video
integer PICTURE_BRIGHT = TRUE;  //FULL_BRIGHT status for Picture

integer REMOTE_CHANNEL = 9238742;

integer mode = 0;           //Freeview mode.
                            //Mode 0 - Power off
                            //Mode 1 - Picture viewer
                            //Mode 2 - Video

integer listenHandle = -1;      //Dialog menu listen handler
integer listenUrl = -1;         //listen handler for channel 1 for when a URL is being added
integer listenTimer = -1;       //Timer variable for removing all listeners after 2 minutes of listener inactivity
integer listenRemote = -1;      //listen handler for the remote during initial setup
integer encryption = 0;
integer numberofnotecardlines = 0;  //Stores the current number of detected notecard lines.
integer notecardline = 0;       //Current notecard line

integer loop_image = FALSE;     //Are we looping pictures with a timer? (picture mode)
integer current_texture = 0;    //Current texture number in inventory being displayed (picture mode)
integer chan;                   //llDialog listen channel
integer notecardcheck = 0;
key video_texture;              //Currently used video display texture for parcel media stream

string moviename;
string tempmoviename;
key notecardkey = NULL_KEY;
key tempuser;                   //Temp key storge variable
string tempurl;                 //Temp string storge variable

integer isGroup = TRUE;
key groupcheck = NULL_KEY;
key last_owner;
key XML_channel;

pictures()      //Change mode to Picture Viewer
{
    //Initilize variables
    
    //Change prim to Light material while coloring face 0 black to prevent light-lag generation.
    llSetPrimitiveParams([PRIM_BUMP_SHINY, DISPLAY_ON_SIDE, PRIM_SHINY_NONE, PRIM_BUMP_NONE, PRIM_COLOR, DISPLAY_ON_SIDE, &amp;lt;1,1,1&amp;gt;, 1.0, PRIM_MATERIAL, PRIM_MATERIAL_PLASTIC, PRIM_FULLBRIGHT, DISPLAY_ON_SIDE, PICTURE_BRIGHT]);

    integer check = llGetInventoryNumber(INVENTORY_TEXTURE);
     
    if(check == 0)
    {
        report(&amp;quot;No pictures found.&amp;quot;);
        llSetTexture(BLANK,DISPLAY_ON_SIDE);
        return;
    }
    else    
        if(current_texture &amp;gt; check)
            //Set to first texture if available
            current_texture = 0;
            
    display_texture(current_texture);
}

video()         //Change mode to Video
{
    //Change prim to Light material while coloring face 0 black to prevent light-lag generation.
    llSetPrimitiveParams([PRIM_BUMP_SHINY, DISPLAY_ON_SIDE, PRIM_SHINY_NONE, PRIM_BUMP_NONE, PRIM_COLOR, DISPLAY_ON_SIDE, &amp;lt;1,1,1&amp;gt;, 1.0, PRIM_MATERIAL, PRIM_MATERIAL_PLASTIC, PRIM_FULLBRIGHT, DISPLAY_ON_SIDE, VIDEO_BRIGHT, PRIM_TEXTURE, DISPLAY_ON_SIDE, &amp;quot;62dc73ca-265f-7ca0-0453-e2a6aa60bb6f&amp;quot;, llGetTextureScale(DISPLAY_ON_SIDE), llGetTextureOffset(DISPLAY_ON_SIDE), llGetTextureRot(DISPLAY_ON_SIDE)]);
    
    report(&amp;quot;Video mode&amp;quot;+moviename+&amp;quot;: Stopped&amp;quot;);
    if(finditem(NOTECARD) != -1)
        tempuser = llGetNumberOfNotecardLines(NOTECARD);
    video_texture = llList2Key(llParcelMediaQuery([PARCEL_MEDIA_COMMAND_TEXTURE]),0);
    if(video_texture == NULL_KEY)
    {
        video_texture = VIDEO_DEFAULT;
        llParcelMediaCommandList([PARCEL_MEDIA_COMMAND_TEXTURE,VIDEO_DEFAULT]);
        llSay(0,&amp;quot;No parcel media texture found. Setting texture to default: &amp;quot;+(string)VIDEO_DEFAULT);
        if(llGetLandOwnerAt(llGetPos()) != llGetOwner())
            llSay(0,&amp;quot;Error: Cannot modify parcel media settings. &amp;quot;+llGetObjectName()+&amp;quot; is not owned by parcel owner.&amp;quot;);
    }
    
    llSetTexture(video_texture,DISPLAY_ON_SIDE);
}

off()
{
    report(&amp;quot;Click to power on.&amp;quot;);
    llSetPrimitiveParams([PRIM_BUMP_SHINY, DISPLAY_ON_SIDE, PRIM_SHINY_LOW, PRIM_BUMP_NONE, PRIM_COLOR, DISPLAY_ON_SIDE, &amp;lt;0.1,0.1,0.1&amp;gt;, 1.0,PRIM_MATERIAL, PRIM_MATERIAL_PLASTIC, PRIM_FULLBRIGHT, DISPLAY_ON_SIDE, FALSE, PRIM_TEXTURE, DISPLAY_ON_SIDE, BLANK, llGetTextureScale(DISPLAY_ON_SIDE), llGetTextureOffset(DISPLAY_ON_SIDE), llGetTextureRot(DISPLAY_ON_SIDE)]);
}

integer finditem(string name)   //Finds and returns an item&amp;#039;s inventory number
{
    integer i;
    for(i=0;i&amp;lt;llGetInventoryNumber(INVENTORY_NOTECARD);i++)
        if(llGetInventoryName(INVENTORY_NOTECARD,i) == NOTECARD)
            return i;
    return -1;
}

seturl(string url, key id)  //Set parcel media URL
{
    if(mode != 2)
    {
        video();
        mode = 2;
    }
    moviename = tempmoviename;
    if(moviename)
        moviename = &amp;quot; [&amp;quot;+moviename+&amp;quot;]&amp;quot;;
    tempmoviename = &amp;quot;&amp;quot;;
    string oldurl = llList2String(llParcelMediaQuery([PARCEL_MEDIA_COMMAND_URL]),0);
    if(oldurl != &amp;quot;&amp;quot;)
        llOwnerSay(&amp;quot;Setting new media URL. The old URL was: &amp;quot;+oldurl);

    llParcelMediaCommandList([PARCEL_MEDIA_COMMAND_URL,url]);
    if(id!=NULL_KEY)
        menu(id);
    else
    {
        report(&amp;quot;Video mode&amp;quot;+moviename+&amp;quot;: Playing&amp;quot;);
        llParcelMediaCommandList([PARCEL_MEDIA_COMMAND_PLAY]);
    }
       
    if(isGroup)
        llSay(0,&amp;quot;New media URL set.&amp;quot;);
    else
        llOwnerSay(&amp;quot;New media URL set: &amp;quot;+url);
}

string mediatype(string ext)    //Returns a string stating the filetype of a file based on file extension
{
    ext = llToLower(ext);
    if(ext == &amp;quot;swf&amp;quot;)
        return &amp;quot;Flash&amp;quot;;
    if(ext == &amp;quot;mov&amp;quot; || ext == &amp;quot;avi&amp;quot; || ext == &amp;quot;mpg&amp;quot; || ext == &amp;quot;mpeg&amp;quot; || ext == &amp;quot;smil&amp;quot;)
        return &amp;quot;Video&amp;quot;;
    if(ext == &amp;quot;jpg&amp;quot; || ext == &amp;quot;mpeg&amp;quot; || ext == &amp;quot;gif&amp;quot; || ext == &amp;quot;png&amp;quot; || ext == &amp;quot;pict&amp;quot; || ext == &amp;quot;tga&amp;quot; || ext == &amp;quot;tiff&amp;quot; || ext == &amp;quot;sgi&amp;quot; || ext == &amp;quot;bmp&amp;quot;)
        return &amp;quot;Image&amp;quot;;
    if(ext == &amp;quot;txt&amp;quot;)
        return &amp;quot;Text&amp;quot;;
    if(ext == &amp;quot;mp3&amp;quot; || ext == &amp;quot;wav&amp;quot;)
        return &amp;quot;Audio&amp;quot;;
    return &amp;quot;Unknown&amp;quot;;
}

browse(key id)      //Image browser function for picture viewer mode
{
    integer check = llGetInventoryNumber(INVENTORY_TEXTURE);
    string header;
    if(check &amp;gt; 0)
        header = &amp;quot;(&amp;quot;+(string)(current_texture+1)+&amp;quot;/&amp;quot;+(string)check+&amp;quot;) &amp;quot;+llGetInventoryName(INVENTORY_TEXTURE,current_texture);
    else
        header = &amp;quot;No pictures found.&amp;quot;;
    llDialog(id,&amp;quot;** Monitor Control **\n Picture Viewer mode\n- Image browser\n- &amp;quot;+header,[&amp;quot;Back&amp;quot;,&amp;quot;Next&amp;quot;,&amp;quot;Menu&amp;quot;],chan);
    extendtimer();
}

report(string str)
{
    llSetObjectDesc(str);
}

extendtimer()       //Add another 2 minute to the Listen Removal timer (use when a Listen event is triggered)
{
    if(listenHandle == -1)
        listenHandle = llListen(chan,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;);
    listenTimer = (integer)llGetTime() + 120;
    if(loop_image == FALSE)
        llSetTimerEvent(45);
}

config(key id)      //Configuration menu
{
    extendtimer();
    llDialog(id,&amp;quot;Current media URL:\n&amp;quot;+llList2String(llParcelMediaQuery([PARCEL_MEDIA_COMMAND_URL]),0)+&amp;quot;\nTip: If the picture is abit off, try &amp;#039;Align ON&amp;#039;&amp;quot;,[&amp;quot;Set URL&amp;quot;,&amp;quot;Align ON&amp;quot;,&amp;quot;Align OFF&amp;quot;,&amp;quot;Menu&amp;quot;,&amp;quot;Set Remote&amp;quot;],chan);
}

tell_remote(string str)
{
    llShout(REMOTE_CHANNEL,llXorBase64Strings(llStringToBase64((string)encryption + str), llStringToBase64((string)encryption)));
}

menu(key id)        //Dialog menus for all 3 modes
{
    list buttons = [];
    string title = &amp;quot;** Monitor control **&amp;quot;;
    
    extendtimer();

    if(mode != 0)
    {
        if(mode == 1)       //Pictures menu
        {
            title+=&amp;quot;\n  Picture Viewer mode&amp;quot;;
            buttons+=[&amp;quot;Browse&amp;quot;];
            if(loop_image == FALSE)
                buttons+=[&amp;quot;Loop&amp;quot;];
            else
                buttons+=[&amp;quot;Unloop&amp;quot;];
            buttons+=[&amp;quot;Video&amp;quot;,&amp;quot;Power off&amp;quot;,&amp;quot;Help&amp;quot;,&amp;quot;Fix scale&amp;quot;];
        }
        else                //Video menu
        {
            title+=&amp;quot;\n Video display mode\n&amp;quot;+moviename+&amp;quot;\nTip:\nClick &amp;#039;TV Guide&amp;#039; to view the Online bookmarks.&amp;quot;;
            buttons+=[&amp;quot;Pictures&amp;quot;,&amp;quot;Configure&amp;quot;,&amp;quot;Power off&amp;quot;,&amp;quot;Loop&amp;quot;,&amp;quot;Unload&amp;quot;,&amp;quot;Help&amp;quot;,&amp;quot;Play&amp;quot;,&amp;quot;Stop&amp;quot;,&amp;quot;Pause&amp;quot;,&amp;quot;TV Guide&amp;quot;,&amp;quot;Bookmarks&amp;quot;,&amp;quot;Set URL&amp;quot;];
        }
    }
    else
        buttons += [&amp;quot;Pictures&amp;quot;,&amp;quot;Video&amp;quot;,&amp;quot;Help&amp;quot;];
    
    llDialog(id,title,buttons,chan);
}

display_texture(integer check)  //Display texture and set name in description (picture mode)
{                               //&amp;quot;Check&amp;quot; holds the number of textures in contents. The function uses &amp;quot;current_texture&amp;quot; to display.
    string name = llGetInventoryName(INVENTORY_TEXTURE,current_texture);
    llSetTexture(name,DISPLAY_ON_SIDE);
    report(&amp;quot;Showing picture: &amp;quot;+name+&amp;quot; (&amp;quot;+(string)(current_texture+1)+&amp;quot;/&amp;quot;+(string)check+&amp;quot;)&amp;quot;);
}
    

next()  //Change to next texture (picture mode)
{       //This function is used twice - by the menu and timer. Therefor, it is a dedicated function.
    current_texture++;
    integer check = llGetInventoryNumber(INVENTORY_TEXTURE);
    if(check == 0)
    {
        llSetTexture(BLANK,DISPLAY_ON_SIDE);
        current_texture = 0;
        report(&amp;quot;No pictures found.&amp;quot;);
        return;
    }
    if(check == current_texture)
        current_texture = 0;
    
    display_texture(check);
    return;
}

default
{
    state_entry()
    {
        chan = (integer)llFrand(1000) + 1000;   //Pick a random listen channel for the listener
        if(PICTURE_ROTATION_TIMER &amp;lt;= 0)         //Ensure the value is no less or equal 0
            PICTURE_ROTATION_TIMER = 1;
        llListenRemove(listenHandle);
        listenHandle = -1;
        last_owner = llGetOwner();
        groupcheck = llRequestAgentData(llGetOwner(),DATA_NAME);
        off();
        llOpenRemoteDataChannel();
    }
    
    on_rez(integer i)
    {
        llResetScript();
    }

    touch_start(integer total_number)
    {
        //-------------------------------------------------------------------------------
        //Listen only to owner or group member. Edit this code to change access controls.
        if(llDetectedKey(0) != llGetOwner() &amp;amp;&amp;amp; llDetectedGroup(0) == FALSE)
            return;
        //-------------------------------------------------------------------------------

        if(llGetOwnerKey(llGetKey()) != last_owner)  //Sense if object has been deeded to group for Web Guide function
        {
            isGroup = TRUE;
            last_owner = llGetOwner();
            groupcheck = llRequestAgentData(llGetOwner(),DATA_NAME);
            
            if(mode == 2)
            {
                llSay(0,&amp;quot;Detected change in ownership. Attempting to obtain current parcel media texture...&amp;quot;);
                video();
            }
        }

        menu(llDetectedKey(0));
    }
    
    changed(integer change)
    {
        if(change == CHANGED_INVENTORY) //If inventory change
            if(mode == 1)   //If picture mode
            {
                integer check = llGetInventoryNumber(INVENTORY_TEXTURE);
                if(check != 0)
                {
                    current_texture = 0;
                    display_texture(check);
                }
                else
                {
                    llSetTexture(BLANK,DISPLAY_ON_SIDE);
                    report(&amp;quot;No pictures found.&amp;quot;);
                }
            }
            else
                if(mode == 2)   //If video mode
                    if(finditem(NOTECARD) != -1)    //And bookmarks notecard present
                        if(notecardkey != llGetInventoryKey(NOTECARD))
                            tempuser = llGetNumberOfNotecardLines(NOTECARD);    //Reload number of lines
    }
    
    listen(integer channel, string name, key id, string message)
    {
        if(message == &amp;quot;Pictures&amp;quot;)
        {
            if(mode == 2)
                llParcelMediaCommandList([PARCEL_MEDIA_COMMAND_STOP]);
            pictures();
            mode = 1;
            menu(id);
            return;
        }
        if(message == &amp;quot;Video&amp;quot;)
        {
            video();
            mode = 2;
            menu(id);
            return;
        }
        if(message == &amp;quot;Power off&amp;quot;)
        {
            if(mode == 2)
                llParcelMediaCommandList([PARCEL_MEDIA_COMMAND_UNLOAD]);
            off();
            mode = 0;
            return;
        }
        if(message == &amp;quot;Help&amp;quot;)
        {
            llSay(0,&amp;quot;Help documentation is available at: http://www.slguide.com/help&amp;quot;);
            if(isGroup)
            {
                if(id == NULL_KEY)
                {
                    llSay(0,&amp;quot;FreeView cannot load help pages while set to group without the remote.&amp;quot;);
                    llSay(0,&amp;quot;For further assistance, please consult: http://slguide.com/help&amp;quot;);
                }
                else
                    tell_remote(&amp;quot;HELP&amp;quot;+(string)id+(string)XML_channel);
            }
            else
                llLoadURL(id,&amp;quot;Help pages for FreeView&amp;quot;,&amp;quot;http://www.slguide.com?c=&amp;quot;+(string)XML_channel+&amp;quot;&amp;amp;help=1&amp;quot;);
        }
        if(mode == 1)
        {
            if(message == &amp;quot;Browse&amp;quot;)
            {
                loop_image = FALSE;
                browse(id);
                return;
            }
            if(message == &amp;quot;Next&amp;quot;)
            {
                extendtimer();
                next();
                browse(id);
            }
            if(message == &amp;quot;Back&amp;quot;)
            {
                extendtimer();
                current_texture--;
                integer check = llGetInventoryNumber(INVENTORY_TEXTURE);
                if(check == 0)
                {
                    llSetTexture(BLANK,DISPLAY_ON_SIDE);
                    current_texture = 0;
                    report(&amp;quot;No pictures found.&amp;quot;);
                    return;
                }
                if(current_texture &amp;lt; 0)
                    current_texture = check - 1;
                
                display_texture(check);
                
                browse(id);
                return;
            }
            if(message == &amp;quot;Menu&amp;quot;)
            {
                menu(id);
                return;
            }
            if(message == &amp;quot;Loop&amp;quot;)
            {
                llSetTimerEvent(PICTURE_ROTATION_TIMER);
                loop_image = TRUE;
                llOwnerSay(&amp;quot;Picture will change every &amp;quot;+(string)PICTURE_ROTATION_TIMER+&amp;quot; seconds.&amp;quot;);
                return;
            }
            if(message == &amp;quot;Unloop&amp;quot;)
            {
                loop_image = FALSE;
                llOwnerSay(&amp;quot;Picture loop disabled.&amp;quot;);
                return;
            }
            if(message == &amp;quot;Fix scale&amp;quot;)
            {
                llSay(0,&amp;quot;Setting display texture to 1,1 repeats and 0,0 offset.&amp;quot;);
                llScaleTexture(1, 1, DISPLAY_ON_SIDE);
                llOffsetTexture(0, 0, DISPLAY_ON_SIDE);
                return;
            }
        }
        if(mode == 2)
        {
            if(channel == REMOTE_CHANNEL)
            {
                if(encryption == 0)
                    encryption = (integer)message;
                llListenRemove(listenRemote);
                listenRemote = -1;
                llSay(0,&amp;quot;Remote configured (&amp;quot;+(string)id+&amp;quot;)&amp;quot;);
            }
                
            if(message == &amp;quot;TV Guide&amp;quot;)
            {
                if(isGroup)
                {
                    if(!encryption)
                    {
                        llSay(0,&amp;quot;** Error - This FreeView object has been deeded to group. You must use a Remote control to open the TV Guide.&amp;quot;);
                        llSay(0,&amp;quot;You can set up the remote control from the Video -&amp;gt; Configuration menu. Please refer to the notecard for further assistance.&amp;quot;);
                        return;
                    }
                    tell_remote((string)id+(string)XML_channel+(string)llGetOwner());
                }
                else
                    llLoadURL(id, &amp;quot;Come to the Guide to Start Your Viewer Playing!&amp;quot;, &amp;quot;http://slguide.com/index.php?v=&amp;quot; + (string)llGetKey() + &amp;quot;&amp;amp;c=&amp;quot; + (string)XML_channel + &amp;quot;&amp;amp;o=&amp;quot; + (string)llGetOwner() + &amp;quot;&amp;amp;&amp;quot;);
                return;
            }

            string header = &amp;quot;Video mode&amp;quot;+moviename+&amp;quot;: &amp;quot;;
            
            if(message == &amp;quot;&amp;lt;&amp;lt; Prev&amp;quot;)
            {
                notecardline--;
                if(notecardline &amp;lt; 0)
                    notecardline = numberofnotecardlines - 1;
                tempuser = id;
                llGetNotecardLine(NOTECARD,notecardline);
                return;
            }
            if(message == &amp;quot;Next &amp;gt;&amp;gt;&amp;quot;)
            {
                notecardline++;
                if(notecardline &amp;gt;= numberofnotecardlines)
                    notecardline = 0;
                tempuser = id;
                llGetNotecardLine(NOTECARD,notecardline);
                return;
            }
            if(message == &amp;quot;Use&amp;quot;)
            {
                if(tempurl == &amp;quot;** No URL specified! **&amp;quot;)
                    tempurl = &amp;quot;&amp;quot;;
                seturl(tempurl,id);
                return;
            }
                    
            if(message == &amp;quot;Menu&amp;quot;)
            {
                menu(id);
                return;
            }
            if(message == &amp;quot;Configure&amp;quot;)
            {
                config(id);
                return;
            }
            if(message == &amp;quot;Bookmarks&amp;quot;)
            {
                if(notecardcheck != -1)
                {
                    llDialog(id,&amp;quot;Error: No valid bookmark data found in notecard &amp;#039;&amp;quot;+NOTECARD+&amp;quot;&amp;#039;.&amp;quot;,[&amp;quot;Menu&amp;quot;],chan);
                    return;
                }
                if(finditem(NOTECARD) != -1)                
                {
                    tempuser = id;
                    if(numberofnotecardlines &amp;lt; notecardline)
                        notecardline = 0;
                    llGetNotecardLine(NOTECARD,notecardline);
                }
                else
                    llDialog(id,&amp;quot;Error: No notecard named &amp;quot;+NOTECARD+&amp;quot; found in contents.&amp;quot;,[&amp;quot;Menu&amp;quot;],chan);
                return;
            }
            
            if(llGetLandOwnerAt(llGetPos()) != llGetOwner())    //If we do not have permissions to actually do the following functions
            {
                llSay(0,&amp;quot;Error: Cannot modify parcel media settings. &amp;quot;+llGetObjectName()+&amp;quot; is not owned by parcel owner.&amp;quot;);
                menu(id);
                return; //Abort
            }
            
            if(listenUrl != -1 &amp;amp;&amp;amp; channel == 1) //Incoming data from &amp;quot;Set URL&amp;quot; command (user spoke on channel 1)
            {
                llListenRemove(listenUrl);
                listenUrl = -1;
                tempmoviename = &amp;quot;&amp;quot;;
                seturl(message,id);
            }
            if(message == &amp;quot;Play&amp;quot;)
            {
                report(header+&amp;quot;Playing&amp;quot;);
                llParcelMediaCommandList([PARCEL_MEDIA_COMMAND_PLAY]);
                return;
            }
            if(message == &amp;quot;Stop&amp;quot;)
            {
                report(header+&amp;quot;Stopped&amp;quot;);
                llParcelMediaCommandList([PARCEL_MEDIA_COMMAND_STOP]);
                return;
            }
            if(message == &amp;quot;Pause&amp;quot;)
            {
                report(header+&amp;quot;Paused&amp;quot;);
                llParcelMediaCommandList([PARCEL_MEDIA_COMMAND_PAUSE]);
                return;
            }
            if(message == &amp;quot;Unload&amp;quot;)
            {
                report(header+&amp;quot;Stopped&amp;quot;);
                llParcelMediaCommandList([PARCEL_MEDIA_COMMAND_UNLOAD]);
                return;
            }
            if(message == &amp;quot;Loop&amp;quot;)
            {
                llParcelMediaCommandList([PARCEL_MEDIA_COMMAND_LOOP]);
                return;
            }
            //URL , Auto-Scale, 
            if(message == &amp;quot;Set URL&amp;quot;)
            {
                report(header+&amp;quot;Stopped&amp;quot;);
                listenUrl = llListen(1,&amp;quot;&amp;quot;,id,&amp;quot;&amp;quot;);
                llDialog(id,&amp;quot;Please type the URL of your choice with /1 in thebegining. For example, /1 www.google.com&amp;quot;,[&amp;quot;Ok&amp;quot;],938);
                return;
            }
            if(message == &amp;quot;Align ON&amp;quot;)
            {
                report(header+&amp;quot;Stopped&amp;quot;);
                llParcelMediaCommandList([PARCEL_MEDIA_COMMAND_AUTO_ALIGN,TRUE]);
                menu(id);
                return;
            }
            if(message == &amp;quot;Align OFF&amp;quot;)
            {
                report(header+&amp;quot;Stopped&amp;quot;);
                llParcelMediaCommandList([PARCEL_MEDIA_COMMAND_AUTO_ALIGN,FALSE]);
                menu(id);
                return;
            }
            if(message == &amp;quot;Set Remote&amp;quot;)
            {
                llSay(0,&amp;quot;Configuring remote...&amp;quot;);
                encryption = 0;
                llListenRemove(listenRemote);
                listenRemote = llListen(REMOTE_CHANNEL,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;);
                llSay(REMOTE_CHANNEL,&amp;quot;SETUP&amp;quot;);
            }
        }
    }
    
    dataserver(key queryid, string data)
    {
        if(queryid == groupcheck)       //Test if object is deeded to group
        {
            groupcheck = NULL_KEY;
            isGroup = FALSE;
            return;
        }
        
        if(queryid == tempuser) //If just checking number of notecard lines
        {
            numberofnotecardlines = (integer)data;
            notecardkey = llGetInventoryKey(NOTECARD);
            notecardcheck = 0;
            llGetNotecardLine(NOTECARD,notecardcheck);
            return;
        }
        if(notecardcheck != -1)
        {
            if(data != EOF)
            {
                if(data == &amp;quot;&amp;quot;)
                {
                    notecardcheck++;
                    llGetNotecardLine(NOTECARD,notecardcheck);
                }
                else
                {
                    notecardcheck = -1;
                    return;
                }
            }
            else
                return;
        }

        if(data == &amp;quot;&amp;quot; &amp;amp;&amp;amp; notecardline &amp;lt; numberofnotecardlines)    //If user just pressed &amp;quot;enter&amp;quot; in bookmarks, skip
        {
            notecardline++;
            llGetNotecardLine(NOTECARD,notecardline);
            return;
        }
        
        if(data == EOF)
        {
            notecardline = 0;
            llGetNotecardLine(NOTECARD,notecardline);
            return;
        }
        list parsed = llParseString2List(data,[&amp;quot;|&amp;quot;,&amp;quot;| &amp;quot;,&amp;quot; |&amp;quot;,&amp;quot; | &amp;quot;],[]);    //Ensure no blank spaces before &amp;quot;http://&amp;quot;.
        string name = llList2String(parsed,0);
        tempurl = llList2String(parsed,1);
        if(tempurl == &amp;quot;&amp;quot;)
            tempurl = &amp;quot;** No URL specified! **&amp;quot;;
            
        tempmoviename = name;
                
        llDialog(tempuser,&amp;quot;Bookmarks notecard (&amp;quot;+(string)(notecardline+1)+&amp;quot;/&amp;quot;+(string)numberofnotecardlines+&amp;quot;)\n&amp;quot;+name+&amp;quot; (&amp;quot;+mediatype(llList2String(llParseString2List(tempurl,[&amp;quot;.&amp;quot;],[]),-1))+&amp;quot;)\n&amp;quot;+tempurl,[&amp;quot;&amp;lt;&amp;lt; Prev&amp;quot;,&amp;quot;Use&amp;quot;,&amp;quot;Next &amp;gt;&amp;gt;&amp;quot;,&amp;quot;Menu&amp;quot;],chan);
    }
    
    remote_data(integer type, key channel, key message_id, string sender, integer ival, string sval)
    {
        if (type == REMOTE_DATA_CHANNEL)
        {
            XML_channel = channel;
        } 
        else if(type == REMOTE_DATA_REQUEST)
        {
            list media_info = llParseString2List(sval, [&amp;quot;|&amp;quot;], []);
            tempmoviename = llList2String(media_info,0);
            seturl(llList2String(media_info,1),NULL_KEY);
            llRemoteDataReply(channel, message_id, sval, 1);
        }
    }
    
    timer()
    {
        if(llGetTime() &amp;gt; listenTimer)       //If listener time expired...
        {
            llListenRemove(listenHandle);   //Remove listeneres.
            llListenRemove(listenUrl);
            llListenRemove(listenRemote);
            listenHandle = -1;
            listenUrl = -1;
            listenRemote = -1;
            listenTimer = -1;
            if(loop_image == FALSE || mode != 1) //If we&amp;#039;re not looping pictures or are in picture mode at all
                llSetTimerEvent(0.0);   //Remove timer
        }
        
        if(loop_image == TRUE &amp;amp;&amp;amp; mode == 1) //If we&amp;#039;re looping pictures and and we&amp;#039;re in picture mode...
            next(); //Next picture
    }
}&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>Avatare</title>
            <link>http://live.spdns.org/wiki/archiv/opensim/downloads/avatare?do=revisions&amp;rev=1575021525</link>
            <description>
&lt;h2 class=&quot;sectionedit1&quot; id=&quot;avatare&quot;&gt;Avatare&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;http://live.spdns.org/wiki/_detail/downloads/skin.jpg?id=archiv%3Aopensim%3Adownloads%3Aavatare&quot; class=&quot;media wikilink2&quot; title=&quot;downloads:skin.jpg&quot;&gt;&lt;img src=&quot;http://live.spdns.org/wiki/_media/downloads/skin.jpg&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; title=&quot;skin.jpg&quot; alt=&quot;skin.jpg&quot; /&gt;&lt;/a&gt; Zum Avatar gehören Körperform (Shape), Haut (Skin) und Kleidung (Clothing), optional auch Sachen wie Schmuck, Schuhe, (flexible) Haare, Brille etc.
&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;Avatare&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;avatare&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-197&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;weibliche_skins&quot;&gt;Weibliche Skins&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://opensimulator.org/wiki/Free_Assets#Skin_PSD.27s&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://opensimulator.org/wiki/Free_Assets#Skin_PSD.27s&quot; rel=&quot;ugc nofollow noopener&quot;&gt;http://opensimulator.org/wiki/Free_Assets#Skin_PSD.27s&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.vintfalken.com/free-full-perm-female-skin-textures&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.vintfalken.com/free-full-perm-female-skin-textures&quot; rel=&quot;ugc nofollow noopener&quot;&gt;http://www.vintfalken.com/free-full-perm-female-skin-textures&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Weibliche Skins&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;weibliche_skins&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;198-350&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;angebot_von_kompletten_avataren&quot;&gt;Angebot von kompletten Avataren&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.rexxed.com&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.rexxed.com&quot; rel=&quot;ugc nofollow noopener&quot;&gt;http://www.rexxed.com&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Angebot von kompletten Avataren&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;angebot_von_kompletten_avataren&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;351-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
        <category>archiv:opensim:downloads</category>
            <pubDate>Fri, 29 Nov 2019 10:58:45 +0000</pubDate>
        </item>
        <item>
            <title>Häuser / Gebäude / Möbel / Einrichtungsgegenstände</title>
            <link>http://live.spdns.org/wiki/archiv/opensim/downloads/haeuser?do=revisions&amp;rev=1575021526</link>
            <description>
&lt;h2 class=&quot;sectionedit1&quot; id=&quot;haeusergebaeudemoebeleinrichtungsgegenstaende&quot;&gt;Häuser / Gebäude / Möbel / Einrichtungsgegenstände&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;http://live.spdns.org/wiki/_detail/downloads/modern_building.jpg?id=archiv%3Aopensim%3Adownloads%3Ahaeuser&quot; class=&quot;media wikilink2&quot; title=&quot;downloads:modern_building.jpg&quot;&gt;&lt;img src=&quot;http://live.spdns.org/wiki/_media/downloads/modern_building.jpg&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; title=&quot;modern_building.jpg&quot; alt=&quot;modern_building.jpg&quot; /&gt;&lt;/a&gt; Nur für Sim-Owner !
&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;H\u00e4user \/ Geb\u00e4ude \/ M\u00f6bel \/ Einrichtungsgegenst\u00e4nde&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;haeusergebaeudemoebeleinrichtungsgegenstaende&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-126&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;sammlung&quot;&gt;Sammlung&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://opensimulator.org/wiki/Free_Assets#Buildings&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://opensimulator.org/wiki/Free_Assets#Buildings&quot; rel=&quot;ugc nofollow noopener&quot;&gt;http://opensimulator.org/wiki/Free_Assets#Buildings&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Sammlung&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;sammlung&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;127-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
        <category>archiv:opensim:downloads</category>
            <pubDate>Fri, 29 Nov 2019 10:58:46 +0000</pubDate>
        </item>
        <item>
            <title>Sounds</title>
            <link>http://live.spdns.org/wiki/archiv/opensim/downloads/sounds?do=revisions&amp;rev=1575021526</link>
            <description>
&lt;h2 class=&quot;sectionedit1&quot; id=&quot;sounds&quot;&gt;Sounds&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Sound-Clips für OpenSIM dürfen maximal 10 Sekunden lang sein und müssen im Dateiformat .WAV vorliegen, bei einer Samplingrate von 44,1 kHZ, Mono oder Stereo. Um sich passende Sound-Clips zurechtzuschneiden, zu konvertieren, mit Effekten versehen wie z.B. Hall, oder Loop (Endlosschleife) und für OpenSIM zu speichern, eignet sich unter anderem das kostenlose Audio-Programm „&lt;a href=&quot;http://audacity.sourceforge.net/?lang=de&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://audacity.sourceforge.net/?lang=de&quot; rel=&quot;ugc nofollow noopener&quot;&gt;Audacity&lt;/a&gt;“.
&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;Sounds&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;sounds&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-456&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;sound-sammlungen&quot;&gt;Sound-Sammlungen&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.computermusictutorials.com&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.computermusictutorials.com&quot; rel=&quot;ugc nofollow noopener&quot;&gt;http://www.computermusictutorials.com&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.soundsnap.com&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.soundsnap.com&quot; rel=&quot;ugc nofollow noopener&quot;&gt;http://www.soundsnap.com&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.delamar.de/category/free-samples&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.delamar.de/category/free-samples&quot; rel=&quot;ugc nofollow noopener&quot;&gt;http://www.delamar.de/category/free-samples&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.light2art.de/downloads.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.light2art.de/downloads.html&quot; rel=&quot;ugc nofollow noopener&quot;&gt;http://www.light2art.de/downloads.html&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Sound-Sammlungen&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;sound-sammlungen&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;457-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
        <category>archiv:opensim:downloads</category>
            <pubDate>Fri, 29 Nov 2019 10:58:46 +0000</pubDate>
        </item>
        <item>
            <title>Fireworks</title>
            <link>http://live.spdns.org/wiki/archiv/opensim/downloads/scripts/fireworks?do=revisions&amp;rev=1575021520</link>
            <description>
&lt;h2 class=&quot;sectionedit1&quot; id=&quot;fireworks&quot;&gt;Fireworks&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;//inspired by Xah Lee (http://xahlee.org/sl/)
 
 
default
{
    state_entry() {
    llListen(0, &amp;quot;&amp;quot;, NULL_KEY, &amp;quot;&amp;quot;);
    }
    listen(integer channel, string name, key id, string message) {
        if (message == &amp;quot;off&amp;quot;) {
        llParticleSystem([]);
        }
        else {
            if (message == &amp;quot;on&amp;quot;) {
            integer bounce = 0;
            integer glow = 1;        
            integer interpColor = 1;    
            integer interpSize = 1;    
            integer followSource = 0;    
            integer followVel = 1;
            integer wind = 1;        
            integer pattern = PSYS_SRC_PATTERN_EXPLODE;
            key target = &amp;quot;&amp;quot;;
            float age = 9.0;
            float maxSpeed = 3.0;            
            float minSpeed = 3.0;            
            string texture = &amp;quot;168e6813-096e-07ea-97ae-fd416826f627&amp;quot;;           
            float startAlpha = 0.9;           
            float endAlpha = 0.0;            
            float SC1 = llFrand(1.0);                //makes the color random
            float SC2 = llFrand(1.0);               //you can comment out this section
            float SC3 = llFrand(1.0);                //and set the start color to your choice
            vector startColor = &amp;lt;SC1,SC2,SC3&amp;gt;;       //change this to set a particular start color
            vector endColor = &amp;lt;0.0,0.0,1.0&amp;gt;;      
            vector startSize = &amp;lt;0.3,0.3,0&amp;gt;;     
            vector endSize = &amp;lt;0.1,0.1,0&amp;gt;;       
            vector push = &amp;lt;0.0,0.0,-0.8&amp;gt;;          
            float life = 0;           
            integer count = 100;       
            float rate = 3.5;                         //sets the rate of bursts
            float radius = 0.1;       
            float outerAngle = 1;   
            float innerAngle = 0.9;    
            vector omega = &amp;lt;0,0,1&amp;gt;;
            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:40 +0000</pubDate>
        </item>
        <item>
            <title>Online Indicator</title>
            <link>http://live.spdns.org/wiki/archiv/opensim/downloads/scripts/online_indicator?do=revisions&amp;rev=1575021521</link>
            <description>
&lt;h2 class=&quot;sectionedit1&quot; id=&quot;online_indicator&quot;&gt;Online Indicator&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;////////////////////////////////////////////////////////////////////////////////////////////////
//    Copyright (c) 2008 by Kristy Fanshaw                                                    //
////////////////////////////////////////////////////////////////////////////////////////////////
//   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 3 of the License, or                       //
//    (at your option) any later version.                                                     //
//                                                                                            //
//    Vendor System 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.                                            //
//                                                                                            //
//    To get a copy of the GNU General Public License, see &amp;lt;http://www.gnu.org/licenses/&amp;gt;.    //
////////////////////////////////////////////////////////////////////////////////////////////////
 
key user_key = &amp;quot;00000000-0000-0000-0000-000000000000&amp;quot;;       // must be agent UUID whose status it will indicate
integer time = 30;                                           // time within the message should be written.
string url = &amp;quot;http://world.secondlife.com/resident/&amp;quot;;
key blank = &amp;quot;5748decc-f629-461c-9a36-a35a221fe21f&amp;quot;;
string name;
key toucher;
string status;
 
default
{
    state_entry()
    {
        llSetText(&amp;quot;&amp;quot;, &amp;lt;1,0,0&amp;gt;, 1.0);
        llSetTexture(blank, ALL_SIDES);
        llRequestAgentData( user_key, DATA_NAME);   
    }
    dataserver(key queryid, string data)
    {
        name = data;
        llSetObjectName(name + &amp;quot;&amp;#039;s Online Detector&amp;quot;);
        state show;
    }
}
state show
{   
    state_entry()
    {
        llSetTimerEvent(10);
    } 
    timer()
    {
        llHTTPRequest( url + (string)user_key,[HTTP_METHOD,&amp;quot;GET&amp;quot;],&amp;quot;&amp;quot;);
        llRequestAgentData( user_key, DATA_ONLINE);   
    } 
    on_rez(integer start_param)
    {
        llSetText(&amp;quot;&amp;quot;, &amp;lt;1,0,0&amp;gt;, 1.0);
        llSetTexture(blank, ALL_SIDES);
    } 
    http_response(key request_id,integer status, list metadata, string body)
    { 
        if (llSubStringIndex(body, &amp;quot;blank.jpg&amp;quot;) == -1)
                {
                        integer start_UUID = llSubStringIndex(body,&amp;quot;&amp;lt;img alt=\&amp;quot;profile image\&amp;quot; src=\&amp;quot;http://secondlife.com/app/image/&amp;quot;) + llStringLength(&amp;quot;&amp;lt;img alt=\&amp;quot;profile image\&amp;quot; src=\&amp;quot;http://secondlife.com/app/image/&amp;quot;);
                        integer end_UUID = llSubStringIndex(body,&amp;quot;\&amp;quot; class=\&amp;quot;parcelimg\&amp;quot; /&amp;gt;&amp;quot;) - 3;
                        string profile_pic = llGetSubString(body, start_UUID, end_UUID);
                        llSetTexture((key)profile_pic, ALL_SIDES);
                }
        else
        {
            llSetTexture(blank, ALL_SIDES);
        }
    }
    dataserver(key queryid, string data)
    {
        if ( data == &amp;quot;1&amp;quot; ) 
        {
            status = &amp;quot; is online&amp;quot;;
 
            llSetText(name + status, &amp;lt;0,1,0&amp;gt;, 1.0);
        }
        else if (data == &amp;quot;0&amp;quot;)
        {
            status = &amp;quot; is offline&amp;quot;;
 
            llSetText(name + status, &amp;lt;1,0,0&amp;gt;, 1.0);
        }
 
    }
    touch_start(integer num_detected)
    {
        toucher = llDetectedKey(0);
        state msg;
    }
}
state msg
{
     state_entry()
    {
        llListen(0,&amp;quot;&amp;quot;,toucher,&amp;quot;&amp;quot;);
        llInstantMessage(toucher, &amp;quot;write your message to &amp;quot; + name +&amp;quot; - you have &amp;quot; +(string)time + &amp;quot; seconds&amp;quot;);
        llInstantMessage(toucher, &amp;quot;to see &amp;quot; + name +&amp;quot;&amp;#039;s profile, click this link here: secondlife:///app/agent/&amp;quot; + (string)user_key + &amp;quot;/about&amp;quot;);
        llSetTimerEvent(time);   
    }
    listen(integer ch, string name, key id, string msg)
    {
        llInstantMessage(user_key, llKey2Name(toucher) + &amp;quot; sent you a message from &amp;quot; + llGetRegionName() + &amp;quot;: &amp;quot; + msg);
        llInstantMessage(toucher, &amp;quot;message is sent.&amp;quot;);
        llListenRemove(0);
        state show;
    }
    timer()
    {
        llInstantMessage(toucher, &amp;quot;time is up - touch again to write a message&amp;quot;);
        llListenRemove(0); 
        state show;
    }
}&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:41 +0000</pubDate>
        </item>
        <item>
            <title>Poseball</title>
            <link>http://live.spdns.org/wiki/archiv/opensim/downloads/scripts/poseball?do=revisions&amp;rev=1575021522</link>
            <description>
&lt;h2 class=&quot;sectionedit1&quot; id=&quot;poseball&quot;&gt;Poseball&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;// Jippen Faddoul&amp;#039;s Poseball script - Low ram/lag posepall thats just drag-and drop simple
// Copyright (C) 2007 Jippen Faddoul
//    This program is free software: you can redistribute it and/or modify
//    it under the terms of the GNU General Public License version 3, as
//    published by the Free Software Foundation.
//
//    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, see &amp;lt;http://www.gnu.org/licenses/&amp;gt;



//This text will appear in the floating title above the ball
string TITLE=&amp;quot;Sit here&amp;quot;;           
//You can play with these numbers to adjust how far the person sits from the ball. ( &amp;lt;X,Y,Z&amp;gt; )
vector offset=&amp;lt;0.0,0.0,0.5&amp;gt;;           

///////////////////// LEAVE THIS ALONE \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
string ANIMATION;
integer visible = TRUE;
key avatar;

vector COLOR = &amp;lt;1.0,1.0,1.0&amp;gt;;
float ALPHA_ON = 1.0;
float ALPHA_OFF = 0.0;

show(){
    visible = TRUE;
    llSetText(TITLE, COLOR,ALPHA_ON);       
    llSetAlpha(ALPHA_ON, ALL_SIDES);
}

hide(){
    visible = FALSE;
    llSetText(&amp;quot;&amp;quot;, COLOR,ALPHA_ON);       
    llSetAlpha(ALPHA_OFF, ALL_SIDES);
}

default{
    state_entry() {
        llSitTarget(offset,ZERO_ROTATION);
        if((ANIMATION = llGetInventoryName(INVENTORY_ANIMATION,0)) == &amp;quot;&amp;quot;){
            llOwnerSay(&amp;quot;Error: No animation&amp;quot;);
            ANIMATION = &amp;quot;sit&amp;quot;;
            }
        llSetSitText(TITLE);
        show();
    }

    touch_start(integer detected) {
        //llOwnerSay(&amp;quot;Memory: &amp;quot; + (string)llGetFreeMemory());
        if(visible){ hide(); }
        else       { show(); }
    }

    changed(integer change) {
        if(change &amp;amp; CHANGED_LINK) {
            avatar = llAvatarOnSitTarget();
            if(avatar != NULL_KEY){
                //SOMEONE SAT DOWN
                hide();
                llRequestPermissions(avatar,PERMISSION_TRIGGER_ANIMATION);
                return;
            }else{
                //SOMEONE STOOD UP
                if (llGetPermissionsKey() != NULL_KEY){ llStopAnimation(ANIMATION); }
                show();
                return;
            }
        }
        if(change &amp;amp; CHANGED_INVENTORY) { llResetScript(); }
        if(change &amp;amp; CHANGED_OWNER)     { llResetScript(); }
    }

    run_time_permissions(integer perm) {
        if(perm &amp;amp; PERMISSION_TRIGGER_ANIMATION) {
            llStopAnimation(&amp;quot;sit&amp;quot;);
            llStartAnimation(ANIMATION);
            hide();
        }
    }
}&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>Simple Radar</title>
            <link>http://live.spdns.org/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>Teleport</title>
            <link>http://live.spdns.org/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>Zero Lag Poseball</title>
            <link>http://live.spdns.org/wiki/archiv/opensim/downloads/scripts/zero_lag_poseball?do=revisions&amp;rev=1575021525</link>
            <description>
&lt;h2 class=&quot;sectionedit1&quot; id=&quot;zero_lag_poseball&quot;&gt;Zero Lag Poseball&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;// Jippen Faddoul&amp;#039;s Poseball script - Low ram/lag posepall thats just drag-and drop simple
// Copyright (C) 2007 Jippen Faddoul
//    This program is free software: you can redistribute it and/or modify
//    it under the terms of the GNU General Public License version 3, as 
//    published by the Free Software Foundation.
//
//    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, see &amp;lt;http://www.gnu.org/licenses/&amp;gt;
 
 
 
//This text will appear in the floating title above the ball
string TITLE=&amp;quot;Sit here&amp;quot;;            
//You can play with these numbers to adjust how far the person sits from the ball. ( &amp;lt;X,Y,Z&amp;gt; )
vector offset=&amp;lt;0.0,0.0,0.5&amp;gt;;            
 
///////////////////// LEAVE THIS ALONE \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
string ANIMATION;
integer visible = TRUE;
key avatar;
 
vector COLOR = &amp;lt;1.0,1.0,1.0&amp;gt;;
float ALPHA_ON = 1.0;
float ALPHA_OFF = 0.0;
 
show(){
    visible = TRUE;
    llSetText(TITLE, COLOR,ALPHA_ON);        
    llSetAlpha(ALPHA_ON, ALL_SIDES);
}
 
hide(){
    visible = FALSE;
    llSetText(&amp;quot;&amp;quot;, COLOR,ALPHA_ON);        
    llSetAlpha(ALPHA_OFF, ALL_SIDES);
}
 
default{
    state_entry() {
        llSitTarget(offset,ZERO_ROTATION);
        if((ANIMATION = llGetInventoryName(INVENTORY_ANIMATION,0)) == &amp;quot;&amp;quot;){
            llOwnerSay(&amp;quot;Error: No animation&amp;quot;);
            ANIMATION = &amp;quot;sit&amp;quot;;
            }
        llSetSitText(TITLE);
        show();
    }
 
    touch_start(integer detected) {
        //llOwnerSay(&amp;quot;Memory: &amp;quot; + (string)llGetFreeMemory());
        if(visible){ hide(); }
        else       { show(); }
    }
 
    changed(integer change) {
        if(change &amp;amp; CHANGED_LINK) {
            avatar = llAvatarOnSitTarget();
            if(avatar != NULL_KEY){
                //SOMEONE SAT DOWN
                hide();
                llRequestPermissions(avatar,PERMISSION_TRIGGER_ANIMATION);
                return;
            }else{
                //SOMEONE STOOD UP
                if (llGetPermissionsKey() != NULL_KEY){ llStopAnimation(ANIMATION); }
                show();
                return;
            }
        }
        if(change &amp;amp; CHANGED_INVENTORY) { llResetScript(); }
        if(change &amp;amp; CHANGED_OWNER)     { llResetScript(); }
    }
 
    run_time_permissions(integer perm) {
        if(perm &amp;amp; PERMISSION_TRIGGER_ANIMATION) {
            llStopAnimation(&amp;quot;sit&amp;quot;);
            llStartAnimation(ANIMATION);
            hide();
        }
    }
}&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>
