You are currently not logged in! Enter your authentication credentials below to log in. You need to have cookies enabled to log in.
This is an old revision of the document!
llTakeControls(integer controls, integer accept, integer pass_on)
Enables the user to use certain control keys or mouse button presses for interacting with a script.
Requires PERMISSION_TAKE_CONTROLS permissions.
A bit mask of CONTROL_* constants
Whether to generate control events for the specified controls. TRUE = generate them; FALSE = don't generate them.
Whether the specified controls should still perform their normal functions (e.g. if CONTROL_FWD is among the controls to take, whether it still moves the avatar forward). TRUE = perform their normal functions too; FALSE = don't perform their normal functions. Note that a value of TRUE is not honoured for CONTROL_ML_LBUTTON
pass_on
is TRUE, when CONTROL_ML_LBUTTON is in the controls, mouse clicks are blocked while in mouselook (SVC-4973, SVC-7532, declared as expected behaviour).// Capture the forward control, but let it still move the avatar forward. llTakeControls(CONTROL_FWD, TRUE, FALSE); // Capture all controls that let the agent move (it can still move when pushed or falling) llTakeControls(CONTROL_FWD|CONTROL_BACK |CONTROL_LEFT|CONTROL_RIGHT |CONTROL_UP|CONTROL_DOWN |CONTROL_ROT_LEFT|CONTROL_ROT_RIGHT , TRUE, FALSE);
This example will report presses of the UP and DOWN controls in chat, after permissions are granted.
default { state_entry() { llRequestPermissions(llGetOwner(), PERMISSION_TAKE_CONTROLS); } run_time_permissions(integer perms) { if (perms & PERMISSION_TAKE_CONTROLS) llTakeControls(CONTROL_UP | CONTROL_DOWN, TRUE, TRUE); } controls(key avatar, integer level, integer edge) { if (level & edge & CONTROL_UP) llOwnerSay("UP pressed"); if (~level & edge & CONTROL_UP) llOwnerSay("UP released"); if (level & edge & CONTROL_DOWN) llOwnerSay("DOWN pressed"); if (~level & edge & CONTROL_DOWN) llOwnerSay("DOWN released"); } }
llReleaseControls
to release controls that were taken with llTakeControls, and also the PERMISSION_TAKE_CONTROLS permissionaccept
parameter is TRUE.llRequestPermissions
, PERMISSION_TAKE_CONTROLS and run_time_permissions are typically needed in scripts that use this function.