mri-QboxResourcesQbx Recyclejob

qbx_recyclejob — Manual

Emprego de reciclagem: o jogador entra no galpão, bate o ponto, coleta pacotes espalhados pelo interior e recebe materiais ao entregá-los.


Sumário

  1. Dependências
  2. Instalação
  3. Configuração
  4. Fluxo de uso
  5. Recompensas
  6. Integrações
  7. Entrypoints para outros recursos
  8. Localização
  9. Estrutura de arquivos

Dependências

RecursoObrigatórioObservação
qbx_coreSimNotify e módulo lib (cache do ped)
ox_libSimLocale, lib.zones, lib.progressBar, lib.showTextUI
ox_inventorySimEntrega dos materiais (AddItem)
ox_targetNãoAlternativa às zonas com [E] quando a convar UseTarget está em true

Instalação

  1. Copie a pasta qbx_recyclejob para resources/.
  2. Adicione ao server.cfg:
    ensure qbx_recyclejob
  3. Cadastre no ox_inventory os itens de recompensa: metalscrap, plastic, copper, iron, aluminum, steel, glass, cryptostick e rubber.

Não há SQL. Não há restrição de emprego (job) no código — qualquer jogador pode bater o ponto.


Configuração

config/client.lua

CampoTipoObrigatórioDescrição
useTargetboolSimLido da convar UseTarget. true usa ox_target; false usa zonas do ox_lib com tecla E
debugPolyboolSimDesenha as zonas para depuração
outsideLocationvector4SimPorta de entrada do galpão, no mundo. Também é onde fica o blip
insideLocationvector4SimPonto de chegada no interior e local da saída
dutyLocationvector4SimPonto de bater o ponto (entrar/sair de serviço)
dropLocationvector4SimPonto de entrega do pacote
drawPackageLocationBlipboolSimDesenha um marker amarelo acima do pacote sorteado
pickupActionDurationnumber (ms)SimDuração da barra de progresso ao pegar o pacote. Padrão: math.random(4000, 6000), avaliado uma vez no carregamento
deliveryActionDurationnumber (ms)SimDuração da barra de progresso ao entregar o pacote. Padrão: 5000
pickupLocationsarray de vector4SimOs 21 pontos onde os pacotes podem aparecer dentro do galpão
warehouseObjectsarray de stringsSimModelos de pilhas de caixa usados para decorar o interior (um sorteado por ponto de coleta)
pickupBoxModelstringSimModelo da caixa carregada pelo jogador. Padrão: prop_cs_cardbox_01

config/server.lua

CampoTipoObrigatórioDescrição
maxItemsReceivednumberSimNúmero máximo de sorteios de item por entrega (o real é math.random(1, maxItemsReceived)). Padrão: 5
minItemReceivedQtynumberSimQuantidade mínima por item sorteado. Padrão: 2
maxItemReceivedQtynumberSimQuantidade máxima por item sorteado. Padrão: 6
chanceItemstringSimItem raro sorteado com ~6% de chance por entrega. Padrão: cryptostick
luckyItemstringSimItem bônus sorteado com 10% de chance por entrega (1 a 3 unidades). Padrão: rubber
itemTablearray de stringsSimPool de materiais sorteados a cada entrega

Fluxo de uso

  1. O jogador vai até outsideLocation (blip “Recycle Center”, sprite 365) e entra — a tela escurece e ele é teleportado para o interior, que é montado com as pilhas de caixa.
  2. Em dutyLocation ele bate o ponto. Ao entrar de serviço, um dos pickupLocations é sorteado e sinalizado.
  3. Ele vai até o pacote, executa a animação e a barra de progresso, e passa a carregar a caixa no ombro.
  4. Leva a caixa até dropLocation e entrega. Os materiais são creditados e um novo ponto de coleta é sorteado.
  5. Sair de serviço ou sair do galpão derruba o pacote carregado e limpa as zonas.

Recompensas

Por entrega, o servidor executa:

  • De 1 a maxItemsReceived sorteios em itemTable, cada um com minItemReceivedQty a maxItemReceivedQty unidades.
  • ~6% de chance (math.random(1,100) < 7) de receber 1x chanceItem.
  • 10% de chance (dois dados de 1 a 10 coincidirem) de receber de 1 a 3 unidades de luckyItem.

Integrações

ox_target

Com a convar UseTarget em true, entrada, saída, ponto, coleta e entrega viram box zones do ox_target. Caso contrário, o recurso usa lib.zones.box com lib.showTextUI e a tecla E.


Entrypoints para outros recursos

Todos os eventos abaixo são internos do recurso; o único evento de servidor é o que credita os materiais.

EventoLadoDescrição
qbx_recyclejob:client:target:enterLocationClienteTeleporta para o interior e monta as zonas
qbx_recyclejob:client:target:exitLocationClienteTeleporta para fora e limpa o estado
qbx_recyclejob:client:target:toggleDutyClienteEntra/sai de serviço
qbx_recyclejob:client:target:pickupPackageClienteColeta o pacote sorteado
qbx_recyclejob:client:target:dropPackageClienteEntrega o pacote
qbx_recycle:server:getItemServidorCredita os materiais da entrega (note o prefixo diferente: qbx_recycle, sem job)

Localização

Strings via ox_lib locale, em locales/:

en, pt-br, es, fr, nl, cs, ar

Idioma ativo pela convar:

setr ox:locale "pt-br"

O nome do blip (“Recycle Center”) está fixo no cliente e não passa pelo locale.


Estrutura de arquivos

qbx_recyclejob/
├── client/
│   └── main.lua          — blip, zonas/target, interior, coleta e entrega do pacote
├── server/
│   └── main.lua          — sorteio e entrega dos materiais
├── config/
│   ├── client.lua        — locais, zonas, modelos e durações
│   └── server.lua        — pool de itens, quantidades e chances
├── locales/
│   ├── en.json
│   └── ar / cs / es / fr / nl / pt-br .json
└── fxmanifest.lua