This is a security HUD. Ther are four buttons that are needed for the HUD to work properly.
This script goes in the root prim of the HUD:
float scanWeather = 0.1; float scanTactical = 5; integer notify = 1; integer interval = 1; ///----how long (in seconds it takes to update the text) integer range = 200; ////----how far it will scan (max i can get is 96M) string radarID="";///--default detects no one, so DO NOT CHANGE key id; default { on_rez(integer params){ llResetScript();} //start fresh state_entry() {key owner = llGetOwner(); llOwnerSay("This system only works on land you own. For GROUP LAND, deed the security system to group \n ******W A R N I N G****** \n ANY ONE CAN USE THESE CONTROLS WHEN YOU DEED THEM TO GROUP. \n ******W A R N I N G******"); llGiveInventory(owner, "!Sensor.420-SecurityHUD"); llTargetOmega(<0,0,1>,5,0); //see everyone around me llSensorRepeat("","",AGENT,range,PI,interval); //Sensor is always active } sensor(integer n) { integer i; string blazedman; vector pos; vector me = llGetPos(); integer dist; string agent = " "; for(i=0; i, 1); //set your color here } no_sensor( ){ llSetText("", <1,1,1>, 1); ; } //when no one is around, the text goes away. }
Unsit Avatar Button Script:
//Formatted Sensor Dialog script by Evil Fool //Modified by blazed Undercity //Now its got a use, i modified to allow owner to do stuff to the ppl that are in the sensor's range integer gOwnerOnly = FALSE; integer gChann = -293190; //make your OWN unique channel to be sure your not on someone else's. integer gStride = 9; list names; list keys; integer gPos = 0; key tReq; dialog(key id) { integer nTop = gPos + gStride - 1; list buttons = llList2List(names, gPos, nTop); string msg = llDumpList2String(buttons, "\n"); while(llGetListLength(buttons) % 3 != 0) { buttons = llListInsertList(buttons, [" "], gStride); } if (gPos >= gStride) { buttons += ["PREVIOUS"]; } if (nTop - 1 < llGetListLength(names)) { buttons += ["NEXT"]; } llDialog(id, "Targets in Range: \n \n" + msg, buttons, gChann); } default { state_entry() { llListen(gChann, "", NULL_KEY, ""); } touch_start(integer num_times) { if ( ( gOwnerOnly == TRUE && llDetectedKey(0) == llGetOwner() ) || gOwnerOnly == FALSE) {tReq = llDetectedKey(0); llSensor("", NULL_KEY, AGENT, 96.0, PI); } } sensor(integer num_detected) { names = []; gPos = 0; integer i; for (i = 0; i < num_detected; i++) { names = names + llDetectedName(i); } keys = []; integer k; for (k = 0; k < num_detected; k++) { keys = keys + llDetectedKey(k); } dialog(tReq); } ///This script handles 16 keys & names associated with the dialog buttons. Feel free to add more. listen(integer channel, string name, key id, string msg) { string key0 = llList2String(keys, 0); string key1 = llList2String(keys, 1); string key2 = llList2String(keys, 2); string key3 = llList2String(keys, 3); string key4 = llList2String(keys, 4); string key5 = llList2String(keys, 5); string key6 = llList2String(keys, 6); string key7 = llList2String(keys, 7); string key8 = llList2String(keys, 8); string key9 = llList2String(keys, 9); string key10 = llList2String(keys, 10); string key11 = llList2String(keys, 11); string key12 = llList2String(keys, 12); string key13 = llList2String(keys, 13); string key14 = llList2String(keys, 14); string key15 = llList2String(keys, 15); string key16 = llList2String(keys, 16); string name0 = llList2String(names, 0); string name1 = llList2String(names, 1); string name2 = llList2String(names, 2); string name3 = llList2String(names, 3); string name4 = llList2String(names, 4); string name5 = llList2String(names, 5); string name6 = llList2String(names, 6); string name7 = llList2String(names, 7); string name8 = llList2String(names, 8); string name9 = llList2String(names, 9); string name10 = llList2String(names, 10); string name11 = llList2String(names, 11); string name12 = llList2String(names, 12); string name13 = llList2String(names, 13); string name14 = llList2String(names, 14); string name15 = llList2String(names, 15); string name16 = llList2String(names, 16); if (msg == "NEXT") { gPos = gPos + gStride; dialog(id); }else if (msg == "PREVIOUS") { gPos = gPos - gStride; dialog(id); }else if (msg == " ") {} //If you wanna do stuff to the Avatars Detected, you must do the same for all the 'else if' statements below else if (msg == name0) { llUnSit(key0); } else if (msg == name1) { llUnSit(key1); } else if (msg == name2) { llUnSit(key2); } else if (msg == name3) { llUnSit(key3); } else if (msg == name4) { llUnSit(key4); } else if (msg == name5) { llUnSit(key5); } else if (msg == name6) { llUnSit(key6); } else if (msg == name7) { llUnSit(key7); } else if (msg == name8) { llUnSit(key8); } else if (msg == name9) { llUnSit(key9); } else if (msg == name10) { llUnSit(key10); } else if (msg == name11) { llUnSit(key11); } else if (msg == name12) { llUnSit(key12); } else if (msg == name13) { llUnSit(key13); } else if (msg == name14) { llUnSit(key14); } else if (msg == name15) { llUnSit(key15); } else if (msg == name16) { llUnSit(key16); } } }
Send Home Button:
//Formatted Sensor Dialog script by Evil Fool //Modified by blazed Undercity //Now its got a use, i modified to allow owner to do stuff to the ppl that are in the sensor's range integer gOwnerOnly = FALSE; integer gChann = -293190; //make your OWN unique channel to be sure your not on someone else's. integer gStride = 9; list names; list keys; integer gPos = 0; key tReq; dialog(key id) { integer nTop = gPos + gStride - 1; list buttons = llList2List(names, gPos, nTop); string msg = llDumpList2String(buttons, "\n"); while(llGetListLength(buttons) % 3 != 0) { buttons = llListInsertList(buttons, [" "], gStride); } if (gPos >= gStride) { buttons += ["PREVIOUS"]; } if (nTop - 1 < llGetListLength(names)) { buttons += ["NEXT"]; } llDialog(id, "Targets in Range: \n \n" + msg, buttons, gChann); } default { state_entry() { llListen(gChann, "", NULL_KEY, ""); } touch_start(integer num_times) { if ( ( gOwnerOnly == TRUE && llDetectedKey(0) == llGetOwner() ) || gOwnerOnly == FALSE) {tReq = llDetectedKey(0); llSensor("", NULL_KEY, AGENT, 96.0, PI); } } sensor(integer num_detected) { names = []; gPos = 0; integer i; for (i = 0; i < num_detected; i++) { names = names + llDetectedName(i); } keys = []; integer k; for (k = 0; k < num_detected; k++) { keys = keys + llDetectedKey(k); } dialog(tReq); } ///This script handles 16 keys & names associated with the dialog buttons. Feel free to add more. listen(integer channel, string name, key id, string msg) { string key0 = llList2String(keys, 0); string key1 = llList2String(keys, 1); string key2 = llList2String(keys, 2); string key3 = llList2String(keys, 3); string key4 = llList2String(keys, 4); string key5 = llList2String(keys, 5); string key6 = llList2String(keys, 6); string key7 = llList2String(keys, 7); string key8 = llList2String(keys, 8); string key9 = llList2String(keys, 9); string key10 = llList2String(keys, 10); string key11 = llList2String(keys, 11); string key12 = llList2String(keys, 12); string key13 = llList2String(keys, 13); string key14 = llList2String(keys, 14); string key15 = llList2String(keys, 15); string key16 = llList2String(keys, 16); string name0 = llList2String(names, 0); string name1 = llList2String(names, 1); string name2 = llList2String(names, 2); string name3 = llList2String(names, 3); string name4 = llList2String(names, 4); string name5 = llList2String(names, 5); string name6 = llList2String(names, 6); string name7 = llList2String(names, 7); string name8 = llList2String(names, 8); string name9 = llList2String(names, 9); string name10 = llList2String(names, 10); string name11 = llList2String(names, 11); string name12 = llList2String(names, 12); string name13 = llList2String(names, 13); string name14 = llList2String(names, 14); string name15 = llList2String(names, 15); string name16 = llList2String(names, 16); if (msg == "NEXT") { gPos = gPos + gStride; dialog(id); }else if (msg == "PREVIOUS") { gPos = gPos - gStride; dialog(id); }else if (msg == " ") {} //If you wanna do stuff to the Avatars Detected, you must do the same for all the 'else if' statements below else if (msg == name0) { llTeleportAgentHome(key0); } else if (msg == name1) { llTeleportAgentHome(key1); } else if (msg == name2) { llTeleportAgentHome(key2); } else if (msg == name3) { llTeleportAgentHome(key3); } else if (msg == name4) { llTeleportAgentHome(key4); } else if (msg == name5) { llTeleportAgentHome(key5); } else if (msg == name6) { llTeleportAgentHome(key6); } else if (msg == name7) { llTeleportAgentHome(key7); } else if (msg == name8) { llTeleportAgentHome(key8); } else if (msg == name9) { llTeleportAgentHome(key9); } else if (msg == name10) { llTeleportAgentHome(key10); } else if (msg == name11) { llTeleportAgentHome(key11); } else if (msg == name12) { llTeleportAgentHome(key12); } else if (msg == name13) { llTeleportAgentHome(key13); } else if (msg == name14) { llTeleportAgentHome(key14); } else if (msg == name15) { llTeleportAgentHome(key15); } else if (msg == name16) { llTeleportAgentHome(key16); } }}
Eject Button Script:
//Formatted Sensor Dialog script by Evil Fool //Modified by blazed Undercity //Now its got a use, i modified to allow owner to do stuff to the ppl that are in the sensor's range integer gOwnerOnly = FALSE; integer gChann = -293190; //make your OWN unique channel to be sure your not on someone else's. integer gStride = 9; list names; list keys; integer gPos = 0; key tReq; dialog(key id) { integer nTop = gPos + gStride - 1; list buttons = llList2List(names, gPos, nTop); string msg = llDumpList2String(buttons, "\n"); while(llGetListLength(buttons) % 3 != 0) { buttons = llListInsertList(buttons, [" "], gStride); } if (gPos >= gStride) { buttons += ["PREVIOUS"]; } if (nTop - 1 < llGetListLength(names)) { buttons += ["NEXT"]; } llDialog(id, "Targets in Range: \n \n" + msg, buttons, gChann); } default { state_entry() { llListen(gChann, "", NULL_KEY, ""); } touch_start(integer num_times) { if ( ( gOwnerOnly == TRUE && llDetectedKey(0) == llGetOwner() ) || gOwnerOnly == FALSE) {tReq = llDetectedKey(0); llSensor("", NULL_KEY, AGENT, 96.0, PI); } } sensor(integer num_detected) { names = []; gPos = 0; integer i; for (i = 0; i < num_detected; i++) { names = names + llDetectedName(i); } keys = []; integer k; for (k = 0; k < num_detected; k++) { keys = keys + llDetectedKey(k); } dialog(tReq); } ///This script handles 16 keys & names associated with the dialog buttons. Feel free to add more. listen(integer channel, string name, key id, string msg) { string key0 = llList2String(keys, 0); string key1 = llList2String(keys, 1); string key2 = llList2String(keys, 2); string key3 = llList2String(keys, 3); string key4 = llList2String(keys, 4); string key5 = llList2String(keys, 5); string key6 = llList2String(keys, 6); string key7 = llList2String(keys, 7); string key8 = llList2String(keys, 8); string key9 = llList2String(keys, 9); string key10 = llList2String(keys, 10); string key11 = llList2String(keys, 11); string key12 = llList2String(keys, 12); string key13 = llList2String(keys, 13); string key14 = llList2String(keys, 14); string key15 = llList2String(keys, 15); string key16 = llList2String(keys, 16); string name0 = llList2String(names, 0); string name1 = llList2String(names, 1); string name2 = llList2String(names, 2); string name3 = llList2String(names, 3); string name4 = llList2String(names, 4); string name5 = llList2String(names, 5); string name6 = llList2String(names, 6); string name7 = llList2String(names, 7); string name8 = llList2String(names, 8); string name9 = llList2String(names, 9); string name10 = llList2String(names, 10); string name11 = llList2String(names, 11); string name12 = llList2String(names, 12); string name13 = llList2String(names, 13); string name14 = llList2String(names, 14); string name15 = llList2String(names, 15); string name16 = llList2String(names, 16); if (msg == "NEXT") { gPos = gPos + gStride; dialog(id); }else if (msg == "PREVIOUS") { gPos = gPos - gStride; dialog(id); }else if (msg == " ") {} //If you wanna do stuff to the Avatars Detected, you must do the same for all the 'else if' statements below else if (msg == name0) { llEjectFromLand(key0); } else if (msg == name1) { llEjectFromLand(key1); } else if (msg == name2) { llEjectFromLand(key2); } else if (msg == name3) { llEjectFromLand(key3); } else if (msg == name4) { llEjectFromLand(key4); } else if (msg == name5) { llEjectFromLand(key5); } else if (msg == name6) { llEjectFromLand(key6); } else if (msg == name7) { llEjectFromLand(key7); } else if (msg == name8) { llEjectFromLand(key8); } else if (msg == name9) { llEjectFromLand(key9); } else if (msg == name10) { llEjectFromLand(key10); } else if (msg == name11) { llEjectFromLand(key11); } else if (msg == name12) { llEjectFromLand(key12); } else if (msg == name13) { llEjectFromLand(key13); } else if (msg == name14) { llEjectFromLand(key14); } else if (msg == name15) { llEjectFromLand(key15); } else if (msg == name16) { llEjectFromLand(key16); } } }
Ban Button:
//Formatted Sensor Dialog script by Evil Fool //Modified by blazed Undercity //Now its got a use, i modified to allow owner to do stuff to the ppl that are in the sensor's range integer gOwnerOnly = FALSE; integer gChann = -293190; //make your OWN unique channel to be sure your not on someone else's. integer gStride = 9; list names; list keys; integer gPos = 0; key tReq; dialog(key id) { integer nTop = gPos + gStride - 1; list buttons = llList2List(names, gPos, nTop); string msg = llDumpList2String(buttons, "\n"); while(llGetListLength(buttons) % 3 != 0) { buttons = llListInsertList(buttons, [" "], gStride); } if (gPos >= gStride) { buttons += ["PREVIOUS"]; } if (nTop - 1 < llGetListLength(names)) { buttons += ["NEXT"]; } llDialog(id, "Targets in Range: \n \n" + msg, buttons, gChann); } default { state_entry() { llListen(gChann, "", NULL_KEY, ""); } touch_start(integer num_times) { if ( ( gOwnerOnly == TRUE && llDetectedKey(0) == llGetOwner() ) || gOwnerOnly == FALSE) {tReq = llDetectedKey(0); llSensor("", NULL_KEY, AGENT, 96.0, PI); } } sensor(integer num_detected) { names = []; gPos = 0; integer i; for (i = 0; i < num_detected; i++) { names = names + llDetectedName(i); } keys = []; integer k; for (k = 0; k < num_detected; k++) { keys = keys + llDetectedKey(k); } dialog(tReq); } ///This script handles 16 keys & names associated with the dialog buttons. Feel free to add more. listen(integer channel, string name, key id, string msg) { string key0 = llList2String(keys, 0); string key1 = llList2String(keys, 1); string key2 = llList2String(keys, 2); string key3 = llList2String(keys, 3); string key4 = llList2String(keys, 4); string key5 = llList2String(keys, 5); string key6 = llList2String(keys, 6); string key7 = llList2String(keys, 7); string key8 = llList2String(keys, 8); string key9 = llList2String(keys, 9); string key10 = llList2String(keys, 10); string key11 = llList2String(keys, 11); string key12 = llList2String(keys, 12); string key13 = llList2String(keys, 13); string key14 = llList2String(keys, 14); string key15 = llList2String(keys, 15); string key16 = llList2String(keys, 16); string name0 = llList2String(names, 0); string name1 = llList2String(names, 1); string name2 = llList2String(names, 2); string name3 = llList2String(names, 3); string name4 = llList2String(names, 4); string name5 = llList2String(names, 5); string name6 = llList2String(names, 6); string name7 = llList2String(names, 7); string name8 = llList2String(names, 8); string name9 = llList2String(names, 9); string name10 = llList2String(names, 10); string name11 = llList2String(names, 11); string name12 = llList2String(names, 12); string name13 = llList2String(names, 13); string name14 = llList2String(names, 14); string name15 = llList2String(names, 15); string name16 = llList2String(names, 16); if (msg == "NEXT") { gPos = gPos + gStride; dialog(id); }else if (msg == "PREVIOUS") { gPos = gPos - gStride; dialog(id); }else if (msg == " ") {} //If you wanna do stuff to the Avatars Detected, you must do the same for all the 'else if' statements below else if (msg == name0) { llAddToLandBanList(key0,0); } else if (msg == name1) { llAddToLandBanList(key1,0); } else if (msg == name2) { llAddToLandBanList(key2,0); } else if (msg == name3) { llAddToLandBanList(key3,0); } else if (msg == name4) { llAddToLandBanList(key4,0); } else if (msg == name5) { llAddToLandBanList(key5,0); } else if (msg == name6) { llAddToLandBanList(key6,0); } else if (msg == name7) { llAddToLandBanList(key7,0); } else if (msg == name8) { llAddToLandBanList(key8,0); } else if (msg == name9) { llAddToLandBanList(key9,0); } else if (msg == name10) { llAddToLandBanList(key10,0); } else if (msg == name11) { llAddToLandBanList(key11,0); } else if (msg == name12) { llAddToLandBanList(key12,0); } else if (msg == name13) { llAddToLandBanList(key13,0); } else if (msg == name14) { llAddToLandBanList(key14,0); } else if (msg == name15) { llAddToLandBanList(key15,0); } else if (msg == name16) { llAddToLandBanList(key16,0); } } }