LogoLogo
DISCORDINSTAGRAM
  • FLEXTOR NETWORK
    • 👋 Bem-vindo à Documentação Oficial | Flextor Network
    • 📌 Como Utilizar esta Documentação
    • 🎓 Termos & Licenciamento de Uso
    • ❓ FAQ – Perguntas Frequentes
  • SISTEMAS
    • 🔍Backdoor Scanner
    • 💊 Selldrugs — Sistema Completo de Venda de Drogas
    • 🎬Loadingscreen — Sistema completo
  • 📘 InfoMarkers — Sistema de Marcadores Informativos
  • 🎮 Arcade Café - Sistema de Lan House & Fliperama
  • 📹 Sistema Avançado de Segurança com Câmeras
  • BOTS
    • 📕 Bot de Advertência Discord - Flextor Network
    • 📋Sistema de Whitelist Automatizada - Flextor Network
    • ⚠️ Bot de Advertência Discord - Flextor Network
    • 🐛 Bot de Bug Report Discord - Flextor Network
    • 💡 Bot de Sugestões Discord - Flextor Network
    • 👋 Bot de Boas-Vindas Discord - Flextor Network
    • 🎮 Bot de Conexão e Status FiveM - Flextor Network
  • BASES
    • ⚔️ Flextor Network - Battle Royale Base
Fornecido por GitBook
LogoLogo

© 2025 — Flextor Network

Nesta página
  • 📚 Visão Geral
  • ⚙️ Configuração
  • 🌐 Linguagem
  • 🧩 Integração com Frameworks
  • 👮‍♂️ Validação de Polícia — Por Framework
  • 💰 Inventário & Dinheiro — Exemplos por Framework
  • 👮‍♂️ Requisitos de Polícia
  • 🕒 Horário do Servidor
  • 💊 Lista de Drogas
  • 📱 Trap Phone
  • 📈 Sistema de Habilidade de Venda
  • 🧾 Sistema de Respeito
  • 🚛 Pontos de Venda por Atacado
  • 🗂 Arquitetura
  • 🌍 Traduções
  • 📤 Exports — Integração com Outros Scripts
  • 🧠 Client Exports
  • 🖥️ Server Exports
Exportar como PDF
  1. SISTEMAS

💊 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

cfg.Language = 'pt' -- Localização a ser carregada da pasta /locales

🧩 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)

cfg.Framework = "qbcore"
cfg.Prefix = QBCore
cfg.TriggerPrefix = "QBCore"
cfg.ExportPrefix = "qb-core"
cfg.Target = "qb-target" -- ou "ox_target"

🟨 ESX

cfg.Framework = "esx"
cfg.Prefix = ESX
cfg.TriggerPrefix = "esx"
cfg.ExportPrefix = "es_extended"
cfg.Target = "ox_target" -- ox_target recomendado para ESX

Notas:

  • Certifique-se de que ESX esteja inicializado corretamente com exports["es_extended"]:getSharedObject().

  • Adapte o uso de xPlayer nos scripts server para compatibilidade com ESX.

🟩 Creative

cfg.Framework = "creative"
cfg.Prefix = nil -- Creative não utiliza export padrão
cfg.TriggerPrefix = "nation" -- ajuste conforme seu base
cfg.ExportPrefix = "" -- não usado
cfg.Target = "ox_target" -- se aplicável

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 ou Proxy.getInterface.

🟥 vRPex

cfg.Framework = "vrpex"
cfg.Prefix = vRP
cfg.TriggerPrefix = "vRP"
cfg.ExportPrefix = "vrp"
cfg.Target = "ox_target"

Notas:

  • Utilize vRP.getUserId(source) e vRP.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 o Job.


👮‍♂️ 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

local Player = QBCore.Functions.GetPlayer(source)
if Player and Player.PlayerData.job.name == "police" then
  -- É policial
end

🟨 ESX

local xPlayer = ESX.GetPlayerFromId(source)
if xPlayer and xPlayer.job.name == "police" then
  -- É policial
end

🟩 Creative (Nation Base)

local user_id = vRP.getUserId(source)
if user_id and vRP.hasPermission(user_id, "police.permission") then
  -- Tem permissão de policial
end

💡 A permissão "police.permission" pode variar dependendo da base, como "paramedico.permissao", "mechanic.permission", etc.

🟥 vRPex

local user_id = vRP.getUserId(source)
if user_id and vRP.EXT.Group:hasGroup(user_id, "Police") then
  -- Está no grupo "Police"
end

🛠 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

-- Adicionar item
local Player = QBCore.Functions.GetPlayer(source)
Player.Functions.AddItem("trap_phone", 1)

-- Remover item
Player.Functions.RemoveItem("trap_phone", 1)

-- Verificar item
local hasItem = Player.Functions.GetItemByName("trap_phone")

-- Adicionar dinheiro
Player.Functions.AddMoney("cash", 500)

-- Remover dinheiro
Player.Functions.RemoveMoney("cash", 500)

🟨 ESX

-- Adicionar item
local xPlayer = ESX.GetPlayerFromId(source)
xPlayer.addInventoryItem("trap_phone", 1)

-- Remover item
xPlayer.removeInventoryItem("trap_phone", 1)

-- Verificar item
local item = xPlayer.getInventoryItem("trap_phone")

