268 lines
8.5 KiB
Lua
268 lines
8.5 KiB
Lua
local QBCore = exports['qb-core']:GetCoreObject()
|
|
GlobalState.PoppyPlants = Config.PoppyPlants
|
|
|
|
|
|
Citizen.CreateThread(function()
|
|
for _, v in pairs(Config.PoppyPlants) do
|
|
v.taken = false
|
|
end
|
|
end)
|
|
|
|
|
|
function heroinCooldown(loc)
|
|
CreateThread(function()
|
|
Wait(Config.respawnTime * 1000)
|
|
Config.PoppyPlants[loc].taken = false
|
|
GlobalState.PoppyPlants = Config.PoppyPlants
|
|
Wait(1000)
|
|
TriggerClientEvent('heroin:respawnCane', -1, loc)
|
|
end)
|
|
end
|
|
|
|
RegisterServerEvent('md-drugs:server:removecleaningkitheroin', function(data)
|
|
local src = source
|
|
local Player = QBCore.Functions.GetPlayer(src)
|
|
|
|
if RemoveItem("cleaningkit", 1) then
|
|
Notifys("Cleaned It Perfectly", "success")
|
|
TriggerClientEvent("md-drugs:client:deletedirtyheroin", src, data)
|
|
else
|
|
Notifys("You cant clean it with spit alone", "error")
|
|
end
|
|
end)
|
|
|
|
|
|
RegisterServerEvent("heroin:pickupCane", function(loc)
|
|
local playerPed = GetPlayerPed(source)
|
|
if CheckDist(source, playerPed, Config.PoppyPlants[loc].location) then return end
|
|
if not Config.PoppyPlants[loc].taken then
|
|
Config.PoppyPlants[loc].taken = true
|
|
GlobalState.PoppyPlants = Config.PoppyPlants
|
|
TriggerClientEvent("heroin:removeCane", -1, loc)
|
|
heroinCooldown(loc)
|
|
local Player = QBCore.Functions.GetPlayer(source)
|
|
AddItem('poppyresin', 1)
|
|
|
|
end
|
|
end)
|
|
|
|
RegisterServerEvent('md-drugs:server:dryplant', function(num)
|
|
local src = source
|
|
local Player = QBCore.Functions.GetPlayer(src)
|
|
local playerPed = GetPlayerPed(source)
|
|
if CheckDist(source, playerPed, Config.dryplant[num]['loc']) then return end
|
|
if not Itemcheck(Player, 'poppyresin', 1, 'true') then return end
|
|
if Config.TierSystem then
|
|
local heroin = Player.PlayerData.metadata['heroin']
|
|
if heroin <= Config.Tier1 then
|
|
if RemoveItem("poppyresin", 1) then
|
|
AddItem("heroin", 1)
|
|
end
|
|
elseif heroin >= Config.Tier1 and heroin <= Config.Tier2 then
|
|
if RemoveItem("poppyresin", 1) then
|
|
AddItem("heroinstagetwo", 1)
|
|
end
|
|
else
|
|
if RemoveItem("poppyresin", 1) then
|
|
AddItem("heroinstagethree", 1)
|
|
end
|
|
end
|
|
else
|
|
if RemoveItem("poppyresin", 1) then
|
|
AddItem("heroin", 1)
|
|
end
|
|
end
|
|
end)
|
|
|
|
|
|
RegisterServerEvent('md-drugs:server:cutheroin', function(num)
|
|
local src = source
|
|
local Player = QBCore.Functions.GetPlayer(src)
|
|
local playerPed = GetPlayerPed(source)
|
|
if CheckDist(source, playerPed, Config.cutheroinone[num]['loc']) then return end
|
|
if not Itemcheck(Player, 'bakingsoda', 1, 'true') then return end
|
|
if Config.TierSystem then
|
|
local rawh = Player.Functions.GetItemByName('heroin')
|
|
local rawh2 = Player.Functions.GetItemByName('heroinstagetwo')
|
|
local rawh3 = Player.Functions.GetItemByName('heroinstagethree')
|
|
if rawh then
|
|
RemoveItem('heroin', 1 )
|
|
RemoveItem('bakingsoda', 1 )
|
|
AddItem('heroincut',1)
|
|
Notifys(Lang.Heroin.cutheroin, "success")
|
|
elseif rawh2 then
|
|
RemoveItem('heroinstagetwo', 1 )
|
|
RemoveItem('bakingsoda', 1 )
|
|
AddItem('heroincutstagetwo', 1)
|
|
Notifys(Lang.Heroin.cutheroin, "success")
|
|
elseif rawh3 then
|
|
RemoveItem('heroinstagethree', 1 )
|
|
RemoveItem('bakingsoda', 1 )
|
|
AddItem('heroincutstagethree', 1)
|
|
Notifys(Lang.Heroin.cutheroin, "success")
|
|
else
|
|
Notifys(Lang.Heroin.noheroin, "error")
|
|
end
|
|
else
|
|
if RemoveItem('heroin', 1 ) then
|
|
RemoveItem('bakingsoda', 1 )
|
|
AddItem('heroincut',1)
|
|
Notifys(Lang.Heroin.cutheroin, "success")
|
|
else
|
|
Notifys(Lang.Heroin.noheroin, "error")
|
|
end
|
|
end
|
|
end)
|
|
|
|
RegisterServerEvent('md-drugs:server:getheroinlabkit', function()
|
|
local src = source
|
|
local Player = QBCore.Functions.GetPlayer(src)
|
|
local playerPed = GetPlayerPed(source)
|
|
|
|
if CheckDist(source, playerPed, vector3(Config.buyheroinlabkit.x,Config.buyheroinlabkit.y,Config.buyheroinlabkit.z)) then return end
|
|
if Player.Functions.RemoveMoney('cash', Config.heroinlabkitprice) then
|
|
AddItem('heroinlabkit', 1)
|
|
else
|
|
Notifys('You Need '.. Config.heroinlabkitprice .. ' In Cash For This', 'error')
|
|
end
|
|
end)
|
|
|
|
RegisterServerEvent('md-drugs:server:getheroinlabkitback', function()
|
|
local src = source
|
|
local Player = QBCore.Functions.GetPlayer(src)
|
|
|
|
if Player.Functions.AddItem("heroinlabkit", 1) then
|
|
Notifys('You Got Your Lab Kit Back', 'Success')
|
|
end
|
|
end)
|
|
|
|
QBCore.Functions.CreateUseableItem('heroinlabkit', function(source, item)
|
|
local src = source
|
|
local Player = QBCore.Functions.GetPlayer(src)
|
|
if not Itemcheck(Player, 'heroinlabkit', 1, 'true') then return end
|
|
if TriggerClientEvent("md-drugs:client:setheroinlabkit", src) then
|
|
Player.Functions.RemoveItem("heroinlabkit", 1)
|
|
end
|
|
end)
|
|
|
|
|
|
|
|
RegisterServerEvent('md-drugs:server:heatliquidheroin', function()
|
|
local src = source
|
|
local Player = QBCore.Functions.GetPlayer(src)
|
|
if not Itemcheck(Player, 'emptyvial', 1, 'true') then return end
|
|
if Config.TierSystem then
|
|
local cuth = Player.Functions.GetItemByName('heroincut')
|
|
local cuth2 = Player.Functions.GetItemByName('heroincutstagetwo')
|
|
local cuth3 = Player.Functions.GetItemByName('heroincutstagethree')
|
|
if cuth then
|
|
RemoveItem('heroincut', 1)
|
|
RemoveItem('emptyvial', 1)
|
|
AddItem('heroinvial', 1)
|
|
Notifys(Lang.Heroin.vial, "success")
|
|
elseif cuth2 then
|
|
RemoveItem('heroincutstagetwo', 1)
|
|
RemoveItem('emptyvial', 1)
|
|
AddItem('heroinvialstagetwo', 1)
|
|
Notifys(Lang.Heroin.vial, "success")
|
|
elseif cuth3 then
|
|
RemoveItem('heroincutstagethree', 1)
|
|
RemoveItem('emptyvial', 1)
|
|
AddItem('heroinvialstagethree', 1)
|
|
Notifys(Lang.Heroin.vial, "success")
|
|
else
|
|
Notifys(Lang.Heroin.novial, "error")
|
|
end
|
|
else
|
|
if RemoveItem('heroincut', 1) then
|
|
RemoveItem('emptyvial', 1)
|
|
AddItem('heroinvial', 1)
|
|
Notifys(Lang.Heroin.vial, "success")
|
|
else
|
|
Notifys(Lang.Heroin.novial, "error")
|
|
end
|
|
end
|
|
end)
|
|
|
|
RegisterServerEvent('md-drugs:server:failheatingheroin', function()
|
|
local src = source
|
|
local Player = QBCore.Functions.GetPlayer(src)
|
|
local cuth = Player.Functions.GetItemByName('heroincut')
|
|
local cuth2 = Player.Functions.GetItemByName('heroincutstagetwo')
|
|
local cuth3 = Player.Functions.GetItemByName('heroincutstagethree')
|
|
|
|
if cuth then
|
|
RemoveItem('heroincut', 1)
|
|
Notifys(Lang.Heroin.fail, "error")
|
|
elseif cuth2 then
|
|
RemoveItem('heroincutstagetwo', 1)
|
|
Notifys(Lang.Heroin.fail, "error")
|
|
elseif cuth3 then
|
|
RemoveItem('heroincutstagethree', 1)
|
|
Notifys(Lang.Heroin.fail, "error")
|
|
end
|
|
end)
|
|
|
|
|
|
RegisterServerEvent('md-drugs:server:fillneedle', function(num)
|
|
local src = source
|
|
local Player = QBCore.Functions.GetPlayer(src)
|
|
local playerPed = GetPlayerPed(source)
|
|
if CheckDist(source, playerPed, Config.fillneedle[num]['loc']) then return end
|
|
if not Itemcheck(Player, 'needle', 1, 'true') then return end
|
|
if Config.TierSystem then
|
|
local heroin = Player.PlayerData.metadata['heroin']
|
|
local vh = Player.Functions.GetItemByName('heroinvial')
|
|
local vh2 = Player.Functions.GetItemByName('heroinvialstagetwo')
|
|
local vh3 = Player.Functions.GetItemByName('heroinvialstagethree')
|
|
if vh then
|
|
RemoveItem('heroinvial', 1 )
|
|
RemoveItem('needle', 1)
|
|
AddItem('heroin_ready', 1)
|
|
Player.Functions.SetMetaData('heroin', (heroin + 1))
|
|
Notifys(Lang.Heroin.fill, "success")
|
|
elseif vh2 then
|
|
RemoveItem('heroinvialstagetwo', 1 )
|
|
RemoveItem('needle', 1)
|
|
AddItem('heroin_readystagetwo', 1)
|
|
Player.Functions.SetMetaData('heroin', (heroin + 1))
|
|
Notifys(Lang.Heroin.fill, "success")
|
|
elseif vh3 then
|
|
RemoveItem('heroinvialstagethree', 1 )
|
|
RemoveItem('needle', 1)
|
|
AddItem('heroin_readystagethree', 1)
|
|
Player.Functions.SetMetaData('heroin', (heroin + 1))
|
|
Notifys(Lang.Heroin.fill, "success")
|
|
else
|
|
Notifys(Lang.Heroin.nofill, "error")
|
|
end
|
|
else
|
|
if RemoveItem('heroinvial', 1 ) then
|
|
RemoveItem('needle', 1)
|
|
AddItem('heroin_ready', 1)
|
|
Notifys(Lang.Heroin.fill, "success")
|
|
else
|
|
Notifys(Lang.Heroin.nofill, "error")
|
|
end
|
|
end
|
|
end)
|
|
|
|
|
|
|
|
RegisterServerEvent('md-drugs:server:failheroin', function()
|
|
local src = source
|
|
local Player = QBCore.Functions.GetPlayer(src)
|
|
if Config.TierSystem then
|
|
local vh = Player.Functions.GetItemByName('heroinvial')
|
|
local vh2 = Player.Functions.GetItemByName('heroinvialstagetwo')
|
|
local vh3 = Player.Functions.GetItemByName('heroinvialstagethree')
|
|
if vh then RemoveItem('heroinvialstagethree', 1 )
|
|
elseif vh2 then RemoveItem('heroinvialstagetwo', 1)
|
|
elseif vh3 then RemoveItem('heroinvial', 1)
|
|
end
|
|
else
|
|
RemoveItem('heroinvial', 1)
|
|
end
|
|
end)
|
|
|