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) Log('Heroin Plant Respawned At ' .. Config.PoppyPlants[loc].location, 'heroin') 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) Log(Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname .. ' Wiped Down Their Heroin Lab Kit!' , 'heroin') 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) Log(Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname .. ' Picked A Poppies With a distance of ' .. dist(source, playerPed, Config.PoppyPlants[loc].location) .. ' vectors', 'heroin') 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) Log(Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname .. ' Made Heroin Powder With a distance of ' .. dist(source, playerPed, Config.dryplant[num]['loc']) .. ' vectors', 'heroin') end elseif heroin >= Config.Tier1 and heroin <= Config.Tier2 then if RemoveItem("poppyresin", 1) then AddItem("heroinstagetwo", 1) Log(Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname .. ' Made Heroin Powder Tier 2 With a distance of ' .. dist(source, playerPed, Config.dryplant[num]['loc']) .. ' vectors', 'heroin') end else if RemoveItem("poppyresin", 1) then AddItem("heroinstagethree", 1) Log(Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname .. ' Made Heroin Powder Tier 3 With a distance of ' .. dist(source, playerPed, Config.dryplant[num]['loc']) .. ' vectors', 'heroin') end end else if RemoveItem("poppyresin", 1) then AddItem("heroin", 1) Log(Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname .. ' Made Heroin Powder With a distance of ' .. dist(source, playerPed, Config.dryplant[num]['loc']) .. ' vectors', 'heroin') 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") Log(Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname .. ' Cut Heroin With a distance of ' .. dist(source, playerPed, Config.cutheroinone[num]['loc']) .. ' vectors', 'heroin') elseif rawh2 then RemoveItem('heroinstagetwo', 1 ) RemoveItem('bakingsoda', 1 ) AddItem('heroincutstagetwo', 1) Notifys(Lang.Heroin.cutheroin, "success") Log(Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname .. ' Cut Heroin Tier 2 With a distance of ' .. dist(source, playerPed, Config.cutheroinone[num]['loc']) .. ' vectors', 'heroin') elseif rawh3 then RemoveItem('heroinstagethree', 1 ) RemoveItem('bakingsoda', 1 ) AddItem('heroincutstagethree', 1) Notifys(Lang.Heroin.cutheroin, "success") Log(Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname .. ' Cut Heroin Tier 3 With a distance of ' .. dist(source, playerPed, Config.cutheroinone[num]['loc']) .. ' vectors', 'heroin') else Notifys(Lang.Heroin.noheroin, "error") end else if RemoveItem('heroin', 1 ) then RemoveItem('bakingsoda', 1 ) AddItem('heroincut',1) Notifys(Lang.Heroin.cutheroin, "success") Log(Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname .. ' Cut Heroin With a distance of ' .. dist(source, playerPed, Config.cutheroinone[num]['loc']) .. ' vectors', 'heroin') 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) Log(Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname .. ' Bought A Heroin lab Kit ' .. dist(source, playerPed, vector3(Config.buyheroinlabkit.x,Config.buyheroinlabkit.y,Config.buyheroinlabkit.z)) .. ' vectors', 'heroin') 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) local playerPed = GetPlayerPed(source) if Player.Functions.AddItem("heroinlabkit", 1) then Notifys('You Got Your Lab Kit Back', 'Success') Log(Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname .. ' Picked Up Their Heroin Lab Kit Back At ' .. GetEntityCoords(playerPed) .. '!', 'heroin') end end) QBCore.Functions.CreateUseableItem('heroinlabkit', function(source, item) local src = source local Player = QBCore.Functions.GetPlayer(src) local playerPed = GetPlayerPed(src) if not Itemcheck(Player, 'heroinlabkit', 1, 'true') then return end if TriggerClientEvent("md-drugs:client:setheroinlabkit", src) then Player.Functions.RemoveItem("heroinlabkit", 1) Log(Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname .. ' Placed Their Heroin Lab Kit Back At ' .. GetEntityCoords(playerPed) .. '!', 'heroin') 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") Log(Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname .. ' Made A Vial Of Heroin', 'heroin') elseif cuth2 then RemoveItem('heroincutstagetwo', 1) RemoveItem('emptyvial', 1) AddItem('heroinvialstagetwo', 1) Notifys(Lang.Heroin.vial, "success") Log(Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname .. ' Made A Vial Of Heroin Tier 2', 'heroin') elseif cuth3 then RemoveItem('heroincutstagethree', 1) RemoveItem('emptyvial', 1) AddItem('heroinvialstagethree', 1) Notifys(Lang.Heroin.vial, "success") Log(Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname .. ' Made A Vial Of Heroin Tier 3', 'heroin') else Notifys(Lang.Heroin.novial, "error") end else if RemoveItem('heroincut', 1) then RemoveItem('emptyvial', 1) AddItem('heroinvial', 1) Notifys(Lang.Heroin.vial, "success") Log(Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname .. ' Made A Vial Of Heroin', 'heroin') 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') Log(Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname .. ' Sucks And Burned Their Heroin', 'heroin') 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") Log(Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname .. ' Filled A Needle Of Heroin And Now Has A Rep Of ' .. heroin + 1 .. '!' , 'heroin') elseif vh2 then RemoveItem('heroinvialstagetwo', 1 ) RemoveItem('needle', 1) AddItem('heroin_readystagetwo', 1) Player.Functions.SetMetaData('heroin', (heroin + 1)) Notifys(Lang.Heroin.fill, "success") Log(Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname .. ' Filled A Needle Of Heroin Tier 2 And Now Has A Rep Of ' .. heroin + 1 .. '!' , 'heroin') elseif vh3 then RemoveItem('heroinvialstagethree', 1 ) RemoveItem('needle', 1) AddItem('heroin_readystagethree', 1) Player.Functions.SetMetaData('heroin', (heroin + 1)) Notifys(Lang.Heroin.fill, "success") Log(Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname .. ' Filled A Needle Of Heroin Tier 3 And Now Has A Rep Of ' .. heroin + 1 .. '!' , 'heroin') 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") Log(Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname .. ' Filled A Needle Of Heroin!' , 'heroin') else Notifys(Lang.Heroin.nofill, "error") end end end) RegisterServerEvent('md-drugs:server:failheroin', function() local src = source local Player = QBCore.Functions.GetPlayer(src) Log(Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname .. ' Sucks And Burned Their Heroin', 'heroin') 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)