Jump to content
Sign in to follow this  
Alakdar

Aide Pour Les Scripts (création D'un Ascenceur)

Recommended Posts

Alakdar   

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

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×