Aller au contenu principal

Projet 00 : Préparer son atelier

C'est ton premier projet, et tu n'écriras pas encore de code. C'est délibéré. Avant d'écrire ta première ligne de C#, tu dois faire confiance à ton atelier. La seule façon d'acquérir cette certitude, c'est de voir ta chaîne tourner, de forcer une panne contrôlée, puis de la rétablir sans encombre. À la fin de cet exercice, tu sauras que ton environnement est opérationnel, et surtout, tu sauras diagnostiquer le problème quand quelque chose ne va pas.


La mission

Valider ta chaîne complète de modding en prouvant trois couches distinctes :

  1. Confirmer que le hook natif répond en jeu.
  2. Confirmer que le pont ScriptHookVDotNet intercepte la commande de rechargement.
  3. Déployer un script de diagnostic dans Grand Theft Auto V/scripts, vérifier son exécution en direct en jeu, forcer une panne contrôlée et restaurer le fonctionnement proprement.

Spécifications, contraintes

  • Mode histoire hors ligne uniquement : effectue tous tes tests strictement en solo. Ne lance jamais GTA Online avec des fichiers moddés ou des hooks présents dans le dossier du jeu.
  • Séparation stricte des couches : teste chaque maillon de la chaîne indépendamment. Une défaillance du hook natif n'a rien à voir avec un pont .NET absent ou un script défectueux.
  • Exercice de panne contrôlée : provoque volontairement un scénario de script manquant pour constater qu'une absence de fichier ne fait ni planter le moteur de jeu, ni mourir le pont .NET.
  • Aucune compilation manuelle requise : pour cette étape de prise en main, utilise le binaire de diagnostic prêt à l'emploi P0Diagnostic.dll (ou examine son code source dans la référence repliable ci-dessous).

Étapes de réalisation

  1. Tester le hook natif : en jeu, appuie sur F4 pour ouvrir le menu trainer (par exemple NativeTrainer.asi fourni avec ScriptHookV). Vérifie que le menu s'affiche et se manipule sans saccade.
  2. Tester le pont .NET : appuie sur la touche Inser du clavier. Confirme que ScriptHookVDotNet intercepte la touche et affiche sa notification de rechargement dans la console ou le téléscripteur d'écran.
  3. Déployer le script de diagnostic : copie P0Diagnostic.dll dans ton dossier Grand Theft Auto V/scripts/.
  4. Déclencher le rechargement à chaud : en jeu, appuie sur Inser. En quelques secondes, vérifie qu'un sous-titre à l'écran annonce l'état actif et que le fichier scripts/p0_diagnostic.log se remplit de lignes horodatées.
  5. Exécuter la panne contrôlée : déplace P0Diagnostic.dll hors du dossier scripts (par exemple sur ton bureau). Reviens en jeu et appuie sur Inser.
  6. Observer le comportement de tolérance aux pannes : constate que le sous-titre s'arrête, mais que le jeu continue de tourner normalement sans crash et que le pont .NET reste parfaitement réactif.
  7. Restaurer la chaîne : replace P0Diagnostic.dll dans scripts/ et appuie à nouveau sur Inser. Vérifie que le sous-titre et l'écriture dans le log reprennent immédiatement.

APIs, outils à explorer

  • ScriptHookV.dll + dinput8.dll : le hook ASI de bas niveau qui s'injecte dans l'espace mémoire du jeu.
  • ScriptHookVDotNet3.asi + ScriptHookVDotNet3.dll : le pont .NET managé qui héberge et exécute les assemblies C#.
  • Grand Theft Auto V/ScriptHookVDotNet.log : le journal central consignant l'initialisation du pont, le chargement des assemblies et les exceptions non interceptées.
  • Grand Theft Auto V/scripts/ : le répertoire dédié où résident tous les scripts et assemblies créés par les moddeurs.

Critères de validation

Ton atelier est validé dès que :

  • Appui sur F4 : le menu trainer s'ouvre de manière fiable en jeu (hook natif prouvé).
  • Appui sur Inser : la touche de rechargement déclenche la notification du bridge (pont .NET prouvé).
  • DLL présente dans scripts/ : le sous-titre de diagnostic s'affiche toutes les 5 secondes et les entrées s'écrivent dans p0_diagnostic.log.
  • Retrait de la DLL et appui sur Inser : le script cesse son exécution sans geler le jeu ni tuer le pont .NET.
  • Remise de la DLL et appui sur Inser : le script reprend son cycle à la demande.

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.