a listener on hidden channel

Thread Started By steadymobbin

1867
0
  • 34 Vote(s) - 3.03 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Rate Thread
#1
1. Rez a prim, copy/paste this script inside:named: chanscanshape

PHP Code:
default
 {
     
state_entry()
     {
         
llSetPrimitiveParams([
         
PRIM_NAME"Channel Scanner HUD",
         
PRIM_DESC"(No Description)",
         
PRIM_COLORALL_SIDES, <1.0,1.0,1.0>, 0.5,
         
PRIM_FULLBRIGHTALL_SIDESTRUE,
         
PRIM_GLOWALL_SIDES0.03,
         
PRIM_TYPEPRIM_TYPE_BOXPRIM_HOLE_DEFAULT, <0.0,1.0,0.0>, 0.0, <0.0,0.0,0.0>, <0.35,1.0,0.0>, <0.0,0.0,0.0>,
         
PRIM_SIZE, <0.12,0.035,0.01>,
         
PRIM_PHANTOMTRUE,
         
PRIM_ROTATIONllEuler2Rot(< 0.0270270> * DEG_TO_RAD),
         
PRIM_TEXTURE1"8dcd4a48-2d37-4909-9f78-f7a9eb4ef903",<1.0,1.0,0.0>, <0.0,0.0,0.0>, 0.0,
         
PRIM_TEXTURE3"8dcd4a48-2d37-4909-9f78-f7a9eb4ef903",<1.0,1.0,0.0>, <0.0,0.0,0.0>, 0.0,
         
PRIM_TEXTURE5"8dcd4a48-2d37-4909-9f78-f7a9eb4ef903",<1.0,1.0,0.0>, <0.0,0.0,0.0>, 0.0,
         
PRIM_TEXTURE0"cf1786d2-2468-5283-bac7-4fdac718054d",<0.33,1.0,0.0>, <0.0,0.0,0.0>, 0.0,
         
PRIM_TEXTURE2"cf1786d2-2468-5283-bac7-4fdac718054d",<0.33,1.0,0.0>, <0.33,0.0,0.0>, 4.71,
         
PRIM_TEXTURE4"cf1786d2-2468-5283-bac7-4fdac718054d",<0.33,1.0,0.0>, <-0.33,0.0,0.0>, 1.57]);
         
llRemoveInventory(llGetScriptName());
     }
 } 

2) Copy/paste this script inside the prim: channelscanner

PHP Code:
integer Switch = FALSE;
 
integer touchedFace;
 
integer gStride 9;
 
integer startChan;
 
integer myChannel;
 
integer switch=0;
 
integer gPos 0;
 
integer oListen;
 
integer Handle;
 
integer num;
 
integer x;

 list 
MainButtons = ["Obj>Scanner""•","Obj>Listen","•","HELP","•"];
 list 
ListenButtons = ["<<Back","•","•","-ON-","<<•>>","-OFF-"];
 list 
fullname;
 list 
names;
 list 
mass;
 list 
dkey;
 list 
pos;

 
key ObjectOwner;
 
key OwnerKey;
 
key owner;
 
key Check;
 
key Spam;
 
key name;

 
string scanState "OFF";
 
string ObjectName;
 
string Message;

 
float Range 96.0;

 
Off()
 {
     
scanState "OFF";
     for (
1<= num++)
     
llMessageLinked(LINK_THISx"stop""");
     
llSetColor(llGetColor(1),touchedFace);
     
llOwnerSay("/me >> Channels no longer being scanned.");   
 }

 
