proximity.lsl 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. // :SHOW:1
  2. // :CATEGORY:Light
  3. // :NAME:Rene Free Lighting System
  4. // :AUTHOR:Rene10957 Resident
  5. // :KEYWORDS: light,lamp,lighting light
  6. // :CREATED:2015-06-11 14:41:57
  7. // :EDITED:2016-03-30 20:29:28
  8. // :ID:1079
  9. // :NUM:1790
  10. // :REV:1
  11. // :WORLD:Second Life
  12. // :DESCRIPTION:
  13. // Proximity Switch: drop this script into the same prim where the SWITCH is located
  14. // :CODE:
  15. // :LICENSE: CC0 (Public Domain)
  16. // Proximity light plugin for Rene's Free Lighting System
  17. // A simple example script for creating your own plugin
  18. //
  19. // Automatically switches on when an avatar comes within 10 meters
  20. // Automatically switches off after one minute when no avatars are in range
  21. /////////////////////////////////////////////////////////////////////////////////
  22. // HOW TO USE: drop this script into the same prim where the SWITCH is located //
  23. /////////////////////////////////////////////////////////////////////////////////
  24. key owner; // object owner
  25. integer number = 10957; // number part of link message
  26. float range = 10.0; // scan range in meters
  27. float rate = 10.0; // scan rate in seconds
  28. default
  29. {
  30. state_entry()
  31. {
  32. owner = llGetOwner();
  33. llSensorRepeat("", "", AGENT_BY_USERNAME, range, PI, rate);
  34. }
  35. on_rez(integer start_param)
  36. {
  37. llResetScript();
  38. }
  39. sensor(integer total_number)
  40. {
  41. rate = 60.0;
  42. llMessageLinked(LINK_THIS, number, "on", owner);
  43. llSensorRemove();
  44. llSensorRepeat("", "", AGENT_BY_USERNAME, range, PI, rate);
  45. }
  46. no_sensor()
  47. {
  48. rate = 10.0;
  49. llMessageLinked(LINK_THIS, number, "off", owner);
  50. llSensorRemove();
  51. llSensorRepeat("", "", AGENT_BY_USERNAME, range, PI, rate);
  52. }
  53. }