#1 [↑][↓] 24-10-2014 00:05:12

Squirrel
Membre
Lieu : EDMA
Inscription : 25-11-2012
Renommée :   19 

[X-Plane] Levage aérien avec FlyWithLua

Bonsoir,

Je vous propose un petit programme pour améliorer le levage aérien dans X-Plane, en utilisant FlyWithLua.
FlyWithLua est très pratique et permet de réaliser des plugins pour X-Plane, mais de manière très simplifiée.
Il est disponible ici : http://forums.x-plane.org/index.php?app … file=17468

Avec le programme (ou plutôt scrpt), que je vous propose plus bas, il est possible de choisir la longueur de l'élingue ainsi que de simuler la variation de masse d'une charge dans X-Plane. Il est donc possible de simuler le chargement/déchargement d'une benne de béton, par exemple.

Mais tout d'abord, il faut avoir installé FlyWithLua. Après avoir décompressé l'archive, il suffit de glisser le dossier "FlyWithLua" dans le dossier "plugins", lui-même dans le dossier "Ressources" situé à la racine de X-Plane.

Ensuite, il suffit d'aller dans le dossier "Scripts" de FlyWithLua pour voir les scripts qui seront lancés (les .lua).
Pour les désactiver, il suffit de les glisser dans le dossier "Scripts (disabled)".

