Advertisement
salahzar

Menu Piano Inclinato

Feb 17th, 2014
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.  
  3. float fZ=23;
  4.  
  5. float fY; float fZMax;
  6.  
  7. key kAVI;
  8.  
  9. float fSIZE;
  10.  
  11.  
  12. setangle(float alfa)
  13. {
  14.     float f_rad=alfa*DEG_TO_RAD;
  15.    
  16.     rotation r_rot=llEuler2Rot(<f_rad,0,0>);
  17.     vector v_myscale=llGetScale();
  18.     vector v_mypos=llGetPos();
  19.    
  20.     float f_l=v_myscale.y;
  21.     llSay(0,"Lunghezza percorso "+(string)(f_l/2));
  22.     float f_h=(llSin(f_rad) * (f_l / 2.0));
  23.    
  24.     fY=(llCos(f_rad) * (f_l / 2.0));
  25.    
  26.     float f_new=fZ+ f_h; fZMax=  2*f_h + 1;
  27.     vector v_pos=<v_mypos.x,v_mypos.y,f_new>;
  28.     llSetLinkPrimitiveParamsFast(1,[ PRIM_ROTATION, r_rot, PRIM_POSITION, v_pos ]);
  29.    
  30.    
  31. }
  32.  
  33.  
  34. default
  35. {
  36.     state_entry()
  37.     {
  38.         llSay(0,"Reset Script");
  39.     }
  40.    
  41.     touch_start(integer count)
  42.     {
  43.         kAVI=llDetectedKey(0);
  44.         state ask_angle;
  45.     }
  46.    
  47.    
  48. }
  49. state ask_angle
  50. {
  51.     state_entry()
  52.     {
  53.         llListen(100,"",kAVI,"");
  54.         llDialog(kAVI,"Angolo del piano inclinato",[ "0","1","2","5","10","15","20","25","30" ],100);
  55.     }
  56.     listen(integer channel,string name,key id,string str)
  57.     {
  58.         setangle((float)str);
  59.         state ask_dimensioni;
  60.     }
  61.        touch_start(integer count)
  62.     {
  63.         llResetScript();
  64.     }
  65. }
  66. state ask_dimensioni
  67. {
  68.     state_entry()
  69.     {
  70.         llListen(100,"",kAVI,"");
  71.         llDialog(kAVI,"Dimensioni palla",[ "0.2","0.3", "0.5", "1", "1.5", "2" ],100);
  72.     }
  73.     listen(integer channel,string name,key id,string str)
  74.     {
  75.         fSIZE=(float)str;
  76.         state rezzapalla;
  77.     }    
  78.     touch_start(integer count)
  79.     {
  80.         llResetScript();
  81.     }
  82. }
  83. state rezzapalla
  84. {
  85.     state_entry()
  86.     {
  87.  
  88.         vector v=llGetPos()+<0,0,2>;
  89.                 llSay(0," rezzing at delta "+(string)fY);
  90.         llRezAtRoot("Palla",v,ZERO_VECTOR,ZERO_ROTATION,100);
  91.     }
  92.     object_rez(key id)
  93.     {
  94.         llSay(100,"size "+(string)fSIZE);
  95.         llResetScript();
  96.     }
  97.      touch_start(integer count)
  98.     {
  99.         llResetScript();
  100.     }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement