Skip to content

Estúdio de tatuagem ​

Estúdio com câmera por parte do corpo e prova antes de pagar. Tatuagem comprada fica do personagem: tirar e pôr de novo é grátis. O laser remove o que já estava no corpo. O admin marca nome, preço, VIP, oculta e exclusiva na própria tela.

Precisa de: oxmysql, ox_lib, krs_helper

Instalação ​

cfg
ensure tattooshop

Coloque depois do krs_helper. A tabela é criada sozinha. Veja a ordem no server.cfg.

Estes scripts são opcionais:

ScriptPara quê
skinshopDevolve a roupa ao sair. Sem ele, o jogador sai com a roupa da sessão
hudEsconde a HUD. Quem está procurado ou em repouso não abre
hoverfyAviso de tecla no lugar. Sem ele, usa o aviso do ox_lib
rodaFecha ao abrir pelo comando do admin
inventoryItem tattooshop, que cria estúdio. Só no krs
creatorTatuagens grátis na criação do personagem
studioTira as fotos dos desenhos

Como usar ​

O jogador chega a até 2,5 m e aperta E. Não abre dentro de carro.

  1. Clique numa parte do corpo. A câmera vai até lá.
  2. Clique num desenho para provar e de novo para tirar.
  3. Pague no banco ou em dinheiro.
  4. Esc sai sem pagar e o corpo volta ao que era.

O botão esquerdo sobe e desce a câmera, o direito gira o personagem e a rodinha dá zoom. Desenho com cadeado é VIP, exclusivo ou indisponível: tire da sessão para pagar o resto.

FrameworkPagar no bancoDinheiro
krsBanco, com o cartão do banco no inventárioItem dollar
CreativeBancoItem dollar
QBCorebankcash
vRPBancoDinheiro em mãos
Sem frameworkSó passa o que é grátisSó passa o que é grátis

Estúdio criado em jogo ​

No krs, com o resource inventory, o item tattooshop cria um estúdio onde o jogador está e pede o grupo. Grupo vazio cria um estúdio que ninguém abre. O estúdio fica no banco e não há comando para apagar.

Permissão ​

Admin é quem está no grupo de Config.AdminGroup, por padrão Admin. Abre em qualquer lugar, tudo grátis. O botão Etiquetas edita cada desenho:

  • Preço: vazio usa o preço da parte do corpo.
  • Oculta: some da lista. Só quem já tem vê.
  • Exclusiva: por passaporte e dias, com vazio ou 0 para sempre. Até 50 donos. Exclusiva vencida continua trancada para todos, até o admin tirar o dono.
lua
Config.AdminCommand = "tatuadmin"

O comando vem vazio. O resource admin do pacote já tem /tattooshop.

Estúdio com Permission só abre para quem está em serviço nesse grupo. VIP também é um grupo.

FrameworkEm serviço
krs, CreativeServiço do framework
QBCoreJob com onduty. Gang e permissão contam como em serviço
vRPBasta ter o grupo
Sem frameworkTer a ACE do grupo

Sem framework, dê o grupo pelo server.cfg:

cfg
add_principal identifier.license:LICENSE_DO_JOGADOR group.vip
add_ace group.vip group.Ouro allow

Configuração ​

Tudo fica em config.lua.

OpçãoPadrãoO que muda
Locations6 estúdios do mapa do GTACoords, Name, Area, Price e Permission
KeyControl = 38, Label = "E"Tecla e letra do aviso
Distance2.5Distância da tecla, em metros
Zonesver abaixoPreço e câmera por parte do corpo
Removal600Preço do laser. 0 é grátis
Vip"Bronze", "Prata", "Ouro"Grupos de VIP, do menor ao maior
VipLaddertrueVIP maior também libera as dos menores
AdminGroup"Admin"Grupo de admin
AdminCommand""Comando do modo admin
CashItem"dollar"Item de dinheiro no krs e no Creative
CameraEnter = 1400, Travel = 1000, Zoom = 350, Leave = 800, Arc = 0.18Tempos em ms e curva
Nakedpor modeloRoupa usada na sessão
LogtrueRegistra compras e etiquetas no log do krs_helper. Devolução que falha é registrada sempre
PartePreço
head900
torso1500
leftarm, rightarm1100
leftleg, rightleg1000

Exemplo de estúdio:

lua
{ Coords = vec3(324.47,180.0,103.59), Name = "Blazing Tattoo", Area = "Vinewood", Price = 1.5 },

Lista de tatuagens ​

A lista fica em shared-side/tattoos.lua, separada por modelo e parte do corpo. Acrescente linhas no fim da parte certa. Nunca apague linhas do meio, porque os números dos desenhos mudam. Para tirar um desenho da loja, use Oculta.

As fotos ficam em web-side/photos/<modelo>/<parte>/<nome>.webp. Sem foto aparece o número. O resource studio tira as fotos e precisa desta linha antes dos ensure:

cfg
add_filesystem_permission studio write tattooshop

Para programadores ​

Servidor:

lua
exports.tattooshop:Add({ Coords = vec3(x, y, z), Permission = "Tatuador", Name = "Meu estúdio", Area = "Centro", Price = 1.0 })
exports.tattooshop:Exclusive(charId, "mp_m_freemode_01", nomeDoDesenho, 30)  -- 0 dias é para sempre; true/false

Cliente:

lua
exports.tattooshop:Apply()                         -- aplica as salvas no próprio ped
exports.tattooshop:Apply(tabela, ped)              -- { [name] = part } num ped
exports.tattooshop:Creation(function(feito) end)   -- grátis, uma vez por personagem
TriggerEvent("tattooshop:Open")                    -- modo admin; o servidor confere o grupo

O evento de rede tattooshop:Apply aplica uma tabela no jogador. client-side/ganchos.lua liga o estúdio ao hoverfy, à hud, ao skinshop e à roda.

Problemas comuns ​

MensagemCausa
estúdio X ignorado: sem Coords válidas.Linha sem Coords válido
Estúdio restrito: só para quem está em serviço.Sem o grupo de Permission ou fora de serviço
Seu personagem não pode ser tatuado aqui.O modelo não é mp_m_freemode_01 nem mp_f_freemode_01
Sem saldo no banco ou sem o cartão do banco.Falta saldo ou, no krs, o cartão
Dinheiro insuficiente na mochila.Falta dinheiro em mãos
DEVOLUÇÃO FALHOU no logDevolva o valor à mão