//
// SHOP ZERO Tips24 ObjectDetector v1.0
//
// Created by Zero2000 Kid 2008/03/21
//
integer input_ch = 33;
integer range=96;
integer handle;
string target;
string simname;
output_info (vector v , string name) {
string pos=(string)v.x + "/" + (string)v.y + "/" + (string)v.z;
llInstantMessage(llGetOwner(),name+"--> secondlife://"+simname+"/"+pos);
}
default {
state_entry(){
handle = llListen(input_ch,"",llGetOwner(),"");
}
on_rez(integer param){
llResetScript();
}
listen(integer ch, string name, key id, string message) {
target=message;
simname=llGetRegionName();
llInstantMessage(llGetOwner(),"Searching " + target + " ....");
state active_target;
}
}
state active_target {
state_entry(){
llInstantMessage(llGetOwner(),"< active_target >");
llSensor(target, NULL_KEY, ACTIVE, range, PI);
}
sensor(integer total_number) {
integer i;
for (i = 0; i < total_number; i++) {
output_info(llDetectedPos(i),llDetectedName(i));
}
state passive_target;
}
no_sensor() {
llInstantMessage(llGetOwner(),"active_target --> Not found.");
state passive_target;
}
}
state passive_target {
state_entry(){
llInstantMessage(llGetOwner(),"< passive_target >");
llSensor(target, NULL_KEY, PASSIVE, range, PI);
}
sensor(integer total_number) {
integer i;
for (i = 0; i < total_number; i++) {
output_info(llDetectedPos(i),llDetectedName(i));
}
state scripted_target;
}
no_sensor() {
llInstantMessage(llGetOwner(),"passive_target --> Not found.");
state scripted_target;
}
}
state scripted_target {
state_entry(){
llInstantMessage(llGetOwner(),"< scripted_target >");
llSensor(target, NULL_KEY, SCRIPTED, range, PI);
}
sensor(integer total_number) {
integer i;
for (i = 0; i < total_number; i++) {
output_info(llDetectedPos(i),llDetectedName(i));
}
llInstantMessage(llGetOwner(),"Searching complete.");
state default;
}
no_sensor() {
llInstantMessage(llGetOwner(),"scripted_target --> Not found.");
llInstantMessage(llGetOwner(),"Searching complete.");
state default;
}
}