Category:Scripts

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
(Replacing page with '<!-- Moved each of the scripts that were on this page to their own page. See below. --> Several LSL and/or OSSL scripts that were contributed by users of OpenSim [[Category:Sc...')
 
(2 intermediate revisions by one user not shown)
Line 1: Line 1:
Hi all. As this page is still here i guess it's either been overlooked or it may be useful. I'll continue to put scripts that I've found that work.. It will i hope be obvious that they are not mine, and that i am not nor claim to be the author.
+
<!-- Moved each of the scripts that were on this page to their own page. See below. -->
 +
Several LSL and/or OSSL scripts that were contributed by users of OpenSim
  
The scripts are gleemed from anywhere open source, and my thanks go out to all those bright people who write this stuff&nbsp;:-)
+
[[Category:Scripting]]
 
+
I am running opensim from the svn (Latest build daily) thing, then compile it in visual studio it occasionally wants to update the code to 2008 vers so i let it&nbsp;:-) where possible i will show the author and a link&nbsp;:-) Any problems let me know zoon@edenrealm.co.uk copy all below the "heading" into a new script in your in-world inventory, then drag and drop into your prim..... as if you didnt know&nbsp;:-) Samantha can be located on Openlife grid, Oh yes, i have played with the settings a little. There are lots of sources to look at and OsGrid would be a great place to start.
+
 
+
== Particles  ==
+
 
+
<source lang="lsl">
+
 
+
// *** Fountian Particles ***
+
// *** by Samantha Fuller ***
+
// *** ver 1 for OLG alpha .5 - March 5 /08 ***
+
integer on;
+
start_particles()
+
{
+
    llParticleSystem([
+
    PSYS_PART_FLAGS, PSYS_PART_EMISSIVE_MASK //PSYS_PART_TARGET_POS_MASK
+
    | PSYS_PART_INTERP_COLOR_MASK | PSYS_PART_INTERP_SCALE_MASK,
+
//|PSYS_PART_WIND_MASK,
+
//PSYS_PART_FOLLOW_VELOCITY_MASK,
+
    PSYS_SRC_PATTERN,
+
// ***  Choose 1 pattern from the following ***
+
    // PSYS_SRC_PATTERN_EXPLODE,
+
      PSYS_SRC_PATTERN_DROP,
+
    // PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY,
+
    // PSYS_SRC_PATTERN_ANGLE_CONE,
+
    // PSYS_SRC_PATTERN_ANGLE,
+
 
+
    PSYS_SRC_ANGLE_BEGIN, 5.015,
+
    PSYS_SRC_ANGLE_END, 10.5,
+
    PSYS_PART_START_SCALE, <0.1, 0.3, 0.1>,
+
    PSYS_PART_END_SCALE, <5.05,5.05,5.05>,
+
    PSYS_PART_START_ALPHA, .9,
+
    PSYS_PART_END_ALPHA, 0.05,
+
    PSYS_PART_START_COLOR, <1.0, 1.0, 1.0>,
+
    PSYS_PART_END_COLOR, <1.0, 0.0, 1.0>,
+
    PSYS_PART_MAX_AGE, 5.5,
+
    PSYS_SRC_ACCEL, < 0.0, 0.0, 0.2>,
+
    PSYS_SRC_BURST_RATE, 0.500,
+
    PSYS_SRC_BURST_PART_COUNT, 10,
+
    PSYS_SRC_BURST_RADIUS, 1.075,
+
    PSYS_SRC_BURST_SPEED_MAX, 2,
+
    PSYS_SRC_BURST_SPEED_MIN, 1,
+
    PSYS_SRC_TARGET_KEY, llGetKey()
+
    ]);
+
}
+
 
+
default
+
{
+
    state_entry()
+
    {
+
        start_particles();
+
        llSleep(6);
+
        //llParticleSystem([]);
+
        llWhisper(0,"particle change");
+
    }
+
touch_start(integer touches)
+
    {
+
        if (on == 0)
+
        {
+
            on = 1;
+
            start_particles();
+
            llWhisper(0,"fountian on");
+
        }
+
        else
+
        {
+
            on = 0;
+
            llParticleSystem([]);
+
            llWhisper(0,"fountian off");
+
        }
+
    }
+
}
+
</source>
+
 
+
== Sound loop  ==
+
 
+
<source lang="lsl">
+
 
