Category:Scripts
From OpenSimulator
m (→rotates the prim) |
Pato Donald (Talk | contribs) |
||
Line 1: | Line 1: | ||
− | Hi all. | + | 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. |
− | 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. | + | |
− | The scripts are gleemed from anywhere open source, and my thanks go out to all | + | The scripts are gleemed from anywhere open source, and my thanks go out to all those bright people who write this stuff :-) |
− | those bright people who write this stuff :-) | + | |
− | I am running opensim from the svn (Latest build daily) thing, then compile it in visual studio | + | 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 :-) where possible i will show the author and a link :-) 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 :-) 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. |
− | it occasionally wants to update the code to 2008 vers so i let it :-) | + | |
− | where possible i will show the author and a link :-) | + | |
− | 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 :-) 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 == | + | == Particles == |
<source lang="lsl"> | <source lang="lsl"> | ||
Line 82: | Line 72: | ||
} | } | ||
} | } | ||
− | </source> | + | </source> |
− | == Sound loop == | + | == Sound loop == |
<source lang="lsl"> | <source lang="lsl"> | ||
Line 101: | Line 91: | ||
} | } | ||
} | } | ||
− | </source> | + | </source> |
− | == Smooth rotate texture == | + | == Smooth rotate texture == |
<source lang="lsl"> | <source lang="lsl"> | ||
Line 116: | Line 106: | ||
} | } | ||
− | </source> | + | </source> |
+ | |||
+ | == Sit and position == | ||
− | + | Just drop into an object and play with the vector rot stuff and llsitTarget till happy :-) | |
− | Just drop into an object and play with the vector rot stuff and llsitTarget till happy :-) | + | |
<source lang="lsl"> | <source lang="lsl"> | ||
Line 135: | Line 126: | ||
} | } | ||
− | </source> | + | </source> |
− | == Rotating Prim == | + | == Rotating Prim == |
− | I think this came from Nebaden :-)..... | + | I think this came from Nebaden :-)..... |
<source lang="lsl"> | <source lang="lsl"> | ||
Line 152: | Line 143: | ||
} | } | ||
+ | </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> | ||
+ | |||
+ | // 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> | ||
+ | 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> | </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 :-) | + | Will keep updating until told otherwise :-) |
Revision as of 11:28, 10 December 2009
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.
The scripts are gleemed from anywhere open source, and my thanks go out to all those bright people who write this stuff :-)
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 :-) where possible i will show the author and a link :-) 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 :-) 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.
Contents |
Particles
// *** 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"); } } }
Sound loop
default { state_entry() { llSetTimerEvent(9.9); llSay(0,"reset."); } timer() { llPlaySound("rightclick on your sound and copy the UUID here, with care",1.0); } }
Smooth rotate texture
default { state_entry() { float SPEED = 0.2; llSetTextureAnim(ANIM_ON | SMOOTH | LOOP, ALL_SIDES, 0, 0, 1.0, 1000, SPEED); } }
Sit and position
Just drop into an object and play with the vector rot stuff and llsitTarget till happy :-)
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); } }
Rotating Prim
I think this came from Nebaden :-).....
default { state_entry() { llSetText("put your text in here", <1,1,1>,1); llTargetOmega(<0,0,1>, 0.2, 2); } }
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
Invalid language.
You need to specify a language like this: <source lang="html">...</source>
Supported languages for syntax highlighting:
abap, actionscript, ada, apache, applescript, asm, asp, autoit, bash, blitzbasic, bnf, c, c_mac, caddcl, cadlisp, cfdg, cfm, cpp, cpp-qt, csharp, css, d, delphi, diff, div, dos, dot, eiffel, fortran, freebasic, genero, gml, groovy, haskell, html4strict, idl, ini, inno, io, java, java5, javascript, latex, lisp, lsl, lua, m68k, matlab, mirc, mpasm, mysql, nsis, objc, ocaml, ocaml-brief, oobas, oracle8, pascal, per, perl, php, php-brief, plsql, python, qbasic, rails, reg, robots, ruby, sas, scheme, sdlbasic, smalltalk, smarty, sql, tcl, text, thinbasic, tsql, vb, vbnet, vhdl, visualfoxpro, winbatch, xml, xpp, z80
Server
Invalid language.
You need to specify a language like this: <source lang="html">...</source>
Supported languages for syntax highlighting:
abap, actionscript, ada, apache, applescript, asm, asp, autoit, bash, blitzbasic, bnf, c, c_mac, caddcl, cadlisp, cfdg, cfm, cpp, cpp-qt, csharp, css, d, delphi, diff, div, dos, dot, eiffel, fortran, freebasic, genero, gml, groovy, haskell, html4strict, idl, ini, inno, io, java, java5, javascript, latex, lisp, lsl, lua, m68k, matlab, mirc, mpasm, mysql, nsis, objc, ocaml, ocaml-brief, oobas, oracle8, pascal, per, perl, php, php-brief, plsql, python, qbasic, rails, reg, robots, ruby, sas, scheme, sdlbasic, smalltalk, smarty, sql, tcl, text, thinbasic, tsql, vb, vbnet, vhdl, visualfoxpro, winbatch, xml, xpp, z80
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 :-)
Subcategories
This category has the following 2 subcategories, out of 2 total.
Pages in category "Scripts"
The following 53 pages are in this category, out of 53 total.