If you want to use it, you should drop it into a childprim of a linkset.
This setup will give you the possibilty to forward your chat on a certain channel within the whole region your are in and encrypt it.
Just make sure anybody you want to talk to has the same variables as you do.
This is what it could look like. There's no particle system in the script, I just added it for demonstration purposes.Yellow marker shows the root prim (parent), red marker shows the invisible linked prim (child) containing the script.
// This script includes the XTEA-LSL-Implementation by:// - Morse Dillon// - Strife Onizuka// - Dedric Mauriac// - JB Kraft// http://wiki.secondlife.com/wiki/XTEA_Strong_Encryption_Implementation// Setup:// 1. Make sure the object in which you want to use this script has more than one prim.// 2. Make sure the object is modifiable by you.// 3. This script must go into a childprim of your object, it doesn't matter into which one.// 4. After you have copied the script into your object, make sure everyone you want to talk to has the same// settings for KEY1, KEY2, KEY3, KEY4 and COMM_CHANNEL. You can use any valid, positive (!) integer number// for COMM_CHANNEL excluding PUBLIC_CHANNEL (which is 0) and DEBUG_CHANNEL (which is 2147483647). Do not use// a negative channel!// 5. When chatting, please type in local chat and add your channel. Example: If your COMM_CHANNEL was 9 then you'd type: '/9 hello'// 6. The code is written for an avatar attachment (usually a headset / HUD) and will run in no-script areas.integerCOMM_CHANNEL=9;integerKEY1=11111111;integerKEY2=22222222;integerKEY3=33333333;integerKEY4=44444444;// If you're not sure what you're doing,// do NOT change anything below!keyownerKey;stringownerName;integerCYCLES=6;listcypherkey;integerdelta=0x9E3779B9;integerord(stringchr){if(llStringLength(chr)!=1){returnERR_GENERIC;}if(chr==" "){return32;}stringASCII=" \n !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";returnllSubStringIndex(ASCII,chr);}stringchr(integeri){i%=127;stringASCII=" \n !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";returnllGetSubString(ASCII,i,i);}stringDWord2Hex(integerm){stringresult;integerindex;stringcharacters="0123456789ABCDEF";integeri;for(;i<8;i++){index=(m>>(i*4))&0xF;result=llInsertString(result,0,llGetSubString(characters,index,index));}returnresult;}integerHex2DWord(stringm){integerresult;stringdigit;integervalue;integerindex;stringcharacters="0123456789ABCDEF";integeri;for(;i<8;i++){index=8-(i+1);digit=llGetSubString(m,index,index);value=llSubStringIndex(characters,digit);result=result|value<<(i*4);}returnresult;}stringEncrypt(stringcleartext){integercyphertext_numeric;integerdword1;integerdword2;listcypherblock;stringcyphertext;while(llStringLength(cleartext)&0x7){cleartext+=" ";}integercharacter;integerstringlength=llStringLength(cleartext);integeri;while(i<stringlength){dword1=ord(llGetSubString(cleartext,i,i));i++;dword1=dword1|(ord(llGetSubString(cleartext,i,i))<<8);i++;dword1=dword1|(ord(llGetSubString(cleartext,i,i))<<16);i++;dword1=dword1|(ord(llGetSubString(cleartext,i,i))<<24);i++;dword2=ord(llGetSubString(cleartext,i,i));i++;dword2=dword2|ord(llGetSubString(cleartext,i,i))<<8;i++;dword2=dword2|ord(llGetSubString(cleartext,i,i))<<16;i++;dword2=dword2|ord(llGetSubString(cleartext,i,i))<<24;i++;cypherblock=TEAEncrypt(dword1,dword2,cypherkey);cyphertext=cyphertext+DWord2Hex(llList2Integer(cypherblock,0))+DWord2Hex(llList2Integer(cypherblock,1));dword1=0;dword2=0;cypherblock=[];}returncyphertext;}stringDecrypt(stringcyphertext){integerdword1;integerdword2;listclearblock;stringcleartext;stringhexvalue1;stringhexvalue2;integeri;while(i<llStringLength(cyphertext)){hexvalue1+=llGetSubString(cyphertext,i,i+7);i=i+8;hexvalue2+=llGetSubString(cyphertext,i,i+7);i=i+8;dword1=Hex2DWord(hexvalue1);dword2=Hex2DWord(hexvalue2);clearblock=TEADecrypt(dword1,dword2,cypherkey);cleartext+=chr(llList2Integer(clearblock,0)&0x000000FF);cleartext+=chr((llList2Integer(clearblock,0)&0x0000FF00)>>8);cleartext+=chr((llList2Integer(clearblock,0)&0x00FF0000)>>16);cleartext+=chr((llList2Integer(clearblock,0)&0xFF000000)>>24);cleartext+=chr(llList2Integer(clearblock,1)&0x000000FF);cleartext+=chr((llList2Integer(clearblock,1)&0x0000FF00)>>8);cleartext+=chr((llList2Integer(clearblock,1)&0x00FF0000)>>16);cleartext+=chr((llList2Integer(clearblock,1)&0xFF000000)>>24);hexvalue1="";hexvalue2="";dword1=0;dword2=0;clearblock=[];}returncleartext;}listTEAEncrypt(integerdword1,integerdword2,listcypherkey){integersum;listcryptlist;integern=CYCLES;while(n-->0){dword1=dword1+((dword2<<4^((dword2>>5)&0x07FFFFFF))+dword2^sum+llList2Integer(cypherkey,(sum&3)));sum+=delta;dword2=dword2+((dword1<<4^((dword1>>5)&0x07FFFFFF))+dword1^sum+llList2Integer(cypherkey,((sum>>11)&3)));}cryptlist=[dword1,dword2];returncryptlist;}listTEADecrypt(integerdword1,integerdword2,listcypherkey){integersum=delta*CYCLES;listcryptlist;integern=CYCLES;while(n-->0){dword2=dword2-((dword1<<4^((dword1>>5)&0x07FFFFFF))+dword1^sum+llList2Integer(cypherkey,((sum>>11)&3)));sum-=delta;dword1=dword1-((dword2<<4^((dword2>>5)&0x07FFFFFF))+dword2^sum+llList2Integer(cypherkey,(sum&3)));}cryptlist=[dword1,dword2];returncryptlist;}default{on_rez(integerstart_param){if(llGetOwner()!=ownerKey){llReleaseControls();llResetScript();}}changed(integerchange){if(change&CHANGED_OWNER){llReleaseControls();llResetScript();}}state_entry(){ownerKey=llGetOwner();ownerName=llKey2Name(ownerKey);cypherkey=[KEY1,KEY2,KEY3,KEY4];stringtimeStamp=llGetTimestamp();llSetLinkPrimitiveParamsFast(LINK_THIS,[PRIM_NAME,ownerName,PRIM_DESC,timeStamp]);llRequestPermissions(ownerKey,PERMISSION_TAKE_CONTROLS);llListen(COMM_CHANNEL,"",NULL_KEY,"");}listen(integerchannel,stringname,keyid,stringmessage){if(channel!=COMM_CHANNEL){return;}if(id==ownerKey){llRegionSay(COMM_CHANNEL,Encrypt(message));llSetLinkPrimitiveParamsFast(LINK_THIS,[PRIM_NAME,""]);llOwnerSay("/me ["+ownerName+"]: '"+message+"'");llSetLinkPrimitiveParamsFast(LINK_THIS,[PRIM_NAME,ownerName]);}elseif(llGetAgentSize(id)==ZERO_VECTOR){message=Decrypt(message);llSetLinkPrimitiveParamsFast(LINK_THIS,[PRIM_NAME,""]);llOwnerSay("/me ["+name+"]: '"+message+"'");llSetLinkPrimitiveParamsFast(LINK_THIS,[PRIM_NAME,ownerName]);}}run_time_permissions(integerperm){if(perm&PERMISSION_TAKE_CONTROLS){llTakeControls(CONTROL_DOWN,TRUE,TRUE);}}// needs a control event for no-script-area hackcontrol(keyid,integerlevel,integeredge){;}}