🚗 Agency-Garage v1.0.1 — Liste déroulante à 3 lignes, deux exploits critiques corrigés & un package plus propre.
🚗 Agency-Garage
🔒 Sécurité — Exploit de véhicule gratuit corrigé (critique) • L'action "sortir" faisait confiance au drapeau de véhicule de travail, au modèle et à la plaque envoyés par le client • Un client manipulé pouvait faire apparaître n'importe quel véhicule gratuitement dans n'importe quel garage • Maintenant entièrement vérifié côté serveur : les véhicules de travail n'apparaissent que dans un vrai garage de travail auquel le joueur a accès, et seulement pour un modèle que ce garage liste réellement • La plaque est générée côté serveur — la valeur du client n'est jamais de confiance.
🔒 Sécurité — Griefing de mise en fourrière corrigé (critique) • L'événement de mise en fourrière n'avait pas de vérification de permission — n'importe quel joueur pouvait mettre en fourrière le véhicule de quelqu'un d'autre et définir des frais de libération arbitraires • Maintenant restreint aux emplois sur liste blanche (Config.Impound.allowedJobs, par défaut police / mécanicien) ou à l'ACE 'agency.garage.impound' • Les frais de libération sont limités à Config.Impound.maxFee, l'identifiant du dépôt est validé et l'événement est limité en fréquence • L'exportation côté serveur ImpoundVehicle() reste inchangée et continue de fonctionner pour les scripts de confiance
🔒 Sécurité — Localisateur de véhicule renforcé • "Locate" ne renvoie maintenant que les coordonnées d'un véhicule que le joueur demandeur possède réellement — plus de suivi des plaques étrangères
🪟 Corrigé — Défilement de la liste des véhicules • La liste grandissait indéfiniment avec le nombre de véhicules et était coupée en bas — vous ne pouviez pas faire défiler les voitures en dessous (même problème dans le dépôt de fourrière) • La liste est maintenant limitée à 3 lignes et défile proprement au-delà, avec la barre de défilement cyan stylisée • Peu de véhicules → le panneau se réduit pour s'adapter au lieu d'afficher une grande boîte vide • Vérifié sur des résolutions 1080p, 1440p et d'ordinateurs portables
🌐 Nouveau — Options de configuration • Config.Impound.allowedJobs — quels emplois peuvent utiliser l'événement de fourrière en jeu • Config.Impound.maxFee — plafond strict sur les frais de libération demandés par le client
🧹 Nettoyé — Suppression de deux fichiers dupliqués morts (client_main.lua, root app.js) qui n'ont jamais été chargés — paquet plus léger et plus professionnel
♻️ Rétrocompatible • Pas de changements de base de données — l'état des véhicules utilise toujours les colonnes d'état/de garage standard • Les véhicules existants, les garages et la synchronisation téléphonique continuent de fonctionner sans changement — les nouveaux contrôles de sécurité sont purement additifs
Installation • Écrasez les fichiers suivants dans votre dossier Agency-Garage existant :
fxmanifest.lua
config.lua
server/main.lua
html/index.html
html/style.css • Supprimez ces fichiers restants s'ils existent : client_main.lua et app.js (tous deux dans le dossier racine) • Remarque de configuration : si vous conservez votre propre config.lua, ajoutez allowedJobs et maxFee à votre bloc Config.Impound — sinon l'événement d'impound reste verrouillé uniquement pour ACE. Définissez allowedJobs sur les noms de travail réels de votre serveur (par exemple, mécanicien, ambulance). • Aucune modification de base de données requise. • Redémarrez la ressource via txAdmin ou assurez-vous qu'Agency-Garage est actif.