Advertisement
Kane_Red

letters lsl

Jan 16th, 2019
330
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.20 KB | None | 0 0
  1. // Default text
  2. string TEXT = "HELLO HOW ARE YOU ";
  3.  
  4. // Interface between letters
  5. float LETTER_INTERVAL = 1.2;
  6.  
  7. // Modified values
  8. integer IS_ON = TRUE;
  9. string CUR_TEXT = "";
  10. integer LISTEN_HANDLE;
  11.  
  12. // Characters
  13. list CHARACTERS = [
  14. // A - Z
  15. "05fb8c9a-2ace-8c64-6688-9a08f535e87b",
  16. "c68b3416-1b02-76f4-8295-5170f2a430fc",
  17. "ab55d18b-f220-7dad-2036-9dbe6d9d24ae",
  18. "bb14e17f-48e2-b0de-2d3a-f3fc919d3455",
  19. "81d319dc-08a1-70ff-7d08-d2d5e8521d90",
  20. "993b9e32-77cd-17c6-b9d5-aa0950eeeedc",
  21. "4bbbec6c-26c7-b28c-8e2b-b95fd6b4c73e",
  22. "5c52c7da-7443-8d03-1493-94a167981f74",
  23. "7bfad861-8374-84fb-f71f-2a58fb6dd64a",
  24. "e79f9242-17d9-1377-f8b1-59812df58def",
  25. "6121cbf7-45dd-81d1-5983-bb4da8bb6cbd",
  26. "b9c2b4f6-2dd2-f05e-2ebe-8291a1c8208c",
  27. "e4c16f2e-5589-4dab-d658-2d8f8e78e212",
  28. "3dd9c930-88cb-80cd-04df-a146429166ba",
  29. "aa61ecc4-59c6-d390-b0e2-770abd463037",
  30. "702072b1-a14a-c1c2-7e96-ec69044989ef",
  31. "ed6b8c52-2540-df1e-2fb1-5c2d74d52951",
  32. "50ceb1e2-bf65-43d1-14b9-f7c6baab856f",
  33. "d1684b98-25c3-6d6d-9517-cc5b15264a5d",
  34. "d2daf814-6aa7-7a59-54b2-3110bf0d9dee",
  35. "367def79-30ef-5de7-cade-55fb1973dec4",
  36. "02e99a90-31c8-b50b-8b16-2c182d67a2d4",
  37. "722b77a3-8513-9537-c0cb-00978c85745e",
  38. "ea2aa90d-4a98-8d3b-3815-4505113a5a90",
  39. "ebe59dea-4a23-d415-1503-9c789c68d0f5",
  40. "9fbdeb14-7814-2c21-ab27-ee1867e349a3",
  41.  
  42. // Special characters
  43. "701917a8-d614-471f-13dd-5f4644e36e3c", // Space
  44. "d3f39664-ec05-92f0-1b45-db3acfe276e3", // Period
  45. "3ff82ed4-c521-dc69-b1ad-5d70f4b89da1", // Question
  46. "eaa3ec1a-d071-285e-7058-14ce838e8e25", // Semicolon
  47. "c0eeefcc-fa2c-0ff9-c9b9-babc365643ea", // Exclamation
  48. "8ccd81a4-ac36-7618-d7b4-b40fc2a548f0", // Comma
  49. "f81176b3-32b8-86bf-3613-a9f89895c1ad", // Colon
  50.  
  51. // Numbers
  52. "1494e996-a91b-f770-bd10-ad788642d859",
  53. "f545e486-2a2e-730d-845a-cbe9d4bcb9fd",
  54. "16a84092-421f-3225-bb36-4071b55fab2d",
  55. "4b0a62c4-65f4-932e-d440-7fe3cf5a1540",
  56. "e0e7eacd-e956-14e6-df65-3bc3b7d4e679",
  57. "6f579c89-bf1f-71d7-854d-b08341edf51e",
  58. "a5063c9b-377c-1244-62b4-7ce5d1dbfafe",
  59. "b055ba6a-d2ff-d67d-066c-ccb8a9e8300d",
  60. "42b58e86-e83c-bc1b-4d73-ab3603d00d98",
  61. "872560f2-d964-ab22-d558-1607366666c1",
  62.  
  63. // Zara's
  64. "fcdac14d-6128-ce47-66bc-a3d0d27f6d3d", // Hearts
  65.  
  66. // ADD yours here.
  67. // Note that if you add more you need to put a comma in
  68. // but leave the last line with out a comma
  69. ""
  70. ];
  71.  
  72. string CHARACTER_INDEX = "ABCDEFGHIJKLMNOPQRSTUVWXYZ .?;!,:0123456789@";
  73.  
  74. letter(string char)
  75. {
  76. string TEXTURE = llList2Key(CHARACTERS, llSubStringIndex(CHARACTER_INDEX, llToUpper(char)));
  77.  
  78. llParticleSystem([
  79. PSYS_PART_FLAGS, 0 | PSYS_PART_EMISSIVE_MASK |
  80. PSYS_PART_INTERP_COLOR_MASK | PSYS_PART_INTERP_SCALE_MASK,
  81. PSYS_SRC_PATTERN,PSYS_SRC_PATTERN_ANGLE_CONE,
  82.  
  83. // Texture / Size / Alpha / Color
  84. PSYS_SRC_TEXTURE, TEXTURE,
  85. PSYS_PART_START_SCALE,<0.2000, 0.2000, 0.0000>,
  86. PSYS_PART_END_SCALE,<0.3000, 0.3000, 0.0000>,
  87. PSYS_PART_START_ALPHA,0.000000,
  88. PSYS_PART_END_ALPHA,1.000000,
  89. PSYS_PART_START_COLOR, <1.0,1.0,1.0>,
  90. PSYS_PART_END_COLOR, <1.0,1.0,1.0>,
  91.  
  92. // Flow
  93. PSYS_PART_MAX_AGE,10.0,
  94. PSYS_SRC_BURST_RATE,1.200000,
  95. PSYS_SRC_BURST_PART_COUNT,1,
  96. PSYS_SRC_MAX_AGE,0.000000,
  97.  
  98. // Rez position
  99. PSYS_SRC_BURST_RADIUS,0.0,
  100. PSYS_SRC_INNERANGLE,0.0000,
  101. PSYS_SRC_OUTERANGLE,0.0000,
  102. PSYS_SRC_OMEGA,<0.00000, 0.00000, 0.00000>,
  103. PSYS_SRC_ACCEL, <0,0,0.0>,
  104. PSYS_SRC_BURST_SPEED_MIN,0.250000,
  105. PSYS_SRC_BURST_SPEED_MAX,0.250000
  106. ]);
  107. }
  108.  
  109. stop()
  110. {
  111. llParticleSystem([]);
  112. }
  113.  
  114. default
  115. {
  116. state_entry()
  117. {
  118. if(IS_ON)
  119. {
  120. llSetTimerEvent(LETTER_INTERVAL);
  121. LISTEN_HANDLE = llListen(99, "", llGetOwner(), "");
  122. }
  123. }
  124.  
  125. touch_start(integer num_detected)
  126. {
  127. if(IS_ON)
  128. {
  129. stop();
  130. llSetTimerEvent(0.0);
  131. //llListenControl(LISTEN_HANDLE, FALSE);
  132. llWhisper(0, "Signboard has stopped");
  133. }
  134.  
  135. else
  136. {
  137. llWhisper(0, "Signboard has started");
  138. //LISTEN_HANDLE = llListen(99, "", llGetOwner(), "");
  139. llSetTimerEvent(LETTER_INTERVAL);
  140. }
  141. IS_ON = !IS_ON;
  142. }
  143.  
  144. listen( integer channel, string name, key id, string message)
  145. {
  146. TEXT = message;
  147. CUR_TEXT = message;
  148. llOwnerSay("Setting text:" + message);
  149. }
  150.  
  151. timer()
  152. {
  153. if(CUR_TEXT == "")
  154. {
  155. CUR_TEXT = TEXT;
  156. }
  157. string char = llGetSubString(CUR_TEXT, 0, 0);
  158. letter(char);
  159. if(llStringLength(CUR_TEXT) == 1)
  160. {
  161. if(CUR_TEXT != " ")
  162. {
  163. CUR_TEXT = " ";
  164. }
  165.  
  166. else
  167. {
  168. CUR_TEXT = "";
  169. }
  170. }
  171.  
  172. else
  173. {
  174. CUR_TEXT = llGetSubString(CUR_TEXT, 1, -1);
  175. }
  176. }
  177. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement