
llAttachToAvatar
Esta función adjunta el objeto al avatar que ha concedido el permiso al script.
El objeto es tomado del inventario del usuario y adjuntado a un punto determinado attach_point.
Su forma es la siguiente:
llAttachToAvatar( integer attach_point );
Para que esta función se ejecute, sl script debe tener el permiso PERMISSION_ATTACH con la función llRequestPermission y debe ser concedido por el dueño. Si la variable attach_point es 0, el objeto se adjunta al ultimo attach_point adjuntado.
En la siguiente tabla podemos ver cada attach_point:
Siempre se debe utilizar el evento run_time_permissions para los permisos
Si el permiso PERMISSION_ATTACH no viene, el script gritara un error en el canal DEBUG_CHANNEL y la operación fallara, pero el script seguira ejecutandose.
Si PERMISSION_ATTACH es concedido por alguien que no sea el dueño, cuando se llame a la función, un error se gritará en DEBUG_CHANNEL.
Una vez el permiso PERMISSION_ATTACH es concedido, no hay manera de anularlo sino es desde dentro del script. Por ejemplo, llamando un nuevo llRequestPermissions o reseteando o borrando el script.
En el pasado, cuando el attach_point estaba ocupado y se adjuntaba un nuevo objeto, el objeto que estaba en el attach_point ocupado se despegaba y el nuevo ocupaba su lugar. Hoy en dia, los multiples attach_point son posibles.
Si el attach_point es 0, pero el objeto nunca habia sido adjuntado antes, por defecto, se adjunta a la mano derecha (ATTACH_RHAND).
Ejemplo:
En este ejemplo, el objeto que contiene el script, se adjunta a la mano izquierda del dueño, si el dueño concede el permiso.
En el evento de entrada state_entry pide permisos para adjuntar con la funcion llRequestPermissions y constante PERMISSION_ATTACH al dueño, el cual detecta con la función llGetOwner. Tras la llamada de la función se ejecuta el evento run_time_permission, donde si el permiso es aceptado por el dueño, adjunta el objeto a la mano izquierda del dueño con la función llAttachToAvatar y la constante ATTACH_LHAND.
Si el permiso es denegado, le envía al dueño el mensaje: Permiso para adjuntar denegado.
Con la la llamada de llAttachToAvatar el evento attach es ejecutado.
En ella, si la key es verdadera (ha sido adjuntado), le envia al dueño el mensaje: El objeto ha sido adjuntado a.... (el nombre del dueño, se consigue tras convertir el key id pasado a nombre con la función llKey2Name).
Si la key no es verdadera, quiere decir que no ha sido adjuntado, por tanto le envia al dueño el mensaje: El objeto no ha sido adjuntado.
En el evento on_rez, ejecutado cuando se rezzea el objeto al mundo, se resetea el script con la función llResetScript, si no ha sido adjuntado if (!llGetAttached()).
Eventos relacionados:
• run_time_permissions–Permission receiving event
• attach
Funciones relacionados:
• llGetPermissions
• llGetPermissionsKey
• llRequestPermissions
• llAttachToAvatarTemp
• llDetachFromAvatar
• llGetAttached


