Advertisement
Guest User

Untitled

a guest
Jun 1st, 2016
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.85 KB | None | 0 0
  1. string ident="CONTROLLER";
  2.  
  3. integer odoors_locked=0;
  4. integer odoors_kidlocked=0;
  5. integer odoors_petlocked=0;
  6.  
  7. list odoors=[];
  8.  
  9. integer csafes_locked=0;
  10. integer csafes_kidlocked=0;
  11. integer csafes_petlocked=0;
  12.  
  13. list csafes=[];
  14.  
  15. key adult_query;
  16. integer adults_line=0;
  17. list adults=[];
  18.  
  19. key kids_query;
  20. integer kids_line=0;
  21. list kids=[];
  22.  
  23. key pets_query;
  24. integer pets_line=0;
  25. list pets=[];
  26.  
  27. integer night=0; // night=0 means actually daytime
  28.  
  29. integer mListener;
  30. integer listenerhang=0;
  31.  
  32. string mainmenudlg="Ninni's house controller";
  33. list mainmenubtn=["Doors", "Childgates", "Lights", "Access", "Done"];
  34.  
  35. string doormenudlg="Toggle door locks for adults, kids or pets";
  36. list doormenubtn=["Lock on", "Childlock on", "Petlockon", "Lock off", "Childlock off", "PetLock off", "Main"];
  37. string gatemenudlg="Toggle childgates";
  38. list gatemenubtn=["Lock on", "Childlock on", "Petlockon", "Lock off", "Childlock off", "PetLock off", "Main"];
  39. string lightmenudlg="Set lights";
  40. list lightmenubtn=["Auto", "All on", "All off"];
  41. string accessmenudlg="Add/Remove adults, kids or pets";
  42. list accessmenubtn=["Adult", "Child", "Pet"];
  43.  
  44. default {
  45.  
  46. state_entry() {
  47. //read adult list
  48. if (llGetInventoryType("adult_list") != INVENTORY_NOTECARD) {
  49. llOwnerSay("Adult list missing!");
  50. } else {
  51. adult_query=llGetNotecardLine("adult_list", adults_line);
  52. }
  53.  
  54. //read kids list
  55. if (llGetInventoryType("kid_list") != INVENTORY_NOTECARD) {
  56. llOwnerSay("Kids list missing!");
  57. } else {
  58. kids_query=llGetNotecardLine("kid_list", adults_line);
  59. }
  60.  
  61. //read pets list
  62. if (llGetInventoryType("pet_list") != INVENTORY_NOTECARD) {
  63. llOwnerSay("Pets list missing!");
  64. } else {
  65. kids_query=llGetNotecardLine("pet_list", adults_line);
  66. }
  67.  
  68. // set night/day checker timer
  69. llSetTimerEvent(300);
  70. }
  71.  
  72. touch_start(integer total_number)
  73. {
  74. llListenRemove(mListener);
  75. key user=llDetectedKey(0);
  76. mListener=llListen(-99, "", "", "");
  77. llDialog(user, mainmenudlg, mainmenubtn, -99);
  78. listenerhang=1;
  79. }
  80.  
  81. listen(integer channel, string name, key id, string message) {
  82. llOwnerSay("Heard "+message);
  83. }
  84.  
  85. link_message(integer sender_num, integer cmd, string grp, key primid) {
  86. if (grp=="ODOORS") {
  87. // outside doors
  88. if (cmd==0) {
  89. //initializing of an outside door
  90. }
  91. if (cmd==1) {
  92. string avname=llGetUsername(primid);
  93. integer found=0;
  94. integer i=0;
  95. if (odoors_locked==0) {
  96. while (i < llGetListLength(adults)) {
  97. if (llToLower(avname)==llToLower(llList2String(adults, i))) {
  98. found=1;
  99. }
  100. i++;
  101. }
  102. }
  103. i=0;
  104. if (odoors_kidlocked==0) {
  105. while (i < llGetListLength(kids)) {
  106. if (llToLower(avname)==llToLower(llList2String(kids, i))) {
  107. found=1;
  108. }
  109. i++;
  110. }
  111. }
  112. i=0;
  113. if (odoors_petlocked==0) {
  114. while (i < llGetListLength(pets)) {
  115. if (llToLower(avname)==llToLower(llList2String(pets, i))) {
  116. found=1;
  117. }
  118. i++;
  119. }
  120. }
  121. llMessageLinked(sender_num, 100+found, ident, primid);
  122. }
  123. }
  124.  
  125. if (grp=="CHILDSAFE") {
  126. // child safety doors
  127. if (cmd==0) {
  128. //initializing of a childsafety
  129. }
  130. if (cmd==1) {
  131. string avname=llGetUsername(primid);
  132. integer found=0;
  133. integer i=0;
  134. if (csafes_locked==0) {
  135. while (i < llGetListLength(adults)) {
  136. if (llToLower(avname)==llToLower(llList2String(adults, i))) {
  137. found=1;
  138. }
  139. i++;
  140. }
  141. }
  142. i=0;
  143. if (csafes_kidlocked==0) {
  144. while (i < llGetListLength(kids)) {
  145. if (llToLower(avname)==llToLower(llList2String(kids, i))) {
  146. found=1;
  147. }
  148. i++;
  149. }
  150. }
  151. i=0;
  152. if (csafes_petlocked==0) {
  153. while (i < llGetListLength(pets)) {
  154. if (llToLower(avname)==llToLower(llList2String(pets, i))) {
  155. found=1;
  156. }
  157. i++;
  158. }
  159. }
  160. llMessageLinked(sender_num, 100+found, ident, primid);
  161. }
  162. }
  163. }
  164.  
  165. timer() {
  166. vector sun=llGetSunDirection();
  167. if (sun.z <=0) {
  168. night=1;
  169. } else {
  170. night=0;
  171. }
  172. llMessageLinked(LINK_SET, 200+night, ident, llGetKey());
  173.  
  174. if (listenerhang>0) {
  175. if (listenerhang==1) {
  176. listenerhang=2;
  177. } else {
  178. llSay(0, "killed lsitener");
  179. llListenRemove(mListener);
  180. listenerhang=0;
  181. }
  182. }
  183. }
  184.  
  185. dataserver(key quid, string data) {
  186. // adult list reader
  187. if (adult_query==quid) {
  188. if (data != EOF) {
  189. adults+=[llStringTrim(data, STRING_TRIM)];
  190. adult_query=llGetNotecardLine("adult_list", ++adults_line);
  191. } else {
  192. // llOwnerSay("Adults loaded");
  193. }
  194. }
  195.  
  196. // kids list reader
  197. if (kids_query==quid) {
  198. if (data != EOF) {
  199. kids+=[llStringTrim(data, STRING_TRIM)];
  200. kids_query=llGetNotecardLine("kid_list", ++kids_line);
  201. } else {
  202. // llOwnerSay("Kids loaded");
  203. }
  204. }
  205.  
  206. // pets list reader
  207. if (pets_query==quid) {
  208. if (data != EOF) {
  209. pets+=[llStringTrim(data, STRING_TRIM)];
  210. pets_query=llGetNotecardLine("pet_list", ++kids_line);
  211. } else {
  212. // llOwnerSay("Pets loaded");
  213. }
  214. }
  215. }
  216.  
  217. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement