DRS Drug Sales

Dealers espalhados pela cidade compram droga aos jogadores, com preços aleatórios, negócios com tempo, polícias mínimos e alertas.

v2.1.4 QBCoreQboxESX drs_drugsales
Ver na loja

Dealers espalhados pela cidade que compram droga aos jogadores, com preços aleatórios, negócios com tempo, polícias mínimos e alertas à polícia. Tudo validado no servidor.

#Requisitos

FrameworkQBCore, Qbox ou ESX (deteção automática)
Inventárioox_inventory (se estiver ligado) ou o inventário do framework

#Instalação

  1. Coloca drs_drugsales em resources.
  2. Adiciona ao server.cfg, depois do framework e do inventário:
server.cfg
ensure drs_drugsales
  1. Ajusta os dealers e os nomes dos itens do teu servidor em Config.Dealers.

Atenção

Os itens de exemplo são os do QBCore (weed_skunk, cokebaggy…). No ESX ou noutros servidores troca-os pelos teus (ex.: esx_drugs usa weed_pooch, coke_pooch).

#Utilização

  1. Aproxima-te de um dealer e carrega em E quando aparecer Negociar com….
  2. O dealer compra os itens que tens da lista dele, até maxPerDeal unidades de cada.
  3. O negócio demora duration segundos, com animação de troca. Se te afastares mais de 3 metros, é cancelado.
  4. Recebes o dinheiro na conta Config.Account. Há uma hipótese (alertChance) de a polícia ser alertada, com um blip no local.

#Dealers

config.lua
{
    id = 'weed_dealer',
    label = 'Dealer de Erva',
    coords = vector4(-1172.5, -1571.9, 4.66, 125.0),
    ped = 'g_m_y_ballaeast_01',
    scenario = 'WORLD_HUMAN_SMOKING_POT',
    blip = { enabled = false, sprite = 140, color = 2 },
    copsRequired = 0,
    duration = 8,
    cooldown = 60,
    maxPerDeal = 10,
    items = {
        { item = 'weed_skunk', price = { min = 90, max = 130 } },
    },
},
CampoDescrição
copsRequiredPolícias de serviço necessários para o dealer negociar
durationSegundos que o negócio demora
cooldownSegundos entre negócios, por jogador
maxPerDealUnidades máximas de cada item por negócio
items[].pricePreço por unidade, aleatório entre min e max

#Polícia

OpçãoPor defeitoDescrição
Config.Police.jobspolice, sheriffEmpregos que contam como polícia
Config.Police.requireDutytrueSó conta quem está de serviço (QBCore/Qbox)
Config.Police.alertChance35% de alertar a polícia em cada venda
Config.Police.alertBlipSeconds60Duração do blip do alerta

#Configuração completa

config.lua
Config = {}

-- Idioma / Language: 'pt' ou 'en'
Config.Locale = 'pt'

-- Framework: 'auto' deteta Qbox/QBCore/ESX. Inventário: ox_inventory é usado se estiver ligado.
-- Framework: 'auto' detects Qbox/QBCore/ESX. Inventory: ox_inventory is used when running.
Config.Framework = 'auto'

-- Conta onde entra o dinheiro: 'cash', 'bank' ou 'black' (ESX: black_money) / Account paid into
Config.Account = 'cash'

-- Polícia / Police
Config.Police = {
    jobs = { 'police', 'sheriff' },
    requireDuty = true,        -- só conta polícias de serviço (QBCore/Qbox) / only on-duty officers count
    alertChance = 35,          -- % de hipótese de alertar a polícia em cada venda / chance to alert police per sale
    alertBlipSeconds = 60,
}

-- Tecla de interação (E) e distância / Interaction key (E) and distance
Config.InteractDistance = 2.0
-- Onde aparece o aviso do dealer: 'right-center' | 'left-center' | 'center' / Where the dealer prompt shows
Config.PromptPosition = 'right-center'

-- Dealers. Os nomes dos itens são os do QBCore; no ESX/ox_inventory troca pelos teus (ex.: esx_drugs: weed_pooch, coke_pooch)
-- Dealers. Item names are QBCore's; on ESX/ox_inventory use yours (e.g. esx_drugs: weed_pooch, coke_pooch)
Config.Dealers = {
    {
        id = 'weed_dealer',
        label = 'Dealer de Erva',
        coords = vector4(-1172.5, -1571.9, 4.66, 125.0),
        ped = 'g_m_y_ballaeast_01',
        scenario = 'WORLD_HUMAN_SMOKING_POT',
        blip = { enabled = false, sprite = 140, color = 2 },
        copsRequired = 0,
        duration = 8,              -- segundos que demora o negócio / deal length (seconds)
        cooldown = 60,             -- segundos entre negócios por jogador / seconds between deals per player
        maxPerDeal = 10,           -- unidades por negócio (por item) / units per deal (per item)
        items = {
            { item = 'weed_whitewidow', price = { min = 90, max = 130 } },
            { item = 'weed_skunk',      price = { min = 90, max = 130 } },
            { item = 'weed_ogkush',     price = { min = 110, max = 150 } },
            { item = 'joint',           price = { min = 40, max = 60 } },
        },
    },
    {
        id = 'coke_dealer',
        label = 'Dealer de Coca',
        coords = vector4(1240.7, -3322.3, 6.03, 270.0),
        ped = 's_m_y_dealer_01',
        scenario = 'WORLD_HUMAN_STAND_IMPATIENT',
        blip = { enabled = false, sprite = 501, color = 1 },
        copsRequired = 2,
        duration = 12,
        cooldown = 120,
        maxPerDeal = 5,
        items = {
            { item = 'cokebaggy',   price = { min = 350, max = 480 } },
            { item = 'crack_baggy', price = { min = 250, max = 350 } },
            { item = 'meth',        price = { min = 300, max = 420 } },
        },
    },
}

-- Webhook do Discord ('' = desligado) / Discord webhook
Config.DiscordWebhook = ''

#Resolução de problemas

"Não tens nada que interesse a este dealer." — não tens nenhum dos itens da lista desse dealer, ou os nomes dos itens não batem com os do teu servidor.

"O dealer não quer negócio agora." — não há polícias suficientes de serviço (copsRequired).