+
default
+
{
+
    state_entry()
+
    {
+
        llSetTimerEvent(9.9);
+
        llSay(0,"reset.");
+
    }
+
   
+
    timer()
+
    {
+
        llPlaySound("rightclick on your sound and copy the UUID here, with care",1.0);
+
    }
+
}
+
</source>
+
 
+
== Smooth rotate texture  ==
+
 
+
<source lang="lsl">
+
 
+
default
+
{
+
    state_entry()                                 
+
    {                                             
+
      float SPEED = 0.2;
+
      llSetTextureAnim(ANIM_ON | SMOOTH | LOOP, ALL_SIDES, 0, 0, 1.0, 1000, SPEED);
+
    }
+
}
+
 
+
</source>
+
 
+
== Sit and position  ==
+
 
+
Just drop into an object and play with the vector rot stuff and llsitTarget till happy&nbsp;:-)
+
 
+
<source lang="lsl">
+
 
+
default{
+
 
+
state_entry()
+
        {
+
        llSetText("sit here ", <0,1,0>,1);
+
        llSay(0,"started");
+
        vector rot=<180.0, -180.0, 0.0>*DEG_TO_RAD;
+
        rotation finalrot=llEuler2Rot(rot);
+
        llSitTarget(<-0.35, 0.0, 0.75>,finalrot);
+
        }
+
}
+
 
+
</source>
+
 
+
== Rotating Prim  ==
+
 
+
I think this came from Nebaden&nbsp;:-).....
+
 
+
<source lang="lsl">
+
 
+
default
+
  {
+
    state_entry()
+
    {
+
      llSetText("put your text in here", <1,1,1>,1);
+
      llTargetOmega(<0,0,1>, 0.2, 2);
+
    }
+
  }
+
 
+
</source>
+
 
+
== A Opensim version for llHTTPResponse ==
+
 
+
As we know, until now we receive a very nice message for llHTTPResponse :D, but to make a prim communicate to another, i've made this method:
+
 
+
'''Client'''
+
<source lang="lsl">
+
 
+
// This script is to do a request on the primitive url on the description and return it's response.
+
key url_request;
+
 
+
string myurl; //This is only valid for internal Requests/Responses, for calling from other grids, use the simulator ip:port where it shows something like 2K3S-***-***-***:port, but mantain the rest.
+
 
+
integer listen_u;
+
 
+
string prepare_post_body(list l)
+
{
+
    integer i;
+
    string body;
+
    integer len=llGetListLength(l) & 0xFFFE; // make it even
+
    for (i=0;i<len;i+=2)
+
    {
+
        string varname=llList2String(l,i);
+
        string varvalue=llList2String(l,i + 1);
+
        if (i>0) body+="&";
+
        body+=llEscapeURL(varname)+"="+llEscapeURL(varvalue);
+
    }
+
    return body;
+
}
+
 
+
list Postdata2List(string data)
+
{
+
    return llParseString2List(data, "&", "");
+
}
+
 
+
string Httpdata2String(string data)
+
{
+
    list d = llParseString2List(data, "=", "");
+
    return llUnescapeURL(llList2String(d, 1));
+
}
+
 
+
key FastHttpRequest(string url, list meta, list body)
+
{
+
    return llHTTPRequest(url, meta, prepare_post_body(body));
+
}
+
 
+
default
+
{
+
   
+
    state_entry()
+
    {
+
        url_request = llRequestURL();
+
    }
+
    http_request(key id, string method, string body)
+
    {
+
        if (url_request == id)
+
        {
+
            url_request = "";
+
            if (method == "URL_REQUEST_GRANTED")
+
            {
+
                llSetText("MyURL> " + body, <1,.5,0>, 1.0);
+
                myurl = body;
+
                state run;
+
            }
+
            else if (method == "URL_REQUEST_DENIED")
+
            {
+
                llSay(0, "Something went wrong, no url. " + body);
+
            }
+
        }
+
        else
+
        {
+
            llSay(0, "Received> " + body);
+
        }
+
    }
+
}
+
 
