Page 1 sur 1

Energie avion

Publié : lun. sept. 24, 2012 10:36 pm
par bolt
Hello,

Afin de mieux se rendre compte de l'energie emmagasiné en vol, j'ai fait ce petit script. Il indique l'energie Cinétique et l'energie Potentielle de l'avion du joueur.

Comme ce sont des chiffres un peu abstrait, j'ai mis un % qui represente votre % d'energie mecanique (energie cinetique + energie potentielle) actuelle par rapport a l'energie que vous aviez au départ. En d'autres termes, l'energie de départ quelle qu'elle soit est egal a 100%.

Donc, durant le vol, si vous dégradez votre energie (soit en perdant de la vitesse, soit en perdant de l'altitude, soit les deux), votre pourcentage baisse. Et inversement.

C'est vrais si vous débutez la mission en vol et pas au sol, car dans ce cas, votre energie devrait normalement toujours augmenter.

L'idée est de mettre ce script dans une mission en dogfight avec départ en vol. Ensuite vous pourrez analyser votre perte d'energie au fur et a mesure du dogfight. Ca pourrait servir a prendre les bonnes habitudes et ne pas dépenser son energie rapidement. Comme on dit, l'energie c'est la vie.

Vous pouvez copier le texte du code ci dessous dans un simple fichier texte qui aura le noms de votre mission mais avec l'extension cs. Exemple, ma mission s'appelle "energie.mis". Je fais un copier coller du code dans un fichier texte mais je l'enregistre dans le dossier ou il y a la mission avec le nom "energie.cs".
Si ca semble compliqué pour certains, j'uploaderais un fichier zip avec la mission et le script. Demandez moi si besoin.

L'avion du joueur sera automatiquement pris par défaut, que vous jouiez en spitfire ou 109 ou autre.

A noter que j'ai fait un affichage sur une fenetre d'info. Il faut donc que vous en affichiez une si c'est pas le cas (durant le jeu, bouton de droite, nouvelle fenetre d'info puis re-bouton de droite dans la fenetre et faire Personaliser fenetre d'info et ajouter l'info Serveur).
Ce type d'affichage en fenetre d'info est plus lisible que l'affichage en jaune en plein ecran.

Voici le script :

Code : Tout sélectionner

using System; using maddox.game; using maddox.game.world; public class Mission : AMission { //quelques variables AiAircraft cur_Plane; double EnergieP = 0.0; double EnergieC = 0.0; double EnergieMeca = 0.0; double MassePlane = 2609; double G = 9.81; double Z_AltitudeMSL = 0.0; double I_VelocityIAS = 0.0; double Pourcentage = 0; double EnergieInitiale = 0.0; bool UneFois = true; //Boucle Principale public override void OnTickGame() { //On initialise le compteur base.OnTickGame(); //Fait a interval regulier if (Time.tickCounter() % 30 == 1) { //Avion jouer cur_Plane = GamePlay.gpPlayer().Place() as AiAircraft; if (cur_Plane != null) { Z_AltitudeMSL = cur_Plane.getParameter(part.ParameterTypes.Z_AltitudeMSL, -1); I_VelocityIAS = cur_Plane.getParameter(part.ParameterTypes.I_VelocityIAS, -1); } if (UneFois) { I_VelocityIAS = ((I_VelocityIAS * 1.609) * 1000) / 3600; EnergieC = (0.5 * MassePlane * (I_VelocityIAS * I_VelocityIAS)) / 1000; EnergieP = (MassePlane * G * Z_AltitudeMSL) / 1000; EnergieMeca = EnergieC + EnergieP; EnergieInitiale = EnergieMeca; UneFois = false; } I_VelocityIAS = ((I_VelocityIAS * 1.609) * 1000) / 3600; EnergieC = (0.5 * MassePlane * (I_VelocityIAS * I_VelocityIAS)) / 1000; EnergieP = (MassePlane * G * Z_AltitudeMSL) / 1000; EnergieMeca = EnergieC + EnergieP; Pourcentage = (EnergieMeca / EnergieInitiale) * 100; GamePlay.gpLogServer(null, "EnergieC (kJ): " + EnergieC.ToString("0") + " EnergieP (kJ): " + EnergieP.ToString("0") + " %: " + Pourcentage.ToString("0") , null); } } }
A+

EDIT 1 : au fait j'oubliais, j'ai mis la masse du spitfire par défaut = 2609. Dites moi si je me suis planté. Dans tous les cas, si votre avion a une masse différente, vous pouvez changer la valeure. Au pire, si vous changez rien, la valeure d'energie potentielle et cinetique auront une erreur mais c'est surtout le % qui compte et lui sera relatif.

EDIT 2 : ou ai-je la tete ; le 1.609 dans la formule sert a passer les miles par heure en km par heure. A virer si vous voler en avion bleu.

Publié : lun. sept. 24, 2012 11:03 pm
par Gourmand
merci de t'interessé a clodo, c'est des type comme toi ( des moddeurs et des scripteur ) qui vont faire de clodo un truc exceptionnel...
pour info j'suis dev PHP et j'ai essayer de regarder ce Csharp et je dit juste : respect ;)
c'est pas un code évident et faut se baser sur des librairie des devs non documenté... GG

