Files
md-drugs/server/weed.lua
T
2023-12-07 22:29:01 -08:00

384 lines
14 KiB
Lua

local QBCore = exports['qb-core']:GetCoreObject()
GlobalState.WeedPlant = Config.WeedPlant
Citizen.CreateThread(function()
for _, v in pairs(Config.WeedPlant) do
v.taken = false
end
end)
function WeedCooldown(loc)
CreateThread(function()
Wait(Config.respawnTime * 1000)
Config.WeedPlant[loc].taken = false
GlobalState.WeedPlant = Config.WeedPlant
Wait(1000)
TriggerClientEvent('weed:respawnCane', -1, loc)
end)
end
RegisterNetEvent("weed:pickupCane")
AddEventHandler("weed:pickupCane", function(loc)
if not Config.WeedPlant[loc].taken then
Config.WeedPlant[loc].taken = true
GlobalState.WeedPlant = Config.WeedPlant
TriggerClientEvent("weed:removeCane", -1, loc)
WeedCooldown(loc)
local Player = QBCore.Functions.GetPlayer(source)
Player.Functions.AddItem(Config.rewardWeed, 1)
TriggerClientEvent('inventory:client:ItemBox', source, QBCore.Shared.Items[Config.rewardWeed], "add")
end
end)
--------------- events
RegisterServerEvent('md-drugs:server:dryoutweed', function()
local src = source
local Player = QBCore.Functions.GetPlayer(src)
if Player.Functions.RemoveItem("wetcannabis", 1) then
Player.Functions.AddItem("drycannabis", 1)
TriggerClientEvent("inventory:client:ItemBox", source, QBCore.Shared.Items['drycannabis'], "add", 1)
TriggerClientEvent("inventory:client:ItemBox", source, QBCore.Shared.Items['wetcannabis'], "remove", 1)
else
TriggerClientEvent('QBCore:Notify', src, "Nothing To Dry", "error")
end
end)
RegisterServerEvent('md-drugs:server:makebutter', function()
local src = source
local Player = QBCore.Functions.GetPlayer(src)
local recipe = {"mdbutter", "grindedweed"}
local grind = Player.Functions.GetItemByName("grindedweed")
local lock = Player.Functions.GetItemByName('mdbutter')
local price = 0
for k, v in pairs (recipe) do
if lock and lock.amount > 0 then
if grind and grind.amount > 0 then
if Player.Functions.RemoveItem(v, 1) then
price = 1
end
end
end
end
if price == 1 then
Player.Functions.AddItem('cannabutter', 1 )
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items['cannabutter'], "add", 1)
end
end)
RegisterServerEvent('md-drugs:server:makebrownies', function()
local src = source
local Player = QBCore.Functions.GetPlayer(src)
local recipe = {"cannabutter", "flour", "chocolate"}
local butter = Player.Functions.GetItemByName("cannabutter")
local flour = Player.Functions.GetItemByName('flour')
local choc = Player.Functions.GetItemByName('chocolate')
local price = 0
for k, v in pairs (recipe) do
if butter and butter.amount > 0 then
if flour and flour.amount > 0 then
if choc and choc.amount > 0 then
if Player.Functions.RemoveItem(v, 1) then
price = 1
end
end
end
end
end
if price == 1 then
Player.Functions.AddItem('specialbrownie', 1 )
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items['specialbrownie'], "add", 1)
end
end)
RegisterServerEvent('md-drugs:server:makecookies', function()
local src = source
local Player = QBCore.Functions.GetPlayer(src)
local recipe = {"cannabutter", "flour"}
local butter = Player.Functions.GetItemByName("cannabutter")
local flour = Player.Functions.GetItemByName('flour')
local price = 0
for k, v in pairs (recipe) do
if butter and butter.amount > 0 then
if flour and flour.amount > 0 then
if Player.Functions.RemoveItem(v, 1) then
price = 1
end
end
end
end
if price == 1 then
Player.Functions.AddItem('specialcookie', 1 )
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items['specialcookie'], "add", 1)
end
end)
RegisterServerEvent('md-drugs:server:makechocolate', function()
local src = source
local Player = QBCore.Functions.GetPlayer(src)
local recipe = {"cannabutter", "chocolate"}
local butter = Player.Functions.GetItemByName("cannabutter")
local choc = Player.Functions.GetItemByName('chocolate')
local price = 0
for k, v in pairs (recipe) do
if butter and butter.amount > 0 then
if choc and choc.amount > 0 then
if Player.Functions.RemoveItem(v, 1) then
price = 1
end
end
end
end
if price == 1 then
Player.Functions.AddItem('specialchocolate', 1 )
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items['specialchocolate'], "add", 1)
end
end)
RegisterServerEvent('md-drugs:server:makemuffin', function()
local src = source
local Player = QBCore.Functions.GetPlayer(src)
local recipe = {"cannabutter", "flour"}
local butter = Player.Functions.GetItemByName("cannabutter")
local flour = Player.Functions.GetItemByName('flour')
local price = 0
for k, v in pairs (recipe) do
if butter and butter.amount > 0 then
if flour and flour.amount > 0 then
if Player.Functions.RemoveItem(v, 1) then
price = 1
end
end
end
end
if price == 1 then
Player.Functions.AddItem('specialmuffin', 1 )
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items['specialmuffin'], "add", 1)
end
end)
RegisterServerEvent('md-drugs:server:makeoil', function()
local src = source
local Player = QBCore.Functions.GetPlayer(src)
local recipe = {"butane", "grindedweed"}
local grind = Player.Functions.GetItemByName("grindedweed")
local butane = Player.Functions.GetItemByName('butane')
local price = 0
for k, v in pairs (recipe) do
if butane and butane.amount > 0 then
if grind and grind.amount > 0 then
if Player.Functions.RemoveItem(v, 1) then
price = 1
end
end
end
end
if price == 1 then
Player.Functions.AddItem('shatter', 1 )
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items['shatter'], "add", 1)
end
end)
RegisterServerEvent('md-drugs:server:rollblunt', function()
local src = source
local Player = QBCore.Functions.GetPlayer(src)
local recipe = {"bluntwrap", "grindedweed"}
local grind = Player.Functions.GetItemByName("grindedweed")
local butane = Player.Functions.GetItemByName('bluntwrap')
local price = 0
for k, v in pairs (recipe) do
if butane and butane.amount > 0 then
if grind and grind.amount > 0 then
if Player.Functions.RemoveItem(v, 1) then
TriggerClientEvent("md-drugs:client:rollanim", src)
price = 1
end
end
end
end
if price == 1 then
Player.Functions.AddItem('blunt', 1 )
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items['blunt'], "add", 1)
end
end)
RegisterServerEvent('md-drugs:server:rollleanblunt', function()
local src = source
local Player = QBCore.Functions.GetPlayer(src)
local grind = Player.Functions.GetItemByName("mdlean")
local wrap = Player.Functions.GetItemByName('bluntwrap')
local chance = math.random(1,10)
if grind.amount > 0 then
if wrap.amount > 0 then
Player.Functions.RemoveItem("bluntwrap", 1)
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items['bluntwrap'], "remove", 1)
TriggerClientEvent("md-drugs:client:rollanim", src)
if chance > 8 then
Player.Functions.RemoveItem("mdlean", 1)
end
Player.Functions.AddItem("leanbluntwrap", 1)
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items['leanbluntwrap'], "add", 1)
end
end
end)
RegisterServerEvent('md-drugs:server:rolldextroblunt', function()
local src = source
local Player = QBCore.Functions.GetPlayer(src)
local grind = Player.Functions.GetItemByName("mdreddextro")
local wrap = Player.Functions.GetItemByName('bluntwrap')
local chance = math.random(1,10)
if grind and grind.amount > 0 then
if wrap and wrap.amount > 0 then
Player.Functions.RemoveItem("bluntwrap", 1)
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items['bluntwrap'], "remove", 1)
TriggerClientEvent("md-drugs:client:rollanim", src)
if chance > 8 then
Player.Functions.RemoveItem("mdreddextro", 1)
end
Player.Functions.AddItem("dextrobluntwrap", 1)
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items['dextrobluntwrap'], "add", 1)
end
else
TriggerClientEvent('QBCore:Notify', src, "You Need Red Dextro", "error")
end
end)
RegisterServerEvent('md-drugs:server:rollchewyblunt', function()
local src = source
local Player = QBCore.Functions.GetPlayer(src)
local coke = Player.Functions.GetItemByName("loosecoke")
local wrap = Player.Functions.GetItemByName('bluntwrap')
local keef = Player.Functions.GetItemByName('grindedweed')
local chance = math.random(1,10)
if coke and coke.amount > 0 then
if wrap and wrap.amount > 0 then
if keef and keef.amount > 0 then
Player.Functions.RemoveItem("bluntwrap", 1)
TriggerClientEvent("md-drugs:client:rollanim", src)
Player.Functions.RemoveItem("loosecoke", 1)
Player.Functions.RemoveItem("grindedweed", 1)
Player.Functions.AddItem("chewyblunt", 1)
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items['chewyblunt'], "add", 1)
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items['loosecoke'], "remove", 1)
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items['grindedweed'], "remove", 1)
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items['bluntwrap'], "remove", 1)
else
TriggerClientEvent('QBCore:Notify', src, "You Need Some Keef", "error")
end
end
else
TriggerClientEvent('QBCore:Notify', src, "You Need Some Loose Coke", "error")
end
end)
------------------------ usuable items
QBCore.Functions.CreateUseableItem("leanbluntwrap", function(source, item)
local src = source
local Player = QBCore.Functions.GetPlayer(src)
local keef = Player.Functions.GetItemByName("grindedweed")
if keef and keef.amount > 0 then
if Player.Functions.RemoveItem('grindedweed', 1) then
TriggerClientEvent("md-drugs:client:rollanim", src)
Player.Functions.RemoveItem("leanbluntwrap", 1)
Player.Functions.AddItem('leanblunts', 1)
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items['leanblunts'], "add", 1)
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items['grindedweed'], "remove", 1)
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items['leanbluntwrap'], "remove", 1)
end
else
TriggerClientEvent('QBCore:Notify', src, "Cant Roll A blunt With Air", "error")
end
end)
QBCore.Functions.CreateUseableItem("dextrobluntwrap", function(source, item)
local src = source
local Player = QBCore.Functions.GetPlayer(src)
local keef = Player.Functions.GetItemByName("grindedweed")
if keef and keef.amount > 0 then
if Player.Functions.RemoveItem('grindedweed', 1) then
TriggerClientEvent("md-drugs:client:rollanim", src)
Player.Functions.RemoveItem("dextrobluntwrap", 1)
Player.Functions.AddItem('dextroblunts', 1)
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items['dextroblunts'], "add", 1)
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items['grindedweed'], "remove", 1)
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items['dextrobluntwrap'], "remove", 1)
end
else
TriggerClientEvent('QBCore:Notify', src, "Cant Roll A blunt With Air", "error")
end
end)
local blunts = { 'dextroblunts', 'leanblunts', "chewyblunt", 'blunt' }
for k, v in pairs (blunts) do QBCore.Functions.CreateUseableItem(v, function(source, item)
local src = source
local Player = QBCore.Functions.GetPlayer(src)
if TriggerClientEvent('md-drugs:client:smokeblunts', source, item.name) then
Player.Functions.RemoveItem(item.name, 1)
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items[item.name], "remove", 1)
end
end)
end
local edibles = { 'specialcookie', 'specialbrownie', "specialmuffin", 'specialchocolate' }
for k, v in pairs (edibles) do QBCore.Functions.CreateUseableItem(v, function(source, item)
local src = source
local Player = QBCore.Functions.GetPlayer(src)
if TriggerClientEvent("md-drugs:client:edibles", source, item.name) then
Player.Functions.RemoveItem(item.name, 1)
end
end)
end
QBCore.Functions.CreateUseableItem("dabrig", function(source, item)
local src = source
local Player = QBCore.Functions.GetPlayer(src)
if Player.Functions.GetItemByName("butanetorch") then
if Player.Functions.RemoveItem("shatter", 1) then
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items["shatter"], "remove", 1)
TriggerClientEvent("md-drugs:client:dodabs", src)
else
TriggerClientEvent('QBCore:Notify', src, "You Need Shatter To Do A Dab", "error")
end
else
TriggerClientEvent('QBCore:Notify', src, "You Need A Butane Torch", "error")
end
end)
QBCore.Functions.CreateUseableItem("bluntwrap", function(source, item)
local src = source
local Player = QBCore.Functions.GetPlayer(src)
TriggerClientEvent('md-drugs:client:bluntwraps', src)
end)
QBCore.Functions.CreateUseableItem("weedgrinder", function(source, item)
local src = source
local Player = QBCore.Functions.GetPlayer(src)
if Player.Functions.RemoveItem("drycannabis",1 ) then
Player.Functions.AddItem("grindedweed", 1)
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items["grindedweed"], "add", 1)
TriggerClientEvent("md-drugs:client:rollanim", src)
end
end)
QBCore.Functions.CreateUseableItem("mdwoods", function(source, item)
local src = source
local Player = QBCore.Functions.GetPlayer(src)
if Player.Functions.RemoveItem("mdwoods",1 ) then
Player.Functions.AddItem("bluntwrap", 5)
Player.Functions.AddItem("tobacco", 5)
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items["bluntwrap"], "add", 1)
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items["tobacco"], "add", 1)
TriggerClientEvent("md-drugs:client:rollanim", src)
end
end)