+
state run
+
{
+
    state_entry()
+
    {
+
        llSay(0, "Running, touch for request to my description.");
+
        listen_u = llListen(-1, "", "", "");
+
        llListen(1, "", "", "reset");
+
    }
+
   
+
    listen(integer c, string n, key k, string m)
+
    {
+
        if(c == -1)
+
        {
+
            llListenRemove(listen_u);
+
            llSetObjectDesc(m);
+
        }
+
        if(c == 1 && m == "reset")
+
        {
+
            llResetScript();
+
        }
+
    }
+
   
+
    touch_start(integer i)
+
    {
+
        FastHttpRequest(llGetObjectDesc(), [HTTP_METHOD, "POST",HTTP_MIMETYPE, "application/x-www-form-urlencoded"],["MYURL",myurl,"MESSAGE","Hello, my name is " + llGetObjectName() + "."]);
+
    }
+
 
+
    http_request(key id, string method, string body)
+
    {
+
        if (url_request == id)
+
        {
+
            url_request = "";
+
            if (method == "URL_REQUEST_GRANTED")
+
            {
+
                llSetText("MyURL> " + body, <1,.5,0>, 1.0);
+
                myurl = body;
+
            }
+
            else if (method == "URL_REQUEST_DENIED")
+
            {
+
                llSay(0, "Something went wrong, no url. " + body);
+
            }
+
        }
+
        else
+
        {
+
            list body_i = Postdata2List(body);
+
            string url = Httpdata2String(llList2String(body_i,0));
+
            string data = Httpdata2String(llList2String(body_i,1));
+
            llSay(0, "Received> " + data);
+
        }
+
    }
+
}
+
</source>
+
 
+
'''Server'''
+
<source lang="lsl">
+
key url_request;
+
+
string myurl;//This is only valid for internal Requests/Responses, for calling from other grids, use the simulator ip:port where it shows something like 2K3S-***-***-***:port, but mantain the rest.
+
+
string prepare_post_body(list l)
+
{
+
    integer i;
+
    string body;
+
    integer len=llGetListLength(l) & 0xFFFE; // make it even
+
    for (i=0;i<len;i+=2)
+
    {
+
        string varname=llList2String(l,i);
+
        string varvalue=llList2String(l,i + 1);
+
        if (i>0) body+="&";
+
        body+=llEscapeURL(varname)+"="+llEscapeURL(varvalue);
+
    }
+
    return body;
+
}
+
+
list Postdata2List(string data)
+
{
+
    return llParseString2List(data, "&", "");
+
}
+
 
+
string Httpdata2String(string data)
+
{
+
    list d = llParseString2List(data, "=", "");
+
    return llUnescapeURL(llList2String(d, 1));
+
}
+
+
key FastHttpRequest(string url, list meta, list body)
+
{
+
    return llHTTPRequest(url, meta, prepare_post_body(body));
+
}
+
+
default
+
{
+
    state_entry()
+
    {
+
        url_request = llRequestURL();
+
    }
+
    touch_start(integer i)
+
    {
+
//        llSay(0, "URL: " + myurl);
+
//       
+
//        llSay(-1, myurl);
+
       
+
        llSetText(" ", <0,0,0>, 0.0);
+
       
+
        llResetScript();
+
    }
+
    http_request(key id, string method, string body)
+
    {
+
        if (url_request == id)
+
        {
+
            url_request = "";
+
            if (method == "URL_REQUEST_GRANTED")
+
            {
+
                llSay(0,"New URL: " + body);
+
               
+
                llSay(-1, body);
+
                myurl = body;
+
            }
+
            else if (method == "URL_REQUEST_DENIED")
+
            {
+
                llSay(0, "Something went wrong, no url. " + body);
+
            }
+
        }
+
        else
+
        {
+
//            llSay(0, body);
+
            list body_i = Postdata2List(body);
+
            string url = Httpdata2String(llList2String(body_i,0));
+
            string data = Httpdata2String(llList2String(body_i,1));
+
            llSetText("FROM: " + url + "\nDATA: " + data, <1,.5,0>, 1.0);
+
//            llSay(0, "FROM: " + url + "\nDATA: " + data);
+
//            llHTTPResponse(id, 200, body);
+
            llSay(0, "Response to " + url);
+
            FastHttpRequest(url, [HTTP_METHOD, "POST",HTTP_MIMETYPE, "application/x-www-form-urlencoded"], ["MYURL", myurl, "MESSAGE", "You sent me: \""+data+"\""]);
+
            llSay(0, "Sent!");
+
        }
+
    }
+
}
+
</source>
+
'''To receive a response, you need to send in the body this parameter: ''MYURL'' and in value add the object url, but if you need, try to change the value of url to the ip:port of region, sometimes it may be strange.'''
+
Is it, easy? ;D
+
 
+
Will keep updating until told otherwise&nbsp;:-)
+

Latest revision as of 10:50, 23 November 2010

Several LSL and/or OSSL scripts that were contributed by users of OpenSim

Subcategories

This category has the following 2 subcategories, out of 2 total.

Personal tools
General
About This Wiki