Parent : [[INDEX-FIVEM-GAMEPLAY]]
FiveM - Vehicle Shop Config : mapping marques GTA vers logos et couleurs véhicules
Problème
Les véhicules GTA ont des noms de marques (Albany, Annis, Benefactor...) qui ne sont pas user-friendly. Une config statique permet d'afficher des logos et couleurs personnalisées dans l'UI du concessionnaire.
Solution
Mapping statique des marques GTA vers logos images, liste de couleurs véhicules avec IDs, et configuration de catégories/prices par véhicule.
// Mapping marques → logos
config.brandsLogos = {
['Albany']: 'Albany.webp',
['Annis']: 'Annis.webp',
['Benefactor']: 'Benefactor.webp',
['Bravado']: 'Bravado.webp',
['Declasse']: 'Declasse.webp',
['Dewbauchee']: 'Dewbauchee.webp',
['Emperor']: 'Emperor.webp',
['Enus']: 'Enus.webp',
['Gallivanter']: 'Gallivanter.webp',
['Imponte']: 'Imponte.webp',
['Inverto']: 'Inverto.webp',
['Karin']: 'Karin.webp',
['Lampadati']: 'Lampadati.webp',
['Obey']: 'Obey.webp',
['Ocelot']: 'Ocelot.webp',
['Pegassi']: 'Pegassi.webp',
['Pfister']: 'Pfister.webp',
['Progen']: 'Progen.webp',
['Schyster']: 'Schyster.webp',
['Truffade']: 'Truffade.webp',
['Vapid']: 'Vapid.webp',
['Weeny']: 'Weeny.webp',
['Zircoflow']: 'Zircoflow.webp'
};
// Couleurs GTA avec IDs
config.colorsList = [
{ label: "Metallic Black", id: 0 },
{ label: "Metallic Graphite Black", id: 1 },
{ label: "Metallic Black Steal", id: 2 },
{ label: "Metallic Dark Silver", id: 3 },
{ label: "Metallic Silver", id: 4 },
{ label: "Metallic Blue Silver", id: 5 },
{ label: "Metallic Steel Gray", id: 6 },
{ label: "Metallic Shadow Silver", id: 7 },
{ label: "Metallic Stone Silver", id: 8 },
{ label: "Metallic Midnight Silver", id: 9 },
{ label: "Metallic Gun Metal", id: 10 },
{ label: "Metallic Anthracite Grey", id: 11 },
{ label: "Matte Black", id: 12 },
{ label: "Matte Gray", id: 13 },
{ label: "Matte Light Grey", id: 14 },
{ label: "Util Black", id: 15 },
{ label: "Util Black Poly", id: 16 },
{ label: "Util Dark silver", id: 17 },
{ label: "Util Silver", id: 18 },
{ label: "Util Gun Metal", id: 19 },
{ label: "Util Shadow Silver", id: 20 }
];
// Véhicule config
config.vehicles = {
['adder']: {
name: 'Adder',
brand: 'Truffade',
price: 1000000,
category: 'super',
model: 'adder',
hash: GetHashKey('adder')
}
};
Pourquoi
- Les logos donnent une identité visuelle au concessionnaire
- Les IDs couleurs sont les valeurs natives GTA pour
SetVehicleColours - La config statique est rapide (pas de query base de données pour l'UI)
Quand l'utiliser
- Concessionnaires véhicules, garages, custom shops
- Toute UI affichant des marques/couleurs
Quand NE PAS l'utiliser
- Si les véhicules sont chargés dynamiquement depuis une base de données
Exemples
Correct
// Génération dynamique de l'UI à partir de la config
function getVehicleDisplayData(model) {
const vehicle = config.vehicles[model];
if (!vehicle) return null;
return {
...vehicle,
brandLogo: config.brandsLogos[vehicle.brand] || 'default.webp',
colors: config.colorsList
};
}
Incorrect
// Hardcodé dans le code → maintenance impossible
if (model === 'adder') {
logo = 'Truffade.webp';
price = 1000000;
} else if (model === 'zentorno') {
logo = 'Pegassi.webp';
price = 725000;
}
Références
- vms_vehicleshopv2/config/config.js L1-109