DRS Job Creator

Monta empregos e gangs dentro do jogo num tablet: cofres, garagens, lojas, arsenais, fardas, serviço, chefia e teleportes, logo para todos.

v2.4.1 QBCore drs_jobcreator

Monta os empregos e gangs do teu servidor sem mexer em ficheiros. Num tablet dentro do jogo crias cofres, garagens, lojas, arsenais, fardas, pontos de serviço, chefia e teleportes — e aparecem logo para os jogadores.

#Requisitos

RecursoObrigatório
qb-coreSim
oxmysqlSim
qb-inventory ou ox_inventorySim
qb-target ou ox_targetNão — sem target usa a tecla E
DRS Boss MenuSó para os marcadores de chefia

#Instalação

  1. Coloca drs_jobcreator em resources.
  2. Adiciona ao server.cfg, depois do framework, do inventário e do target:
server.cfg
ensure drs_jobcreator
  1. Dá acesso ao painel à tua staff (ou usa a permissão QBCore de Config.AdminPermission):
server.cfg
add_ace group.admin drs.jobcreator allow
  1. Reinicia o servidor. A tabela drs_job_markers é criada sozinha.

#Usar o painel

Abre com F7 ou /jobcreator (só staff).

  1. Escolhe Empregos, Gangs ou Públicos no menu do tablet.
  2. Escolhe o emprego ou gang e carrega em Novo marcador.
  3. Escolhe o tipo, dá-lhe um nome e o cargo mínimo.
  4. Vai ao sítio certo e carrega em Usar a minha posição.
  5. Preenche as opções do tipo e o aspeto, e carrega em Guardar.

O marcador aparece logo para todos, sem reiniciar nada. Na lista de cada emprego podes ativar/desativar, editar, Ir para (teleporte até ao marcador) e apagar.

Dica

Os marcadores Públicos podem ser usados por qualquer jogador, sem emprego nem gang — ideais para lojas e teleportes.

#Tipos de marcador

TipoO que fazOpções
CofreAbre um inventárioPartilhado, por cargo ou pessoal · espaços · peso
Cofre-forteIgual ao cofre, com outro nome e íconeIguais ao cofre
GaragemMenu com os veículos de serviçoVeículos (cores, cargo mínimo) · ponto de saída
LojaVende itensItens · preço · dinheiro ou banco · quantidade · cargo
ArsenalVende armas e equipamentoIguais à loja
FardaVeste uma fardaVárias fardas por cargo, a partir da roupa vestida
Guarda-roupaAbre as roupas guardadas do jogador—
ServiçoEntrar e sair de serviço—
ChefiaAbre o DRS Boss MenuPermissões da chefia
TeleporteLeva o jogador a outro pontoDestino

#Modos do cofre

  • Partilhado — um cofre para todos os que têm acesso.
  • Por cargo — um cofre diferente para cada cargo.
  • Pessoal — um cofre por jogador.

#Garagem

Adiciona veículos pelo modelo (ex.: police); o nome aparece sozinho. Define as duas cores e o cargo mínimo de cada um. O ponto de saída é onde o veículo aparece — usa Usar a minha posição no sítio certo, virado para a saída. O jogador recebe as chaves (Config.VehicleKeysEvent) e o depósito cheio (Config.FuelResource).

#Fardas

Veste a farda no jogo e carrega em Usar a roupa que tenho vestida — todas as peças ficam guardadas. Com uma só farda disponível para o cargo do jogador, é aplicada logo; com várias, aparece um menu de escolha.

#Aspeto

Cada marcador pode ter:

  • Marcador no chão — forma, cor e tamanho (desenhado a menos de Config.DrawDistance metros).
  • Ícone no mapa — sprite, cor e tamanho.
  • NPC — modelo e animação (aparece a menos de Config.NpcDistance metros).

Só vê o marcador, o ícone e o NPC quem tem acesso a ele.

#Opções principais

OpçãoPor defeitoDescrição
Config.Command / Config.OpenKeyjobcreator / F7Abrir o painel
Config.AdminPermissionadminPermissão QBCore da staff
Config.Target'auto'auto, ox_target, qb-target ou none (tecla E)
Config.Inventory'auto'ox_inventory ou qb-inventory
Config.WardrobeEventqb-clothingEvento que abre as roupas guardadas
Config.BossMenuResourcedrs_bossmenuResource do menu de chefia
Config.VehicleKeysEventqb-vehiclekeysEvento das chaves dos veículos
Config.FuelResourceLegacyFuelResource com o export SetFuel
Config.UseTolerance3.0Margem de distância aceite pelo servidor
Config.DiscordWebhook''Regista as alterações feitas no painel

#Configuração completa

config.lua
Config = {}

-- Idioma / Language: 'pt' ou 'en'
Config.Locale = 'pt'

-- ------------------------------------------------------------------ painel de admin / admin panel
-- Comando e tecla para abrir o painel / Command and key to open the panel
Config.Command = 'jobcreator'
Config.OpenKey = 'F7'                 -- '' = sem tecla / no key
-- Quem pode usar o painel: permissão do QBCore ou a ACE drs.jobcreator
-- Who can use the panel: QBCore permission or the drs.jobcreator ACE
--   add_ace group.admin drs.jobcreator allow
Config.AdminPermission = 'admin'
-- Animação de segurar um tablet enquanto o painel está aberto / Hold-a-tablet animation
Config.TabletAnim = true

-- ------------------------------------------------------------------ interação / interaction
-- 'auto' usa ox_target ou qb-target se existirem, senão a tecla E / 'auto' uses a target resource, else the E key
Config.Target = 'auto'                -- 'auto' | 'ox_target' | 'qb-target' | 'none'
Config.TargetDistance = 2.0
Config.InteractKey = 38               -- 38 = E (só sem target / only without target)
Config.InteractKeyLabel = 'E'
-- Onde aparece o aviso [E] / Where the [E] prompt shows: 'right-center' | 'left-center' | 'center'
Config.PromptPosition = 'right-center'
-- Distância a que o marcador no chão é desenhado / Distance at which the ground marker is drawn
Config.DrawDistance = 15.0
-- Distância a que os NPCs aparecem / Distance at which NPCs spawn
Config.NpcDistance = 60.0
-- Margem extra, em metros, aceite pelo servidor ao usar um marcador (validação de distância)
-- Extra metres the server accepts when a marker is used (distance check)
Config.UseTolerance = 3.0

-- ------------------------------------------------------------------ integrações / integrations
-- Inventário: 'auto' deteta ox_inventory ou qb-inventory / Inventory: 'auto' detects ox_inventory or qb-inventory
Config.Inventory = 'auto'
-- Pasta das imagens dos itens (nil = automático) / Item image folder (nil = automatic)
Config.ItemImages = nil
-- Guarda-roupa: evento cliente que abre as roupas guardadas do jogador
-- Wardrobe: client event that opens the player's saved outfits
Config.WardrobeEvent = 'qb-clothing:client:openOutfitMenu'
-- Menu de chefia (tipo "boss"): resource com o export OpenForPlayer (DRS Boss Menu)
-- Boss menu (type "boss"): resource with the OpenForPlayer export (DRS Boss Menu)
Config.BossMenuResource = 'drs_bossmenu'
-- Chaves dos veículos da garagem: evento cliente chamado com a matrícula ('' = desligado)
-- Garage vehicle keys: client event called with the plate ('' = off)
Config.VehicleKeysEvent = 'vehiclekeys:client:SetOwner'
-- Combustível: resource com o export SetFuel (LegacyFuel, cdn-fuel, ps-fuel…) ('' = nativo)
-- Fuel: resource with a SetFuel export ('' = native)
Config.FuelResource = 'LegacyFuel'
-- Símbolo da moeda nos menus / Currency symbol in the menus
Config.Currency = '€'

-- Prefixo das matrículas dos veículos de serviço (máx. 4 letras) / Job vehicle plate prefix (max 4 chars)
Config.PlatePrefix = 'JOB'
-- Imagens dos veículos na garagem (o modelo é acrescentado no fim) / Vehicle images in the garage menu
Config.VehicleImages = 'https://docs.fivem.net/vehicles/%s.webp'

-- ------------------------------------------------------------------ predefinições / defaults
Config.Defaults = {
    radius = 1.5,
    stash = { mode = 'shared', slots = 50, weight = 400000 },
    marker = { enabled = true, type = 2, color = { r = 139, g = 143, b = 248, a = 160 }, scale = 0.35 },
    blip = { enabled = false, sprite = 1, color = 0, scale = 0.8 },
    npc = { enabled = false, model = 's_m_y_cop_01', scenario = 'WORLD_HUMAN_CLIPBOARD' },
}

-- No primeiro arranque (sem marcadores), importa os marcadores do drake-jobcreator se essa tabela existir
-- On first start (no markers), import drake-jobcreator markers if that table exists
Config.MigrateOnFirstStart = true

-- Webhook do Discord para registar as alterações feitas no painel ('' = desligado)
-- Discord webhook to log changes made in the panel ('' = off)
Config.DiscordWebhook = ''

#Migrar do drake-jobcreator

No primeiro arranque, se não houver marcadores e existir a tabela drake_job_markers, o script importa-os sozinho (Config.MigrateOnFirstStart). Também podes correr na consola:

consola
jobcreator_migrate

Os cofres importados mantêm os nomes antigos, por isso o conteúdo não se perde. Depois de confirmares que está tudo certo, remove o drake-jobcreator do servidor.

#Segurança

O servidor confirma em cada ação que o jogador está perto do marcador, tem o emprego ou gang certos e o cargo mínimo. Preços, itens e veículos vêm sempre da configuração do servidor, nunca do jogador. Só a staff pode abrir o painel e guardar alterações, e todos os dados enviados são validados e limitados.

#Para programadores

server
exports.drs_jobcreator:GetMarkers()      -- lista de marcadores
exports.drs_jobcreator:ReloadMarkers()   -- recarrega da base de dados e sincroniza