Natives monde
Une scène qui ignore le monde paraît fausse. Voici les lecteurs de monde légers que les vrais mods appellent sans cesse pour placer leurs histoires dans une ville crédible : heure, zone, sol, route et orientation.
L'heure de la journée
GET_CLOCK_HOURS() (et GET_CLOCK_MINUTES) lisent l'horloge du jeu.
Quand en avoir besoin : décider si quelque chose peut arriver. Le code réel conditionne des comportements entiers à l'heure — les convois tournent la nuit, les patrouilles le jour, les scènes de bar jamais à midi. C'est aussi le moyen le moins cher de rendre votre monde différent à 4h du matin qu'à 16h sans orchestrer quoi que ce soit.
int hour = Function.Call<int>(Hash.GET_CLOCK_HOURS);
Où sommes-nous
GET_NAME_OF_ZONE(x, y, z) retourne le code de zone GTA (« SANDY », « ZANCUDO », « ELYSIAN », …).
Quand en avoir besoin : territoire et saveur. Les patrouilles de faction spawnent par zone, le dialogue réagit au quartier (« on est hors champ ici »), et les lignes de log annotent les positions en termes lisibles au lieu de coordonnées brutes. C'est la primitive standard « dans quelle partie de la carte suis-je ».
Y a-t-il du sol
GET_GROUND_Z_FOR_3D_COORD(x, y, z, outZ, unk) projette un point vers le sol.
Quand en avoir besoin : placer tout ce qui ne doit pas être en l'air — spawns, points de couverture, corps déposés, zones d'atterrissage hélico. Le code réel le vérifie avant de s'engager sur un spot, puis utilise la hauteur retournée plutôt qu'une estimation.
Route ou pas
IS_POINT_ON_ROAD(x, y, z, p4) répond exactement à « est-ce que ce point fait partie d'une route ».
Quand en avoir besoin : le placement. Les corps traînés hors de la chaussée, les escortes tenues loin des voies de circulation, la logique de stationnement qui préfère les spots de trottoir. C'est complémentaire de la projection au sol : le sol dit il y a du plancher, la route dit quel type de plancher.
Faire face à une direction
GET_HEADING_FROM_VECTOR_2D(x, y) convertit un vecteur de direction en angle de cap.
Quand en avoir besoin : orienter des acteurs sans entité cible — le flic qui fait face à la direction de la foule, le gang qui fixe le vecteur de fuite du joueur. Moins coûteux que de donner à tout le monde une cible complète, et ça marche quand le point d'intérêt n'est qu'une direction.
Ce qu'il ne faut pas faire
Ne sondez pas ces fonctions à chaque frame quand le résultat ne peut pas changer : zone et heure sont des faits par intervalle. Les vrais mods cachent la zone, rafraîchissent l'heure à chaque minute passée, et groupent les requêtes sol/route — la machine est rapide, mais des milliers de mods qui sondent chacun du rien à l'aire, c'est comme ça que les temps de frame meurent.