Aller au contenu
Toute la documentation

Clothingstore

Magasin de vêtements avec aperçu en direct : les joueurs changent de vêtements, enregistrent des looks comme tenues contre de l'argent liquide et les partagent avec les autres. Avec le sac de vêtements, ils peuvent aussi porter leurs tenues en déplacement. En plus, il y a un barbier et un salon de tatouage avec leurs propres emplacements, blips et menus.

Prérequis
  • ESX Legacy (es_extended)
  • oxmysql
  • skinchanger et esx_skin (inclus avec ESX Legacy)
  • OneSync (obligatoire)
  • Pour le sac de vêtements : un inventaire avec des items ESX (table items), p. ex. off_inventory

Fonctionnalités

  • Aperçu en direct avec une caméra sur la partie du corps concernée. Glisser fait tourner le personnage, la molette zoome.
  • 14 catégories avec Modèle et Style.
  • Tenues par personnage : les enregistrer contre un prix fixe, les porter, renommer, partager et supprimer.
  • Partagées : porter gratuitement les tenues des autres joueurs (les 100 plus récentes).
  • Sac de vêtements (item clothbag) : le poser au sol et y porter tes propres tenues.
  • Tout le monde voit le sac et peut l'utiliser.
  • Seul le propriétaire peut le ramasser. S'il est hors ligne, tout le monde peut le ramasser.
  • Les sacs posés restent même après un redémarrage.
  • /clearbags supprime tous les sacs posés.
  • Barbier avec aperçu en direct et caméra sur la tête :
  • toutes les coiffures et variantes du modèle de personnage, toutes les couleurs de cheveux avec mèches
  • barbe, sourcils, poils du torse, maquillage, blush et rouge à lèvres avec forme, opacité et couleur (barbe et poils du torse uniquement pour les personnages masculins)
  • Tu paies par catégorie modifiée. Annuler rétablit l'ancien look.
  • Salon de tatouage avec tous les tatouages de GTA, DLC compris, lus directement depuis le jeu :
  • triés par tête, torse, bras et jambes, avec recherche et filtre Les miens
  • aperçu sur le personnage, tatouer et retirer pour un prix fixe
  • enregistrés par personnage et réappliqués automatiquement après la connexion, le respawn et chaque changement de skin
  • Le barbier et le salon de tatouage prennent d'abord l'argent liquide, le reste à la banque.

Installation

  1. Place le dossier off_clothingstore dans ton dossier resources.
  2. Dans le server.cfg, après oxmysql, ESX et skinchanger :
cfg
ensure oxmysql
ensure es_extended
ensure skinchanger
ensure esx_skin
ensure off_clothingstore
  1. Supprime esx_clotheshop ou d'autres magasins de vêtements aux mêmes endroits.

Au premier démarrage, le script crée automatiquement :

  • les tables off_clothing_outfits, off_clothing_bags et off_clothing_tattoos
  • l'item clothbag dans la table items, s'il manque

Configuration

config/settings/config.lua

OptionPar défautDescription
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.design3Design de l'interface : 1 = Classique, 2 = Ticket, 3 = Storefront
blurtrueArrière-plan flou tant que le menu du sac est ouvert. Le magasin reste net, car on y voit son propre personnage
outfitPrice250Prix par tenue enregistrée (argent liquide), 0 = gratuit
maxOutfits25Max. de tenues par personnage
markerDisque, 3 mCercle : type, size (zone pour ouvrir), drawDistance, color, alpha
blipIcône 73Icône sur la carte (enabled, sprite, color, scale)
locations14 magasinsCentre du cercle au sol en vec3
barberactivé, 7 emplacementsBarbier, voir plus bas
tattooactivé, 6 emplacementsSalon de tatouage, voir plus bas

config/settings/config.categories.lua – Catégories

Seules ces catégories apparaissent dans le magasin et seules elles sont enregistrées dans les tenues, dans l'ordre du fichier.

