Barber shop
Un barbier mis en scène, avec une caméra que le joueur pilote vraiment. Le personnage entre, s'assoit, et le barbier travaille pendant qu'une caméra orbitale cadre la tête. Cheveux, barbe, overlays et tous les détails de peau, prévisualisés avant d'avoir dépensé un dollar.
Ce qu'il fait
Contrôle total de la caméra
Une caméra orbitale à plat pivote sur l'os de la tête, capturé une seule fois, pour qu'une animation de scène synchronisée ne puisse jamais déplacer le cadrage. Glissez pour tourner sur 360 degrés, molette pour zoomer, glissement vertical pour descendre du niveau des yeux jusqu'aux chaussures. Sensibilité et inversion d'axe sont à vous dans `Config.Camera`.
Spécifications
techniques
Tout ce que vous
recevez
-
Quinze fichiers de langue, livrés remplis
Vos joueurs lisent le script dans leur langue dès le premier démarrage, et les fichiers sont hors escrow, donc vous pouvez corriger n'importe quelle ligne en production. Note honnête : ils sont traduits et relus par nos soins, pas par des natifs des quinze langues. Dites-nous ce qui sonne faux dans la vôtre, c'est corrigé.
-
Sept bridges, un fichier chacun
Framework, notifications, interaction, vêtements, inventaire, décorations et compat. Chaque fichier documente ses cibles, ce qu'il détecte, et ce que chaque cible vous coûte. La détection sonde l'export réel plutôt que l'état de la ressource, un export renommé dégrade donc en silence au lieu de planter au démarrage.
-
Tout ce qui se règle reste ouvert
Boutiques, prix, blips, comportement du fauteuil, sensibilité de la caméra, éclairage, profondeur de champ, tutoriel, sons et tous les bridges. `config/*.lua`, `locales/*.lua` et `bridges/*.lua` sont hors escrow et modifiables en production.
-
Un rapport d'installation à coller au support
`/avenida_barber_check` affiche quel bridge a été retenu pour chaque catégorie, si les tables et les colonnes existent, et quelle version du jeu tourne réellement. Il répond à la plupart des questions d'intégration avant que vous ayez à les poser.
Guide d'intégration
Installation
-
Déposez la ressource
Récupérez le script depuis votre compte Tebex, copiez le dossier
avenida_barber/dans votre dossier resources et ajoutezensure avenida_barberà votre config serveur, aprèsensure oxmysql. -
Passez le SQL
Exécutez la section [A] d'
INSTALL.sqlsur votre base. La section [B] est conditionnelle, l'en-tête du fichier dit quand elle s'applique. -
Vérifiez la config
Ouvrez
config/config.lua. Les valeurs par défaut conviennent à la plupart des serveurs, la seule ligne à regarder estConfig.Locale. Les prix, les boutiques et le comportement du fauteuil vivent à côté, dansconfig/barber.lua. -
Contrôlez les intégrations
Mettez
Config.Debug = true, redémarrez, et lisez la console : une ligne par catégorie de bridge nomme la cible retenue. Repassez àfalseune fois que les lignes correspondent à votre serveur, les commandes de diagnostic qu'il débloque coûtent un à-coup. -
Donnez-vous les droits admin
Ajoutez
add_ace group.admin avenida_barber.admin allowà votre config serveur, puis lancez/avenida_barber_checken jeu pour le rapport complet.
Démarrage rapide
Forcer une intégration au lieu de la détecter
La détection automatique couvre la plupart des serveurs, et elle sonde l'export réel plutôt que l'état de la ressource. Sur une stack maison, forcez la cible et la détection est entièrement court-circuitée.
-- config/config.lua
Config.Locale = 'en'
Config.UseOxLib = true
Config.Framework = 'auto' -- 'qbcore' | 'esx' | 'vrp' | 'standalone' | 'custom'
Config.Notif = 'ox_lib' -- 'qbcore' | 'esx' | 'ox_lib' | 'okok' | 'vrp' | 'chat' | 'custom'
Config.Interact = 'auto' -- 'avenida' | 'ox_target' | 'qb-target' | 'standalone' | 'custom'
Config.Clothing = 'auto' -- 'qb' | 'illenium' | 'fivem-appearance' | 'esx_skin' | 'vrp' | 'table' | 'custom'
Config.Camera = {
Sensitivity = 1.0, -- rotation, zoom and height, clamped to 0.1 - 5.0
InvertY = false,
}Référence API
Exports publics groupés par domaine. Chaque ligne montre la signature d'appel
Client
GetHairbase
exports['avenida_barber']:GetHairbase() --> { c = collection, t = nameHash } | nilLa décoration de racine de cheveux portée à l'instant, ou nil quand la coupe n'en demande aucune. Lisez-la avant d'appeler
ClearPedDecorationset rendez-la ensuite : les cheveux gardent leur ombrage au lieu de devenir un casque uni.GetTattoos
exports['avenida_barber']:GetTattoos() --> { { c, t }, ... }Tous les tatouages que cette ressource possède sur le ped. Le barbier partage l'unique emplacement de décoration avec l'encre : un redraw qui oublie cette liste efface des tatouages payés par le joueur.
GetSkinData
exports['avenida_barber']:GetSkinData()Le personnage tel que le barbier le tient en mémoire, cheveux, barbe, sourcils et leurs couleurs compris. Pratique pour photographier un look avant qu'une tenue de métier prenne la main.
ApplySkin
exports['avenida_barber']:ApplySkin(data, ped)Écrit une apparence complète sur un ped. Passez le ped à habiller, qui peut être un clone de prévisualisation plutôt que le joueur : un miroir ou une sélection de personnage montrent ainsi le même visage.
ApplyClothing
exports['avenida_barber']:ApplyClothing(data, ped, temporary)Applique la moitié vêtements seulement, et laisse le visage et les cheveux intacts. Mettez
temporaryà true pour un costume qui ne doit pas partir en base : une tenue de prison, un déguisement.
Recettes
Exemples copier-coller pour les cas courants. À déposer dans ta ressource, ajuster les valeurs, et c'est en prod.
La caméra pivote sur la tête, les mêmes valeurs de hauteur marchent donc que le ped soit debout ou assis. Une hauteur négative descend le long du corps. L'éclairage et la profondeur de champ sont ce qui fait lire le personnage comme le sujet, plutôt que comme un ped dans une pièce sombre.
-- config/config.lua
Config.Camera = {
Sensitivity = 1.4, -- faster drag
InvertY = true,
}
Config.UI = {
Tutorial = true, -- first-run tour, replayable from the toolbar
Sounds = true,
Blips = true,
Timecycle = 'casino_brightroom',
TimecycleStrength = 1.0,
TimecycleFadeMs = 400, -- 0 makes it snap like a light switch
DofStrength = 0.1, -- false drops the per-frame SetUseHiDof call
DofPlanes = { 0.4, 0.7, 2.2, 4.5 },
}Les boutiques vivent dans un fichier ouvert, une entrée chacune, avec leur propre barbier et leurs propres prix. Couper la scène du fauteuil garde la caméra et le menu, et saute l'entrée en marche.
-- config/barber.lua
Config.Barber.ChairScene = false -- menu opens on the spot
Config.Barber.Shops[9] = {
BarberPedModel = 's_m_m_hairdress_01',
Welcome = vec3(-1282.60, -1116.60, 6.99),
Blip = { sprite = 71, color = 4, scale = 0.7 },
}Le ped n'a qu'un emplacement de décorations pour tout le serveur. Si votre script appelle `ClearPedDecorations`, lisez d'abord ce que cette ressource possède et remettez-le ensuite, sinon vous effacez la hair base.
local hairbase = exports['avenida_barber']:GetHairbase()
local tattoos = exports['avenida_barber']:GetTattoos()
ClearPedDecorations(PlayerPedId())
-- your own decoration work here
if hairbase then
AddPedDecorationFromHashes(PlayerPedId(), hairbase.c, hairbase.t)
end
for _, dec in ipairs(tattoos) do
AddPedDecorationFromHashes(PlayerPedId(), dec.c, dec.t)
endLa ressource émet un event client à l'ouverture et à la fermeture d'un menu. Branchez-vous dessus plutôt que de sonder, c'est le signal qu'utilise déjà la gestion interne du HUD.
AddEventHandler('avenida_barber:client:uiStateChanged', function(hidden)
if hidden then
exports['myhud']:hide()
else
exports['myhud']:show()
end
end)Questions fréquentes
- QBCore, ESX et vRP, plus un mode standalone qui ne demande aucun framework et une branche `custom` dans `bridges/framework.lua` pour le reste. La détection tourne au démarrage et sonde l'export réel. Qbox et ox_core n'ont pas de branche dédiée : ils passent par le chemin standalone ou custom, pas par une cible testée.
- vRP stocke les composants de vêtements et les props, rien d'autre. Il n'a aucun champ pour les overlays de tête, les traits du visage, la couleur des cheveux, celle des yeux ni les décorations de ped. Sur vRP, tout le personnage est donc conservé dans la table de cette ressource. vRP reçoit quand même la partie vêtements, rafraîchie juste après un changement. Conséquence concrète : un skinshop natif vRP n'affichera pas le travail du barbier, parce que vRP n'a nulle part où le mettre. vRP 2 et vRP 0.5 ne sont pas supportés, et la ressource le dit en console au lieu de mal se comporter en silence.
- Oui, partout où ça compte : `ox_lib` pour les notifications via `Config.UseOxLib`, `ox_target` pour le prompt d'interaction, `ox_inventory` pour les items de vêtements, et oxmysql comme seule dépendance dure. Rien de tout ça n'est obligatoire à part oxmysql, et `bridges/compat.lua` fournit les replis en natifs quand ox_lib est coupé. Ce qui n'a pas de branche dédiée, c'est `ox_core` en tant que framework : sur un serveur ox_core la ressource tourne en standalone, ou via la branche `custom` de `bridges/framework.lua` si vous voulez qu'elle lise vos données joueur.
- Oui, c'est exactement pour ça qu'ils sont construits. Chacun possède sa moitié de l'unique emplacement de décorations du ped et remet les autres après chaque redraw. Ce qu'il ne faut pas faire, c'est lancer les ressources séparées et le pack `avenida_skin` en même temps : elles poseraient chacune leur blip et écriraient chacune leur copie du même personnage. La ressource détecte le recouvrement et le signale en console au démarrage.
- Les hair bases sont filtrées par version du jeu. Un style que votre client ne sait pas rendre n'est volontairement jamais listé, parce que le lister montrerait au joueur une option qui sort cassée. Lancez `/avenida_barber_check` pour voir la version que votre serveur embarque réellement.
- Le suivi de tête est lié à une session de caméra orbitale : le thread démarre avec la caméra et s'arrête avec elle. Il a aussi besoin du focus NUI, puisqu'il lit le curseur via `GetNuiCursorPosition`. Si la caméra est reprise par une autre ressource, le suivi reste coupé volontairement.
- Quinze sont livrées remplies, dans le dossier ouvert `locales/`. Copiez un fichier, traduisez les valeurs, et pointez `Config.Locale` sur votre nouveau code. `en.lua` sert de repli pour toute clé oubliée, un fichier partiel n'affiche donc jamais un libellé vide.
- 0.00ms. Les points d'interaction partagent un thread qui se met à une seconde quand personne n'est à proximité, les blips sont créés une fois, et chaque thread de session est tué à la sortie. Rien ne tourne entre deux coupes.
Ce qu'en disent les acheteurs
5.0 16 avis vérifiés
🐊 Benaz Spirit Roleplay Script de grande qualité, nos joueurs apprécient énormément ce barber shop. Ils s'en servent depuis plusieurs mois, il a été testé et éprouvé en conditions réelles sur notre serveur. Je recommande !
Vroum Rex Studio
CarniceroDeZaun Los Santos 2080
|| !xAyu♥ ||
𝕄𝕠𝕟𝕥𝕖ℂ𝕣𝕚𝕤𝕥𝕠 𝐕𝐀𝐋𝐄𝐍𝐓𝐈𝐍𝐄 𝐂𝐅𝐖
Leny.M Redstart V2 Un support au top !
eizrass il sont toujours la quand il faut exelent merci
Sauron Very good script and support
TCL-Server TCL RP Best support on this planet ...love u guys ❤
einfachFlo Very good script and support ❤
drantox Firma RP Very nice work and fast support!
Deichmann Thank you for the fast support.
Cougar Fanatic SAV RP had a big issue where the female hairs were causing my players to freeze - The Avenida Scripts team had a fix out to me by the next day! fantastic work!
Leny.M Redstart V2 quality scripts without the headache of configuration. It's very rare to find scripts that work the first time even with an AC or even a custom framework. Thanks Avenida Scripts
BigOppGrimeyy GangWrld NYC 10/10 again help me with a script that wasn't his and got it working this man is great at everything he does thanks again
FЦПKӨ Best script, best support, this is the best place to buy your scripts
EN AVANT Avenida TeamCore Skin (3 in 1)
Barbier, salon de tatouage et magasin de vêtements dans une seule ressource FiveM. 1615 tatouages, tous les composants et props de vêtements, tout le visage et la peau, répartis sur 36 boutiques. Une interface, une caméra, un flux d'achat, et une seule chose à installer sur ESX, QBCore, vRP ou en standalone.
EN AVANT Avenida TeamClothing store
Un magasin de vêtements avec tenues sauvegardées, garde-robes d'entreprise et un éditeur qui tarife le catalogue depuis le jeu. Tous les composants et tous les props, achetés pièce par pièce ou en tenue complète, avec un registre côté serveur qui empêche de porter ce qu'on n'a jamais payé.
EN AVANT Avenida TeamTattoo shop
Tout le catalogue de tatouages du jeu, avec un panier et un fauteuil où l'on s'assoit vraiment. 1615 motifs répartis sur 26 collections DLC, prévisualisés en direct sur votre personnage au fur et à mesure, payés en une fois. Détatouage au laser inclus, et un tatoueur qui entre et fait le travail.