llGetAgentSize
Revision as of 07:59, 12 November 2007 by Strife Onizuka (talk | contribs) (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.)
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 |