Untitled Diff
102 removals
Words removed | 227 |
Total words | 335 |
Words removed (%) | 67.76 |
156 lines
1 addition
Words added | 0 |
Total words | 108 |
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)