Difference between revisions of "LlGetAgentSize"
Jump to navigation
Jump to search
m (Edited a few scripting errors) |
(It's a great example but at this point in time it's antiquated. Much easier to use llGetObjectDetails, probably should use it instead of llGetAgentSize too but that would spoil all the fun.) |
||
Line 12: | Line 12: | ||
//A simple script that makes a box hover above the owner's head. | //A simple script that makes a box hover above the owner's head. | ||
default { | default { | ||
state_entry(integer i) { | |||
key owner = llGetOwner(); | |||
vector pos = llList2Vector(llGetObjectDetails(owner, [OBJECT_POSITION]),0); | |||
vector agent = llGetAgentSize(owner); | |||
vector | pos.z += 0.5 + agent.z / 2; | ||
vector agent = llGetAgentSize( | llSetPos(pos); | ||
llSetPos( | |||
} | } | ||
touch_start(integer num) | touch_start(integer num) |
Revision as of 07:59, 12 November 2007
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Summary
Function: vector llGetAgentSize( key id );218 | Function ID |
0.0 | Forced Delay |
10.0 | Energy |
Returns a vector that is the size of the requested avatar by id.
• key | id |
The agent id must be in the same region as the requesting object, ZERO_VECTOR is returned if not.
Caveats
Examples
//A simple script that makes a box hover above the owner's head. default { state_entry(integer i) { key owner = llGetOwner(); vector pos = llList2Vector(llGetObjectDetails(owner, [OBJECT_POSITION]),0); vector agent = llGetAgentSize(owner); pos.z += 0.5 + agent.z / 2; llSetPos(pos); } touch_start(integer num) { llResetScript(); } }
Corrected Code, Comments welcomed.
--Mr Lovenkraft 05:49, 12 November 2007 (PST)
//This code was edited by Mr Lovenkraft for errors, comments are below. vector size; default { on_rez(integer i) { llSensor("", llGetOwner(), AGENT, 96, PI); //I reversed the "96" and the "PI" because- } //PI defines the Arc. and 96 Defines the meters. sensor(integer num) //Not the other way around. { vector where = llDetectedPos(0); vector agent = llGetAgentSize(llGetOwner())/2; size += agent + <0,0,.5>; //"size" Has to be defined in some way, I made it a Global llSetPos(where + size); //In order for "size" to effect this code it must be added in } //some way, which is why it says "llSetPos(where + size);" touch_start(integer num) { llResetScript(); } }
Notes
This is a good way to test if an av is in the same region.
See Also
Functions
• | llGetBoundingBox | |||
• | llGetAgentInfo | |||
• | llRequestAgentData |