Sistema de Roubo
Configuração do sistema de roubo de casas com loot spots
Sistema de Roubo
O sistema de roubo permite que jogadores invadam casas, entrem no interior e revistem pontos de busca (loot spots) para encontrar itens.
Como Funciona
O jogador se aproxima de uma residência roubável e aperta X
Completa o skill check para arrombar a porta
É teleportado para dentro do interior
Dentro da casa, pontos de busca ficam marcados (ex: Gaveta, Cofre)
Ao se aproximar de um ponto, aparece [E] Revistar — cada um tem sua barra de progresso
Após revistar os pontos (ou sair pela porta), recebe os itens e é teleportado de volta
Configuração Geral
No config/preferences.lua:
robbery = {
enabled = true, -- ativa/desativa o roubo
robberyTime = 30000, -- tempo total do roubo (ms)
cooldownTime = 3600000, -- cooldown por local (1 hora)
requiredItem = "lockpick", -- item necessário para iniciar
policeAlertChance = 70, -- chance de alertar a polícia (%)
policeAlertDuration = 300000, -- duração do alerta no mapa (5 min)
minPoliceOnline = 2, -- mínimo de policiais online
policePermission = "policia.permissao",
maxItemsPerRobbery = 3, -- máximo de itens por roubo
robbableItems = {
{ item = "dinheirosujo", min = 1000, max = 5000, chance = 80 },
{ item = "dolares", min = 500, max = 2000, chance = 60 },
{ item = "relogio", min = 1, max = 3, chance = 50 },
},
blipConfig = {
sprite = 161, color = 1, scale = 1.2, duration = 300000
}
},Locais de Roubo
Os locais de roubo são configurados em config/interiors.lua dentro de robberyLocations.
Para interiores MOD (shells), o sistema cria o objeto no ar e teleporta o jogador:
robberyLocations = {
{
coords = vector3(-232.6, 588.2, 190.54), -- posição da porta no mundo
offset = { 3.24, -1.81, -0.40 }, -- offset de spawn
interior = "shell_michael", -- nome do interior MOD
policeAlertChance = 60, -- chance de alerta (override)
},
}Loot Spots para MOD
Os loot spots ficam na configuração do interior (não na robbery location):
["shell_michael"] = {
title = "Casa Michael",
spawnHeading = 59.53,
exitOffsets = { 3.24, -1.81, -0.40 },
chestOffsets = { -0.67, 5.18, -0.40 },
lootSpots = {
{ offset = { -5.00, -2.00, -4.06 }, label = "Gaveta" },
{ offset = { -2.00, 3.00, -4.06 }, label = "Estante" },
{ offset = { -8.00, -8.00, 0.52 }, label = "Cofre" },
}
},Use /testinterior shell_michael e depois /getoffset em cada local desejado para pegar os offsets.
Para interiores nativos do GTA, o jogador é teleportado diretamente sem criar objetos:
robberyLocations = {
{
coords = vector3(-232.6, 588.2, 190.54), -- posição da porta no mundo
isModInterior = false, -- indica interior nativo
interiorCoords = vector3(x, y, z), -- spawn dentro do interior
exitCoords = vector3(x, y, z), -- saída dentro do interior
policeAlertChance = 60,
lootSpots = {
{ coords = vector3(x, y, z), label = "Gaveta" },
{ coords = vector3(x, y, z), label = "Cofre" },
}
},
}Use /getcoords dentro do interior nativo em cada posição para pegar as coordenadas.
Como Configurar Loot Spots
Para MOD: Use /testinterior [nome] para entrar no interior
Ande até o local desejado (gaveta, cofre, etc.)
Para MOD: Use /getoffset — copie o offset do console F8
Para Nativo: Use /getcoords — copie as coordenadas do console F8
Adicione no config com um label descritivo
O tempo da barra de progresso é dividido igualmente entre os pontos. Se robberyTime = 30000 e tem 3 spots, cada um leva 10 segundos.
Itens Roubáveis
Cada item tem:
item— nome do item no inventáriomin/max— quantidade aleatóriachance— porcentagem de dropar (0-100)
robbableItems = {
{ item = "dinheirosujo", min = 1000, max = 5000, chance = 80 },
{ item = "dolares", min = 500, max = 2000, chance = 60 },
{ item = "relogio", min = 1, max = 3, chance = 50 },
{ item = "colar", min = 1, max = 2, chance = 40 },
},O sistema sorteia até maxItemsPerRobbery itens diferentes por roubo.