Advertisement
LethBaumann

Spinning Box

Jun 7th, 2021
1,900
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //Link 2 prims together and place this in the root
  2.  
  3. integer playbackchannel = 1; // The default llMessageLinked number
  4. integer flag;
  5.  
  6.  
  7.  
  8. rotation calcChildRot(rotation rdeltaRot){
  9.     if (llGetAttached())
  10.         return rdeltaRot/llGetLocalRot();
  11.     else
  12.         return rdeltaRot/llGetRootRotation();
  13. }
  14. vector originalScale = <0.50000, 0.50000, 0.50000>;
  15.  
  16.  
  17.  MoveBox(){
  18.     vector currentSize = llGetScale();
  19.     float scaleby = currentSize.x/originalScale.x;
  20.  
  21.      llSetLinkPrimitiveParamsFast(2, [PRIM_POSITION, <-5.00000, -0.52291, 0.00000>*scaleby, PRIM_ROTATION,calcChildRot(<0.00000, 0.00000, 0.00000, 1.00000>), PRIM_SIZE, <0.50000, 0.50000, 0.50000>*scaleby, PRIM_FULLBRIGHT, ALL_SIDES, 1]);
  22.    
  23.     llSleep(1);
  24.      llSetLinkPrimitiveParamsFast(2, [PRIM_GLOW, ALL_SIDES, 0.3]);
  25.      llSleep(0.1);
  26.      llSetLinkPrimitiveParamsFast(2, [PRIM_GLOW, ALL_SIDES, 0]);
  27.      llSleep(0.1);
  28.      llSetLinkPrimitiveParamsFast(2, [PRIM_GLOW, ALL_SIDES, 0.5]);
  29.      llSleep(0.1);
  30.      llSetLinkPrimitiveParamsFast(2, [PRIM_GLOW, ALL_SIDES, 0]);
  31.      llSleep(0.1);
  32.      llSetLinkPrimitiveParamsFast(2, [PRIM_GLOW, ALL_SIDES, 1]);
  33.  
  34.     llSleep(1);
  35.     llTargetOmega(<0,0,0.5>,-5,PI);
  36.     llSleep(0.5);
  37.     llTargetOmega(<0,0,0.5>,-10,PI);
  38.     llSleep(0.5);
  39.     llTargetOmega(<0,0,0.5>,-15,PI);
  40.     llSleep(0.5);
  41.     llSetLinkPrimitiveParamsFast(2, [PRIM_POSITION, <-6.00000, -0.52291, 0.00000>*scaleby, PRIM_ROTATION,calcChildRot(<0.00000, 0.00000, 0.00000, 1.00000>), PRIM_SIZE, <0.50000, 0.50000, 0.50000>*scaleby]);
  42.     llTargetOmega(<0,0,0.5>,-20,PI);
  43.     llSleep(0.5);
  44.     llTargetOmega(<0,0,0.5>,-25,PI);
  45.     llSleep(0.5);
  46.     llSetLinkPrimitiveParamsFast(2, [PRIM_POSITION, <-8.00000, -0.52291, 0.00000>*scaleby, PRIM_ROTATION,calcChildRot(<0.00000, 0.00000, 0.00000, 1.00000>), PRIM_SIZE, <0.50000, 0.50000, 0.50000>*scaleby]);
  47.     llTargetOmega(<0,0,0.5>,-30,PI);
  48.     llSleep(0.5);
  49.     llSetLinkPrimitiveParamsFast(2, [PRIM_POSITION, <-10.00000, -0.52291, 0.00000>*scaleby, PRIM_ROTATION,calcChildRot(<0.00000, 0.00000, 0.00000, 1.00000>), PRIM_SIZE, <0.50000, 0.50000, 0.50000>*scaleby]);
  50.     llTargetOmega(<0,0,0.5>,-35,PI);
  51. }
  52.  
  53.  MoveBack(){
  54.     vector currentSize = llGetScale();
  55.     float scaleby = currentSize.x/originalScale.x;
  56.     llTargetOmega(<0,0,0.5>,-30,PI);
  57.     llSleep(0.5);
  58.     llTargetOmega(<0,0,0.5>,-25,PI);
  59.     llSleep(0.5);
  60.     llTargetOmega(<0,0,0.5>,-20,PI);
  61.     llSetLinkPrimitiveParamsFast(2, [PRIM_POSITION, <-9.00000, -0.52291, 0.00000>*scaleby]);
  62.     llSleep(0.5);
  63.     llTargetOmega(<0,0,0.5>,-15,PI);
  64.     llSetLinkPrimitiveParamsFast(2, [PRIM_POSITION, <-7.00000, -0.52291, 0.00000>*scaleby]);
  65.     llSleep(0.5);
  66.     llTargetOmega(<0,0,0.5>,-10,PI);
  67.     llSetLinkPrimitiveParamsFast(2, [PRIM_POSITION, <-5.00000, -0.52291, 0.00000>*scaleby]);
  68.     llSleep(0.5);
  69.     llTargetOmega(<0,0,0.5>,-5,PI);
  70.     llSetLinkPrimitiveParamsFast(2, [PRIM_POSITION, <-4.00000, -0.52291, 0.00000>*scaleby]);
  71.     llSleep(0.4);
  72.     llTargetOmega(<0,0,0.5>,-3,PI);
  73.     llSetLinkPrimitiveParamsFast(2, [PRIM_POSITION, <-2.00000, -0.52291, 0.00000>*scaleby]);
  74.     llSleep(0.3);
  75.     llTargetOmega(<0,0,0.5>,-1,PI);
  76.     llSleep(0.2);
  77.     llTargetOmega(<0,0,0.5>,-0.5,PI);
  78.     llSleep(0.1);
  79.     llTargetOmega(<0,0,0.5>,-0.2,PI);
  80.     llSleep(1);
  81.      llSetLinkPrimitiveParamsFast(2, [PRIM_FULLBRIGHT, ALL_SIDES, 0, PRIM_GLOW, ALL_SIDES, 0]);
  82.      llSleep(0.5);
  83.       llSetLinkPrimitiveParamsFast(2, [PRIM_FULLBRIGHT, ALL_SIDES, 0, PRIM_GLOW, ALL_SIDES, 0.5]);
  84.       llSleep(0.5);
  85.       llSetLinkPrimitiveParamsFast(2, [PRIM_FULLBRIGHT, ALL_SIDES, 0, PRIM_GLOW, ALL_SIDES, 0]);
  86.       llSleep(0.1);
  87.       llSetLinkPrimitiveParamsFast(2, [PRIM_FULLBRIGHT, ALL_SIDES, 0, PRIM_GLOW, ALL_SIDES, 0.2]);
  88.       llSleep(0.1);
  89.       llSetLinkPrimitiveParamsFast(2, [PRIM_FULLBRIGHT, ALL_SIDES, 0, PRIM_GLOW, ALL_SIDES, 0]);
  90.       llSleep(0.1);
  91.       llSetLinkPrimitiveParamsFast(2, [PRIM_FULLBRIGHT, ALL_SIDES, 0, PRIM_GLOW, ALL_SIDES, 0.6]);
  92.       llSleep(0.1);
  93.        llSetLinkPrimitiveParamsFast(2, [PRIM_FULLBRIGHT, ALL_SIDES, 0, PRIM_GLOW, ALL_SIDES, 0]);
  94.        llSleep(1);
  95.     llTargetOmega(<0,0,0>,0,PI);
  96.     llSleep(1);
  97.      llSetLinkPrimitiveParamsFast(2, [PRIM_POSITION, <0.00000, -0.52291, 0.00000>*scaleby, PRIM_ROTATION,calcChildRot(<0.00000, 0.00000, 0.00000, 1.00000>), PRIM_SIZE, <0.50000, 0.50000, 0.50000>*scaleby]);
  98.  
  99.  
  100.  
  101. }
  102.  
  103. default{
  104.  
  105.     touch_start(integer total_number)
  106.     {
  107.         if (flag++ %2 == 0)
  108.         {
  109.             llMessageLinked(LINK_SET,1,"MoveBox","");
  110.         }
  111.         else
  112.             llMessageLinked(LINK_SET,1,"MoveBack","");    
  113.     }
  114.  
  115.  
  116.         state_entry()
  117.         {
  118.         llSetMemoryLimit(llGetUsedMemory() + 512);
  119.         }
  120.  
  121.  
  122.  
  123.         link_message(integer sender_num, integer num, string message, key id)
  124.         {
  125.             if(num == playbackchannel)
  126.             {
  127.                 if(message == "MoveBox")
  128.                 {
  129.                     MoveBox();
  130.                 }
  131.                 if(message == "MoveBack")
  132.                 {
  133.                     MoveBack();
  134.                 }
  135.             }
  136.         }
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement