| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- // :CATEGORY:Tour
- // :NAME:OpenSim Tour Car
- // :AUTHOR:Ferd Frederix
- // :KEYWORDS:
- // :CREATED:2014-09-07 10:50:19
- // :EDITED:2014-09-07
- // :ID:1040
- // :NUM:1628
- // :REV:1
- // :WORLD:Opensim
- // :DESCRIPTION:
- // Tour recordwer. Touch this after placing #10 prims
- // :CODE:
- osMakeNotecard(string notecardName, string contents) {
- llOwnerSay("Make Notecard " + notecardName + "Contents:" + (string) contents);
- }
- integer wanted = 0;
- integer debugger =1;
- list prims;
- debug(string message)
- {
- if (debugger)
- llOwnerSay(message);
- }
- string left(string src, string divider) {
- integer index = llSubStringIndex( src, divider );
- if(~index)
- return llDeleteSubString( src, index , -1);
- return src;
- }
- string right(string src, string divider) {
- integer index = llSubStringIndex( src, divider );
- if(~index)
- return llDeleteSubString( src, 0, index + llStringLength(divider) - 1);
- return src;
- }
- default
- {
- state_entry()
- {
- llSetText("Click after setting up all tour prims.", <1.0, 1.0, 1.0>, 2.0);
- llListen(300,"","","");
- }
- touch_start(integer n)
- {
- llOwnerSay("Please wait");
- prims = [];
- wanted ++;
- llRegionSay(300,"where");
- }
- listen(integer channel,string name, key id, string message)
- {
- debug(llGetObjectName() + " heard " + message);
- if (wanted)
- {
- list msg = llParseString2List(message,["|"],[""]);
- integer aname = (integer) llList2String(msg,0);
- vector dest = (vector) llList2String (msg,1);
- rotation arot = (rotation) llList2String(msg,2);
- integer isthere = llListFindList(prims,[aname]);
- if (isthere > -1)
- {
- llOwnerSay("Error, there are two prims named " + aname + ". Please make sure each prim is uniquely numbered from - to N in sequence from the start prim to the finish prim. Gaps in the sequence are allowed.");
- }
- if (wanted)
- {
- prims += (integer) aname;
- prims += (vector) dest;
- prims += (rotation) arot;
- }
- llSetTimerEvent(10.0);
- }
- }
-
- timer()
- {
- wanted = 0;
- llSetTimerEvent(0);
- integer i = 0;
- prims = llListSort(prims,3,1);
- string out;
- for (i = 0; i < llGetListLength(prims); i+=3)
- {
- integer primnum = llList2Integer(prims,i);
- vector loc = llList2Vector(prims,i+1);
- rotation arot = llList2Rot(prims,i+2);
- out += (string) primnum + "|" + (string) loc + "|" + (string) arot +"|\n";
- }
- osMakeNotecard("Route",out);
- llOwnerSay("The Route notecard is ready");
- }
- on_rez(integer p)
- {
- llResetScript();
- }
- }
|