Guarda-Roupas
Sistema de outfits salvos dentro das casas
Guarda-Roupas
O sistema de guarda-roupas permite que jogadores salvem, apliquem, editem, renomeiem e deletem outfits dentro de suas casas.
Como Funciona
O jogador entra na casa e se aproxima do ponto do guarda-roupas
Aparece o DrawText — pressiona E para abrir
Na interface, pode salvar o outfit atual, aplicar um salvo, renomear, editar ou deletar
Configuração
Adicione wardrobeOffsets no interior desejado em config/interiors.lua:
["shell_trevor"] = {
title = "Apartamento Simples",
exitOffsets = { 3.24, -1.81, -0.40 },
chestOffsets = { -0.67, 5.18, -0.40 },
wardrobeOffsets = { 1.50, 3.00, -0.41 },
-- ...
}Como pegar o offset
Use /testinterior [nome] para entrar no interior
Ande até onde quer o guarda-roupas
Use /getoffset — copie o offset do console F8
O guarda-roupas só aparece em interiores que possuem wardrobeOffsets configurado. Interiores sem o campo não mostram o DrawText.
Funcionalidades
| Ação | Descrição |
|---|---|
| Salvar | Captura a aparência atual do jogador (roupas, acessórios, props) e salva com um nome |
| Aplicar | Aplica um outfit salvo no jogador instantaneamente |
| Renomear | Altera o nome do outfit |
| Editar | Atualiza o outfit com a aparência atual do jogador (sobrescreve) |
| Deletar | Remove o outfit permanentemente (com confirmação) |
Limites
- Máximo de 20 outfits por jogador
- Nome do outfit: até 100 caracteres
- Outfits são salvos por jogador, não por casa — acessíveis em qualquer casa com guarda-roupas
Dados Salvos
O sistema captura e salva:
- 12 componentes do ped (cabeça, máscara, cabelo, torso, pernas, mãos, pés, acessórios, etc.)
- 9 props do ped (chapéus, óculos, brincos, relógios, pulseiras, etc.)
- Cada componente salva:
drawable(modelo) etexture(variação)
Banco de Dados
A tabela ds_homes_outfits é criada automaticamente na primeira inicialização:
CREATE TABLE ds_homes_outfits (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
name VARCHAR(100) DEFAULT 'Outfit',
ped_data TEXT NOT NULL,
created_at INT NOT NULL
)Não é necessário rodar migrations manuais — a tabela é criada automaticamente.
Para Interiores Nativos
Para casas com isModInterior = false, use wardrobeCoords em vez de wardrobeOffsets:
{
isModInterior = false,
wardrobeCoords = vector3(x, y, z),
-- use /getcoords para pegar a posição
}