On()
 {
     
scanState "ON";
     for (
1<= num++)
     
llMessageLinked(LINK_THISx"start", (string)startChan);
     
num llGetInventoryNumber(INVENTORY_SCRIPT) - 1;
     
integer endChan;
     if (
startChan 0)
     
endChan startChan + (num*64);
     else
     
endChan startChan - (num*64);
     
llSetColor(<0,1,0>,touchedFace);
     
llOwnerSay("/me • Scanning Channels from " + (string)startChan " to " + (string)endChan " •
     (64 channels per slave script; "
+(string)num +  " Slaves detected.(you can add more slaves!))");  
 }

 
Listen()
 {
     
llListenRemove(Handle);
     
llSetTimerEvent(60.0);
     
Handle llListen(myChannel""owner"");
 }

 
MainMenu()
 {
     
llDialog(owner"
 *Obj-Listen = Listen to objects speaking, lets you know who is using objects, like this hud's \"Mimic\" option for example ;)
 *Obj-Scanner = Scan for nearby objects, chat spies etc.

 (Tip; Small (by mass) invisible objects following you are probly spies ;)"
MainButtonsmyChannel);
 }

 
ObjListenMenu()
 {
     
llDialog(owner"\nObject listen will let you know the name of the object talking & the name of the person using an object to talk.\n    (like this HuDs mimic option for eg;)"ListenButtonsmyChannel);  
 }

 
SensorMenu()
 {
     
integer nTop gPos gStride 1;
     list 
buttons llList2List(namesgPosnTop);
     
string msg llDumpList2String(buttons"\n");
     while(
llGetListLength(buttons) % != 0)
     { 
         
buttons llListInsertList(buttons, [" "], gStride);
     }
     if (
gPos >= gStride)
     { 
         
buttons += ["<<•"];
     }
     if (
nTop llGetListLength(names))
     { 
         
buttons += ["•>>"];
     }
     
llDialog(owner"
 Objects Detected; Closest shown first, "
+(string)((integer)Range)+"m range."buttonsmyChannel);
 }

 
Help()
 {
     
llTriggerSound("96aeb4f2-3d59-dd37-cfa9-763614695b61",1.0);
     
llOwnerSay("/me ^^ Object & Channel Scanner/Listen Help/Info ^^
 *Object-Listen = Listen to objects speaking, this is great for finding out who is using an object to speak.
 Options like this HuD's \"Mimic\" will use an object to speak, trying to make it harder to see who said what.

 *Object-Scanner = Scan for nearby objects, it has a max range of 96 meters.
 Great for finding out who owns an object following you or lost prims etc.

 *Channel Scanner = Listen to chatter on different channels.
 Simply add more of the multiple scripts in the hud to scan more channels, making sure only the numbers look right =)
 So this prims inventory should look something like Slave 1, Slave 2, Slave 3, etc etc
 (Trick is to take one of the slave scripts, remove its number, then drop it into the prim again.. It will number itself ;)"
);   
 }

 default
 {
     
state_entry()
     {
         
owner llGetOwner();
         
myChannel = (integer)llFrand(DEBUG_CHANNEL) * -1;
     }
     
changed(integer change)
     {
         if(
change CHANGED_OWNER)
         {
             
llResetScript();
         }
     }
     
timer()
     {
         
llSetTimerEvent(0.0);
         
llListenRemove(Handle);
     }
    
link_message(integer sender_numinteger numstring strkey id)
    {
         if (
str == "CHANNELSCANNER"&&id =="MENU")
         {
             
Listen();
             
llSensor(""NULL_KEYSCRIPTED|ACTIVE|PASSIVE96.0PI);
         }
     }
     
sensor(integer num_detected)
     { 
         
names = [];
         
fullname = [];
         
dkey = [];
         
gPos 0;
         
integer i;
         for (
0num_detectedi++)
         {
             
names names llGetSubString(llDetectedName(i),0,23);
             
fullname fullname llDetectedName(i);
             
dkey dkey llDetectedKey(i);
             
pos pos llDetectedPos(i);
             
mass mass llGetObjectMass(llDetectedKey(i));
         }
         
SensorMenu();
     }
     
no_sensor()
     {
         
llOwnerSay("/me >> Nothing detected within "+(string)((integer)Range)+"m ~");
         
llSetTimerEvent(1.0);
     }
     
listen(integer channelstring namekey idstring message)
     {
         if (
llListFindList(MainButtons ListenButtons, [message]) != -1)
         {
             if (
message == "<<Back")
             {
                 
MainMenu();
             }
             else if (
message == "Obj>Scanner")
             {
                 
llSensor(""NULL_KEYSCRIPTED|ACTIVE|PASSIVERangePI);
             }
             else if (
message == "Obj>Listen")
             {
                 
ObjListenMenu();
             } 
             else if (
message == "-ON-")
             {
                 switch=
1;
                 
llSetTimerEvent(0.0);
                 
llListenRemove(Handle);
                 
oListen llListen(0,"",NULL_KEY,"");
                 
OwnerKey llGetOwner();
                 
llListenControloListen,TRUE);
                 
llTriggerSound("2a8c8ac7-7b13-c9bf-cd97-c4019df9ad6a",1.0);
                 
llSetColor(<.7,255,.7>,touchedFace);
                 
llOwnerSay("/me : Object Listen : ON :");
             }
             else if (
message == "-OFF-")
             {
                 switch=
0;
                 
llListenControloListen,FALSE);//~
                 
llListenRemoveoListen);
                 
llTriggerSound("4590600b-b53d-df89-d2b2-33d9e509a795",0.2);
                 
llSetColor(llGetColor(1),touchedFace);
                 
llOwnerSay("/me : Object Listen : OFF :");
             } 
             else if (
message == "HELP")
             {
                 
Help();
             } 
         }
         if (
message == "•>>")
         {   
             
gPos gPos gStride;
             
SensorMenu();
         }
         else if (
message == "<<•")
         {
             
gPos gPos gStride;
             
SensorMenu();
         }
         
