Tattoo shop
Todo o catálogo de tatuagens do jogo, com carrinho e uma cadeira em que você senta de verdade. 1615 desenhos espalhados por 26 coleções de DLC, com preview em tempo real no seu personagem conforme você vai adicionando, pagos de uma vez só. Remoção a laser inclusa, e um tatuador que entra e faz o trabalho.
O que ele faz
O catálogo completo do jogo, 1615 desenhos
26 coleções de DLC, todas as tatuagens que o GTA traz. Os nomes vêm dos próprios arquivos de idioma da Rockstar, não foram redigitados: quem joga em turco vê o nome em turco de cada desenho. As coleções mais novas entram conforme a build do jogo: uma tatuagem que o seu cliente não consegue renderizar nunca aparece na lista.
Especificações
técnicas
Tudo o que
você recebe
-
Quinze arquivos de idioma, entregues preenchidos
Seus jogadores leem o script no idioma deles desde o primeiro start, e os arquivos ficam fora do escrow, então você corrige qualquer linha em produção. Nota honesta: eles são traduzidos e revisados por nós, não revisados por nativos dos quinze idiomas. Diga o que soa errado no seu e a gente corrige.
-
Sete bridges, um arquivo cada
Framework, notificações, interação, roupas, inventário, decorações e compat. Cada arquivo documenta seus alvos, o que detecta e o que cada alvo custa para você. A detecção testa o export real em vez do estado do resource, então um export renomeado degrada em silêncio em vez de estourar no boot.
-
Toda a economia da tatuagem fica aberta
Taxa única, taxas por zona, multiplicadores de coleção, preço do laser, os sete estúdios, a câmera de cena e as 368 correções de zona. `config/*.lua`, `locales/*.lua` e `bridges/*.lua` estão fora do escrow e são editáveis em produção.
-
Um relatório de instalação para colar no suporte
`/avenida_tattoo_check` imprime qual bridge foi escolhido para cada categoria, se as tabelas e colunas existem, e qual build do jogo o seu servidor realmente roda. Ele responde à maioria das dúvidas de integração antes de você precisar perguntar.
Guia de integração
Instalação
-
Coloque o resource
Baixe o script pela sua conta Tebex, copie a pasta
avenida_tattoo/para o seu diretório de resources e adicioneensure avenida_tattoona config do servidor, depois deensure oxmysql. -
Rode o SQL
Rode a seção [A] do
INSTALL.sqlno seu banco. A seção [B] é condicional, o cabeçalho do arquivo diz quando você precisa dela. -
Defina seus preços
Abra
config/tattoo.lua. A taxa única, os multiplicadores por coleção e o preço do laser são os três números que vale a pena decidir antes de abrir o estúdio. Idioma e bridges ficam emconfig/config.lua. -
Verifique as integrações
Coloque
Config.Debug = true, reinicie e leia o console: uma linha por categoria de bridge nomeia o alvo escolhido. Volte parafalsequando as linhas baterem com o seu servidor, os comandos de diagnóstico que ele libera custam um engasgo no frame. -
Libere os poderes de admin para você
Adicione
add_ace group.admin avenida_tattoo.admin allowna config do servidor e depois rode/avenida_tattoo_checkno jogo para o relatório completo.
Início rápido
Definir o preço da tinta
Uma taxa única cobre o catálogo inteiro, e os multiplicadores deixam as coleções antigas baratas e as raras caras, sem ter que dar preço em 1615 desenhos na unha. Tudo é recalculado no servidor na hora do pagamento.
-- 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
}Referência da API
Exports públicos agrupados por domínio. Cada linha mostra a assinatura da chamada e o que ela faz, não como faz.
Client
GetHairbase
exports['avenida_tattoo']:GetHairbase() --> { c = collection, t = nameHash } | nilA hairbase que está no ped no momento. O estúdio de tatuagem não é dono dela, mas precisa devolvê-la depois de cada redraw, e qualquer resource seu que limpe decorações deve fazer o mesmo.
GetTattoos
exports['avenida_tattoo']:GetTattoos() --> { { c, t }, ... }A lista completa das tatuagens que estão no ped, em pares de coleção e hash de nome. É a cópia que vale: o laser remove dela e uma compra adiciona, então leia daqui em vez de manter um cache próprio.
GetSkinData
exports['avenida_tattoo']:GetSkinData()O personagem salvo, com as correções de zona que posicionam a tinta corretamente no torso, nos braços e nas pernas. Útil quando o seu script precisa saber em que corpo está desenhando.
ApplySkin
exports['avenida_tattoo']:ApplySkin(data, ped)Aplica uma aparência num ped, tatuagens incluídas. O slot de decoração é reconstruído de uma vez só, o que evita a piscada que aparece ao colocar a tinta peça por peça.
ApplyClothing
exports['avenida_tattoo']:ApplyClothing(data, ped, temporary)Veste um ped sem tocar na tinta. O terceiro argumento mantém a mudança fora do banco, que é o que você quer para uma cena que acaba quando o jogador vai embora.
Receitas
Exemplos de copiar e colar para os casos mais comuns. Você cola na sua resource, ajusta os valores e já está em produção.
Com `PricePerZone` ligado, o servidor cobra pela zona de decoração do GTA de cada desenho. Tem um porém, e ele está documentado na config: só são vendidas as tatuagens que caem numa zona declarada, então tudo que não foi corrigido some do estúdio em vez de ser vendido pelo preço errado.
-- 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,
}O GTA cataloga muitos desenhos de DLC na zona errada. 368 já estão corrigidos, e a lista está aberta para você adicionar os seus. Ligue `Config.Debug` para ler o nameHash no jogo e declarar ele aqui.
-- config/tattoo.lua
Config.Tattoo.SubZoneOverrides = {
['FM_Hip_M_Tat_000'] = 'back',
['MP_Buis_M_Tat_021'] = 'neck',
-- 'back' | 'chest' | 'neck' | 'head'
}A câmera de cena é medida no jogador, nos eixos dele, não no prop da cadeira. É de propósito: o assento raramente fica na origem do prop, e a diferença varia em vários metros de uma cadeira para outra, o que faz uma câmera presa à cadeira filmar as costas do jogador.
-- 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,
}O ped tem um único slot de decorações para o servidor inteiro. Se o seu script chama `ClearPedDecorations`, leia antes o que este resource possui e devolva depois, senão você apaga todas as tatuagens que o jogador pagou.
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)
endPerguntas frequentes
- Dois motivos, os dois de propósito. As coleções de DLC mais novas entram conforme a build do jogo, então um desenho que o seu cliente não consegue renderizar nunca é listado, em vez de aparecer quebrado. E com `PricePerZone` ligado só são vendidas as tatuagens que caem numa zona declarada, o que a config diz com todas as letras: a maior parte do catálogo some até você preencher os overrides. Com `PricePerZone` desligado, o padrão, o catálogo inteiro está à venda.
- Isso é o GTA, não o script: o jogo cataloga boa parte dos desenhos de DLC numa zona que não corresponde a onde eles ficam no corpo. 368 já estão corrigidos na unha, 310 para as costas e 58 para o pescoço. Para o resto, ligue `Config.Debug` para ler o nameHash no jogo e acrescente uma linha em `Config.Tattoo.SubZoneOverrides`, que está fora do escrow.
- QBCore, ESX e vRP, mais um modo standalone que não precisa de framework nenhum e um caminho `custom` em `bridges/framework.lua` para qualquer outro caso. A detecção roda no start e testa o export real. Qbox e ox_core não têm caminho dedicado: eles passam pelo caminho standalone ou custom, não por um alvo testado.
- Funciona, onde importa: `ox_lib` para as notificações via `Config.UseOxLib`, `ox_target` para o prompt de interação, `ox_inventory` para os itens, e o oxmysql como única dependência de verdade. Fora ele, nada disso é obrigatório. O que não tem caminho dedicado é o `ox_core` como framework: num servidor ox_core o resource roda em standalone, ou pelo caminho `custom` de `bridges/framework.lua`.
- O vRP salva componentes de roupa e props, e nada mais. Ele não tem campo para decorações de ped, então as tatuagens não têm onde morar nele. No vRP este resource salva o personagem inteiro na própria tabela. Consequência prática: um skinshop nativo do vRP não vai mostrar a tinta. vRP 2 e vRP 0.5 não são suportados, e o resource avisa no console em vez de dar problema em silêncio.
- Pode, é para isso que foram feitos. Cada um é dono da sua metade do único slot de decorações do ped e recoloca os outros depois de cada redraw. O que não dá é rodar os resources separados e o pacote `avenida_skin` ao mesmo tempo: cada um colocaria o próprio blip e escreveria a própria cópia do mesmo personagem. O resource detecta a sobreposição e avisa no console no start.
- Eles não são redigitados: cada entrada carrega a chave de idioma da Rockstar e o jogo resolve ela no idioma do jogador. É por isso que os nomes batem com o que o jogador já conhece do modo história, em todos os idiomas do jogo, e por isso não tem nada para manter quando um nome muda.
- 0.00ms. Os pontos de interação compartilham uma thread que passa a rodar de segundo em segundo quando não tem ninguém por perto, os blips são criados uma vez, e toda thread de sessão morre na saída. Entre uma sessão e outra, não roda nada.
O que dizem os compradores
5.0 15 avaliações verificadas
ĸι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 !
DESTAQUE Avenida TeamCore Skin (3 in 1)
Barbearia, estúdio de tatuagem e loja de roupas num único resource FiveM. 1615 tatuagens, todos os componentes e props de roupa, a cabeça e a pele por inteiro, espalhados por 36 lojas. Uma interface, uma câmera, um fluxo de compra, e uma coisa só para instalar em ESX, QBCore, vRP ou standalone.
DESTAQUE Avenida TeamBarber shop
Uma barbearia encenada de ponta a ponta, com uma câmera que o jogador controla de verdade. O personagem entra, senta na cadeira, e o barbeiro começa a trabalhar enquanto uma câmera orbital enquadra a cabeça. Cabelo, barba, overlays e todo o conjunto de detalhes de pele, com preview em tempo real antes de você gastar um dólar.
DESTAQUE Avenida TeamClothing store
Uma loja de roupas com outfits salvos, guarda-roupas de empresa e um editor que define os preços do catálogo de dentro do jogo. Todos os componentes e todos os props, comprados peça por peça ou como look inteiro, com um registro no servidor que impede qualquer um de vestir o que não pagou.