por Avenida Team ESX · QBCore · vRP · Standalone · oxmysql

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.

Entrega Instantânea
Atualizações Grátis para sempre
Suporte Discord todo dia
01 · FUNCIONALIDADES

O que ele faz

02 · SPECS

Especificações
técnicas

Framework Detecção auto QBCore · ESX · vRP · Standalone · Custom
Dependências oxmysql ox_lib · ox_target · ox_inventory suportados
Catálogo 1615 tatuagens 26 coleções de DLC · 368 correções de zona
Idiomas no jogo 15 incluídos ar · cs · de · en · es · fr · id · it · nl · pl · pt-br · ro · ru · th · tr
Performance 0.00ms em repouso Nada roda enquanto não tem ninguém no estúdio
03 · INCLUSO

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.

04 · DOCUMENTAÇÃO

Guia de integração

01

Instalação

  1. Coloque o resource

    Baixe o script pela sua conta Tebex, copie a pasta avenida_tattoo/ para o seu diretório de resources e adicione ensure avenida_tattoo na config do servidor, depois de ensure oxmysql.

  2. Rode o SQL

    Rode a seção [A] do INSTALL.sql no seu banco. A seção [B] é condicional, o cabeçalho do arquivo diz quando você precisa dela.

  3. 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 em config/config.lua.

  4. Verifique as integrações

    Coloque Config.Debug = true, reinicie e leia o console: uma linha por categoria de bridge nomeia o alvo escolhido. Volte para false quando as linhas baterem com o seu servidor, os comandos de diagnóstico que ele libera custam um engasgo no frame.

  5. Libere os poderes de admin para você

    Adicione add_ace group.admin avenida_tattoo.admin allow na config do servidor e depois rode /avenida_tattoo_check no jogo para o relatório completo.

02

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.

lua
-- 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
}
03

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 } | nil

    A 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.

04

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.

lua
-- 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,
}
05

Perguntas 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.
AVALIAÇÕES

O que dizem os compradores

5.0 15 avaliações verificadas

  • ĸιrowdev 🪐

    Le script est est excellent rien à dire

    Ver no Discord ↗
  • Blockerman

    Very nice support.

    Ver no Discord ↗
  • Shuntzu_Gamer

    Very nice support.

    Ver no Discord ↗
  • Woufy

    Very nice support, fast and pro !

    Ver no Discord ↗
  • - ᴇʟᴄ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

    Ver no Discord ↗
  • 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 !

    Ver no Discord ↗
Carrinho
Spirit RP
Discord