Aller au contenu principal

Projet 01 : Hello GTA

Dans le Projet 00, tu as prouvé que ton jeu pouvait charger et recharger une DLL existante. Le moment est venu d'écrire du code par toi-même. Dans le Projet 01, tu vas concevoir ton tout premier mod C# opérationnel : détecter l'entrée de ton script dans l'univers de jeu, intercepter un appui clavier dédié, déclencher une transition météo progressive dans le ciel de Los Santos et fournir une confirmation immédiate à l'écran.


La mission

Construire et déployer ton premier mod C# en remplissant quatre objectifs fondamentaux :

  1. Définir une classe de script managée héritant de GTA.Script.
  2. Afficher un sous-titre de bienvenue une seule fois à l'initialisation du mod en jeu.
  3. Écouter la saisie clavier (Pavé numérique 5) pour amorcer une transition météo progressive vers un ciel parfaitement dégagé.
  4. Diffuser une notification dans le téléscripteur au-dessus du radar confirmant l'action en cours.

Spécifications, contraintes

  • Framework cible : cibler .NET Framework 4.8 avec référence vers ScriptHookVDotNet3.dll.
  • Garde d'exécution unique : le sous-titre d'accueil doit s'afficher une seule fois au démarrage et ne doit pas polluer l'écran à chaque frame.
  • Interpolation visuelle fluide : utiliser une transition météo progressive calculée par le moteur plutôt qu'un changement visuel brutal et instantané.
  • Compilation irréprochable : le projet doit compiler avec 0 erreur et 0 avertissement.

Étapes de réalisation

  1. Créer la classe du script : dans ton IDE, crée une classe publique héritant de GTA.Script.
  2. Brancher les événements du cycle de vie : dans le constructeur, abonne des gestionnaires à Tick, KeyDown et Aborted.
  3. Mettre en place le message d'accueil unique : dans Tick, utilise un champ booléen privé (_introduced) pour afficher le sous-titre lors de la première frame, puis ignore les frames suivantes.
  4. Intercepter la touche clavier : dans KeyDown, évalue e.KeyCode pour détecter quand le joueur appuie sur Keys.NumPad5.
  5. Implémenter la transition météo : dans une méthode privée, appelle l'API moteur qui fait évoluer l'atmosphère vers un ciel dégagé en 10 secondes, puis poste un message de téléscripteur.
  6. Déployer et valider : compile le projet, copie la DLL obtenue dans Grand Theft Auto V/scripts, puis appuie sur Inser en jeu pour constater le résultat.

APIs, outils à explorer

  • GTA.Script : classe de base requise pour tous les scripts managés ScriptHookVDotNet.
  • GTA.World.TransitionToWeather(Weather weather, float duration) : effectue une transition météo progressive sur une durée donnée en secondes.
  • GTA.Weather.Clear : valeur d'énumération représentant un ciel bleu sans nuage.
  • GTA.UI.Screen.ShowSubtitle(string message, int duration) : affiche une bannière textuelle en bas au centre de l'écran.
  • GTA.UI.Notification.PostTicker(string message, bool isImportant) : ajoute un message dans le flux de notifications au-dessus du radar.
  • System.Windows.Forms.Keys : énumération listant les codes de touches du clavier.

Critères de validation

Ton mod est validé dès que :

  • Visual Studio compile ta DLL avec 0 erreur et 0 avertissement.
  • L'appui sur Inser en jeu recharge les scripts sans lever d'exception dans ScriptHookVDotNet.log.
  • Le sous-titre "Hello GTA ! Ton premier mini-mod est charge." s'affiche pendant 4 secondes au démarrage.
  • L'appui sur Pavé numérique 5 déclenche une transition fluide de 10 secondes vers un ciel dégagé.
  • Une notification "Meteo : ciel degage." apparaît au-dessus de la mini-carte pour confirmer le changement météo.

Solution, explications

Partner
Solution vérifiée et explications du code

Le sujet, les contraintes et les étapes de réalisation restent 100% libres pour t'exercer par toi-même. Le code source de référence vérifié et les explications détaillées de production sont réservés aux membres du tier Partner.