Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- string ident="CONTROLLER";
- integer odoors_locked=0;
- integer odoors_kidlocked=0;
- integer odoors_petlocked=0;
- list odoors=[];
- integer csafes_locked=0;
- integer csafes_kidlocked=0;
- integer csafes_petlocked=0;
- list csafes=[];
- key adult_query;
- integer adults_line=0;
- list adults=[];
- key kids_query;
- integer kids_line=0;
- list kids=[];
- key pets_query;
- integer pets_line=0;
- list pets=[];
- integer night=0; // night=0 means actually daytime
- integer mListener;
- integer listenerhang=0;
- string mainmenudlg="Ninni's house controller";
- list mainmenubtn=["Doors", "Childgates", "Lights", "Access", "Done"];
- string doormenudlg="Toggle door locks for adults, kids or pets";
- list doormenubtn=["Lock on", "Childlock on", "Petlockon", "Lock off", "Childlock off", "PetLock off", "Main"];
- string gatemenudlg="Toggle childgates";
- list gatemenubtn=["Lock on", "Childlock on", "Petlockon", "Lock off", "Childlock off", "PetLock off", "Main"];
- string lightmenudlg="Set lights";
- list lightmenubtn=["Auto", "All on", "All off"];
- string accessmenudlg="Add/Remove adults, kids or pets";
- list accessmenubtn=["Adult", "Child", "Pet"];
- default {
- state_entry() {
- //read adult list
- if (llGetInventoryType("adult_list") != INVENTORY_NOTECARD) {
- llOwnerSay("Adult list missing!");
- } else {
- adult_query=llGetNotecardLine("adult_list", adults_line);
- }
- //read kids list
- if (llGetInventoryType("kid_list") != INVENTORY_NOTECARD) {
- llOwnerSay("Kids list missing!");
- } else {
- kids_query=llGetNotecardLine("kid_list", adults_line);
- }
- //read pets list
- if (llGetInventoryType("pet_list") != INVENTORY_NOTECARD) {
- llOwnerSay("Pets list missing!");
- } else {
- kids_query=llGetNotecardLine("pet_list", adults_line);
- }
- // set night/day checker timer
- llSetTimerEvent(300);
- }
- touch_start(integer total_number)
- {
- llListenRemove(mListener);
- key user=llDetectedKey(0);
- mListener=llListen(-99, "", "", "");
- llDialog(user, mainmenudlg, mainmenubtn, -99);
- listenerhang=1;
- }
- listen(integer channel, string name, key id, string message) {
- llOwnerSay("Heard "+message);
- }
- link_message(integer sender_num, integer cmd, string grp, key primid) {
- if (grp=="ODOORS") {
- // outside doors
- if (cmd==0) {
- //initializing of an outside door
- }
- if (cmd==1) {
- string avname=llGetUsername(primid);
- integer found=0;
- integer i=0;
- if (odoors_locked==0) {
- while (i < llGetListLength(adults)) {
- if (llToLower(avname)==llToLower(llList2String(adults, i))) {
- found=1;
- }
- i++;
- }
- }
- i=0;
- if (odoors_kidlocked==0) {
- while (i < llGetListLength(kids)) {
- if (llToLower(avname)==llToLower(llList2String(kids, i))) {
- found=1;
- }
- i++;
- }
- }
- i=0;
- if (odoors_petlocked==0) {
- while (i < llGetListLength(pets)) {
- if (llToLower(avname)==llToLower(llList2String(pets, i))) {
- found=1;
- }
- i++;
- }
- }
- llMessageLinked(sender_num, 100+found, ident, primid);
- }
- }
- if (grp=="CHILDSAFE") {
- // child safety doors
- if (cmd==0) {
- //initializing of a childsafety
- }
- if (cmd==1) {
- string avname=llGetUsername(primid);
- integer found=0;
- integer i=0;
- if (csafes_locked==0) {
- while (i < llGetListLength(adults)) {
- if (llToLower(avname)==llToLower(llList2String(adults, i))) {
- found=1;
- }
- i++;
- }
- }
- i=0;
- if (csafes_kidlocked==0) {
- while (i < llGetListLength(kids)) {
- if (llToLower(avname)==llToLower(llList2String(kids, i))) {
- found=1;
- }
- i++;
- }
- }
- i=0;
- if (csafes_petlocked==0) {
- while (i < llGetListLength(pets)) {
- if (llToLower(avname)==llToLower(llList2String(pets, i))) {
- found=1;
- }
- i++;
- }
- }
- llMessageLinked(sender_num, 100+found, ident, primid);
- }
- }
- }
- timer() {
- vector sun=llGetSunDirection();
- if (sun.z <=0) {
- night=1;
- } else {
- night=0;
- }
- llMessageLinked(LINK_SET, 200+night, ident, llGetKey());
- if (listenerhang>0) {
- if (listenerhang==1) {
- listenerhang=2;
- } else {
- llSay(0, "killed lsitener");
- llListenRemove(mListener);
- listenerhang=0;
- }
- }
- }
- dataserver(key quid, string data) {
- // adult list reader
- if (adult_query==quid) {
- if (data != EOF) {
- adults+=[llStringTrim(data, STRING_TRIM)];
- adult_query=llGetNotecardLine("adult_list", ++adults_line);
- } else {
- // llOwnerSay("Adults loaded");
- }
- }
- // kids list reader
- if (kids_query==quid) {
- if (data != EOF) {
- kids+=[llStringTrim(data, STRING_TRIM)];
- kids_query=llGetNotecardLine("kid_list", ++kids_line);
- } else {
- // llOwnerSay("Kids loaded");
- }
- }
- // pets list reader
- if (pets_query==quid) {
- if (data != EOF) {
- pets+=[llStringTrim(data, STRING_TRIM)];
- pets_query=llGetNotecardLine("pet_list", ++kids_line);
- } else {
- // llOwnerSay("Pets loaded");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement