#1 [↑][↓] 27-03-2015 13:23:47

mameloose
Membre
Lieu : evreux
Inscription : 24-10-2014
Renommée :   10 

[P3D][FSX][FS9]tuto sioc les subroutines

et rebonjour a tous !

aujourdhui nous allons utiliser les subroutines !
alors une subroutine ca sert a quoi ? a utiliser plusieurs conditions pour n'en faire qu'une tout simplement

petit exemple : j'ai dans mon avion 3 reservoir de carburant ; un centrale un gauche un droit

je veux maintenant allumer une led si l'un des 3 est inferieur a 30% de sa capacité par ex ..

je vais donc utiliser une subroutine qui va analyser en permanence l'etat de mes reservoirs et declencher la led si l'un des 3 est inferieur a 30%

1- declarer les variables

je recherche comme toujours dans le sdk les offsets de capacité des reservoirs centre gauche et droit

siocsu10.jpg

ok ici l'offset $0B74 de longueur 4 nous donne la valeur en pourcentage du reservoir centrale
l'offset $0B7C pour le gauche et $0B94 pour le droit

on peut lire que dans la case de commande un reservoir plein a 100 % est egale a 128 multiplié par 65536

ce qui veut dire que 100% est egal a 8388608 !

maintenant petit produit en croix pour convertir cette valeur pour 30 % (retour en 5 eme ....)

ca nous donne 2516582 !

ok maintenant on sait que la valeurs qu'il faudra inscrire dans sioc sera de 2516582 pour dire 30%

c'est bon tout le monde suit??

on continue

je declare maintenant mes variables ainsi que ma led

EDIT INSERVAR

siocsu11.jpg

pareil pour les autres

siocsu12.jpg

siocsu13.jpg

ok c'est good jusque la !

maintenant la suite

2- creer une subroutine
siocsu14.jpg

ok maintenant nous allons faire comprendre a cette subroutine que si un des 3 reservoirs est en dessous de 30% il faut allumer l'alarme

CLIC dROIT ET NEWCOMMAND

siocsu15.jpg

siocsu16.jpg

alors ca veut dire quoi jusque la ?

LO est une variable interne comme on pourrai dire dans une equation mathematique X est egal a ?

ca permet de regrouper ici 2 valeurs ; celle du fuel centre et du droit
mais ils nous manque le fuel gauche donc continuont ...

siocsu17.jpg

siocsu18.jpg

siocsu19.jpg

voila donc pour finaliser tout ca L2 est egale aux trois valeurs des reservoirs

vous noterez que j'ai utilisé AND et non pas + sinon les 3 valeurs auraient été additionnées ducoup ca ne marche pas pour cette exemple

maintenant la commande d'allumage

siocsu20.jpg

siocsu21.jpg

CLIC DROIT SUR LA CONDITION IF ET NEWCOMMAND

siocsu22.jpg
siocsu23.jpg

donc voila ici si un des 3 reservoirs atteind 30% la led s'allume

maintenant le contraire

CLIC DROIT SUR LA SUBROUTINE ET NEW COMMAND

siocsu24.jpg

CLIC DROIT SUR ELSE ET NEWCOMMAND

siocsu25.jpg
siocsu26.jpg

RECLIC DROIT SUR LA CONDITION IF ET NEWCOMMAND

siocsu27.jpg
siocsu28.jpg

voila c'est presque fini maintenant il faut lier les variables de fuel a la subroutine

3- APPELER LA SUBROUTINE

clic droit sur les variables de fuel et newcommand

siocsu29.jpg

pareil pour les deux autres ..

siocsu30.jpg

et voilaaaa!!

ducoup on resume

ma subroutine dit que si un de mes 3 reservoirs est en dessous de 30% alors une led d'alarme s'allume et si c'est le contraire elle s'eteind.
pour lier cette subroutine au variables des reservoirs j'appel (CALL) la subroutine

les subroutines sont utiles pour plein d'autre choses comme une alarme de circuit hydraulique par exemple ....sur le meme principe


http://www.youtube.com/watch?v=2chwYMN6ZME

Hors ligne

Pied de page des forums