Pour créer le nouveau script destiné au levage, il faut maintenant créer un fichier .txt puis le renommer en .lua.
Le nom n'a pas d'importance (enfin... il faut s'y retrouver quand même wink )

Le code que je vous propose et qui fonctionne chez moi est :

dataref( "chargeElingue", "sim/flightmodel/weight/m_jettison", "writable" )
dataref( "longueurElingue", "sim/flightmodel/misc/jett_len", "writable" )

chargeElingueSaved = 0
memoire = 0

add_ATC_macro("Elingue 5m", [[
longueurElingue = 5]])
add_ATC_macro("Elingue 8m", [[
longueurElingue = 8]])
add_ATC_macro("Elingue 12m", [[
longueurElingue = 12]])
add_ATC_macro("Elingue 20m", [[
longueurElingue = 20]])
add_ATC_macro("Elingue 50m", [[
longueurElingue = 50]])
add_ATC_macro("Elingue 80m", [[
longueurElingue = 80]])

do_every_frame( [[
if button(001) and (memoire == 1) then
    if (chargeElingue > 162) then
        chargeElingueSaved = chargeElingue
        chargeElingue = 162
    else
        if (chargeElingue == 162) then
            if (chargeElingueSaved > 162) then
                chargeElingue = chargeElingueSaved
            else
                chargeElingue = 500
            end
        end
    end
    memoire = 0
end
if (not button(001) ) and (memoire == 0) then
    memoire = 1
end]] )

Le principe :

Attention ! Ce code peut-être copier-coller, mais il utilise le bouton 001 de votre (ou vos) joystick.
Pour savoir comment utiliser le bouton 002 (ou le 003, ou le 004 ou le mad2_gif ... Lisez la suite ! wink )

On définit des menus nommés "Elingue Xm" accessibles dans la barre de X-Plane sous "Plugins" puis "FlyWithLua ATC", qui permettent de choisir la longue d'élingue voulue en cliquant dessus.

Lorsque l'on appuie sur le bouton 001 du joystick, il se passe deux choses différentes, en fonction de l'état actuel :
- Si la masse de l'objet accroché sous l'élingue est supérieure à 162kg (la masse à vide de ma benne), celle-ci est sauvegardée, puis la masse de l'objet est réduite à 162 (les ouvriers on vidé la benne)

- Si la masse de l'objet est de 162kg, on lui réattribue sa masse sauvegardée. Si aucune masse n'a été sauvegardée, celle-ci est définie par défaut à 500kg (c'est pour les travaux en altitude solv_gif )

- Si la masse est inférieur à 162kg, le script ne fait jamais rien quand on appuie sur le bouton eusa_whistle
C'est volontaire : cela permet d'éviter de donner accidentellement une masse à un objet que l'on a jamais demandé !

Pour savoir quel est le numéro du bouton de votre joystick : dans le menu de X-Plane permettant de définir les fonctions des boutons, il suffit d'appuyer sur le bouton en question, et de lire sont numéro en haut.

Attention ! FlyWithLua compte les boutons depuis 0 et non 1 comme X-Plane.
Il faut donc retrancher 1 à votre numéro de bouton lu dans X-Plane pour l'utiliser dans le script lua.

Explications plus détaillées :

[Spoiler]

... Certes, au premier abord, ces lignes de code ne sont pas très attrayantes pour tous... Mais je vous assure que ça en vaut la peine ! big_smile
Pour aller plus loin, FlyWithLua permet aussi d'utiliser des boutons à deux positions dans X-Plane et bien d'autres choses wink

Bon vols !
Squirrel

Hors ligne

#2 [↑][↓] 24-10-2014 13:30:04

quank
Membre
Lieu : Tessin, Suisse
Inscription : 25-08-2011
Renommée :   
Site Web

Re : [X-Plane] Levage aérien avec FlyWithLua

non, Squirrel ne va pas bien !!
Qui a dit que maintenant ma femme je vais passer ancor plus temps au PC pour faire del slingload comme le vrai pilot (avec changement de pois) ?

GRAND MERCI !!!

Une seule question, comment puis-je mettre une animation lorsque j'appuie sur le bouton aussi visuellement je voix augmenter ou diminuer le niveau (par exemple pour un benne beton ou la bambi buket) ? Sous AC3D, oui.. mais comme on fait vue que il travail avec un script ?


Greetings from Switzerland
Alex

Job from Swisscreations https://www.facebook.com/swisscreationsheli

Hors ligne

#3 [↑][↓] 24-10-2014 15:07:16

Squirrel
Membre
Lieu : EDMA
Inscription : 25-11-2012
Renommée :   19 

Re : [X-Plane] Levage aérien avec FlyWithLua

Bonjour Alex,

Je suis heureux que ce petit script te plaise !

Pour l'animation, je me suis aussi posé la question... Mais pour l'instant je n'ai pas la réponse (ce n'est pas ma priorité non plus). Par contre, j'ai quelques pistes :
- Le script ne fait que modifier la dataref sim/flightmodel/weight/m_jettison... Donc si tu arrives à animer l'objet à partir de celle-ci, c'est gagné !
- Sinon, il est peut-être possible de déclarer une nouvelle dataref, qui prendrait les valeurs 0 et 1 par exemple. Par contre, je ne sais pas comment faire (il faut regarder dans la documentation fournie avec le plugin).

Par contre, je ne sais pas si X-Plane lira les animations sur l'objet accroché... Il faut essayer.
Si tu arrives à quelque chose de fonctionnel, je serais intéressé par la méthode ! (et éventuellement un exemple wink )

Sinon, je pense qu'il y a encore moyen d'ajouter plusieurs fonctionnalités... Mais pour l'instant ce ne sont que des idées :

- Si l'appareil est au-dessus de l'eau et que la tension dans le câble est nulle, augmenter la masse de l'objet automatiquement (pour le remplissage du Bambi Bucket).
Si cette méthode ne marche pas, il est peut-être possible d'avoir le même résultat en utilisant la longueur de l'élingue et la hauteur par-rapport au sol...

- En faisant quelque chose avec les coordonnées de l'appareil, il est sans doute possible de se placer différents points (un camion-toupie, un chantier et des bidons de fuel), pour lesquels, arrivé à proximité, la modification de la masse de l'objet se fait automatiquement, ainsi que le plein de fuel...
Pour cela, il faudrait d'abord créer une scène, relever les positions GPS des objets, puis intégrer des calculs de distances au script pour qu'il fasse cela...

Mais ce ne sont que des idées laugh

Une petite dernière : logiquement, il serait possible de simuler un treuil (avec montée/descente) mad2_gif
Mais il y a un gros défaut : on ne peut pas "accrocher" les objets au sol, comme dans FSX...
Sur ce dernier point, il y a le plugin (un vrai plugin, pas un script cette fois-ci) des "Flying Red Beards" qui semble très prometteur : http://forums.x-plane.org/index.php?s=5 … 484&page=1

Si la réalisation de tout ceci tente quelqu'un... wink

Squirrel

Hors ligne

#4 [↑][↓] 24-10-2014 15:31:19

quank
Membre
Lieu : Tessin, Suisse
Inscription : 25-08-2011
Renommée :   
Site Web

Re : [X-Plane] Levage aérien avec FlyWithLua

Squirrel a écrit :

Bonjour Alex,

:
- Le script ne fait que modifier la dataref sim/flightmodel/weight/m_jettison... Donc si tu arrives à animer l'objet à partir de celle-ci, c'est gagné !

ça marche !!!


Greetings from Switzerland
Alex

Job from Swisscreations https://www.facebook.com/swisscreationsheli

Hors ligne

#5 [↑][↓] 28-10-2014 12:22:45

kenken413
Membre
Lieu : FMEP-FMEE
Inscription : 10-05-2014
Renommée :   

Re : [X-Plane] Levage aérien avec FlyWithLua

salut,

Les pilotes helicos sous X-Plane me diront qu'il est largement mieux q'FSX, mais en attendant, il aura un programme pareil a celui-ci sous FSX ?

Amic'
kenken413


L'hélico c'est comme le vélo, une fois que t'as compris, tu l'oublies pas laugh

Hors ligne

#6 [↑][↓] 29-10-2014 21:49:46

Squirrel
Membre
Lieu : EDMA
Inscription : 25-11-2012
Renommée :   19 

Re : [X-Plane] Levage aérien avec FlyWithLua

Bonsoir,

Sous FSX, il me semble que c'est plus compliqué... Avec une dll et SimConnect la variation de masse serait faisable, mais il faudrait trouver quelqu'un pour la programmer wink
Sinon, je sais qu'il existe aussi un moyen de faire des scripts en Lua, mais sans plus.

Pour changer la longueur de l'élingue, tu peux aller jeter un coup d’œil ici : http://www.pilote-virtuel.com/viewtopic.php?id=54123

Bonne soirée,
Squirrel

Hors ligne

Pied de page des forums