Reply
Ackley Bing
Posts: 179
Registered: ‎04-01-2010

Basic Target Scanner HUD

[ Edited ]

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.

<3

Ackley

// 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,"<title>");
            integer EndIndex=llSubStringIndex(body,"</title>");
            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);
    }
}

 

 

Rolig Loon
Posts: 24,942
Registered: ‎10-05-2009

Re: Basic Target Scanner HUD

Reply to Ackley Bing - view message

I suspect that your on_rez event will toss a script error if !llGetAttached() is TRUE.  You haven't requested PERMISSION_ATTACH at that point, so it would be safer to write

if (!llGetAttached())
{
   llRequestPermissions(llGetOwner(),PERMISSION_ATTACH|PERMISSION_TAKE_CONTROLS);
}

 The same thing is likely to be true of the touch_start event too, because there's nothing that forces the script to reset and enter at state_entry when your HUD is rezzed.  Fortunately, the HUD will be attached by the time you can touch it, though, so that's a moot point so long as you request permissions as it's rezzed.

 

Not as dumb as I look
Ackley Bing
Posts: 179
Registered: ‎04-01-2010
0 Kudos

Re: Basic Target Scanner HUD

Reply to Rolig Loon - view message

Thanks again!  You people are like the script forum Heroes of SL.  I Learns you from U many many moons now! 

 

.... edited post to put in working order.  It WAS the bits!! Oh & It IS best to avoid ALL imaginable errors if possible! :smileyhappy:

 

:heart:

Ackley