Untitled Diff

Created Diff never expires
102 removals
Words removed227
Total words335
Words removed (%)67.76
156 lines
1 addition
Words added0
Total words108
Words added (%)0.00
55 lines
ESX = nil
ESX = nil
local menuOpen = false
local menuOpen = false
local wasOpen = false
local wasOpen = false


Citizen.CreateThread(function()
Citizen.CreateThread(function()
while ESX == nil do
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
Citizen.Wait(0)
end
end


while ESX.GetPlayerData().job == nil do
while ESX.GetPlayerData().job == nil do
Citizen.Wait(100)
Citizen.Wait(100)
end
end


ESX.PlayerData = ESX.GetPlayerData()
ESX.PlayerData = ESX.GetPlayerData()
end)
end)


Citizen.CreateThread(function()
while true do
Citizen.Wait(0)
local playerPed = PlayerPedId()
local coords = GetEntityCoords(playerPed)

if GetDistanceBetweenCoords(coords, Config.CircleZones.DrugDealer.coords, true) < 0.5 then
if not menuOpen then
ESX.ShowHelpNotification(_U('dealer_prompt'))

if IsControlJustReleased(0, 38) then
wasOpen = true
OpenDrugShop()
end
else
Citizen.Wait(500)
end
else
if wasOpen then
wasOpen = false
ESX.UI.Menu.CloseAll()
end

Citizen.Wait(500)
end
end
end)

function OpenDrugShop()
ESX.UI.Menu.CloseAll()
local elements = {}
menuOpen = true

for k, v in pairs(ESX.GetPlayerData().inventory) do
local price = Config.DrugDealerItems[v.name]

if price and v.count > 0 then
table.insert(elements, {
label = ('%s - <span style="color:green;">%s</span>'):format(v.label, _U('dealer_item', ESX.Math.GroupDigits(price))),
name = v.name,
price = price,

-- menu properties
type = 'slider',
value = 1,
min = 1,
max = v.count
})
end
end


ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'drug_shop', {
title = _U('dealer_title'),
align = 'top-left',
elements = elements
}, function(data, menu)
TriggerServerEvent('esx_drugs:sellDrug', data.current.name, data.current.value)
end, function(data, menu)
menu.close()
menuOpen = false
end)
end


AddEventHandler('onResourceStop', function(resource)
AddEventHandler('onResourceStop', function(resource)
if resource == GetCurrentResourceName() then
if resource == GetCurrentResourceName() then
if menuOpen then
if menuOpen then
ESX.UI.Menu.CloseAll()
ESX.UI.Menu.CloseAll()
end
end
end
end
end)
end)


function OpenBuyLicenseMenu(licenseName)
menuOpen = true
local license = Config.LicensePrices[licenseName]

local elements = {
{
label = _U('license_no'),
value = 'no'
},

{
label = ('%s - <span style="color:green;">%s</span>'):format(license.label, _U('dealer_item', ESX.Math.GroupDigits(license.price))),
value = licenseName,
price = license.price,
licenseName = license.label
}
}

ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'license_shop', {
title = _U('license_title'),
align = 'top-left',
elements = elements
}, function(data, menu)

if data.current.value ~= 'no' then
ESX.TriggerServerCallback('esx_drugs:buyLicense', function(boughtLicense)
if boughtLicense then
ESX.ShowNotification(_U('license_bought', data.current.licenseName, ESX.Math.GroupDigits(data.current.price)))
else
ESX.ShowNotification(_U('license_bought_fail', data.current.licenseName))
end
end, data.current.value)
else
menu.close()
end

end, function(data, menu)
menu.close()
menuOpen = false
end)
end


function CreateBlipCircle(coords, text, radius, color, sprite)
function CreateBlipCircle(coords, text, radius, color, sprite)
local blip = AddBlipForRadius(coords, radius)
local blip = AddBlipForRadius(coords, radius)


SetBlipHighDetail(blip, true)
SetBlipHighDetail(blip, true)
SetBlipColour(blip, 1)
SetBlipColour(blip, 1)
SetBlipAlpha (blip, 128)
SetBlipAlpha (blip, 128)


-- create a blip in the middle
-- create a blip in the middle
blip = AddBlipForCoord(coords)
blip = AddBlipForCoord(coords)


SetBlipHighDetail(blip, true)
SetBlipHighDetail(blip, true)
SetBlipSprite (blip, sprite)
SetBlipSprite (blip, sprite)
SetBlipScale (blip, 1.0)
SetBlipScale (blip, 1.0)
SetBlipColour (blip, color)
SetBlipColour (blip, color)
SetBlipAsShortRange(blip, true)
SetBlipAsShortRange(blip, true)


BeginTextCommandSetBlipName("STRING")
BeginTextCommandSetBlipName("STRING")
AddTextComponentString(text)
AddTextComponentString(text)
EndTextCommandSetBlipName(blip)
EndTextCommandSetBlipName(blip)
end
end


Citizen.CreateThread(function()
Citizen.CreateThread(function()
for k,zone in pairs(Config.CircleZones) do
for k,zone in pairs(Config.CircleZones) do

CreateBlipCircle(zone.coords, zone.name, zone.radius, zone.color, zone.sprite)
CreateBlipCircle(zone.coords, zone.name, zone.radius, zone.color, zone.sprite)
end
end
end)
end)