lua
{ icon = 'shoes', label = 'Schuhe', variant = 'shoes_1', color = 'shoes_2', camOffset = vec3(0, 0.9, -0.8) },
ChampDescription
iconbag, chain, earrings, glasses, gloves, hat, jacket, mask, ring, shirt, shoes, shorts, vest, watch ou une icône Phosphor avec ph-
labelNom dans le magasin
variant / colorValeurs skinchanger pour Modèle et Style
camOffsetCaméra : x = gauche/droite, y = distance vers l'avant, z = hauteur

config/settings/config.bag.lua – Sac de vêtements

OptionPar défautDescription
enabledtruefalse = sac de vêtements entièrement désactivé (pas d'item, pas de sacs)
item'clothbag'Nom de l'item, créé au démarrage dans la table items
weight1Poids de l'item
model'prop_cs_heist_bag_02'Objet du sac au sol
max1Nombre de sacs qu'un joueur peut poser en même temps
distance2.0Distance en mètres pour utiliser et ramasser
clearCommand'clearbags'Commande qui supprime tous les sacs posés, '' = désactivée
clearGroups{ 'projektleitung' }Groupes autorisés à utiliser la commande (la console serveur toujours)

Avec enabled = false, les sacs posés restent dans la base de données. Ils reviennent dès que le sac est réactivé.

config/settings/config.lua – Barbier et salon de tatouage

Les deux ont leurs propres emplacements et blips, le cercle (marker) est le même que pour le magasin.

lua
barber = {
  enabled = true,
  price = 150,
  blip = { enabled = true, sprite = 71, color = 0, scale = 0.8 },
  locations = { vec3(-814.3, -183.8, 36.6), ... },
},
OptionPar défautDescription
enabledtruefalse = barbier ou salon de tatouage entièrement désactivé
price150 / 500Barbier : prix par catégorie modifiée · Salon de tatouage : prix par tatouage, 0 = gratuit
removePrice250Salon de tatouage uniquement : prix pour retirer un tatouage, 0 = gratuit
blipIcône 71 / 75Icône sur la carte (enabled, sprite, color, scale)
locations7 / 6 emplacementsCentre du cercle au sol en vec3

Le paiement prend d'abord l'argent liquide, le reste à la banque. Les prix n'existent que sur le serveur, le client ne peut pas les modifier. Les tatouages sont enregistrés dans la table off_clothing_tattoos, 100 au maximum par personnage.

config/functions.lua

C'est ici que tu connectes tes propres scripts.

FonctionCôtéUtilité
Notify(source, message, type)ServeurMessage à un joueur (sac de vêtements, /clearbags)
Notify(message, type)ClientMessage sur le client (p. ex. trop loin, pas de modèle freemode au salon de tatouage)
HelpNotify(text)ClientTexte d'aide dans le cercle devant le magasin, le barbier et le salon de tatouage (par défaut : ESX.ShowHelpNotification)

La version serveur envoie le message directement via ESX. Si tu utilises ton propre script de notification, adapte les deux fonctions Notify.

Langues

Tous les textes se trouvent dans config/locales/<langue>.json, la devise et le format des nombres sous ui (currency, intl). Pour ta propre langue, copie un fichier, traduis-le et définis serverInfo.locale. Les placeholders comme %d et {price} doivent rester. Les noms des catégories se trouvent dans config/settings/config.categories.lua (label). Les noms des catégories du barbier et des zones du corps se trouvent sous ui.barber.groups et ui.tattoo.zones, les noms des tatouages viennent de GTA dans la langue du jeu.

En jeu

Magasin

Appuie sur E dans le cercle devant le magasin, QUITTER ou ESC ferme.

  • Vêtements : modifier des pièces et les enregistrer comme tenue.
  • Enregistrées : porter, renommer, partager et supprimer tes propres tenues.
  • Partagées : porter les tenues des autres joueurs.

Sac de vêtements

  • Poser : utilise l'item clothbag dans ton inventaire, le sac est posé au sol devant toi. Ça ne marche pas en véhicule, mort ou dans une autre dimension.
  • Au-dessus du sac s'affiche [E] Utiliser. Le propriétaire voit en plus [H] Ramasser. Si le propriétaire est hors ligne, tout le monde voit [H] Ramasser.
  • E ouvre à gauche une liste de tes tenues enregistrées. Porter met la tenue, la liste reste ouverte. ESC ou QUITTER la ferme, de même quand tu t'éloignes.
  • H remet le sac dans ton inventaire. Tu peux changer la touche dans les raccourcis clavier de FiveM.

Barbier

Appuie sur E dans le cercle devant le barbier. Le chapeau et le masque sont retirés pour l'aperçu, la caméra montre la tête.

  • Choisis la catégorie en haut : Cheveux, Barbe, Sourcils, Poils du torse, Maquillage, Blush ou Rouge à lèvres.
  • Change Forme et Variante avec les flèches ou en cliquant sur le nombre, Opacité avec le curseur, Couleur et Mèches dans la palette.
  • Faire glisser fait tourner le personnage, la molette zoome.
  • Payer affiche le coût (prix × catégories modifiées) et enregistre le look. Annuler, QUITTER ou ESC réinitialise tout ce qui n'est pas encore payé.

Salon de tatouage

Appuie sur E dans le cercle devant le salon. Le personnage est déshabillé pour l'aperçu, les vêtements reviennent quand tu pars.

  • Choisis la zone en haut, la caméra s'y déplace. Le nombre indique les tatouages faits / tous les tatouages de la zone.
  • Un clic sur un tatouage l'affiche en aperçu sur le personnage, un autre clic le masque. Rechercher un tatouage filtre par nom, Les miens n'affiche que ceux déjà faits.
  • Tatouer achète le tatouage, Retirer enlève un tatouage fait pour le prix de retrait.
  • Terminé, QUITTER ou ESC ferme le salon.

Commandes

CommandeQuiCe qui se passe
/clearbagsGroupes de clearGroups, console serveurSupprime tous les sacs posés. Les propriétaires en ligne récupèrent leur item. Les sacs des joueurs hors ligne sont seulement supprimés.

Console

Au démarrage, le script vérifie l'installation et signale les erreurs et remarques dans la console serveur. Si tout va bien, tu y vois « a démarré avec succès ». Si ce message manque, lis les erreurs au-dessus, corrige-les et redémarre. Si l'item clothbag est créé, la console le signale aussi. Si le barbier ou le salon de tatouage est activé mais sans locations, un avertissement apparaît.

Problèmes fréquents

ProblèmeSolution
Rien ne se passe avec EPlace-toi au centre du cercle. skinchanger et esx_skin doivent démarrer avant.
Le cercle flotte ou est dans le solAjuste la hauteur (z) dans locations.
Look perdu après une reconnexionSeul enregistrer ou porter une tenue garde le look, abandonner réinitialise tout.
La catégorie n'affiche que 0 modèlesLa pièce n'existe pas pour ton modèle de personnage (GTA ou addons de vêtements).
Le sac est invisibleVérifie model dans config/settings/config.bag.lua, l'objet doit exister dans GTA.
L'item clothbag manqueVérifie la console. Si l'item n'est pas créé, ajoute-le à la main dans la table items.
[H] Ramasser n'apparaît pasSeul le propriétaire peut ramasser. Les autres seulement quand le propriétaire est hors ligne.
H ne ramasse rienDans les raccourcis clavier de FiveM, vérifie si une autre touche est définie pour « Ramasser le sac de vêtements ».
« Tu as déjà posé un sac. »Ramasse d'abord ton propre sac ou augmente max.
Tatouages absents après un changement de skinIls sont réappliqués automatiquement peu après. N'utilise pas d'autres scripts qui posent eux-mêmes des tatouages.
« Les tatouages sont uniquement disponibles pour les personnages normaux »Seuls mp_m_freemode_01 et mp_f_freemode_01 ont des tatouages.
Barbe et poils du torse absents chez le barbierMasqués pour les personnages féminins, comme dans GTA Online.
Look du barbier perdu après une reconnexionSeul Payer enregistre le look, annuler le réinitialise.