Difference between revisions of "Control/fr"

From Second Life Wiki
Jump to navigation Jump to search
m (updated)
m (better translation of "edge" and various minor fixes)
 
(One intermediate revision by the same user not shown)
Line 2: Line 2:
|event_id=15|event_delay=0.05|event=control
|event_id=15|event_delay=0.05|event=control
|p1_type=key|p1_name=id|p1_desc
|p1_type=key|p1_name=id|p1_desc
|p2_type=integer|p2_name=niveau|p2_desc=bit du code CONTROL_*, non nul tant qu'au moins une touche est enfoncée.
|p2_type=integer|p2_name=niveau|p2_desc=ensemble de bits CONTROL_*, non nul tant qu'au moins une touche est enfoncée.
|p3_type=integer|p3_name=limite|p3_desc=bit du code CONTROL_*, non nul si au moins une touche a été préssée ou relachée.
|p3_type=integer|p3_name=front|p3_desc=ensemble de bits CONTROL_*, non nul si au moins une touche a été appuyée ou relâchée (front descendant ou montant).
|event_desc=Evènement déclenché par [[llTakeControls/fr|llTakeControls]] et par les actions de l'utilisateurs.
|event_desc=Évènement déclenché par [[llTakeControls/fr|llTakeControls]] et par les actions de l'utilisateur.
|constants={{LSL Constants/Controls/fr}}
|constants={{LSL Constants/Controls/fr}}
|spec
|spec
Line 30: Line 30:
                             CONTROL_LBUTTON |
                             CONTROL_LBUTTON |
                             CONTROL_ML_LBUTTON |
                             CONTROL_ML_LBUTTON |
                             0, TRUE, TRUE);
                             0, TRUE, TRUE); // Le 0 est là pour présenter plus joliment
         }
         }
     }
     }
     control(key id, integer niveau, integer limite)
     control(key id, integer niveau, integer front)
     {
     {
         integer début= niveau & limite;
         integer debut= niveau & front;
         integer fin = ~niveau & limite;
         integer fin = ~niveau & front;
         integer pression = niveau & ~limite;
         integer pression = niveau & ~front;
         integer relachement = ~(niveau | limite);
         integer relachement = ~(niveau | front);
         llOwnerSay(llList2CSV([niveau, limite, début, fin, pression, relachement]));
         llOwnerSay(llList2CSV([niveau, front, debut, fin, pression, relachement]));
     }
     }
}
}
Line 45: Line 45:
|helpers
|helpers
|also_header
|also_header
|also_events={{LSL DefineRow||[[run_time_permissions/fr|run_time_permissions]]|Evènement de gestion des droits}}
|also_events={{LSL DefineRow||[[run_time_permissions/fr|run_time_permissions]]|Évènement de gestion des droits}}
|also_functions={{LSL DefineRow||[[llTakeControls/fr|llTakeControls]]|Permet de détecter les mouvements d'un avatar}}
|also_functions={{LSL DefineRow||[[llTakeControls/fr|llTakeControls]]|Permet de détecter les mouvements d'un avatar}}
{{LSL DefineRow||[[llReleaseControls/Fr|llReleaseControls]]|Permet d'arrêter la détection de mouvements}}
{{LSL DefineRow||[[llReleaseControls/Fr|llReleaseControls]]|Permet d'arrêter la détection de mouvements}}
Line 54: Line 54:
|notes=L'utilisation sur un attachement de [[llGetRot/fr|llGetRot]] en [[mouselook/fr|vue subjective]] renvoie l'angle de vue de l'avatar.
|notes=L'utilisation sur un attachement de [[llGetRot/fr|llGetRot]] en [[mouselook/fr|vue subjective]] renvoie l'angle de vue de l'avatar.


Si le délai (d'occurrence) de cet évènement est doublé (à l'aide de [[llMinEventDelay/fr|llMinEventDelay]]), alors cet évènement sera traité avec un délai divisé par deux. Cet évènement peut donc se déclencher deux fois plus souvent que les autres évènements si le délai minimal de [[llMinEventDelay/fr|llMinEventDelay]] est plus grand que 0.1.
Si le délai (d'occurrence) entre deux évènements est doublé (à l'aide de [[llMinEventDelay/fr|llMinEventDelay]]), alors cet évènement sera traité avec un délai divisé par deux. Cet évènement peut donc se déclencher deux fois plus souvent que les autres évènements si le délai minimal de [[llMinEventDelay/fr|llMinEventDelay]] est plus grand que 0.1.


Des tests ont déterminé que la clé renvoyée n'est pas la clé de l'agent contrôlé, mais celle de l'objet du propriétaire.
Des tests ont déterminé que la clé renvoyée n'est pas la clé de l'agent contrôlé, mais celle de l'objet du propriétaire.

Latest revision as of 00:56, 14 March 2010

Description

! Event: control( key id, integer niveau, integer front ){ ; }
15 Event ID
0.05 Delais

Évènement déclenché par llTakeControls et par les actions de l'utilisateur.

• key id
• integer niveau ensemble de bits CONTROL_*, non nul tant qu'au moins une touche est enfoncée.
• integer front ensemble de bits CONTROL_*, non nul si au moins une touche a été appuyée ou relâchée (front descendant ou montant).
Constantes Valeurs Descriptions
CONTROL_FWD 0x00000001 Déplacement vers l'avant ( ou W)
CONTROL_BACK 0x00000002 Déplacement vers l'arrière ( ou S)
CONTROL_LEFT 0x00000004 Déplacement vers la gauche (⇧ Maj- ou ⇧ Maj-A [ ou A en vue subjective])
CONTROL_RIGHT 0x00000008 Déplacement vers la droite (⇧ Maj- ou ⇧ Maj-D [ ou D en vue subjective])
CONTROL_ROT_LEFT 0x00000100 Rotation vers la gauche ( ou A)
CONTROL_ROT_RIGHT 0x00000200 Rotation vers la droite ( ou D)
CONTROL_UP 0x00000010 Déplacement vers le haut (PgUp ou E)
CONTROL_DOWN 0x00000020 Déplacement vers le bas (PgDn ou C)
CONTROL_LBUTTON 0x10000000 Bouton gauche de la souris
CONTROL_ML_LBUTTON 0x40000000 Bouton gauche de la souris en vue subjective

Exemples

<lsl> default {

   state_entry()
   {
       llRequestPermissions(llGetOwner(), PERMISSION_TAKE_CONTROLS);
   }
   run_time_permissions(integer perm)
   {
       if(PERMISSION_TAKE_CONTROLS & perm)
       {
           llTakeControls(
                           CONTROL_FWD

Notes

L'utilisation sur un attachement de llGetRot en vue subjective renvoie l'angle de vue de l'avatar.

Si le délai (d'occurrence) entre deux évènements est doublé (à l'aide de llMinEventDelay), alors cet évènement sera traité avec un délai divisé par deux. Cet évènement peut donc se déclencher deux fois plus souvent que les autres évènements si le délai minimal de llMinEventDelay est plus grand que 0.1.

Des tests ont déterminé que la clé renvoyée n'est pas la clé de l'agent contrôlé, mais celle de l'objet du propriétaire. Si plus d'un script est utilisé dans un même objet pour suivre en simultané plusieurs avatars (1 droit/script), l'évènement peut être déclenché dans les différents scripts, mais il n'y a aucun moyen de savoir quel agent a déclenché l'évènement. Cette anomalie est suivie dans la fiche SVC-476.

Voir aussi

Evénements

•  run_time_permissions Évènement de gestion des droits

Fonctions

•  llTakeControls Permet de détecter les mouvements d'un avatar
•  llReleaseControls Permet d'arrêter la détection de mouvements
•  llRequestPermissions Permet de demander des droits

Notes complémentaires

Problèmes

   L'évènement Control renvoie la clé du propriétaire du script au lieu de celle de l'agent ayant lancé l'évènement.
Vous cherchez encore des informations ? Peut-être cette page du LSLwiki pourra vous renseigner.