Publié : lun. sept. 24, 2012 11:13 pm
par bolt
Merci a toi Gourmand,

Je suis 100% ok avec toi, le plus dure c'est la non documentation des dévelopeurs. Faut vraiment experimenter avec les bouts de ficelles qu'on a. Du coup, tout ce que je trouve ou comprend, je le reinjecte a la communauté.

Bolt

Publié : mar. sept. 25, 2012 4:44 pm
par bolt
Bonjour,

Je pense que pour que ca soit plus facile a mettre en oeuvre je vais creer une petite mission de combat simple. Ca permettra de tester sa depense d'energie en combat et d'essayer d'améliorer.

J'ai aussi regardé et si j'y arrive, on devrait pouvoir connaitre l'energie des avions IA. Ca pourrait etre interessant d'avoir l'info d'une part et surtout, pour les createurs de missions, ca pourrait servir a faire se replier un IA si celui ci perd l'avantage en combat.

A creser en tous cas.

a+
Bolt

Publié : mar. sept. 25, 2012 7:11 pm
par OBT~Gib
Vraiment intéressant !
J'attends avec impatience un mission pour tester !
Merci Bolt.

Publié : mar. sept. 25, 2012 7:45 pm
par OBT~Mikmak
Très intéressant effectivement, je vais tester ça avec plaisir.
Moi qui ai toujours rêvé d'un ACMI pour IL2, j'ai l'impression que c'est en bonne voie pour Clodo.
Merci Bolt !

Publié : mar. sept. 25, 2012 8:00 pm
par Gourmand
moi j'avais un peu touché, et apriori certaine fonction sont desactivé en multi, donc un interet limité, bref faire un log ecran sur un onlandedplane par exemple ne marchais pas alors qu'un onstartgame marchais ( j'ai plus le nom exacte des fonctions )

y a aussi le fait que si on commencais a vouloir touché au fonction de trigger, sa desactivai le trigger de l'editeur...

moi j'ai fini par abandonner du a la complexité et la l'incompatibilité multi ;)
j'avais meme tenter de faire un tuto
http://www.cliffsofdover.fr/tuto_fmb_script_clodo.pdf
ici ;)

Publié : mar. sept. 25, 2012 8:25 pm
par bolt
Salut Gourmand,

Oui je connaissais ce document mais j'avais pas fait le rapprochement que c'etait toi l'auteur. Il est magnifique d'ailleurs et m'a beaucoup aidé. Tu n'as donc pas bossé pour rien. J'y retourne regulierement et je m'en sert comme référence des fonctions.

Bolt

Publié : mar. sept. 25, 2012 9:27 pm
par Rickenbacher
Ca a l'air très intéressant ton script Bolt, merci ! :)
Chapeau à vous qui arrivez à scripter des trucs, moi ça me dépasse pas mal...et c'est un doux euphémisme.

Je pense que sur le forum 1C ça pourrait aussi intéresser pas mal de monde ce script...

Publié : mar. sept. 25, 2012 10:28 pm
par bolt
Merci Rickenbacher, effectivement, ca pourrait interesser des gens sur le forum 1C.

Pour le coté script, en fait ce que je fais est loin d'etre extraordinaire. J'essai juste de trouver des applications un peu sympa avec les quelques fonctions de base.

Publié : mer. sept. 26, 2012 6:37 pm
par Mike_Sky
Gourmand a écrit :merci de t'interessé a clodo, c'est des type comme toi ( des moddeurs et des scripteur ) qui vont faire de clodo un truc exceptionnel...
Entièrement d'accord, c'est grâce à des types comme toi... :notworthy
Un énième merci.

Publié : jeu. sept. 27, 2012 7:15 pm
par bolt
Merci Mike, c'est sympa.

Je suis hyper chargé au boulot en ce moment mais je vais revenir avec cette mission et ce script.

Bolt