Blade strike sound.lsl 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. // :CATEGORY:Tour
  2. // :NAME:TourCopter
  3. // :AUTHOR:Ferd Frederix
  4. // :CREATED:2013-09-06
  5. // :EDITED:2013-09-18 15:39:08
  6. // :ID:909
  7. // :NUM:1291
  8. // :REV:1
  9. // :WORLD:Second Life
  10. // :DESCRIPTION:
  11. // Tour
  12. // :CODE:
  13. // ______ _ ______ _ _
  14. // | ___| | | | ___| | | (_)
  15. // | |_ ___ _ __ __| | | |_ _ __ ___ __| | ___ _ __ ___ __
  16. // | _/ _ \ '__/ _` | | _| '__/ _ \/ _` |/ _ \ '__| \ \/ /
  17. // | || __/ | | (_| | | | | | | __/ (_| | __/ | | |> <
  18. // \_| \___|_| \__,_| \_| |_| \___|\__,_|\___|_| |_/_/\_\
  19. //
  20. // fred@mitsi.com
  21. // tour copter script
  22. // blade strike sound
  23. //
  24. //Revisions:
  25. // 1/28/2010 initial release
  26. vector local_pos;
  27. float mass;
  28. integer i;
  29. integer on = FALSE;
  30. default
  31. {
  32. link_message(integer sender, integer num, string str, key id)
  33. {
  34. if (str == "start") {
  35. on = TRUE;
  36. } else if (str == "stop") {
  37. on = FALSE;
  38. }
  39. }
  40. collision_start(integer n)
  41. {
  42. if (!on) return;
  43. for (i = 0; i < n && i < 3; i += 1) {
  44. if (llDetectedLinkNumber(i) == llGetLinkNumber()) {
  45. mass = llGetObjectMass(llDetectedKey(i));
  46. if ((llDetectedType(i) & AGENT) == AGENT) {
  47. local_pos = llDetectedPos(i) - llGetPos();
  48. llTriggerSound(llList2Key(["5da4aa20-7c19-7a06-0b9a-867dfa45bc72", "aeaa0bcb-8671-3515-8020-1e9ea14b57dd", "fb379090-42f3-f6b2-70a4-269d379b8e2b"], llFloor(llFrand(2.99999))), 0.2 + llVecMag(local_pos) / 4.0);
  49. } else if (llDetectedVel(i) != ZERO_VECTOR && mass > 1.0) {
  50. local_pos = llDetectedPos(i) - llGetPos();
  51. llTriggerSound(llList2Key(["5da4aa20-7c19-7a06-0b9a-867dfa45bc72", "aeaa0bcb-8671-3515-8020-1e9ea14b57dd", "fb379090-42f3-f6b2-70a4-269d379b8e2b"], llFloor(llFrand(2.99999))), 0.2 + llVecMag(local_pos) / 4.0);
  52. }
  53. }
  54. }
  55. }
  56. }