integer num llListFindList(names,[message]);
         if(
num != -1)
         {
             
llOwnerSay("\nName == "llList2String(fullname,num)
                 +
"\nKey/UUID == "llList2String(dkey,num)
                 +
"\nPosition == "llList2String(pos,num)
                 +
"\nObject Mass == "llList2String(mass,num));
                 
ObjectOwner llGetOwnerKey(llList2String(dkey,num));
                 
Check llRequestAgentData(ObjectOwner,DATA_NAME);
         }
         else
         {
             
ObjectName name;
             
Message message;
             
ObjectOwner llGetOwnerKey(id);
             if ( 
llGetAgentSize(id) != ZERO_VECTOR ) return;
             
Spam llRequestAgentData(ObjectOwner,DATA_NAME);
         }
     }
     
dataserver(key idstring data)
     {
         if (
id==Spam)
         {
             
llOwnerSay("/me ^^Object Spam Detected^^
 •Owner = " 
+data" •Name of Object = " ObjectName );
             
llSleep(4.0);
         }
         else if(
id == Check)
         {
             
llOwnerSay("/me >> Owner >> " +data);
         }
     }
     
touch_start(integer num_detected)
     {
         
integer i;
         for (
0num_detectedi++)
         {
             
touchedFace llDetectedTouchFace(i);      
             if (
touchedFace == -1)
             {
                 
llOwnerSay("/me >> Sorry, your viewer doesn't support touched faces;");
             }
             else if (
touchedFace == 0)
             {
                 
Listen();
                 
MainMenu();
             }
             else if (
touchedFace == 4)
             {
                 
startChan 1;
                 
llSetColor(llGetColor(0),2);
                 if (Switch == 
FALSE)
                 {
                     Switch = 
TRUE;
                     
On();
                 }
                 else if(Switch == 
TRUE)
                 {
                     Switch = 
FALSE;
                     
Off();
                 }
             }
             else if (
touchedFace == 2)
             {
                 
startChan = -1;
                 
llSetColor(llGetColor(0),4);
                 if (Switch == 
FALSE)
                 {
                     Switch = 
TRUE;
                     
On();
                 }
                 else if (Switch == 
TRUE)
                 {
                     Switch = 
FALSE;
                     
Off();
                 }
             }
         }
     }
 } 

3. Copy/paste this script inside the prim and duplicate it much once than necessary -each copy adds 64 channels-named: buga.. (Bugas,Bugas1,Bugas2,Bugas3,Bugas4,etc..

PHP Code:
integer chanStart;
 
integer firstChan;
 
integer positive;
 
integer chanEnd;
 
integer channel;

 
string thread;

 default
 {
     
state_entry()
     {
         
thread llGetScriptName();
         
integer d llSubStringIndex(thread" ");
         
channel = (integer)llGetSubString(threadd, -1);
     }
     
changed(integer change)
     {
         if(
change CHANGED_OWNER)
         {
             
llResetScript();
         }
     }
     
link_message(integer sender_numinteger numstring strkey id)
     {
         if (
num == channel)
         {
             if (
str == "start")
             {
                 
integer x;
                 
firstChan = (integer)((string)id);
                 if (
firstChan 0)positive TRUE;
                 if (
positive)
                 {
                     
chanStart firstChan + (channel 1) * 64;
                     
chanEnd chanStart 63;
                 }
                 else
                 {
                     
chanStart firstChan - (channel 1) * 64;
                     
chanEnd chanStart 63;
                 }
                 if (
positive)
                 for (
= (chanStart); < (chanEnd 1); ++)
                 {
                     
llListen(x""NULL_KEY"");
                 }
                 else
                 for (
= (chanStart); > (chanEnd 1); --)
                 {
                     
llListen(x""NULL_KEY"");
                 }
             }
             else if(
str == "stop")
             {
                 
llResetScript();
             }
         }
     }
     
listen(integer channelstring namekey idstring message)
     {
         
llOwnerSay("/me ^^Chatter Detected^^
 •Owner = " 
llKey2Name(llGetOwnerKey(id)) + " •Channel = " + (string)channel " •Object Name = " name " •Object Key = " + (string)id "\n •Message = " message);
     }
 } 
[Image: guns-bullet-shirt_recreated.jpg]
Reply




Forum Jump:

1 Guest(s)
Share this:

About Second Life Copybot

Second Life CopyBot Forum is a place where you can get items for Second Life and other vitual worlds for free. With our CopyBot viewers you can export and import any content from these virtual worlds and modify them in 3D software such as Blender, 3D studio Macx etc...