xs_eater.lsl 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. // :CATEGORY:XS Pet
  2. // :NAME:XS Pet Xundra Snowpaw Original Quail
  3. // :AUTHOR:Xundra Snowpaw
  4. // :CREATED:2013-09-06
  5. // :EDITED:2013-09-18 15:39:10
  6. // :ID:989
  7. // :NUM:1474
  8. // :REV:1
  9. // :WORLD:Second Life, Opensim
  10. // :DESCRIPTION:
  11. // Original Pet Quail
  12. // :CODE:
  13. integer SECONDS_BETWEEN_FOOD_NORMAL = 14400;
  14. integer SECONDS_BETWEEN_FOOD_HUNGRY = 3600;
  15. integer hunger_amount;
  16. integer seconds_elapsed_normal;
  17. integer seconds_elapsed_hungry;
  18. default
  19. {
  20. link_message(integer sender, integer num, string str, key id)
  21. {
  22. if (num == 800) {
  23. state running;
  24. }
  25. }
  26. }
  27. state running
  28. {
  29. state_entry()
  30. {
  31. hunger_amount = 0;
  32. seconds_elapsed_normal = 0;
  33. seconds_elapsed_hungry = 0;
  34. llSetTimerEvent(1.0);
  35. }
  36. timer()
  37. {
  38. integer do_message = 0;
  39. if (hunger_amount > 0) {
  40. if (seconds_elapsed_hungry == SECONDS_BETWEEN_FOOD_HUNGRY) {
  41. do_message = 1;
  42. seconds_elapsed_hungry = 0;
  43. } else {
  44. seconds_elapsed_hungry++;
  45. }
  46. }
  47. if (seconds_elapsed_normal == SECONDS_BETWEEN_FOOD_NORMAL) {
  48. hunger_amount++;
  49. seconds_elapsed_normal = 0;
  50. } else {
  51. seconds_elapsed_normal++;
  52. }
  53. if (do_message == 1) {
  54. llMessageLinked(LINK_SET, 903, (string)hunger_amount, "");
  55. }
  56. }
  57. link_message(integer sender, integer num, string str, key id)
  58. {
  59. if (num == 901) {
  60. hunger_amount --;
  61. } else
  62. if (num == 904) {
  63. hunger_amount = (integer)str;
  64. }
  65. }
  66. }