poseballs.lsl 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. // :CATEGORY:Tour
  2. // :NAME:swan tour guide
  3. // :AUTHOR:Ferd Frederix
  4. // :CREATED:2013-09-06
  5. // :EDITED:2013-09-18 15:39:05
  6. // :ID:854
  7. // :NUM:1185
  8. // :REV:1
  9. // :WORLD:Second Life
  10. // :DESCRIPTION:
  11. // Tour
  12. // :CODE:
  13. // Poseball script for both pose balls
  14. // Author: Ferd Frederix
  15. vector TARGET = <-.5,0,-0.1>; // 1/2 meter up, back a tenth.
  16. vector ROT = <0, -90, 0>; //rotated 90 degrees
  17. default
  18. {
  19. state_entry()
  20. {
  21. llSetAlpha(1.0,ALL_SIDES);
  22. llSetCameraEyeOffset(<-3, 0, -5> ); // move camera back
  23. llSetCameraAtOffset(<-2, 0, 1>);
  24. rotation rot = llEuler2Rot(ROT * DEG_TO_RAD); // convert the degrees to radians, then convert that vector into a rotation, rot30x
  25. llSitTarget(TARGET, rot); // where they sit
  26. }
  27. changed(integer change)
  28. {
  29. if (change & CHANGED_LINK)
  30. {
  31. key av = llAvatarOnSitTarget();
  32. if (av) //evaluated as true if not NULL_KEY or invalid
  33. {
  34. llRequestPermissions(av, PERMISSION_TRIGGER_ANIMATION);
  35. }
  36. else
  37. {
  38. llSetAlpha(1.0,ALL_SIDES); // make visible when they stand
  39. }
  40. }
  41. }
  42. run_time_permissions(integer perm)
  43. {
  44. if(PERMISSION_TRIGGER_ANIMATION & perm)
  45. {
  46. llStopAnimation("sit");
  47. llStartAnimation("sit"); // you can choose a different animation for sitting
  48. llSetAlpha(0.0,ALL_SIDES);
  49. llMessageLinked(LINK_SET,0,"sit",""); // tell the main script we are ready.
  50. }
  51. }
  52. on_rez(integer p)
  53. {
  54. llResetScript();
  55. }
  56. }