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 :
- Définir une classe de script managée héritant de
GTA.Script. - Afficher un sous-titre de bienvenue une seule fois à l'initialisation du mod en jeu.
- Écouter la saisie clavier (Pavé numérique 5) pour amorcer une transition météo progressive vers un ciel parfaitement dégagé.
- 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
- Créer la classe du script : dans ton IDE, crée une classe publique héritant de
GTA.Script. - Brancher les événements du cycle de vie : dans le constructeur, abonne des gestionnaires à
Tick,KeyDownetAborted. - 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. - Intercepter la touche clavier : dans
KeyDown, évaluee.KeyCodepour détecter quand le joueur appuie surKeys.NumPad5. - 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.
- Déployer et valider : compile le projet, copie la DLL obtenue dans
Grand Theft Auto V/scripts, puis appuie surInseren 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
Inseren jeu recharge les scripts sans lever d'exception dansScriptHookVDotNet.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 5dé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
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.