Guest User

Untitled

a guest
Jan 18th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.66 KB | None | 0 0
  1. // Simple car that works with the new SLFeeling Physics Engine (mod from encog)
  2. // Modded by sam but tech this script is wrong in someway from the aurora example
  3.  
  4. integer forward_power = 55;
  5. //integer reverse_power = -15;
  6. integer turning_ratio = 6;
  7. string sit_message = "Ride";
  8. string not_owner_message = "You are not the owner of this vehicle ...";
  9.  
  10. default
  11. {
  12. state_entry()
  13. {
  14. llSetSitText(sit_message);
  15. llSitTarget(<0.5,0.5,0.45>, ZERO_ROTATION );
  16.  
  17. llSetCameraEyeOffset(<-8, 0.0, 5.0>);
  18. llSetCameraAtOffset(<1.0, 0.0, 2.0>);
  19.  
  20.  
  21. llSetVehicleType(VEHICLE_TYPE_CAR);
  22. llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.1);
  23. llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.2);
  24. llSetVehicleFloatParam(VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 0.2);
  25. llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 0.10);
  26. llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_TIMESCALE, 0.2);
  27. llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 0.2);
  28. llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_TIMESCALE, 0.1);
  29. llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 0.5);
  30.  
  31. }
  32.  
  33. changed(integer change)
  34. {
  35.  
  36. if (change & CHANGED_LINK)
  37. {
  38.  
  39. key agent = llAvatarOnSitTarget();
  40. if (agent)
  41. {
  42. if (agent != llGetOwner())
  43. {
  44. llSay(0, not_owner_message);
  45. llUnSit(agent);
  46. llPushObject(agent, <0,0,50>, ZERO_VECTOR, FALSE);
  47. }
  48. else
  49. {
  50.  
  51.  
  52. llMessageLinked(LINK_ALL_CHILDREN , 0, "WHEEL_DRIVING", NULL_KEY);
  53. llSleep(.4);
  54. llSetStatus(STATUS_PHYSICS, TRUE);
  55. llSleep(.1);
  56. llRequestPermissions(agent, PERMISSION_TRIGGER_ANIMATION | PERMISSION_TAKE_CONTROLS);
  57.  
  58.  
  59. }
  60. }
  61. else
  62. {
  63. llStopSound();
  64.  
  65. llSetStatus(STATUS_PHYSICS, FALSE);
  66. llSleep(.4);
  67. llReleaseControls();
  68. llTargetOmega(<0,0,0>,PI,0);
  69.  
  70. llResetScript();
  71. }
  72. }
  73.  
  74. }
  75.  
  76. run_time_permissions(integer perm)
  77. {
  78. if (perm)
  79. {
  80. llTakeControls(CONTROL_FWD | CONTROL_BACK | CONTROL_DOWN | CONTROL_UP | CONTROL_RIGHT |
  81. CONTROL_LEFT | CONTROL_ROT_RIGHT | CONTROL_ROT_LEFT, TRUE, FALSE);
  82. }
  83. }
  84.  
  85. control(key id, integer level, integer edge)
  86. {
  87.  
  88. integer reverse_power = -25;
  89. integer reverse=1;
  90. vector angular_motor;
  91.  
  92. vector vel = llGetVel();
  93. float speed = llVecMag(vel);
  94.  
  95. if(level & CONTROL_FWD)
  96. {
  97. llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, <forward_power,0,0>);
  98. reverse = 6;
  99. }
  100. if(level & CONTROL_BACK)
  101. {
  102. llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, <reverse_power,0,0>);
  103. reverse = -6;
  104. }
  105.  
  106. if(level & (CONTROL_RIGHT|CONTROL_ROT_RIGHT))
  107. {
  108. angular_motor.z -= speed / turning_ratio * reverse;
  109. }
  110.  
  111. if(level & (CONTROL_LEFT|CONTROL_ROT_LEFT))
  112. {
  113. angular_motor.z += speed / turning_ratio * reverse;
  114. }
  115.  
  116. llSetVehicleVectorParam(VEHICLE_ANGULAR_MOTOR_DIRECTION, angular_motor);
  117.  
  118. }
  119.  
  120.  
  121. }
Add Comment
Please, Sign In to add comment