Difference between revisions of "Basic Target Scanner HUD"
Jump to navigation
Jump to search
Ackley Bing (talk | contribs) |
Ackley Bing (talk | contribs) (2.0) |
||
Line 9: | Line 9: | ||
// Basic Target Scanner HUD | // Basic Target Scanner HUD | ||
// by Ackley Bing | // by Ackley Bing | ||
// | // v.2.0 now using llGetAgentList() instead of sensor(). Added a missing profile photo texture. fixed a lot of issues. | ||
integer index; | |||
key HUDtarget; | key HUDtarget; | ||
key photoReq; | |||
integer HUDattachpoint=ATTACH_HUD_CENTER_1; | integer HUDattachpoint=ATTACH_HUD_CENTER_1; | ||
string missingtexture="8dcd4a48-2d37-4909-9f78-f7a9eb4ef903"; | |||
Target() | |||
{ | { | ||
llSetText(llToLower(llGetDisplayName( | list agents=llGetAgentList(AGENT_LIST_REGION,[]); | ||
integer ownerindex=llListFindList( agents, (list)llGetOwner() ); | |||
integer num_agents; | |||
agents=llDeleteSubList( agents, ownerindex, ownerindex ); | |||
num_agents = llGetListLength(agents); | |||
index=((index<0)*(num_agents-1))+((index>=0)*(index*(index!=num_agents))); | |||
HUDtarget=llList2Key(agents, index); | |||
llSetText(llToLower(llGetDisplayName(HUDtarget))+"\n"+(string)HUDtarget, <0.0, 1.0, 0.0>, 1.0); | |||
photoReq=llHTTPRequest("http://world.secondlife.com/resident/" + (string)HUDtarget, [], ""); | |||
llOwnerSay("("+(string)index+"/"+(string)(num_agents-1) +") Current Target: secondlife:///app/agent/" + (string)HUDtarget + "/inspect " + (string)HUDtarget ); | |||
} | } | ||
default | default | ||
{ | { | ||
state_entry() | state_entry() | ||
{ | { | ||
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); | |||
Target(); | |||
} | } | ||
attach(key id) | attach(key id) | ||
Line 42: | Line 42: | ||
if (id) | if (id) | ||
{ | { | ||
HUDattachpoint=llGetAttached(); | HUDattachpoint=llGetAttached(); | ||
Target(); | |||
llRequestPermissions(llGetOwner(), PERMISSION_TAKE_CONTROLS); | |||
} | } | ||
} | } | ||
on_rez(integer param) | on_rez(integer param) | ||
{ | { | ||
if ( !llGetAttached() ) | if ( !llGetAttached() ) | ||
{ | |||
index=0; | |||
HUDtarget=NULL_KEY; | |||
llSetText("", <0.0, 1.0, 0.0>, 1.0); | |||
llSetTexture(missingtexture, 0); | |||
llRequestPermissions(llGetOwner(),PERMISSION_ATTACH); | |||
} | |||
} | } | ||
touch_start(integer n) | |||
{ | { | ||
index=index+(llDetectedTouchFace(0)==1)-(llDetectedTouchFace(0)==3); | |||
Target(); | |||
} | } | ||
http_response(key request_id, integer status, list metadata, string body) | http_response(key request_id, integer status, list metadata, string body) | ||
Line 84: | Line 75: | ||
if(tempIndex>17)photoID=llGetSubString(body,tempIndex,tempIndex+35); | if(tempIndex>17)photoID=llGetSubString(body,tempIndex,tempIndex+35); | ||
} | } | ||
if ( photoID==NULL_KEY || photoID=="" ) photoID= | if ( photoID==NULL_KEY || photoID=="" ) photoID=missingtexture; | ||
llSetTexture(photoID, 0); | llSetTexture(photoID, 0); | ||
} | } | ||
Line 91: | Line 82: | ||
{ | { | ||
if ( perms & PERMISSION_ATTACH ) llAttachToAvatar(HUDattachpoint); | if ( perms & PERMISSION_ATTACH ) llAttachToAvatar(HUDattachpoint); | ||
if ( perms & PERMISSION_TAKE_CONTROLS ) llTakeControls(CONTROL_BACK, FALSE, TRUE); | if ( perms & PERMISSION_TAKE_CONTROLS ) llTakeControls(CONTROL_BACK, FALSE, TRUE); | ||
} | } | ||
} | } | ||
</lsl> | </lsl> |
Revision as of 18:18, 22 September 2014
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 // v.2.0 now using llGetAgentList() instead of sensor(). Added a missing profile photo texture. fixed a lot of issues.
integer index; key HUDtarget; key photoReq; integer HUDattachpoint=ATTACH_HUD_CENTER_1; string missingtexture="8dcd4a48-2d37-4909-9f78-f7a9eb4ef903"; Target() {
list agents=llGetAgentList(AGENT_LIST_REGION,[]); integer ownerindex=llListFindList( agents, (list)llGetOwner() ); integer num_agents; agents=llDeleteSubList( agents, ownerindex, ownerindex ); num_agents = llGetListLength(agents); index=((index<0)*(num_agents-1))+((index>=0)*(index*(index!=num_agents))); HUDtarget=llList2Key(agents, index); llSetText(llToLower(llGetDisplayName(HUDtarget))+"\n"+(string)HUDtarget, <0.0, 1.0, 0.0>, 1.0); photoReq=llHTTPRequest("http://world.secondlife.com/resident/" + (string)HUDtarget, [], ""); llOwnerSay("("+(string)index+"/"+(string)(num_agents-1) +") Current Target: secondlife:///app/agent/" + (string)HUDtarget + "/inspect " + (string)HUDtarget );
} default {
state_entry() { 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); Target(); } attach(key id) { if (id) { HUDattachpoint=llGetAttached(); Target(); llRequestPermissions(llGetOwner(), PERMISSION_TAKE_CONTROLS); } } on_rez(integer param) { if ( !llGetAttached() ) { index=0; HUDtarget=NULL_KEY; llSetText("", <0.0, 1.0, 0.0>, 1.0); llSetTexture(missingtexture, 0); llRequestPermissions(llGetOwner(),PERMISSION_ATTACH); } } touch_start(integer n) { index=index+(llDetectedTouchFace(0)==1)-(llDetectedTouchFace(0)==3); Target(); } 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=missingtexture; llSetTexture(photoID, 0); } } run_time_permissions(integer perms) { if ( perms & PERMISSION_ATTACH ) llAttachToAvatar(HUDattachpoint); if ( perms & PERMISSION_TAKE_CONTROLS ) llTakeControls(CONTROL_BACK, FALSE, TRUE); }
} </lsl>