Detecter quand on s'assoit...

Répondre
Partager Rechercher
Salut,
Alors ma question est simple, existe-t-il un évènement permettant d'effectuer une action quand on s'assoit sur l'objet (genre touch_start), ou il fait passer par un moyen plus compliqué ?
merci !

Pendant que j'y suis, j'ai une autre question sûrement un peu plus compliquée
Comment faire pour qu'un objet
1)Detecte la présence d'un joueur (dans un rayon déterminé si possible),
2)Se tourne automatiquement vers sa direction,
3)Dés que le joueur bouge, l'objet "s'oriente" automatiquement
4)Et si il y a plusieurs personnes, qu'il se tourne vers la première entrée dans le rayon.
5)Et aussi, si c'est possible, que l'objet s'oriente aussi si le joueur saute ou vol (axe Z je crois)
Merci beaucoup, si vous y arrivez, vous êtes fort !
oui, l'événement changed, la doc >> ici <<

ensuite, tu as le choix, une relativement lourde avec un sensor et un timer, une autre plus légère avec llDetectVolume().

Mais ça dépend de ton objet, de l'environnement, de la distance de détection...
bon, un code squelette pour la fonction assis / se lever:
Code:
vector pos = <0.0, 0.0, 0.5>; // position de l'avatar assis par rapport au centre du prim, ne pas mettre 0,0,0
float frX; // rotation de l'avatar assis autour de l'axe X en degre
float frY; // rotation de l'avatar assis autour de l'axe Y en degre
float frZ; // rotation de l'avatar assis autour de l'axe Z en degre
// pas touche
key agentOld = NULL_KEY;
key agentNew = NULL_KEY;

default {
    state_entry() {
        rotation rX = llAxisAngle2Rot( <1,0,0>, frX * DEG_TO_RAD);
        rotation rY = llAxisAngle2Rot( <0,1,0>, frY * DEG_TO_RAD);
        rotation rZ = llAxisAngle2Rot( <0,0,1>, frZ * DEG_TO_RAD);
        rotation r = rX * rY * rZ;
        llSitTarget(pos, r);
        llSetSitText( "Pose." ); }

    changed(integer change) {
        if (change & CHANGED_LINK) {
            agentNew = llAvatarOnSitTarget();
            if ( agentOld == NULL_KEY && agentNew != NULL_KEY ) {
                // Code si un avatar s'assied sur le prim
                ; }
            else if ( agentOld != NULL_KEY && agentNew == NULL_KEY) {
                // Code si l'avatar se leve
                llResetScript(); } } } }
Si ça te suffit pas... pose des questions précises
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés