
Rental
Location de véhicules : aux stations de location, le joueur choisit le véhicule, la couleur et la durée de location, paie à la minute et reçoit le véhicule directement à l'emplacement de retrait – voitures, bateaux ou aéronefs. Une fois le temps écoulé, il disparaît ; celui qui a fini plus tôt le rend avant.
- ESX Legacy (
es_extended) - OneSync
Fonctionnalités
- Plusieurs stations avec PNJ ou marker, leur propre emplacement de retrait et, en option, leur propre sélection de véhicules.
- Trois types de stations : location de voitures, location de bateaux (emplacement de retrait dans l'eau) et location d'aéronefs (piste ou héliport) – chacune avec sa propre liste de véhicules, son propre blip et ses propres textes dans le menu.
- Prix à la minute, paiement en liquide ou par banque, affichage du temps restant avec avertissements avant la fin.
- Retour anticipé : si le véhicule est en état de rouler et sur l'emplacement de retrait, une partie des minutes non utilisées est remboursée. Sinon, la location se termine sans remboursement. Log Discord de chaque retour.
- Une location par joueur. Si le spawn échoue, l'argent est remboursé.
Installation
- Place le dossier
off_rentaldans ton dossierresources. - Dans le
server.cfg– après ESX :
ensure es_extended
ensure off_rental- Optionnel : renseigne le webhook des retours dans
config/settings/config.server.lua.
Configuration
config/settings/config.lua
| Option | Par défaut | Description |
|---|---|---|
serverInfo.name | 'OFF SCRIPTS' | Nom du serveur, affiché dans l'interface à la place de « OFF SCRIPTS » |
serverInfo.locale | 'de' | Langue : de, en, pl, fr, es, it ou nl |
serverInfo.color | { 155, 89, 255 } | Couleur de l'UI (RGB) |
serverInfo.design | 3 | Design de l'interface : 1 = Classique, 2 = Ticket, 3 = Storefront |
blur | true | Fond flou tant que le menu est ouvert |
payment | 'both' | 'cash', 'bank' ou 'both' (le joueur choisit) |
rentalMinutes | 1–120, pas de 5, départ 30 | min, max, step et default de la durée de location en minutes |
warningMinutes | { 5, 1 } | Un avertissement arrive ce nombre de minutes avant la fin |
refundPercent | 50 | Retour anticipé : ce pourcentage des minutes non utilisées est remboursé, 0 = aucun remboursement |
platePrefix | 'RENT' | Début de la plaque (max. 4 caractères), p. ex. RENT4821 |
ped / marker / blip | Mécanicien / disque, 2 m / activé | Apparence du PNJ, du marker et du blip – marker.size est aussi la zone pour E, blip.sprite se règle par type (car, boat, aircraft) |
config/settings/config.stations.lua – Stations de location
| Champ | Description |
|---|---|
label | Nom dans le menu |
type | Optionnel : 'car' (par défaut), 'boat' ou 'aircraft' – définit la liste de véhicules, le blip et les textes |
interactionType | 'ped' (PNJ, position = vec4 avec orientation) ou 'marker' (cercle, position = vec3) |
spawn | vec4 – emplacement de retrait et de retour. Doit être libre : route ou parking, dans l'eau pour boat, sur une piste ou un héliport pour aircraft |
vehicles | Optionnel : quels model de la liste du type sont disponibles ici. Omis = tous |
config/settings/config.vehicles.lua – Véhicules et couleurs
Config.vehiclescontient une liste par type :car,boatetaircraft.- Par véhicule :
model,label,category(onglet dans le menu),price(prix par minute) etseats. - S'il manque une image de véhicule (p. ex. véhicules addon), place-la dans
web/dist/assets/vehicles/<model>.png. Config.colors:label= nom dans le menu,rgb= couleur de peinture ({ r, g, b }, chacun 0–255).
config/functions.lua
| Fonction | Utilité |
|---|---|
Notify(message, type) | Notify personnalisé (avertissements, fin de location …) · Serveur : Notify(source, message, type) |
HelpNotify(text) | Texte d'aide à la station |
ClientVehicleRented(vehicle, plate) | Après le spawn – p. ex. clés ou essence |
Logs Discord
Tu indiques le webhook dans config/settings/config.server.lua (côté serveur uniquement) : returns logue chaque retour anticipé avec le véhicule, la station, les minutes non utilisées et le remboursement. Une url vide ('') désactive le log. S'y ajoutent name (nom du bot), color (RGB) ainsi que avatar et image (URL d'image, '' = aucune).
Langues
Tous les textes se trouvent dans config/locales/<langue>.json. Pour ta propre langue, copie un fichier, traduis-le et définis serverInfo.locale – garde les placeholders comme %d et {price}.
En jeu
À la station, appuie sur E, choisis le véhicule, la couleur et la durée de location, puis paie en liquide ou par banque – tu es directement assis dans le véhicule. La location se termine quand le temps est écoulé, quand le joueur quitte le serveur ou quand le véhicule est supprimé. Les locations ne sont pas sauvegardées : au redémarrage du script, tous les véhicules de location disparaissent sans remboursement.
Retour anticipé – uniquement à une station du même type :
- Conduis le véhicule sur l'emplacement de retrait marqué, arrête-toi et appuie sur E.
- Ou appuie sur E à la station : le menu affiche la location en cours, le temps restant et le remboursement. Rendre le véhicule termine la location.
Remboursement = minutes entières non utilisées × prix par minute × refundPercent, sur le même compte que le paiement. Si le véhicule n'est pas sur l'emplacement de retrait, est détruit ou a disparu, la location ne peut être terminée que dans le menu – après une confirmation et sans remboursement. Le véhicule est ensuite supprimé ; avec un bateau, le joueur est ramené à terre.
Problèmes fréquents
| Problème | Solution |
|---|---|
[ERROR] dans la console du serveur | Le script vérifie l'installation au démarrage. Lis le message, corrige, redémarre le script. |
| « L'emplacement de retrait est actuellement occupé » | Quelque chose se trouve sur spawn. Libère la place ou déplace spawn – rien n'est débité. |
| « Ce véhicule n'est pas disponible ici » | model incorrect, non installé, absent de la liste du type ou des vehicles de la station. |
| Le bateau ou l'aéronef apparaît mal | spawn n'est pas dans l'eau ou pas libre sur une piste ou un héliport – relève la position à nouveau. |
| Le retour n'est pas possible | Uniquement à une station du même type ; dans le véhicule, arrête-toi d'abord. |
| Pas de clé pour le véhicule de location | Indique ton script de clés dans ClientVehicleRented. |
| Le PNJ est dans un mur ou flotte | Adapte position – z est la hauteur sur laquelle se tient le joueur. |
Pas encore acheté ?
Voir Rental dans la boutique