Alakdar Posted April 3, 2009 Bonjour, voila mon problème: j'ai scripté un ascenceur, mais pour éviter qu'il ne soit déclenché par un interrupteur alors qu'il n'est pas à ce niveau, ja'i rajouté une condition, je problème est que pour monter au premier étage ça va mais après il ne veut plus bouger, alors que sans cette condition ça va mais on déclenche n'importe quand l'ascenceur. J'ai donc rajouté quelque ligne afin de me montré l'hauteur à laquelle il arrive en fin de parcour et je remarque que la valeur n'est pas la bonne. Que se passe-t-il ? Voici mon script: Spoiler : cliquez ici pour voir le message Begin AscenceurUp Short Actif Short HauteurAsc Short HauteurBtn Float Tempo If ( OnActivate == 1 ) Set HauteurBtn To GetPos, Z Ascenceur02 -> Set HauteurAsc To GetPos, Z If HauteurAsc == (HauteurBtn - 200 ) ;condition permettant de vérifier que l'ascenceur est au bonne endroit, afin d'éviter de l'activer avec un autre bouton Set Actif to 1 EndIf Endif If MenuMode ==1 Return EndIf If ( Actif == 1 ) Set Tempo to Tempo + GetSecondsPassed If ( Tempo <= 2 ) Ascenceur02 -> MoveWorld Z 192 ;le déplacement en question Else Set Tempo to 0 Set Actif to 0 Ascenceur02 -> Set HauteurAsc To GetPos, Z MessageBox "La valeur de la hauteur vaut: %.0f ", HauteurAsc ;afficher la hauteur final de l'ascenceur. Endif Endif End AscenceurUp que dois-je faire pour qu'il monte de 384, car là il me dit qu'il est monté de 383 :s et ça gène pour la condition ensuite. Merci Share this post Link to post Share on other sites
Katan-Amn Posted May 23, 2009 Yo ! Dans morrowind, il est déconseillé de faire " If HauteurAsc == (HauteurBtn - 200 ) " mais plutôt faire ceci : set hauteurbtn2 to ( hauteurBtn1 - 200 ) if ( HauteurAsc == hauteurbtn2 ) Mais voila ! Y a un problème. Dans morrowind, les positions sont pas EXACTEMENT les même, du tescs au jeu. Donc, si tu as 357 dans le tescs, dans le jeu jeu, tu aurais pt etre 357, ou même, 357.001... Et donc, le == n'est jamais égal. C'est comme les timers si tu veux. Donc, tu dois utiliser des >= et des <= pour faire une "fourchette". C'est quoi "Ascenceur02 -> Set HauteurAsc To GetPos, Z" ? x') Tu changes la variable d'un script local a partir d'un autre script? Je sais plus si ça se fait comme ça, longtemps que j'ai plus scripté. Il est recommandé de mettre If ( MenuMode == 1 ) Return EndIf au tout début du script, juste après la liste des variables ^^ (short et float donc) N'oublie pas les ( et ), Elle sont pas la pour faire chier le peuple ^^ Parfois, morrowind supporte pas qu'on les enlève. J'espère t'avoir aidé Share this post Link to post Share on other sites