Object Detector

Written by: Headmaster
//
//    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;
    }
 
}

 

Category: