xs_ager.lsl 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. // :CATEGORY:XS Pet
  2. // :NAME:XS Pet Xundra Snowpaw Original Quail
  3. // :AUTHOR:Ferd Frederix
  4. // :CREATED:2013-09-06
  5. // :EDITED:2013-09-18 15:39:10
  6. // :ID:989
  7. // :NUM:1471
  8. // :REV:1
  9. // :WORLD:Second Life
  10. // :DESCRIPTION:
  11. // XS Pet
  12. // :CODE:
  13. integer age;
  14. float GROWTH_AMOUNT = 0.10;
  15. // body
  16. // x = 0.124
  17. // y = 0.082
  18. // z = 0.096
  19. // head <0.042349,-0.000059,0.055298> 8
  20. // x = 0.082
  21. // y = 0.082
  22. // z = 0.082
  23. // tail <-0.032043,-0.000061,0.009560> 7
  24. // x = 0.082
  25. // y = 0.082
  26. // z = 0.082
  27. // left wing <-0.004141,0.034098,0.008184> 3
  28. // x = 0.058
  29. // y = 0.079
  30. // z = 0.023
  31. // right wing <-0.011113,-0.034257,0.008841> 2
  32. // x = 0.058
  33. // y = 0.079
  34. // z = 0.023
  35. // left leg <0.009700,0.020261,-0.052318> 9
  36. // x = 0.010
  37. // y = 0.010
  38. // z = 0.064
  39. // right leg <0.009747,-0.022943,-0.052399> 10
  40. // x = 0.010
  41. // y = 0.010
  42. // z = 0.064
  43. // left eye <0.067205,0.018735,0.070143> 5
  44. // x = 0.024
  45. // y = 0.024
  46. // z = 0.024
  47. // right eye <0.067265,-0.017552,0.070217> 6
  48. // x = 0.024
  49. // y = 0.024
  50. // z = 0.024
  51. // beak <0.086439,-0.000059,0.049794> 4
  52. // x = 0.043
  53. // y = 0.043
  54. // z = 0.043
  55. default
  56. {
  57. link_message(integer sender, integer num, string str, key id)
  58. {
  59. if (num == 800) {
  60. state running;
  61. }
  62. }
  63. }
  64. state running
  65. {
  66. state_entry()
  67. {
  68. age = 0;
  69. }
  70. timer()
  71. {
  72. llMessageLinked(LINK_SET, 940, "1", "");
  73. }
  74. link_message(integer sender, integer num, string str, key id)
  75. {
  76. if (num == 942) {
  77. llMessageLinked(LINK_SET, 943, (string)age, "");
  78. } else
  79. if (num == 941) {
  80. llSetTimerEvent(86400.0); // 86400.0
  81. } else
  82. if (num == 940) {
  83. integer prev_age = age;
  84. integer size_age;
  85. age += (integer)str;
  86. if (prev_age == 0 && age > 7) {
  87. size_age = 7;
  88. } else {
  89. size_age = age;
  90. }
  91. if (size_age > 0 && size_age <= 7) {
  92. // grow to the correct proportion
  93. llMessageLinked(LINK_SET, 911, "1", ""); // tell mover to rest for 5 seconds
  94. float new_scale = (GROWTH_AMOUNT * size_age) + 1.0;
  95. vector new_size;
  96. vector new_pos;
  97. // -> body
  98. new_size = <0.124, 0.082, 0.096> * new_scale;
  99. llSetPrimitiveParams([PRIM_SIZE, new_size]);
  100. // -> body -> tail <-0.032043,-0.000061,0.009560> 9
  101. new_size = <0.082, 0.082, 0.082> * new_scale;
  102. new_pos = <-0.032043,-0.000061,0.009560> * new_scale;
  103. llSetLinkPrimitiveParams(9, [PRIM_SIZE, new_size, PRIM_POSITION, new_pos]);
  104. // -> body -> left wing <-0.004141,0.034098,0.008184> 7
  105. new_size = <0.058, 0.079, 0.023> * new_scale;
  106. new_pos = <-0.004141,0.034098,0.008184> * new_scale;
  107. llSetLinkPrimitiveParams(7, [PRIM_SIZE, new_size, PRIM_POSITION, new_pos]);
  108. // -> body -> right wing <-0.011113,-0.034257,0.008841> 4
  109. new_size = <0.058, 0.079, 0.023> * new_scale;
  110. new_pos = <-0.011113,-0.034257,0.008841> * new_scale;
  111. llSetLinkPrimitiveParams(4, [PRIM_SIZE, new_size, PRIM_POSITION, new_pos]);
  112. // -> body -> left leg <0.009700,0.020261,-0.052318> 6
  113. new_size = <0.01, 0.01, 0.064> * new_scale;
  114. new_pos = <0.009700,0.020261,-0.052318> * new_scale;
  115. llSetLinkPrimitiveParams(6, [PRIM_SIZE, new_size, PRIM_POSITION, new_pos]);
  116. // -> body -> right leg <0.009747,-0.022943,-0.052399> 10
  117. new_size = <0.01, 0.01, 0.064> * new_scale;
  118. new_pos = <0.009747,-0.022943,-0.052399> * new_scale;
  119. llSetLinkPrimitiveParams(10, [PRIM_SIZE, new_size, PRIM_POSITION, new_pos]);
  120. // -> body -> head <0.042349,-0.000059,0.055298> 5
  121. new_size = <0.082, 0.082, 0.082> * new_scale;
  122. new_pos = <0.042349,-0.000059,0.055298> * new_scale;
  123. llSetLinkPrimitiveParams(5, [PRIM_SIZE, new_size, PRIM_POSITION, new_pos]);
  124. // -> body -> head -> left eye <0.067205,0.018735,0.070143> 8
  125. new_size = <0.024, 0.024, 0.024> * new_scale;
  126. new_pos = <0.067205,0.018735,0.070143> * new_scale;
  127. llSetLinkPrimitiveParams(8, [PRIM_SIZE, new_size, PRIM_POSITION, new_pos]);
  128. // -> body -> head -> right eye <0.067265,-0.017552,0.070217> 3
  129. new_size = <0.024, 0.024, 0.024> * new_scale;
  130. new_pos = <0.067265,-0.017552,0.070217> * new_scale;
  131. llSetLinkPrimitiveParams(3, [PRIM_SIZE, new_size, PRIM_POSITION, new_pos]);
  132. // -> body -> head -> beak <0.086439,-0.000059,0.049794> 2
  133. new_size = <0.043, 0.043, 0.043> * new_scale;
  134. new_pos = <0.086439,-0.000059,0.049794> * new_scale;
  135. llSetLinkPrimitiveParams(2, [PRIM_SIZE, new_size, PRIM_POSITION, new_pos]);
  136. }
  137. }
  138. }
  139. }