////////////////////////////////////////////////////////// // (C) Wizardry and Steamworks - 2011, GPLv3 // // Please see: http://www.gnu.org/licenses/gpl.html // // for legal details, rights of fair usage and // // the disclaimer and warranty conditions. // ////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// // INTERNALS // /////////////////////////////////////////////////////////////////////////// list menu_items = []; list key_items = []; integer mitra = 0; list cList = []; list tgtNames = []; integer comHandle = 0; integer comChannel = 0; list tgtKeys = []; string orbitTexture = ""; list mFwd() { if(mitra+1>llGetListLength(menu_items)) return cList; cList = llListInsertList(llListInsertList(llListInsertList(llList2List(menu_items, ++mitra, (mitra+=9)), ["<= Back"], 0), ["[ ALL ]"], 1), ["Next =>"], 2); return cList; } list mBwd() { if(mitra-19<0) return cList; cList = llListInsertList(llListInsertList(llListInsertList(llList2List(menu_items, (mitra-=19), (mitra+=9)), ["<= Back"], 0), ["[ ALL ]"], 1), ["Next =>"], 2); return cList; } init() { comChannel = ((integer)("0x"+llGetSubString((string)llGetKey(),-8,-1)) & 0x3FFFFFFF) ^ 0xBFFFFFFF; } integer Key2Number(key objKey) { return llAbs(((integer)("0x"+llGetSubString((string)objKey,-8,-1)) & 0x3FFFFFFF) ^ 0xBFFFFFFF); } default { state_entry() { init(); } on_rez(integer param) { llResetScript(); } link_message(integer sender_num, integer num, string str, key id) { if(id == "kcr_key") { llGiveInventory((key)str, orbitTexture); return; } if(str == "torbits") { llOwnerSay("Please wait, scanning for avatars..."); llSensor("", "", AGENT, 64, TWO_PI); return; } if(str == "torbit") { integer itra; for(itra=0, mitra=0, menu_items=[]; itra"], 2); comHandle = llListen(comChannel+2, "", llGetOwner(), ""); llDialog(llGetOwner(), "Please select a texture to poof an avatar with:\n", cList, comChannel+2); return; } } sensor(integer num) { integer itra; for(itra=0, mitra=0, menu_items=[], tgtNames=[], tgtKeys=[]; itra"], 2); comHandle = llListen(comChannel+1, "", llGetOwner(), ""); llDialog(llGetOwner(), "Please select an avatar to surround in the bubble from the list below:\n", cList, comChannel+1); } listen(integer channel, string name, key id, string message) { if(channel == comChannel+1) { llListenRemove(comHandle); integer itra=llGetListLength(tgtNames)-1; do { if(llGetSubString(message,0,23) == llList2String(tgtNames, itra)) { tgtKeys = (list)llList2Key(tgtKeys, itra); jump found_target; } } while(--itra>=0); @found_target; for(itra=0, mitra=0, menu_items=[]; itra"], 2); comHandle = llListen(comChannel+2, "", llGetOwner(), ""); llDialog(llGetOwner(), "Please select a texture to poof an avatar with:\n", cList, comChannel+2); return; } if(channel == comChannel+2) { llListenRemove(comHandle); orbitTexture = message; llMessageLinked(LINK_THIS, 0, "[K] Particle Surround" + "," + (string)(llGetPos() + <0,0,1>) + "," + (string)ZERO_VECTOR + "," + (string)ZERO_ROTATION + "," + (string)Key2Number(llList2Key(tgtKeys,0)), "kcr_rez"); return; } } }