💊 Selldrugs — Sistema Completo de Venda de Drogas
📚 Visão Geral
O selldrugs
é um sistema imersivo e configurável de tráfico de drogas para servidores FiveM. Ele oferece interações com NPCs, modos de venda no varejo e atacado, sistema de respeito, chamadas via "trap phone", e integração com qb-target
ou ox_target
. O sistema é completamente traduzível e adaptável a diferentes configurações de servidores.
⚙️ Configuração
Arquivo principal de configuração: config.lua
🌐 Linguagem
🧩 Integração com Frameworks
O selldrugs
suporta múltiplos frameworks populares do FiveM. Abaixo estão os formatos recomendados de configuração para integração com QBCore, ESX, Creative e vRPex.
🟦 QBCore (Padrão)
🟨 ESX
Notas:
Certifique-se de que
ESX
esteja inicializado corretamente comexports["es_extended"]:getSharedObject()
.Adapte o uso de
xPlayer
nos scripts server para compatibilidade com ESX.
🟩 Creative
Notas:
A Creative Base (como a da Nation) usa
vRP.passport(source)
ou similar.Os eventos são geralmente personalizados e exigem ajustes manuais nos triggers.
Exporte suas funções usando
vRP
ouProxy.getInterface
.
🟥 vRPex
Notas:
Utilize
vRP.getUserId(source)
evRP.getUserSource(user_id)
para interações.Certifique-se de adaptar o sistema de inventário e permissões conforme necessário.
Use os módulos de permissão (
vRP.hasPermission
) para substituir oJob
.
👮♂️ Validação de Polícia — Por Framework
Use esses exemplos para verificar se o jogador tem função de policial ou permissões equivalentes. Isso pode ser aplicado para restringir ações como venda de drogas, acesso ao menu de admin ou interações com NPCs.
🟦 QBCore
🟨 ESX
🟩 Creative (Nation Base)
💡 A permissão
"police.permission"
pode variar dependendo da base, como"paramedico.permissao"
,"mechanic.permission"
, etc.
🟥 vRPex
🛠 Adapte
"Police"
para o nome real do grupo em sua base, como"Policia"
ou"ROTA"
.
💰 Inventário & Dinheiro — Exemplos por Framework
Abaixo estão exemplos de como adicionar/remover itens e dinheiro dos jogadores conforme o framework usado:
🟦 QBCore
🟨 ESX
🟩 Creative (Nation Base)
🟥 vRPex
📣 Webhook do Discord
Pode ser usado para registrar atividades no Discord.
👮♂️ Requisitos de Polícia
Define quantos policiais devem estar em serviço para permitir vendas.
🕒 Horário do Servidor
Zone
: "plus" ou "minus" (fuso horário).Zone_Count
: número de horas de diferença com GMT.Format
: 12 ou 24 (AM/PM ou horário militar).
💊 Lista de Drogas
Lista de drogas aceitas e seu preço médio base.
📱 Trap Phone
Define o item necessário para habilitar negociações por celular.
📈 Sistema de Habilidade de Venda
InterestInDrugs
: chance de um NPC querer comprar (em %).maxQuantity
: máximo de unidades por venda.Threshold
: mínimo de pontos para ativar skill.Limit
: pontuação máxima do jogador.Skill
: ganho de pontos por venda.Increase_Chance
: bônus extra por aumentar preço.
🧾 Sistema de Respeito
Define níveis de respeito para acessar funções como o "Mole" e vendas por atacado.
🚛 Pontos de Venda por Atacado
Cada entrada define:
Peds
: modelos de NPCs (o comprador éisBuyer = true
);Vehicle
: carro utilizado;Gun
: arma do NPC;Coords
: local do encontro.
🗂 Arquitetura
📁 Client
client/main.lua
: Lógica principal e interações com o mundo.client/mole.lua
: Sistema de "informante" (Mole).client/retail.lua
: Lógica para vendas de varejo.client/wholesale.lua
: Vendas por atacado.client/nui.lua
: Comunicação com a interface NUI.client/target.lua
: Suporte paraqb-target
ouox_target
.
📁 Server
server/main.lua
: Validações e controle geral do servidor.server/mole.lua
: Funções do informante.server/retail.lua
ewholesale.lua
: Lógica do lado do servidor para vendas.server/configurable.lua
: Funções reutilizáveis ou exportadas.
📁 HTML/NUI
Interface gráfica para celular, interação com NPCs e notificações.
Áudio, imagens e scripts para o frontend.
🌍 Traduções
O recurso suporta múltiplos idiomas em /locales
. A configuração é definida por cfg.Language
.
Idiomas incluídos:
en
, pt
, es
, fr
, de
, cs
, ru
, hu
, fi
, et
, nl
, tr
, sv
, pl
, th
, etc.
📤 Exports — Integração com Outros Scripts
Este recurso disponibiliza exports client-side e server-side que permitem a integração com outros sistemas e personalizações avançadas.
🧠 Client Exports
Esses exports podem ser usados em outros scripts client para acionar funcionalidades do selldrugs
.
🔹 exports["selldrugs"]:StartRetailSelling()
exports["selldrugs"]:StartRetailSelling()
Inicia o modo de venda no varejo manualmente (sem usar o alvo).
Exemplo:
🔹 exports["selldrugs"]:GetRespectLevel()
exports["selldrugs"]:GetRespectLevel()
Retorna o nível de respeito do jogador, útil para checagens de permissão ou progressão.
Exemplo:
🔹 exports["selldrugs"]:HasTrapPhone()
exports["selldrugs"]:HasTrapPhone()
Verifica se o jogador possui o item trap_phone
.
Exemplo:
🔹 exports["selldrugs"]:ShowMoleMenu()
exports["selldrugs"]:ShowMoleMenu()
Abre manualmente o menu do Mole (informante), se estiver habilitado no config.
Exemplo:
🖥️ Server Exports
Os exports server-side permitem acesso a dados úteis ou execução de lógica no servidor.
🔸 exports["selldrugs"]:GetPlayerRespect(source)
exports["selldrugs"]:GetPlayerRespect(source)
Retorna o nível de respeito de um jogador com base no source
.
Exemplo:
🔸 exports["selldrugs"]:AddRespect(source, amount)
exports["selldrugs"]:AddRespect(source, amount)
Adiciona uma quantia de respeito ao jogador.
Exemplo:
🔸 exports["selldrugs"]:RemoveRespect(source, amount)
exports["selldrugs"]:RemoveRespect(source, amount)
Remove respeito do jogador, útil em penalidades ou punições.
Exemplo:
🔸 exports["selldrugs"]:HasRespect(source, amount)
exports["selldrugs"]:HasRespect(source, amount)
Retorna true
se o jogador tiver pelo menos a quantia informada de respeito.
Exemplo:
🔸 exports["selldrugs"]:ResetRespect(source)
exports["selldrugs"]:ResetRespect(source)
Zera o respeito do jogador.
Exemplo:
Atualizado