Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Object finder system or scripts

Nika Talaj
now you see her ...
Join date: 2 Jan 2007
Posts: 5,449
04-18-2008 12:53
I went to SLX, couldn't find this.

Here's the problem: Sometimes when you look in your land menu, you see objects owned by a friend. You highlight them, but don't see them. Did your friend leave a gift? Did his jetski get lodged in your land somewhere? Where are these things? It's a friend, so you don't want to just delete or return them.

I want to be able to put in place a bunch of scanners that work together to make a list of objects that are not mine, with the owners name and the location. The number of scanners required would presumably be dictated by the number of objects in a given area, which is ok. The list may be long --- it would be ok if it only produced it when I asked, or if it kept it in a server somewhere.

Anyone already have something that would help with the problem?

Yes, I know of the object scanners that you wear. I'm kind of hoping for a system that I can just put in place on my land, instead, and get total coverage.
.
CCTV Giant
Registered User
Join date: 2 Nov 2006
Posts: 469
04-18-2008 13:53
Actually you can see them Nika - if you go to the bottom menu, hit refresh and then highlight their name -- -they will be outlined in wireframe. Hope that helps. Cheers
Nika Talaj
now you see her ...
Join date: 2 Jan 2007
Posts: 5,449
04-18-2008 14:09
From: CCTV Giant
Actually you can see them Nika - if you go to the bottom menu, hit refresh and then highlight their name -- -they will be outlined in wireframe. Hope that helps. Cheers
Thanks CCTV, I know that. But unfortunately, then you have to look EVERYWHERE on your parcel to see them, including the entire sky! And, if they are small enough, LOD will not render them if they are a distance from your avatar (not your camera, your avatar!).

It would be sooooo nice to just have a list, with location.
.
Zolen Giano
Free the Shmeats!
Join date: 31 Dec 2007
Posts: 146
04-18-2008 16:16
That sounds cool. I'm still looking for my elevator..I know it's out there somehwere...
Winter Ventura
Eclectic Randomness
Join date: 18 Jul 2006
Posts: 2,579
04-21-2008 00:58
the MAIN issue with something like this, is the strict limits on sensors.

Sensors can only detect the 16 nearest objects, avatars, etc. this means, literally, what you'd need to do, is make a single sensor, that moves through the land, in a search pattern. If you gave it criteria like : if (llGetOwnerKey(llDetectedKey(0)) == friend's key) then it could slowly, and methodically plod through your land, moving perhaps .5m at a time.. and reporting back it's findings via IM or email or something.

like I said, the problem is, you can't filter a search BY owner, you have to filter the RESULTS of the search by owner. And again, only the 16 nearest objects to the sensor will be reported. So if you had 16 unlinked prims forming a wall, and a prim of your friend's behind that wall, the sensor might not even SEE that prim.. so you have to keep it moving, and rescanning.

with the new build height being 4096m, and the fact that you can't SCRIPT a prim to move below the ground... a search like this could take hours and hours... and might still miss a few things.

if you have access to the estate tools, you might get lucky if the item is scripted. You can do a "top scripts" search and hope that your friend's name shows up.

It's conceivable that something might be doable with a custom SL client.. but I wouldn't have a clue where to even begin building it.

Your best advice is to ask your friend if it's safe to return their prims..

Worst case scenario... here's a modified version of Argent's "Detect My Stuff" script. Put it in a prim, and wear it, and fly around your land.. it's not super fast at scanning.. but it's been useful, particularly in open areas.

CODE

key myfriend = "";

// insert your friend's key in the quotes above.
// use < http://w-hat.com/name2key > to find your friend's key.

// This Script is distributed under the terms of the modified BSD license, reproduced at the end
// of the script. The license and acknowledgments listed must be included in some fashion if
// this script is redistributed in a non-readable or non-modifiable form.


list objects;
integer next;
list particle_system;
integer active = -1;
float last_sensed;
list new_objects;

key last_closest_object;
float last_closest_distance;

