Pet.lsl 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. // :CATEGORY:Transmogrify
  2. // :NAME:TransmogrifyAvatar
  3. // :AUTHOR:Ferd Frederix
  4. // :CREATED:2013-09-08
  5. // :EDITED:2014-01-01 12:18:57
  6. // :ID:921
  7. // :NUM:1325
  8. // :REV:1
  9. // :WORLD:Second Life
  10. // :DESCRIPTION:
  11. // For any attached pet that is to appear when you Transmogrify
  12. // :CODE:
  13. // Transmogrifyer script
  14. // License: CC-BY. Please do not remove the copyright or this notice
  15. // Author: Ferd Frederix
  16. // For your pet
  17. // makes the pet appear when you fly
  18. integer ownerchannel;
  19. integer listener;
  20. setlisten()
  21. {
  22. if (listener) {
  23. llListenRemove(listener);
  24. }
  25. listener = llListen(ownerchannel,"","","");
  26. }
  27. hide_show( float alpha)
  28. {
  29. integer j = llGetNumberOfPrims();
  30. integer i;
  31. for ( i = 0; i <= j; i++) {
  32. llSetLinkAlpha(i,alpha,ALL_SIDES);
  33. }
  34. }
  35. default
  36. {
  37. state_entry()
  38. {
  39. ownerchannel = (integer)("0xF" + llGetSubString( (string)llGetOwner(), 0, 6 ));
  40. hide_show(1); // 1 = visible
  41. setlisten();
  42. }
  43. on_rez(integer param)
  44. {
  45. hide_show(0); // 0= invisible
  46. setlisten();
  47. }
  48. changed(integer what)
  49. {
  50. if (what & CHANGED_REGION)
  51. setlisten();
  52. if(what & CHANGED_OWNER)
  53. llResetScript();
  54. }
  55. listen(integer channel, string name, key id, string msg)
  56. {
  57. if (msg == "pet") {
  58. hide_show(1);
  59. } else if (msg == "avatar") {
  60. hide_show(0);
  61. }
  62. }
  63. }