sleepless_interact), escolhe um emprego na interface NUI e cumpre rotas/coletas pela cidade para ganhar itens, dinheiro e XP.
Funcionalidades
15 empregos prontos
Minerador, jornaleiro, rebocador, cegonha, taxista, motorista, pescador, lixeiro, agricultor de trigo, agricultor de laranjas, lenhador, eletricista, entregador.
Dois sistemas de nível
Nível geral do trabalhador e nível individual por emprego, cada um com seu multiplicador de recompensa.
Missões
Missões por emprego que dão XP.
Bônus por horas trabalhadas
Dinheiro a cada faixa de horas, com reset periódico.
Ranking
Os 15 jogadores com mais XP.
Troca de uniforme
Troca automática de uniforme ao iniciar empregos que definem
clothes.Dependências
As dependências abaixo são necessárias para o funcionamento do recurso.Sistemas externos esperados:
Notify, Progress, snt/animations/*, snt/inventory/*, garages:Delete.Configuração
config/config.lua — Agência de empregos
config/config.lua — Agência de empregos
config/config.lua — Cores e dica na tela
config/config.lua — Cores e dica na tela
config/config.lua — Níveis e XP
config/config.lua — Níveis e XP
multiplicador_do_emprego + multiplicador_geral. A quantidade entregue é base + floor(base * multiplicador).config/config.lua — Bônus por horas trabalhadas
config/config.lua — Bônus por horas trabalhadas
config/config.lua — Missões
config/config.lua — Missões
id único, jobId válido (deve existir em Config.professions), target (nº de coletas), xp (XP geral).config/professions.lua — Definição dos empregos
config/professions.lua — Definição dos empregos
Cada chave é o
jobId:collectItems:item = "dollar"entrega dinheiro. Quantidade fixa ou{min,max}.requiredItems: itens exigidos/consumidos;consumedesconta do inventário.clothes:{drawable, texture}por componente. A roupa original é restaurada ao sair.
displaySalary / salário: nenhum emprego define displaySalary, então o salário aparece como 0 na NUI. Para exibir, adicione displaySalary = <numero> na definição (campo cosmético; a recompensa real vem de collectItems).requiredLevel existe em vários empregos mas o servidor não bloqueia o início por nível (hoje é só informativo).config/routes.lua — Rotas e coordenadas
config/routes.lua — Rotas e coordenadas
Define, por
jobId, coordenadas e parâmetros (requiredVehicle, routePoints, crops, trees, etc.). Edite para mudar onde cada emprego acontece.Comandos
Nenhum. Toda a interação é pela NUI (agência física no mapa) e pelo keybind F7 (cancelar emprego, remapeável nas configurações do FiveM).
Localizações
Agência de Empregos (config/config.lua)
O ped da agência também é spawnado por
five-modules (peds.lua) em -268.97, -956.1, 31.22, 209.77.Rotas e pontos por emprego (config/routes.lua)
Coordenadas de cada emprego (spawns, centrais, coletas/entregas). Empregos com muitos pontos repetidos têm a contagem indicada; a variável fica em Config.routes["<jobId>"].
Exports
O export abaixo é o único publicado pelo recurso (client-side; nenhum export server-side).Banco de Dados
Tabela
five_jobs_data criada automaticamente no start. Colunas principais: characterId (PK), currentExp, currentLvl, missionsProgress (JSON), jobsExp (JSON), todayEarnings, totalEarnings, workedMinutes, bonusProgress (JSON). Salvamento em lote a cada 10 minutos e no playerDropped.Customização
Adicionar um novo emprego
1
config/professions.lua
Adicione a definição (
name, expGainPerCollect, collectItems, opcional displaySalary).2
config/routes.lua
Adicione as coordenadas/rota.
3
client-side/professions.lua
Em
jobThread, adicione um elseif jobId == "meu_emprego" then com a lógica (copie de um emprego parecido).Ajustar recompensas/níveis
- Recompensa real =
collectItems/extraItems(config/professions.lua). - Curva por emprego:
Config.perJobLevels+Config.perLevelMultiplier. - Curva geral: edite
WorkerLevelsno topo deserver-side/core.lua. - Bônus por horas e missões:
Config.bonusByWorkedHourseConfig.missions.

