Difference between revisions of "Aim Detection"
Jump to navigation
Jump to search
Kireji Haiku (talk | contribs) m (some readability improvements) |
(needed to change 'while (++i < n);' to 'while (++i < num_detected)') |
||
Line 35: | Line 35: | ||
} | } | ||
} | } | ||
while (++i < | while (++i < num_detected); | ||
llSetText(llDumpList2String(output, "\n"), <1.0, 1.0, 1.0>, (float)TRUE); | llSetText(llDumpList2String(output, "\n"), <1.0, 1.0, 1.0>, (float)TRUE); |
Revision as of 01:29, 18 February 2013
This script detects who's aiming at you.
<lsl> //This script was designed by Han Shuffle AKA MichaelRyan Allen AKA Dugley Reanimator //Cleaned up a bit by another resident. //Cleaned up some more by another resident.
default {
state_entry() { // black and transparent floattext llSetText("", ZERO_VECTOR, (float)FALSE);
llSensorRepeat("", "", AGENT_BY_LEGACY_NAME, 90, PI, 0.1); }
sensor(integer num_detected) { list output;
integer i; do { key agentKey = llDetectedKey(i); string agentName = llDetectedName(i); vector agentPosition = llDetectedPos(i); rotation agentRotation = llDetectedRot(i); vector ownPosition = llGetPos();
if (llGetAgentInfo(agentKey) & AGENT_MOUSELOOK) { if (llVecDist(ownPosition, agentPosition+llRot2Fwd(agentRotation)*llVecDist(ownPosition,agentPosition)) < 1.5) output += [agentName]; } } while (++i < num_detected);
llSetText(llDumpList2String(output, "\n"), <1.0, 1.0, 1.0>, (float)TRUE); }
} </lsl>