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
ensure tattooshopColoque depois do krs_helper. A tabela é criada sozinha. Veja a ordem no server.cfg.
Estes scripts são opcionais:
| Script | Para quê |
|---|---|
skinshop | Devolve a roupa ao sair. Sem ele, o jogador sai com a roupa da sessão |
hud | Esconde a HUD. Quem está procurado ou em repouso não abre |
hoverfy | Aviso de tecla no lugar. Sem ele, usa o aviso do ox_lib |
roda | Fecha ao abrir pelo comando do admin |
inventory | Item tattooshop, que cria estúdio. Só no krs |
creator | Tatuagens grátis na criação do personagem |
studio | Tira as fotos dos desenhos |
Como usar
O jogador chega a até 2,5 m e aperta E. Não abre dentro de carro.
- Clique numa parte do corpo. A câmera vai até lá.
- Clique num desenho para provar e de novo para tirar.
- Pague no banco ou em dinheiro.
- 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.
| Framework | Pagar no banco | Dinheiro |
|---|---|---|
| krs | Banco, com o cartão do banco no inventário | Item dollar |
| Creative | Banco | Item dollar |
| QBCore | bank | cash |
| vRP | Banco | Dinheiro em mãos |
| Sem framework | Só passa o que é grátis | Só 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.
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.
| Framework | Em serviço |
|---|---|
| krs, Creative | Serviço do framework |
| QBCore | Job com onduty. Gang e permissão contam como em serviço |
| vRP | Basta ter o grupo |
| Sem framework | Ter a ACE do grupo |
Sem framework, dê o grupo pelo server.cfg:
add_principal identifier.license:LICENSE_DO_JOGADOR group.vip
add_ace group.vip group.Ouro allowConfiguração
Tudo fica em config.lua.
| Opção | Padrão | O que muda |
|---|---|---|
Locations | 6 estúdios do mapa do GTA | Coords, Name, Area, Price e Permission |
Key | Control = 38, Label = "E" | Tecla e letra do aviso |
Distance | 2.5 | Distância da tecla, em metros |
Zones | ver abaixo | Preço e câmera por parte do corpo |
Removal | 600 | Preço do laser. 0 é grátis |
Vip | "Bronze", "Prata", "Ouro" | Grupos de VIP, do menor ao maior |
VipLadder | true | VIP 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 |
Camera | Enter = 1400, Travel = 1000, Zoom = 350, Leave = 800, Arc = 0.18 | Tempos em ms e curva |
Naked | por modelo | Roupa usada na sessão |
Log | true | Registra compras e etiquetas no log do krs_helper. Devolução que falha é registrada sempre |
| Parte | Preço |
|---|---|
head | 900 |
torso | 1500 |
leftarm, rightarm | 1100 |
leftleg, rightleg | 1000 |
Exemplo de estúdio:
{ 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:
add_filesystem_permission studio write tattooshopPara programadores
Servidor:
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/falseCliente:
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 grupoO 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
| Mensagem | Causa |
|---|---|
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 log | Devolva o valor à mão |
