Difference between revisions of "Basic Target Scanner HUD"
Jump to navigation
Jump to search
Ackley Bing (talk | contribs) |
Ackley Bing (talk | contribs) |
||
Line 13: | Line 13: | ||
key HUDtarget; | key HUDtarget; | ||
integer HUDattachpoint= | integer HUDattachpoint=ATTACH_HUD_CENTER_1; | ||
integer senseindex; | integer senseindex; | ||
key photoReq; | key photoReq; | ||
Line 90: | Line 90: | ||
run_time_permissions(integer perms) | run_time_permissions(integer perms) | ||
{ | { | ||
if ( perms & PERMISSION_TAKE_CONTROLS ) llTakeControls(CONTROL_BACK, FALSE, TRUE); | if ( perms & (PERMISSION_TAKE_CONTROLS | PERMISSION_ATTACH) ) | ||
{ | |||
llTakeControls(CONTROL_BACK, FALSE, TRUE); | |||
llAttachToAvatar(HUDattachpoint); | |||
} | |||
} | } | ||
} | } | ||
</lsl> | </lsl> |
Revision as of 13:45, 30 November 2012
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
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 Bing
<lsl> // 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()) ) llAttachToAvatar(HUDattachpoint); } touch_start(integer tsn) { if ( !(llGetAttached()) ) llAttachToAvatar(HUDattachpoint); 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_TAKE_CONTROLS | PERMISSION_ATTACH) ) { llTakeControls(CONTROL_BACK, FALSE, TRUE); llAttachToAvatar(HUDattachpoint); } }
} </lsl>