
CODE
// State Based Land Ownership Scanner
// by Kristian Ming
// public domain: do what thou wilt shall be the whole of the law
key landowner;
key queryid;
integer timeout = 10;
integer num_detected;
string data;
default {
state_entry () {
state idle;
}
}
state idle {
state_entry () {
llSetText("Ready.\nTouch to Scan.", <0,1,0>, 1.0);
}
touch_start (integer num_detected) {
landowner = llGetLandOwnerAt(llGetPos());
if (landowner == NULL_KEY) {
llSay(0,"This land is public! Act fast!");
} else {
llRequestAgentData(landowner, DATA_NAME);
llSay(0, "Querying dataserver for Avatar name...");
state scanning;
}
}
dataserver (key queryid, string data) {
llSay(0, "Dataserver event triggered when I wasn't expecting one.");
}
}
state scanning {
state_entry () {
llSetText("Scanning...\nTouch to cancel.", <1,0,0>, 1.0);
llSetTimerEvent(timeout);
}
touch_start (integer num_detected) {
llSay(0, "Scan Cancelled.");
llSetTimerEvent(0);
state idle;
}
dataserver (key queryid, string data) {
llSay(0, "Land is owned by: " + data);
llSetTimerEvent(0);
state idle;
}
timer () {
llSay(0, "Dataserver event timeout. Land may be group owned.");
llSetTimerEvent(0);
state idle;
}
}