display(integer next_active, integer force)
{
float now = llGetTime();
if(last_sensed > now) last_sensed = 0.0;
if(next_active == 0)
{
if(active >= 0 && last_sensed > now - 5.0)
{
return;
}
}
else
{
last_sensed = now;
if(force) llSetTimerEvent(0.01);
}
if(active == next_active) return;
active = next_active;
if(active == 0)
{
llSetColor(<0.5,0.5,0.5>,ALL_SIDES);
llSetText("",<0,0,0>,0);
llSetTimerEvent(0);
llParticleSystem([]);
llSetPrimitiveParams([PRIM_FULLBRIGHT,ALL_SIDES,0]);
last_closest_object = NULL_KEY;
last_closest_distance = 96.0;
}
else
{
llSetColor(<1,1,1>,ALL_SIDES);
llSetTimerEvent(0.01);
llSetPrimitiveParams([PRIM_FULLBRIGHT,ALL_SIDES,1]);
}
}

default
{
state_entry()
{
// Have to put it here because LSL doesn't do constant folding, so you can't have constant
// expressions at the global level.
particle_system = [
PSYS_PART_FLAGS,0
|PSYS_PART_EMISSIVE_MASK
|PSYS_PART_TARGET_POS_MASK
|PSYS_PART_TARGET_LINEAR_MASK
|PSYS_PART_FOLLOW_VELOCITY_MASK
|PSYS_PART_INTERP_SCALE_MASK,
PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_DROP,
PSYS_SRC_TEXTURE, "1d8d76a1-c9bb-1be8-7fb2-de3e8009044c",
PSYS_PART_START_COLOR, <1.0,0.0,1.0>,
PSYS_PART_START_SCALE, <0.1,0.1,0>,
PSYS_PART_END_SCALE, <0.1,0.1,0.0>,
PSYS_SRC_BURST_PART_COUNT,10,
PSYS_SRC_BURST_RATE,0.0,
PSYS_PART_MAX_AGE,10.0
];
display(0, 0);
//llSensor("", "", ACTIVE|PASSIVE, 96, PI);
llSensorRepeat("", "", ACTIVE|PASSIVE, 96, PI, 1);
}

on_rez(integer p)
{
llResetScript();
}

sensor(integer total_number)
{
integer i;
integer force = 0;

// There's a bug in llSensorRepeat ... sometimes it returns the NEXT 16 objects not
// the FIRST 16 objects. This would be useful if it was reliable, but it's not, so
// it's not good sense to rely on it. So... if the closest object is further away
// then what we saw last time, it's not a good_sense, so ignore this scan. This will
// produce a slight delay if the closest object is deleted of the sensor is moving,
// but shouldn't be noticable unless you're doing something like using this as a HUD.
//
// If you are, and you come up with better code to work around this, send me a copy.
//
// Apologies for the pun, it wasn't avoidable.

key closest_object = llDetectedKey(0);
float closest_distance = llVecDist(llGetPos(), llDetectedPos(0));
integer good_sense = FALSE;

if(closest_object == NULL_KEY)
good_sense = TRUE;
else if(closest_object == last_closest_object)
good_sense = TRUE;
else if(closest_distance < last_closest_distance)
good_sense = TRUE;
last_closest_object = closest_object;
last_closest_distance = closest_distance;
if(!good_sense)
return;

list new_objects = [];
integer offset = 0;
for(i = 0; i < total_number; i++)
{
key id = llDetectedKey(i);
if(llGetOwnerKey(id) == myfriend)
{
if(!force && llList2Key(objects, offset) != id)
{
force = 1;
next = offset;
}
new_objects += [id,llDetectedName(i),llDetectedPos(i)];
offset += 3;
}
}

objects = new_objects;
display(offset != 0, force);
new_objects = [];
}

no_sensor()
{
llOwnerSay("Sensed Nothing");
display(0, 0);
}

timer()
{
integer n = llGetListLength(objects);
if(!n)
{
display(0, 0);
return;
}
if(next >= n) next = 0;
llSetTimerEvent(5);
key id = llList2Key(objects, next);
string name = llList2Key(objects,next+1);
string pos = (string) llList2Vector(objects,next+2);
string total = (string) (n / 3);
string num = (string) (next / 3 + 1);
next+=3;

llParticleSystem(particle_system + [PSYS_SRC_TARGET_KEY,id]);
llSetText(num+"/"+total+": "+name+"\n"+pos+"\n \n \n \n \n",<1,1,1>,1);
}
}


//Copyright (c) 2006, Argent Stonecutter & player
//All rights reserved.
//
//Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
//
// * Redistributions in modifiable form must retain the above copyright notice, this list of conditions and the following disclaimer.
// * Redistributions in non-modifiable form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
// * Neither the name of Argent Stonecutter nor his player may be used to endorse or promote products derived from this software without specific prior written permission.
//
//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

_____________________

● Inworld Store: http://slurl.eclectic-randomness.com
● Website: http://www.eclectic-randomness.com
● Twitter: @WinterVentura
Nika Talaj
now you see her ...
Join date: 2 Jan 2007
Posts: 5,449
04-21-2008 08:59
Thanks, Winter! I was thinking about this in the shower and thought about making a scripted object that would look around for the stuff, and pairing it with an offline script to sort etc.. But you're right, it would be hopelessly tedious, and the sensor limitations mean that it would ALWAYS miss things. I bet that it would miss my friend's 6 prims dropped next to my Prim Finder (75 prims!).

Well, at least now I know that I'm not missing out on someone's cool gadget that everyone else has!
.
Bhakta Thor
Escape from RL
Join date: 31 Jan 2008
Posts: 291
FInding Objects - me too
09-08-2008 10:25
From: Nika Talaj
Thanks CCTV, I know that. But unfortunately, then you have to look EVERYWHERE on your parcel to see them, including the entire sky! And, if they are small enough, LOD will not render them if they are a distance from your avatar (not your camera, your avatar!).

It would be sooooo nice to just have a list, with location.
.



I was a little disappointed to see the excellent answer to this problem, it seems hard to do. But, this is exactly the problem I am having. Every day, somehow, my neighbor is dropping 1 or 2 prims onto my property. I have no idea what it might be but I would love to find it. I always return it, but it could be anywhere. I have somewhere near 8,000 M on this spot and I cant look everywhere for this prim.
Bhakta
Mandy Medusa
Registered User
Join date: 21 Jan 2007
Posts: 118
09-08-2008 14:47
I agree that its virtually impossible to guarantee that all prims will be located due to the 16 objects limitations.

I DID however adapt one of my simscanners (that look for avatars) to look for objects.

I quickly realized that the normal roving sensor couldnt cope with the possibility of dense concentrations of objects so I did two things:

1 I made it move smaller distances between scans
2 I used a 90 degree cone in scanning.... turning the sensor 6 times in order to do a normal full scan.

Solution two uppped the number of objects that can theoretically be found (sensing from one location) to 96.

I did some testing and surprisingly discovered that this configuration covers most of the real world situations. (real world? Did I just say that? I meant virtual real world of course:)

The scanner isnt finished yet, so its not a for sale product.....but I might become one.
Bhakta Thor
Escape from RL
Join date: 31 Jan 2008
Posts: 291
09-11-2008 09:48
From: Bhakta Thor
Every day, somehow, my neighbor is dropping 1 or 2 prims onto my property. I have no idea what it might be but I would love to find it. I always return it, but it could be anywhere. I have somewhere near 8,000 M on this spot and I cant look everywhere for this prim.
Bhakta


I found it, or at least it finally showed up on my scanner as an object called Seeker. I can not find the actual object and as soon as i delete it, it returns. Does anyone know what a 'seeker' is?

Thx
BT
Cheyenne Palisades
Registered User
Join date: 28 Oct 2006
Posts: 17
Conover Prim-Finder Gadget
09-11-2008 14:40
I was excstatic to find a great prim-finder by Thomas Conover. It will seach within 96 meters or a whole sim, and highlights found objects by owner name. You can generate a laser that points to it and sit on a chair that will take you right to the object. It's wonderful!