probleme de deplacement + clique

Répondre
Partager Rechercher
bonjour , je suis entrain de réaliser un petit effect sympathique mais je coince :s

je m'explique ; je voudrai créer un bouton que quand on click desus , 3 anneau dans le sol se lève autour de soi, et qui me tp a x metre au desus.

jai réaliser se script pour les anneaux :

float hauteur; // hauteur du déplacement
default
{
state_entry()
{
vector dimensions = llGetScale(); // dimensions de la porte
hauteur = dimensions.z - (dimensions.z / 10); // détermination de la largeur du déplacement
llListen(-99, "", NULL_KEY, "action");
}
listen(integer channel, string name, key id, string message) // Ouverture de la porte
{
vector position = llGetPos(); // position de départ
llSetPos(position + <0,0, hauteur>); // translation
llSetTimerEvent(10); // On laisse ouvert 10 secondes
}
timer() // fermeture de la porte
{
vector position = llGetPos(); // position de départ
llSetPos(position + <0,0, -hauteur>); // translation
llResetScript();
}




}

pour le bouton : jai mis ce script :

integer a = 10;

default
{
state_entry()
{
vector position = llGetPos();
for (A = 0 ; a < 10 ; A = A + 2)
{
llSetPos(position + <1,1,1>);
llSetPrimitiveParams ([PRIM_SIZE, llGetScale()+<1,1,1>]);
}

}


deja la , j'ai un problème ... tout marche bien ...sauf que si l'on reclick sur le bouton avant la fin du timer ... les anneau monte monte et ne reste plus a leur place d'origine ... tres embetant cela !

et pour finir , pour le tp , je me suis basé sur le tutos pour les pose balle qui suit :

default
{
state_entry()
{
// cette instruction prend deux paramètres un vector et une rotation
// le vecteur est la position d'assise par rapport au centre géométrique
// la rotation ici nule, indique la rotation de l'avatar par rapport à l'objet
llSitTarget(<0.0,0.0,10.0>, ZERO_ROTATION);
llSetSitText("teleport"); // permet juste de remplacer "sit" par "teleport"
}
changed(integer change)
{
// llAvatarOnSitTarget permet d'obtenir la clef de l'avatar assis sur l'objet.
key av=llAvatarOnSitTarget();

// llUnSit permet de faire se lever un avatar, mais il faut préciser sa clef
// dans notre cas l'avatar assis
llUnSit(av);
}
}


que j'ai insérer dans le bouton ...


le problème est que mon personnage se "sit" sur le bouton et et envoyer bien a 10 metre ..mais moi je voudrais que de sa position ou il se situt ... il se tp ... jai essayer divers variable mais ... me sui perdu dans les script !


jai essayer aussi avec des tutos pour réalisés un dialbox pour qui se tp a divers hauteur mais la .... me suis mis a taper sur l'écran ^^






donc pour faire simple :


je voudrais savoir se que j'ai oublier dans l'évènement du click qui empeche de recliker tant que le timer est pas finis!


de comprendre le fonctionement qui ne va pas dans le tp!


et eventuellement si je purais avoir un coup de pousse pour une dialbox ^^


jai passé ma journée à chercher et modifier ...mais la je demande de l'aide je vous remercie de m'avoir lut !
Il y a beaucoup de choses à dire au sujet de ton post. Je commence par le début. Tu peux désactiver une écoute avec la fonction llListenControl, de cette manière tu vas éviter une montée intempestive pendant la temporisation :

Code:
float hauteur;// hauteur du déplacement
integer ecoute;
default
{
state_entry()
{
                     vector dimensions=llGetScale();// dimensions de la porte
hauteur=dimensions.z-(dimensions.z/10);// détermination de la largeur du déplacement
ecoute = llListen(-99,"",NULL_KEY,"action");
}
listen(integer channel, string name, key id, string message)// Ouverture de la porte
{
llListenControl(ecoute, FALSE);
                     vector position=llGetPos();// position de départ
llSetPos(position+<.0, .0,hauteur>);// translation
llSetTimerEvent(10.0);// On laisse ouvert 10 secondes
}
timer()// fermeture de la porte
{
                     vector position=llGetPos();// position de départ
llSetPos(position+<.0, .0,-hauteur>);// translation
llListenControl(ecoute, TRUE);
}
}
En ce qui concerne ton tp il faut connaître la distance maximale que tu veux atteindre pour savoir si un SitTarget est adapté (limite de 300 mètres)
Répondre

Connectés sur ce fil

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