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.
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
| Recurso | Obrigatório |
|---|---|
qb-core | Sim |
oxmysql | Sim |
qb-inventory ou ox_inventory | Sim |
qb-target ou ox_target | Não — sem target usa a tecla E |
| DRS Boss Menu | Só para os marcadores de chefia |
#Instalação
- Coloca
drs_jobcreatoremresources. - Adiciona ao
server.cfg, depois do framework, do inventário e do target:
ensure drs_jobcreator- Dá acesso ao painel à tua staff (ou usa a permissão QBCore de
Config.AdminPermission):
add_ace group.admin drs.jobcreator allow- Reinicia o servidor. A tabela
drs_job_markersé criada sozinha.
#Usar o painel
Abre com F7 ou /jobcreator (só staff).
- Escolhe Empregos, Gangs ou Públicos no menu do tablet.
- Escolhe o emprego ou gang e carrega em Novo marcador.
- Escolhe o tipo, dá-lhe um nome e o cargo mínimo.
- Vai ao sítio certo e carrega em Usar a minha posição.
- 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
| Tipo | O que faz | Opções |
|---|---|---|
| Cofre | Abre um inventário | Partilhado, por cargo ou pessoal · espaços · peso |
| Cofre-forte | Igual ao cofre, com outro nome e ícone | Iguais ao cofre |
| Garagem | Menu com os veículos de serviço | Veículos (cores, cargo mínimo) · ponto de saída |
| Loja | Vende itens | Itens · preço · dinheiro ou banco · quantidade · cargo |
| Arsenal | Vende armas e equipamento | Iguais à loja |
| Farda | Veste uma farda | Várias fardas por cargo, a partir da roupa vestida |
| Guarda-roupa | Abre as roupas guardadas do jogador | — |
| Serviço | Entrar e sair de serviço | — |
| Chefia | Abre o DRS Boss Menu | Permissões da chefia |
| Teleporte | Leva o jogador a outro ponto | Destino |
#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.DrawDistancemetros). - Ícone no mapa — sprite, cor e tamanho.
- NPC — modelo e animação (aparece a menos de
Config.NpcDistancemetros).
Só vê o marcador, o ícone e o NPC quem tem acesso a ele.
#Opções principais
| Opção | Por defeito | Descrição |
|---|---|---|
Config.Command / Config.OpenKey | jobcreator / F7 | Abrir o painel |
Config.AdminPermission | admin | Permissã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.WardrobeEvent | qb-clothing | Evento que abre as roupas guardadas |
Config.BossMenuResource | drs_bossmenu | Resource do menu de chefia |
Config.VehicleKeysEvent | qb-vehiclekeys | Evento das chaves dos veículos |
Config.FuelResource | LegacyFuel | Resource com o export SetFuel |
Config.UseTolerance | 3.0 | Margem de distância aceite pelo servidor |
Config.DiscordWebhook | '' | Regista as alterações feitas no painel |
#Configuração completa
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:
jobcreator_migrateOs 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
exports.drs_jobcreator:GetMarkers() -- lista de marcadores
exports.drs_jobcreator:ReloadMarkers() -- recarrega da base de dados e sincroniza