Aller au contenu principal

Natives interface

Les mods ne combattent jamais le HUD du jeu quand ils peuvent l'éviter — ils prennent la main sur l'entrée avec une poignée de natives, dessinent leur propre couche, et redonnent la main pour que rien ne fuie. C'est la couche native sur laquelle sont construits le menu, la roue radiale et les instructions d'un mod.

Retirer l'entrée

DISABLE_CONTROL_ACTION(inputGroup, controlIndex, disable) gèle un contrôle précis (tirer, couverture, déplacements…). Dans une vraie interface — une roue radiale qui prend la main, un dialogue qui attend un clic — c'est ce qui empêche le jeu de continuer à réagir pendant que votre roue est ouverte :

Function.Call(Hash.DISABLE_CONTROL_ACTION, 0, (int)Control.Select, true);

Quand en avoir besoin : toute surface modale personnalisée. Sans elle, les raccourcis du jeu traversent votre menu et le joueur vise, tire ou sort le téléphone pendant qu'il « parle » à votre pnj. Désactivez à l'ouverture, réactivez à la fermeture — symétrique, sinon vos contrôles restent morts pour toujours.

Lire l'entrée

IS_CONTROL_JUST_PRESSED(inputGroup, controlIndex) et GET_CONTROL_NORMAL(inputGroup, controlIndex) vous donnent directement la main du joueur.

Quand en avoir besoin : le moment main-ouverte de la roue. Les vraies roues et menus rapides sondent des indices de contrôle — pas les énumérations Key.W — donc ils se comportent identiquement pour manette et clavier, et ils se conditionnent sur IS_CONTROL_JUST_PRESSED au lieu d'une touche brute pour que l'entrée ressemble à une action, pas à un bouton maintenu qui se rabat chaque frame.

Dessiner du texte

La pile de texte s'ouvre avec BEGIN_TEXT_COMMAND_*, se remplit avec ADD_TEXT_COMPONENT_*, se ferme avec END_TEXT_COMMAND_* (par ex. END_TEXT_COMMAND_DISPLAY_HELP). Dessiner un sous-titre ou un message d'aide est toujours cette forme en trois temps.

Quand en avoir besoin : donner au joueur le « pourquoi » d'une scène — une consigne brève près d'un point de légende, une courte ligne d'aide dismissible. Les trois parties sont rigides : ouvrir, ajouter, afficher. Sautez-en une et le texte s'engloutit en silence.

Aide vs sous-titre vs ticker

Les natives reflètent la distinction des surfaces que distingue GTA : numéros, sous-titres et messages d'aide pour la parole et les instructions diégétiques, tandis que les confirmations et l'état système sont des tickers/notifications qui ne partagent aucune de la pile.

Quand en avoir besoin : choisir quelle native toucher. Une ligne de dialogue est un sous-titre ; une confirmation de config sauvegardée est un ticker ; une petite astuce de tutoriel est un message d'aide. Utiliser la bonne surface garde votre interface de ne pas empiler deux voix sur l'écran du joueur.

Ce qu'il ne faut pas faire

  • Bouclez DISABLE_CONTROL_ACTION dans Tick et souvenez-vous de restaurer (le même appel à false, sinon l'entrée s'annule en silence) ; l'échec de symétrie — désactiver à l'ouverture, oublier à la fermeture — est le fameux bug « mes contrôles ont été avalés ».
  • Ne mélangez pas un menu et des sous-titres plein écran à la fois ; une seule surface de lecture, et les natives font partie du maintien de cette discipline.