This single prim HUD is just a button that scrolls through nearby players names, photos and user key. Drop it in a prim and touch the prim and you are set to go. Modify it to suit your particular use in another Hud, weapon, or whatever you want.
// Basic Target Scanner HUD
// by Ackley Bing
//
// Drop this in a prim and touch
key HUDtarget;
integer HUDattachpoint=ATTACH_HUD_CENTER_1;
integer senseindex;
key photoReq;
TargetInfo(key id)
{
llSetText(llToLower(llGetDisplayName(id))+"\n"+(string)id, <0.0, 1.0, 0.0>, 1.0);
if ( id!=NULL_KEY )
{
photoReq=llHTTPRequest("http://world.secondlife.com/resident/" + (string)id, [], "");
llOwnerSay("Current Target: secondlife:///app/agent/" + (string)id + "/inspect " + (string)id );
}
else
{
llSetTexture("8dcd4a48-2d37-4909-9f78-f7a9eb4ef903", 0);
llOwnerSay("No Target");
}
}
default
{
state_entry()
{
llRequestPermissions(llGetOwner(), PERMISSION_TAKE_CONTROLS | PERMISSION_ATTACH);
}
attach(key id)
{
if (id)
{
llSetScale(<0.1, 0.15, 0.1>);
llSetPrimitiveParams([PRIM_TYPE, PRIM_TYPE_BOX, PRIM_HOLE_DEFAULT, <0.0, 1.0, 0.0>, 0.0, <0.0, 0.0, 0.0>, <2.0, 0.5, 1.0>, <0.0, 0.0, 0.0>, PRIM_ROT_LOCAL, <0.000000, -0.707107, 0.000000, 0.707107>, PRIM_COLOR, 0, <1.0,1.0,1.0>, 1.0, PRIM_COLOR, 1, <0.0,1.0,0.0>, 1.0, PRIM_COLOR, 3, <0.0,1.0,0.0>, 1.0, PRIM_COLOR, 2, <1.0,1.0,1.0>, 0.0, PRIM_COLOR, 4, <1.0,1.0,1.0>, 0.0]);
llRotateTexture(270.0*DEG_TO_RAD,0);
HUDattachpoint=llGetAttached();
senseindex=0;
llSensor("", "", AGENT, 128, TWO_PI);
}
}
on_rez(integer param)
{
if ( !llGetAttached() ) llRequestPermissions(llGetOwner(),PERMISSION_ATTACH|PERMISSION_TAKE_CONTROLS);
}
touch_start(integer tsn)
{
if ( !llGetAttached() ) llRequestPermissions(llGetOwner(),PERMISSION_ATTACH|PERMISSION_TAKE_CONTROLS);
senseindex=senseindex+(llDetectedTouchFace(0)==1)-(llDetectedTouchFace(0)==3);
llSensor("", "", AGENT, 128, TWO_PI);
}
sensor(integer num)
{
senseindex=((senseindex<0)*(num-1))+((senseindex>=0)*(senseindex*(senseindex!=num)));
HUDtarget=llDetectedKey(senseindex);
TargetInfo(HUDtarget);
}
no_sensor()
{
senseindex=0;
HUDtarget=NULL_KEY;
TargetInfo(HUDtarget);
}
http_response(key request_id, integer status, list metadata, string body)
{
if( request_id == photoReq )
{
string photoID;
integer StartIndex=llSubStringIndex(body,"");
integer EndIndex=llSubStringIndex(body,"");
if( StartIndex!=-1)
{
integer tempIndex=llSubStringIndex(body,"imageid")+18;
if(tempIndex>17)photoID=llGetSubString(body,tempIndex,tempIndex+35);
}
if ( photoID==NULL_KEY || photoID=="" ) photoID="8dcd4a48-2d37-4909-9f78-f7a9eb4ef903";
llSetTexture(photoID, 0);
}
}
run_time_permissions(integer perms)
{
if ( perms & PERMISSION_ATTACH ) llAttachToAvatar(HUDattachpoint);
if ( perms & PERMISSION_TAKE_CONTROLS ) llTakeControls(CONTROL_BACK, FALSE, TRUE); // required to allow script to continue to operate in 'no-script' areas and has to be activated before entering the 'no-script' area.
}
}