Page 1 sur 1

Mission COD avec Instructeur RAF

Publié : sam. sept. 15, 2012 10:57 pm
par bolt
Bonsoir,

Comme je me suis dis que les script c'etait quand meme rigolo et qu'apprendre a bien voler en utilisant correctement sa machine ca serait super (surtout quand on débute). J'ai doncfait une petite mission avec le petit script qui va bien.

Ceci est un premier essai. Il y a surrement des choses a améliorer.

Pour l'instant il fait les choses suivantes ;

- Detecte si on abuse du boost a +9 (+ de 3 minutes d'utilisation a proscrire comme indique le manuel Spit)

- On test les G pour vérifier que l'eleve pilote ne malmene pas trop sa monture et que le pilotage se fasse en douceur (apprendre a pas massacrer son energie)

- Indique lors du décollage la rotation quand le vitesse normale est atteinte

- Verifie la température d'eau (apres décollage) pour eviter de cramer le moteur (gestion entre autres via Boost et/ou radiateur en fonction du cas)

- Verifie la température huile pour pas cramer le moteur non plus (gestion via RPM et le pas d'helice donc)

- Vérifie la vitesse de decrochage au cas ou le pilote oublie, parmi toutes les choses ci dessus, de gerer sa vitesse. Ca marche aussi dans les ressources ou lors d'atterissage quand on arrive proche du décrochage.

Voila pour l'instant. L'idée est de donner cet outils aux débutants ou aux gens qui on envie d'aller plus loins dans la maitrise du Spit.
J'ai commencé avec le spit mais le principe marche pour les 109 et peut aussi marcher pour les bombardier.
J'aimerais dans mon prochain essai faire un mission pour emener le spit a 10 000 pieds ou plus sans cramer le moteur. Le tout de facon optimale en ayant les info au fur et a mesure de ce qui doit etre fait si on a pas la bonne demarche.

Vous trouverez donc ici le fichier mission avec son script :

https://rapidshare.com/files/1624265250/Monitor.zip

J'ai utilisé rapidsahre plutot que mediafire parceque je ne sais pas pourquoi mais media fire ne marche pas ce soir.

Vous pouvez donc essayer de faire surchauffer l'eau ou l'huile ou bien taper dedans avec les G ou encore essayer de voler en dessous de la vitesse mini. Idem pour le boost pendant plus de 3 minutes.

Voila. Désolé pour le blabla mais je voulais expliquer le truc.

Je vous serais reconnaissant de vos retours si vous voyez des bug. De plus, j'ai mis des valeurs de test (temp eau, huile, vitesse rotation ...etc) en fonction de ce que j'ai lu sur le spit. Je me suis peut etre trompé, merci de vos remarques.

Idem sur les procédures de gestion eau, huile ... Je me suis peut etre aussi trompé. Je ne suis finalement pas non plus un pilote sans faille.

Bon, comme d'habitude, je ne suis pas un codeur professionnel, il y a donc peut etre des facons de faire les tests un peu plus proprement.

Voici le code :

Code : Tout sélectionner

using System; using maddox.game; using maddox.game.world; public class Mission : AMission { //User Control bool do_get = true; bool do_hud = false; bool chronoTestBoost1 = false; bool TestBoost1Advise = false; bool TestWaterTempAdvise = false; bool TestOilTempAdvise = false; bool essai = false; bool intheair = false; //Define and Init AiAircraft cur_Plane; double cur_Time = 0.0; double cur_Time2 = 0.0; double chrono1 = 0.0; double takeOffTime = 0.0; //bool flag_do_once = false; double A_Undercarriage = 0.0; double C_WaterRadiator; double I_VelocityIAS = 0.0; double I_Altitude = 0.0; double I_Variometer = 0.0; double I_Peilzeiger = 0.0; double I_MagneticCompass = 0.0; double I_Slip = 0.0; double I_EngineRPM = 0.0; double I_EngineManPress; double I_EngineBoostPress; double I_EngineWatTemp; double I_EngineRadTemp; double I_EngineOilTemp; double I_EngineTemperature; double Z_Overload = 0.0; double Z_AltitudeAGL = 0.0; double Z_AltitudeMSL = 0.0; double Z_VelocityIAS = 0.0; double Z_VelocityTAS = 0.0; double Z_VelocityMach = 0.0; double Z_AmbientAirTemperature = 0.0; double C_Pitch; double C_Mix; double timerBoost = 0; double tempoInfoWaterTemp = 0; double tempoInfoOilTemp = 0; string str_hud = ""; public override void OnAircraftTookOff(int missionNumber, string shortName, AiAircraft aircraft) { intheair = true; takeOffTime = Time.current(); //GamePlay.gpHUDLogCenter("Took Off"); } public override void OnAircraftLanded(int missionNumber, string shortName, AiAircraft aircraft) { //intheair = false; GamePlay.gpHUDLogCenter("On ground"); } //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) { //On enregistre les données if (do_get) { cur_Time = Time.current(); cur_Time2 = Time.current() + 10; I_MagneticCompass = cur_Plane.getParameter(part.ParameterTypes.I_MagneticCompass, -1); I_Altitude = cur_Plane.getParameter(part.ParameterTypes.I_Altitude, -1); I_VelocityIAS = cur_Plane.getParameter(part.ParameterTypes.I_VelocityIAS, -1); I_Variometer = cur_Plane.getParameter(part.ParameterTypes.I_Variometer, -1); I_Peilzeiger = cur_Plane.getParameter(part.ParameterTypes.I_Peilzeiger, -1); I_Slip = cur_Plane.getParameter(part.ParameterTypes.I_Slip, -1); Z_Overload = cur_Plane.getParameter(part.ParameterTypes.Z_Overload, 2); Z_AltitudeAGL = cur_Plane.getParameter(part.ParameterTypes.Z_AltitudeAGL, -1); Z_AltitudeMSL = cur_Plane.getParameter(part.ParameterTypes.Z_AltitudeMSL, -1); Z_VelocityIAS = cur_Plane.getParameter(part.ParameterTypes.Z_VelocityIAS, -1); Z_VelocityTAS = cur_Plane.getParameter(part.ParameterTypes.Z_VelocityTAS, -1); Z_VelocityMach = cur_Plane.getParameter(part.ParameterTypes.Z_VelocityMach, -1); Z_AmbientAirTemperature = cur_Plane.getParameter(part.ParameterTypes.Z_AmbientAirTemperature, -1); I_EngineRPM = cur_Plane.getParameter(part.ParameterTypes.I_EngineRPM, 0); I_EngineManPress = cur_Plane.getParameter(part.ParameterTypes.I_EngineManPress, 0); I_EngineBoostPress = cur_Plane.getParameter(part.ParameterTypes.I_EngineBoostPress, 0); I_EngineWatTemp = cur_Plane.getParameter(part.ParameterTypes.I_EngineWatTemp, 0); I_EngineRadTemp = cur_Plane.getParameter(part.ParameterTypes.I_EngineRadTemp, 0); I_EngineOilTemp = cur_Plane.getParameter(part.ParameterTypes.I_EngineOilTemp, 0); I_EngineTemperature = cur_Plane.getParameter(part.ParameterTypes.I_EngineTemperature, 0); C_Pitch = cur_Plane.getParameter(part.ParameterTypes.C_Pitch, -1); C_Mix = cur_Plane.getParameter(part.ParameterTypes.C_Mix, -1); //A_Undercarriage = cur_Plane.getParameter(part.ParameterTypes.A_Undercarriage, -1); C_WaterRadiator = cur_Plane.getParameter(part.ParameterTypes.C_WaterRadiator, -1); } //Affichage HUD if (do_hud) { str_hud = " EngineRPM: " + I_EngineRPM.ToString("0.00") + " EngineManPress: " + I_EngineManPress.ToString("0.00") + " IAS: " + I_VelocityIAS.ToString("0.00") + " EngineWTemp: " + I_EngineWatTemp.ToString("0.00") + " EngineOTemp: " + I_EngineOilTemp.ToString("0.00") + " Pitch: " + C_Pitch.ToString("0.00") + " Time: " + cur_Time.ToString("0.00") + " Mix: " + C_Mix.ToString("0.00"); // " G: " + Z_Overload.ToString("0.00"); GamePlay.gpHUDLogCenter(str_hud); } //GamePlay.gpHUDLogCenter(cur_Time.ToString("0.00") + " " + cur_Time2.ToString("0.00")); //GamePlay.gpHUDLogCenter(Z_Overload.ToString("0.00")); //GamePlay.gpHUDLogCenter(C_WaterRadiator.ToString()); //GamePlay.gpHUDLogCenter(I_VelocityIAS.ToString("0.00")); if (I_EngineManPress > 8) { if (!chronoTestBoost1) { chronoTestBoost1 = true; //temps limite = timede début de boost > 9 + 3*60 = 180 secondes (3 minutes) timerBoost = Time.current() + 180; } if (Time.current() > timerBoost && chronoTestBoost1 && !TestBoost1Advise) { GamePlay.gpHUDLogCenter("Trop longue utilisation du Boost a fond. Reduisez le Boost"); TestBoost1Advise = true; } } if (chronoTestBoost1 && I_EngineManPress < 5) { chronoTestBoost1 = false; TestBoost1Advise = false; } // // On Test les G // if (Z_Overload > 4.5) { GamePlay.gpHUDLogCenter("Soyez plus souple. La structure souffre sous cette charge !!"); } // // On Test si on a atteint la vitesse de rotation au décollage // if (!intheair && I_VelocityIAS > 95 && Z_AltitudeAGL < 10) { GamePlay.gpHUDLogCenter("Rotation"); } // // On Test la temp eau // if (I_EngineWatTemp > 110 && !TestWaterTempAdvise) { if (C_WaterRadiator > 0.99) { GamePlay.gpHUDLogCenter("Temp eau haute. Reduire Boost"); TestWaterTempAdvise = true; tempoInfoWaterTemp = Time.current() + 30; } else { GamePlay.gpHUDLogCenter("Temp eau haute. Ouvrir en grand le radiateur"); TestWaterTempAdvise = true; tempoInfoWaterTemp = Time.current() + 30; } } if (tempoInfoWaterTemp < Time.current()) { TestWaterTempAdvise = false; } // // On Test la temp huile // if (I_EngineOilTemp > 96 && !TestOilTempAdvise && intheair) { GamePlay.gpHUDLogCenter("Temp Huile haute. Reduire RPM"); TestOilTempAdvise = true; tempoInfoOilTemp = Time.current() + 30; } if (tempoInfoOilTemp < Time.current()) { TestOilTempAdvise = false; } // // On Test la vitesse de décrochage // if (intheair && I_VelocityIAS < 79) { if (I_EngineManPress > 8.5) { GamePlay.gpHUDLogCenter("La vitesse est a la limite basse. Poussez un peu sur le manche pour reprendre de la vitesse"); TestWaterTempAdvise = true; } else { GamePlay.gpHUDLogCenter("La vitesse est a la limite basse. Ajouté du boost et lachez un peu la pression du manche"); TestWaterTempAdvise = true; } } } } } }
Bon vol

Bolt

Publié : sam. sept. 15, 2012 11:25 pm
par nacy
Salut je me suis inscris pour avoir le droit de télécharger, sa marche pas car le fichier Monitor.zip fait (0.00 MB)

PS: je le sens bien de m'inscrire a truc qui marche pas. Merci quand même.

Publié : sam. sept. 15, 2012 11:45 pm
par bolt
salut Nacy,

Désolé pour ca. C'est bizarre, j'ai essayé tout a l'heure. Pour uploader le fichier il faut s'inscrire mais normalement il en faut pas pour telecharger. Je vais reessayer avec media fire.

Le fichier en soit est pas gros. Il fait 3ko.

Je regarde ca.

Bolt

Publié : sam. sept. 15, 2012 11:48 pm
par nacy
Excuse sa marche pour télécharger.

Publié : sam. sept. 15, 2012 11:53 pm
par bolt
je viens de tester. Media fire bloque en fait sur mon fichier .CS. Je pense qu'il croit que c'est un code dangereux.

Par contre j'ai reessayé avec rapidsahre et ca marche bien. j'ai pu télécharger le fichier zip et j'ai bien mes deux fichiers (mission et script).

Pardonnes la question un peu bete mais tu cliques bien sur le bouton "telecharger" en vers vers le milieu de la pages ?

Bolt

Publié : dim. sept. 16, 2012 7:40 am
par bolt
Bonjour a tous,

Est-ce que certain d'entre vous ont pu télécharger le fichier sans problème ?

Publié : dim. sept. 16, 2012 9:25 am
par OBT~Gib
Oui, sans problème.
Bien choisir "sauvegarder sous votre ordinateur"

Publié : dim. sept. 16, 2012 12:20 pm
par Mike_Sky
Oui.
Merci Bolt! :yes:

Publié : dim. sept. 16, 2012 4:45 pm
par OBT~Gib
Je viens de tester, ça semble marcher.
Il indique en effet la vitesse de rotation, dés que j'ai tiré dessus en faisant couiner la carlingue il me l'a dit aussi.
De plus il m'a indiqué des vitesses proche du décrochage dans des manœuvres (maintenant je sais pas si j'étais proche, mais ça en avait l'air).
J'ai pas trop chauffé alors je n'ai pas pu voir si il gueulait aussi pour le moteur :)
C'est en effet pas mal, merci !!

Publié : dim. sept. 16, 2012 7:22 pm
par Mike_Sky
Merci de partager tes codes! :notworthy
Cela permet aux apprentis de tenter de comprendre les méandres de la bête. :sweatdrop

Publié : dim. sept. 16, 2012 8:45 pm
par nacy
Même avec un modèle pour les codes, avec la mission de bolt je comprend rien à ses codes.

Publié : dim. sept. 16, 2012 9:35 pm
par bolt
Merci pour les remerciement mais je le fais vraiment dans me but de faire avancer COD et l'interet qu'on lui porte.

Merci Gib pour ton retour. En fait parfois on vole un peu "au pif" sans trop gerer finement les parametres de sa machine. J'ai fait un vol l'autre jour et j'etais tellement occuper a grimper a 10 000 pieds que j'ai cramé le moteur. Je voulais que ce script puisse aider a prendre les bonnes habitudes pour les pilote qui ont besoin de peaufiner leur habitude de vol et aider les débutant sur la gestion complexe du moteur.

Je dois avouer que j'ai mis longtemps pour comprendre qu'on ne gere pas les RPM avec la manette des gaz (ou du moins qu'avec la manette des gaz) et que la temp huile est intimmement lié aux RPM et la temp eau au Boost (j'espere pas me tromper dans mes dires sinon je vais me faire rattraper par la patrouille des pro et je vais avoir de grosse désillusions ... :-))

Sinon, Nacy, je vais te commenter le script. Tu vas voir, c'est pas si compliqué que ca.

Salut Mike. Pas de soucis pour le partage. Je suis pas du style vieux bouc avare qui garde bien les infos qu'il a trouvé. J'espere au contraire pouvoir donner des billes pour que les createurs de missions puisse avoir une sorte de boite a outils (en tous cas avec mes modestes connaissances).

Bolt

Publié : dim. sept. 16, 2012 9:43 pm
par bolt
mode autodérision on :

voici pour ceux que ca interesse, un tout petit script basique qui affiche les G que vous subissez en vol. Le coté dérision est a mettre en lien avec mon post au sujet des G dans la section edition ou je m'escrimé a faire des calculs alors que je n'avais pas vu que COD a un parametre pour ca ... ok no comment :

Code : Tout sélectionner

using System; using maddox.game; using maddox.game.world; public class Mission : AMission { //quelques variables AiAircraft cur_Plane; double Z_Overload = 0.0; //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) { // on prend le parametre Z_Overload de cur_plane qui est la variable qui contient l'avion du joueur (voir deux lignes au dessus) // a noter le parametre 2 en fin de ligne qui correspond a l'acceleration en Z en repere avion Z_Overload = cur_Plane.getParameter(part.ParameterTypes.Z_Overload, 2); //on affiche la valeur Z_Overload. GamePlay.gpHUDLogCenter(Z_Overload.ToString("0.00")); } } } }
J'ai mis des commentaires. Surtout quand je prend le parametre ou il y a l'option 2 qui correspond a la valeur d'acceleration en Z repere avion.

Vous pouvez donc coller ce script dans un fichier du meme nom que vos mission mais avec l'extension .cs
Ou bien le copier dans l'onglet script du FMB

Bolt

Publié : dim. sept. 16, 2012 10:47 pm
par bolt
Nacy,

Voici déja une premiere petite présentaiton avec des explications sur les scripts. J'en ferais d'autres si tu veux.

https://rapidshare.com/files/1977891733 ... script.pdf

N'hesite pas si tu as des questions,

Bolt

Edit : lien remis d'equerre