Sliding automatique

Répondre
Partager Rechercher
Bonjour,

Voilà, j'ai un script qui permet qu'une porte s'ouvre automatiquement lorsqu'elle détecte un avatar.

Mon problème, c'est qu'elle se déplace toujours du même coté "Y" et je n'arrive pas à modifier le sens du déplacement.

Citation :
float largeur; // largeur du déplacement
integer ouvert=0;
default
{

state_entry()
{
vector dimensions = llGetScale(); // dimensions de la porte
largeur = dimensions.y - (dimensions.y / 10); // détermination de la largeur du déplacement
//détecte tout avatar dans un rayon de 2 fois la largeur de la porte toute les 1 sec
llSensorRepeat("", NULL_KEY, AGENT, 2*dimensions.y , PI, 1);
llSay(0, "porte automatique"); // information
}

sensor(integer total_number)
{
if (!ouvert) { llSetPos(llGetPos() + <0, largeur, 0>); }
ouvert=TRUE;
llSetTimerEvent(4.0);
}

timer()
{
if (ouvert) { llSetPos(llGetPos() + <0, -largeur, 0>); }
ouvert=FALSE;
llSetTimerEvent(0);
}

}

Je vous joins mon script, merci de me dire ou je dois le modifier.

Kris
Suffit de remplacer ici :

sensor(integer total_number)
{
if (!ouvert) { llSetPos(llGetPos() + <0, -largeur, 0>); }
ouvert=TRUE;
llSetTimerEvent(4.0);
}

timer()
{
if (ouvert) { llSetPos(llGetPos() + <0, +largeur, 0>); }
ouvert=FALSE;
llSetTimerEvent(0);
}
Les valeurs à renseigner sont <x, y, z>.
Par conséquent :

sensor(integer total_number)
{
if (!ouvert) { llSetPos(llGetPos() + <-largeur, 0, 0>); }
ouvert=TRUE;
llSetTimerEvent(4.0);
}

timer()
{
if (ouvert) { llSetPos(llGetPos() + <largeur, 0, 0>); }
ouvert=FALSE;
llSetTimerEvent;
}

Tu peux influer sur une ouverture vers la gauche ou la droite en disposant le signe "-" sur la ligne appropriée.


Ah, et j'oubliais. vérifie bien que la largeur de ta porte est sur l'axe "y" (si tu as manipulé l'objet dans tous les sens ce n'est peut-être pas le cas). Si la largeur de ta porte est sur l'axe "x" de ta prim, il suffit de changer les "y" en gras ci dessous par des "x" dans cette partie du sript :

state_entry()
{
vector dimensions = llGetScale(); // dimensions de la porte
largeur = dimensions.y - (dimensions.y / 10); // détermination de la largeur du déplacement
//détecte tout avatar dans un rayon de 2 fois la largeur de la porte toute les 1 sec
llSensorRepeat("", NULL_KEY, AGENT, 2*dimensions.y , PI, 1);
llSay(0, "porte automatique"); // information
}
Répondre

Connectés sur ce fil

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