-- Adicionar dinheiro
xPlayer.addMoney(500)

-- Remover dinheiro
xPlayer.removeMoney(500)

🟩 Creative (Nation Base)

-- Adicionar item
vRP.giveInventoryItem(user_id, "trap_phone", 1)

-- Remover item
vRP.tryGetInventoryItem(user_id, "trap_phone", 1)

-- Verificar item
local amount = vRP.getInventoryItemAmount(user_id, "trap_phone")

-- Adicionar dinheiro
vRP.giveMoney(user_id, 500)

-- Remover dinheiro
vRP.tryPayment(user_id, 500)

🟥 vRPex

-- Adicionar item
vRP.EXT.Inventory.GiveItem(user_id, "trap_phone", 1, true)

-- Remover item
vRP.EXT.Inventory.TakeItem(user_id, "trap_phone", 1, true)

-- Verificar item
local amount = vRP.EXT.Inventory.GetItemAmount(user_id, "trap_phone")

-- Adicionar dinheiro
vRP.EXT.Money.Add(user_id, 500)

-- Remover dinheiro
vRP.EXT.Money.TryPayment(user_id, 500)

📣 Webhook do Discord

cfg.Discord_Webhook = ""

Pode ser usado para registrar atividades no Discord.


👮‍♂️ Requisitos de Polícia

cfg.Police = {
  Job = {"police"},
  Required = 0
}

Define quantos policiais devem estar em serviço para permitir vendas.


🕒 Horário do Servidor

cfg.Time = {
  Zone = "plus",
  Zone_Count = 3,
  Format = 24
}
  • 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

cfg.Drug_List = {
  ["coke_brick"] = { average_price = 125 },
  ["weed_brick"] = { average_price = 125 },
  ...
}

Lista de drogas aceitas e seu preço médio base.


📱 Trap Phone

cfg.Phone = {
  Price = 5000,
  Item_Name = "trap_phone"
}

Define o item necessário para habilitar negociações por celular.


📈 Sistema de Habilidade de Venda

cfg.Sales_Skill = {
  InterestInDrugs = 80,
  maxQuantity = 8,
  Threshold = 250,
  Limit = 1000,
  Skill = 0.4,
  Increase_Chance = 20
}
  • 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

cfg.Threshold_Respect = {
  Mole = {
    ["junkie"] = 0,
    ["criminal"] = 1500,
    ["professional"] = 6000
  },
  Wholesale = 3000,
  Limit = 10000
}
  • Define níveis de respeito para acessar funções como o "Mole" e vendas por atacado.


🚛 Pontos de Venda por Atacado

cfg.Wholesale = {
  {
    Peds = {{isBuyer = true, model = "G_M_Y_SalvaGoon_03"}, ...},
    Vehicle = "baller7",
    Gun = "weapon_microsmg",
    Coords = vector4(...)
  },
  ...
}

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 para qb-target ou ox_target.

📁 Server

  • server/main.lua: Validações e controle geral do servidor.

  • server/mole.lua: Funções do informante.

  • server/retail.lua e wholesale.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()

Inicia o modo de venda no varejo manualmente (sem usar o alvo).

Exemplo:

exports["fx-selldrugs"]:StartRetailSelling()

🔹 exports["selldrugs"]:GetRespectLevel()

Retorna o nível de respeito do jogador, útil para checagens de permissão ou progressão.

Exemplo:

local respect = exports["selldrugs"]:GetRespectLevel()
print("Respeito atual: " .. respect)

🔹 exports["selldrugs"]:HasTrapPhone()

Verifica se o jogador possui o item trap_phone.

Exemplo:

if exports["selldrugs"]:HasTrapPhone() then
  print("Jogador possui o trap phone.")
end

🔹 exports["selldrugs"]:ShowMoleMenu()

Abre manualmente o menu do Mole (informante), se estiver habilitado no config.

Exemplo:

exports["selldrugs"]:ShowMoleMenu()

🖥️ Server Exports

Os exports server-side permitem acesso a dados úteis ou execução de lógica no servidor.

🔸 exports["selldrugs"]:GetPlayerRespect(source)

Retorna o nível de respeito de um jogador com base no source.

Exemplo:

local respect = exports["selldrugs"]:GetPlayerRespect(source)
print(("Respeito do jogador [%s]: %s"):format(source, respect))

🔸 exports["selldrugs"]:AddRespect(source, amount)

Adiciona uma quantia de respeito ao jogador.

Exemplo:

lexports["selldrugs"]:AddRespect(source, 250)

🔸 exports["selldrugs"]:RemoveRespect(source, amount)

Remove respeito do jogador, útil em penalidades ou punições.

Exemplo:

lexports["nc-selldrugs"]:RemoveRespect(source, 100)

🔸 exports["selldrugs"]:HasRespect(source, amount)

Retorna true se o jogador tiver pelo menos a quantia informada de respeito.

Exemplo:

if exports["selldrugs"]:HasRespect(source, 3000) then
  print("O jogador pode acessar o atacado.")
end

🔸 exports["selldrugs"]:ResetRespect(source)

Zera o respeito do jogador.

Exemplo:

exports["selldrugs"]:ResetRespect(source)
Anterior🔍Backdoor ScannerPróximo🎬Loadingscreen — Sistema completo

Atualizado há 29 dias