Advertisement
Guest User

alphas hump script

a guest
Jan 27th, 2020
1,521
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. key kSeat;
  2. integer iRecording;
  3. list lSequence = [];
  4. string sLastStamp;
  5. string iTimestampOffset;
  6.  
  7. Init () {
  8.     llOwnerSay("init" );
  9.   kSeat = NULL_KEY;
  10.   //lSequence = [];
  11.   iRecording = 0;
  12.   llListen (4, "", llGetOwner (), "");
  13. }
  14.  
  15. integer Millisec(string Stamp) {
  16.     return (integer)llGetSubString(Stamp, 8, 9) * 86400000 + // Days
  17.         (integer)llGetSubString(Stamp, 11, 12) * 3600000 + // Hours
  18.         (integer)llGetSubString(Stamp, 14, 15) * 60000 + // Minutes
  19.         llRound(((float)llGetSubString(Stamp, 17, -2) * 1000.0)) // Seconds.Milliseconds
  20.         - 617316353; // Offset to fit between [-617316353,2147483547]
  21. }
  22.  
  23. string left(string src, string divider) {
  24.     integer index = llSubStringIndex( src, divider );
  25.     if(~index)
  26.         return llDeleteSubString( src, index, -1);
  27.     return src;
  28. }
  29.  
  30. string right(string src, string divider) {
  31.     integer index = llSubStringIndex( src, divider );
  32.     if(~index)
  33.         return llDeleteSubString( src, 0, index + llStringLength(divider) - 1);
  34.     return src;
  35. }
  36.  
  37.  
  38. default
  39. {
  40.   state_entry () {
  41.     Init ();
  42.   }
  43.  
  44.   on_rez(integer start_param) {
  45.     Init ();
  46.   }
  47.  
  48.   listen(integer channel, string name, key id, string message) {
  49.     if (channel==4) {
  50.         if (message == "hump"){
  51.             kSeat = llGetKey();
  52.             llOwnerSay ("Alpha is looking kind of horny...");
  53.             llOwnerSay ("@sit:"+(string)kSeat+"=force");
  54.             llSleep(5.0);
  55.             integer i;
  56.             integer length = llGetListLength(lSequence);
  57.             //string sSegment;
  58.             string sMseconds;
  59.             do
  60.                 //string sSegment = llList2String(lSequence, i);
  61.                 llOwnerSay(llList2String(lSequence, i) );
  62.                 //mseconds = left(sSegment, ":");
  63.                 //llOwnerSay(left(llList2String(lSequence, i), ":");
  64.                 // llSleep(seconds);
  65.                 //llOwnerSay(llList2String(lSequence, i) );
  66.             while(++i < length);
  67.         } else if (message == "record"){
  68.             lSequence = [];
  69.             iRecording = 1;
  70.             sLastStamp = llGetTimestamp();
  71.             llOwnerSay ("Recording sequence...");
  72.         } else if (message == "stop"){
  73.             iRecording = 0;
  74.             llOwnerSay ("Stopping recording.");
  75.         } else if (message == "play") {
  76.             llOwnerSay ("Playing sequence.");
  77.             iRecording = 0;
  78.             integer i;
  79.             llOwnerSay("lSequence list: " + llDumpList2String(lSequence, "**"));
  80.             integer length = llGetListLength(lSequence);
  81.             //string sSegment;
  82.             string sMseconds;
  83.             list lTimestamps = llList2ListStrided(lSequence,0,-1,3);
  84.             list lNumbers = llList2ListStrided(lSequence,1,-1,3);
  85.             list lCommands = llList2ListStrided(lSequence,2,-1,3);
  86.             integer iLength = llGetListLength(lTimestamps);
  87.              llOwnerSay("list length" + (string)iLength );
  88.              llOwnerSay("numbers list: " + llDumpList2String(lCommands, "**"));
  89.             do
  90.                 //string sSegment = llList2String(lSequence, i);
  91.                 //llOwnerSay(llList2String(lSequence, i) );
  92.                 llOwnerSay(llList2String(lTimestamps, i) + " " +  llList2String(lNumbers, i) + " " +  llList2String(lCommands, i));
  93.                 //llOwnerSay(llList2String(lNumbers, i) );
  94.                 //llOwnerSay(llList2String(lCommands, i) );
  95.                 //mseconds = left(sSegment, ":");
  96.                 //llOwnerSay(left(llList2String(lSequence, i), ":");
  97.                 // llSleep(seconds);
  98.                 //llOwnerSay(llList2String(lSequence, i) );
  99.             while(++i < iLength);
  100.             llOwnerSay("Done playing. lSequence list: " + llDumpList2String(lSequence, "**"));
  101.         }
  102.     }
  103.   }
  104.   link_message(integer sender_num, integer num, string list_argument, key id)
  105.     {
  106.        if(iRecording == 1){
  107.             //iTimestampOffset = (Millisec(llGetTimestamp()) - Millisec(sLastStamp));
  108.            
  109.             list lCommand = [(string)(Millisec(llGetTimestamp()) - Millisec(sLastStamp)), (string)num, list_argument];
  110.             //lSequence = lSequence + sCommand;
  111.              llOwnerSay ((string)lCommand);
  112.              lSequence += lCommand;
  113.             sLastStamp = llGetTimestamp();
  114.         }
  115.     }
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement