En fait GTA San Andreas fonctionne d'une manière intéressante. Si tu t'intéresse a la Programmation Orienté Objet (En C++) tu comprendra.
Il est basé sur un Heritage de Class.
Par example, CBike, CTrailer, CQuad, CPlane, (Et bien plus) herite tous de la classe CVehicle qui elle meme herite de la classe CEntity (Je croit que j'oublie un heritage avec CPlaceable).
Et chacune de ces classe (CBike, CTrailer, CQuad, CPlane) sont controlé par une fonction appelé process control qui leur est propre.
Ont a donc CBike::ProcessControl(), CTrailer::ProcessControl(), CQuad::ProcessControl(), CPlane::ProcessControl()
Les objets ont eux aussi un process control.
Et chacune de ces Entités (Appelons les ainsi) sont contrôler soit par un Clavier (Qui lui meme controle une classe CPad (C'est complexe un GTA ;) ) ou bien sont contrôler par l'IA du jeu.
Quand CJ rentre dans un vehicule, tu va controler le CVehicle::ProcessControl() (Qui correspond au type du vehicule controlé, puisque le gameplay est different d'un type de vehicule a un autre) et tu ne controlera plus ton CPlayer::ProcessControl (Du moins sur le network).
Quand au porte locker sur GTA c'est tout simple, CVehicle contient une variable qui gere l'etat des porte. True ou False. Le truc c'est que SA-MP realloue la Vehicle Pool (Pour pouvoir en utiliser plus, le jeu étant limité a 110). Donc toutes les adresse qui te permette d'y acceder change :)
Mais bon, c'est pas compliquer a trouver ^^
J'espere avoir été clair lol