Tattoo 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.
Ce qu'il fait
Le catalogue complet du jeu, 1615 motifs
26 collections DLC, tous les tatouages que GTA embarque. Les libellés sont lus dans la localisation de Rockstar au lieu d'être ressaisis : un joueur qui lance le jeu en turc voit le nom turc de chaque motif. Les collections récentes sont fusionnées selon la version du jeu : un tatouage que votre client ne sait pas rendre n'est jamais listé.
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.
-
Toute l'économie du tatouage reste ouverte
Tarif unique, tarifs par zone, multiplicateurs de collection, prix du laser, les sept boutiques, la caméra de scène et les 368 corrections de zone. `config/*.lua`, `locales/*.lua` et `bridges/*.lua` sont hors escrow et modifiables en production.
-
Un rapport d'installation à coller au support
`/avenida_tattoo_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_tattoo/dans votre dossier resources et ajoutezensure avenida_tattooà 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. -
Fixez vos prix
Ouvrez
config/tattoo.lua. Le tarif unique, les multiplicateurs par collection et le prix du laser sont les trois nombres à décider avant d'ouvrir la boutique.config/config.luaporte la langue et les bridges. -
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_tattoo.admin allowà votre config serveur, puis lancez/avenida_tattoo_checken jeu pour le rapport complet.
Démarrage rapide
Fixer le prix de l'encre
Un tarif unique couvre tout le catalogue, et les multiplicateurs rendent les vieilles collections bon marché et les rares chères, sans tarifer 1615 motifs à la main. Tout est recalculé côté serveur au paiement.
-- config/tattoo.lua
Config.Tattoo.Prices = {
flat = 1000, -- every tattoo, unless PricePerZone is on
hair = 500,
reset = 3000, -- laser removal, per tattoo removed
}
Config.Tattoo.PricePerZone = false
Config.Tattoo.CollectionMultipliers = {
multiplayer_overlays = 0.80, -- base game, cheaper
mpHipster_overlays = 0.85,
mpBeach_overlays = 0.85,
-- anything not listed stays at 1.0
}Référence API
Exports publics groupés par domaine. Chaque ligne montre la signature d'appel
Client
GetHairbase
exports['avenida_tattoo']:GetHairbase() --> { c = collection, t = nameHash } | nilLa racine de cheveux portée par le ped. Le studio d'encre n'en est pas propriétaire, mais il doit la rendre après chaque redraw, et toute ressource à vous qui efface les décorations doit faire pareil.
GetTattoos
exports['avenida_tattoo']:GetTattoos() --> { { c, t }, ... }La liste complète des tatouages portés, en paires collection et hash de nom. C'est la copie qui fait foi : le laser en retire, un achat en ajoute, donc lisez-la plutôt que d'en garder une copie.
GetSkinData
exports['avenida_tattoo']:GetSkinData()Le personnage stocké, avec les corrections de zones qui posent l'encre correctement sur le torse, les bras et les jambes. Utile quand votre script a besoin de savoir sur quel corps il dessine.
ApplySkin
exports['avenida_tattoo']:ApplySkin(data, ped)Pousse une apparence sur un ped, tatouages compris. L'emplacement de décoration est reconstruit en une passe, ce qui évite le clignotement obtenu quand l'encre est appliquée pièce par pièce.
ApplyClothing
exports['avenida_tattoo']:ApplyClothing(data, ped, temporary)Habille un ped sans toucher à l'encre. Le troisième argument garde le changement hors de la base, ce qu'on veut pour une scène qui s'arrête quand le joueur s'en va.
Recettes
Exemples copier-coller pour les cas courants. À déposer dans ta ressource, ajuster les valeurs, et c'est en prod.
Avec `PricePerZone` activé, le serveur facture selon la zone de décoration GTA de chaque motif. Attention au compromis documenté dans la config : seuls les tatouages qui tombent dans une zone déclarée sont vendus, donc tout ce qui n'est pas corrigé disparaît de la boutique au lieu d'être vendu au mauvais prix.
-- config/tattoo.lua
Config.Tattoo.PricePerZone = true
Config.Tattoo.Prices = {
[0] = 1250, -- torso / back
[1] = 1000, -- head
[2] = 600, -- left arm
[3] = 600, -- right arm
[4] = 750, -- left leg
[5] = 750, -- right leg
[6] = 750, -- unknown
reset = 3000,
}GTA classe beaucoup de motifs DLC dans la mauvaise zone. 368 sont déjà corrigés, et la liste est ouverte pour que vous ajoutiez les vôtres. Activez `Config.Debug` pour lire un nameHash en jeu, puis déclarez-le.
-- config/tattoo.lua
Config.Tattoo.SubZoneOverrides = {
['FM_Hip_M_Tat_000'] = 'back',
['MP_Buis_M_Tat_021'] = 'neck',
-- 'back' | 'chest' | 'neck' | 'head'
}La caméra de scène se mesure sur le joueur, dans ses propres axes, pas sur le prop du fauteuil. C'est volontaire : l'assise est rarement à l'origine du prop, et l'écart varie de plusieurs mètres d'un fauteuil à l'autre, ce qui fait qu'une caméra calée sur le fauteuil filme le dos du joueur.
-- config/tattoo.lua
Config.Tattoo.ApplyScene = true
Config.Tattoo.SceneCamera = {
Enabled = true,
Distance = 1.5, -- metres in front of the player
Height = 0.75, -- metres above their feet
TargetHeight = 0.6, -- aim at chest height
Fov = 42.0,
}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 tous les tatouages que le joueur a payés.
local hairbase = exports['avenida_tattoo']:GetHairbase()
local tattoos = exports['avenida_tattoo']: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)
endQuestions fréquentes
- Deux raisons, toutes deux volontaires. Les collections DLC récentes sont fusionnées selon la version du jeu, un motif que votre client ne sait pas rendre n'est donc jamais listé plutôt que listé et cassé. Et avec `PricePerZone` activé, seuls les tatouages qui tombent dans une zone déclarée sont vendus, ce que la config dit explicitement : l'essentiel du catalogue disparaît tant que vous n'avez pas rempli les overrides. Avec `PricePerZone` désactivé, le défaut, tout le catalogue est en vente.
- C'est GTA, pas le script : le jeu range une grande partie des motifs DLC sous une zone qui ne correspond pas à leur emplacement réel sur le corps. 368 sont déjà corrigés à la main, 310 vers le dos et 58 vers le cou. Pour le reste, activez `Config.Debug` pour lire le nameHash en jeu et ajoutez une ligne à `Config.Tattoo.SubZoneOverrides`, qui est hors escrow.
- 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.
- 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, et oxmysql comme seule dépendance dure. Rien de tout ça n'est obligatoire à part oxmysql. 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`.
- vRP stocke les composants de vêtements et les props, rien d'autre. Il n'a aucun champ pour les décorations de ped, les tatouages n'ont donc nulle part où vivre chez lui. Sur vRP, cette ressource conserve tout le personnage dans sa propre table. Conséquence concrète : un skinshop natif vRP n'affichera pas l'encre. 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, 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.
- Ils ne sont pas ressaisis du tout : chaque entrée porte la clé de localisation Rockstar et le jeu la résout dans la langue du joueur. C'est pour ça que les noms correspondent à ce qu'un joueur connaît déjà du mode histoire, dans toutes les langues du jeu, et qu'il n'y a rien à maintenir quand un nom change.
- 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 clients.
Ce qu'en disent les acheteurs
5.0 15 avis vérifiés
ĸιrowdev 🪐 Le script est est excellent rien à dire
Blockerman Very nice support.
Shuntzu_Gamer Very nice support.
Woufy Very nice support, fast and pro !
- ᴇʟᴄxʏ'; I had an issue where i lost access to my script and these guys couldn't help me at first but they went out there way to fix the issue and contacted me, amazing script
ReCore OoT Randomizer I bought the tattoo shop first, thanks to the very patient and efficient support I was able to make it work, I bought the barber shop afterwards and I am very happy with both scripts, it works like a charm! Congratulations again to the support !
Bl4cky 2 Scripts enjoyed by our Players already. The NPCs doing the work on the Tattoos and your Hair add a nice touch which makes it feel more lifely. Stacking Tattoos is a nice feature and the Checkout System of the Barber Shop is unbeatable. (Normally we try to avoid NPCs, this is one of the only times, where it is a nice feature). was also fast and able to help. All in all i am looking forward to new Avenida Scripts
Dominik Love it waiting for more scripts like this
theara the scripts are perfect, and the Tattoo/vending script still remains up to date and compatible.
Billy Bob i love the tattoo script !! it is AMAZING & and the support is the BEST !!!! they made me feel like a friend and not just a customer. Thank you guys!!!
OGDeuceMoney OneState USA Awesome script that works and I had a question that was answered quickly and clear! Thank you
Kikreto Historias RP Best script, best support! Friendly support!!
JACKSON Script de qualité, support rapide et très sympa ! Content de mon achat !
D3DI - Adriaan Dragon3dInteractive The best script 4 tatoos damm it works perfect love it
Mika™ Bullineo Like a good Vine.. we can't like it before taste it ! Quality.. Fast support and friendly !
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 TeamBarber 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.
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é.