Files
md-drugs/server/cocaine.lua
T
2026-03-11 02:47:56 -07:00

119 lines
3.5 KiB
Lua

if not Config.Drugs['cocaine'] then return end
local Locations = Config.Cocaine.Locations
local Recipes = Config.Cocaine.Recipes
local function getTier(source)
if not Config.TierSystem then
return 'tier1'
end
local rep = tonumber(getRep(source, 'coke'))
if not rep then
return
end
if rep < Config.Tier1 then
return 'tier1'
end
if rep >= Config.Tier1 and rep <= Config.Tier2 then
return 'tier2'
end
if rep >= Config.Tier2 then
return 'tier3'
end
return nil
end
RegisterServerEvent('md-drugs:server:makepowder', function(num)
local src = source
if timeOut(src, 'md-drugs:server:makepowder') then return end
if not checkDistance(src, Locations.MakePowder[num].loc, 3.5, 'md-drugs:server:makepowder') then
return
end
local tier = getTier(src)
if not tier then
return
end
if not craft(src, Recipes.cokepowder[tier]) then
return
end
end)
RegisterServerEvent('md-drugs:server:cutcokeone', function(num)
local src = source
if timeOut(src, 'md-drugs:server:cutcokeone') then return end
if not checkDistance(src, Locations.CuttingCoke[num].loc, 2.5, 'md-drugs:server:cutcokeone') then
return
end
local tier = 'tier1'
local itemCheck = {
{check = Bridge.Inventory.HasItem(src,'loosecoke'), tier = 'tier1'},
{check = Bridge.Inventory.HasItem(src, 'loosecokestagetwo'), tier = 'tier2'},
{check = Bridge.Inventory.HasItem(src, 'loosecokestagethree'), tier = 'tier3'},
}
for i = 1, #itemCheck do
if itemCheck[i].check then
tier = itemCheck[i].tier
break
end
end
if not craft(src, Recipes.cutcoke[tier]) then
return
end
end)
RegisterServerEvent('md-drugs:server:bagcoke', function(num)
local src = source
if timeOut(src, 'md-drugs:server:bagcoke') then return end
if not checkDistance(src, Locations.BaggingCoke[num].loc, 2.5, 'md-drugs:server:bagcoke') then
return
end
local tier = 'tier1'
local itemCheck = {
{check = Bridge.Inventory.HasItem(src,'coke'), tier = 'tier1'},
{check = Bridge.Inventory.HasItem(src, 'cokestagetwo'), tier = 'tier2'},
{check = Bridge.Inventory.HasItem(src, 'cokestagethree'), tier = 'tier3'},
}
for i = 1, #itemCheck do
if itemCheck[i].check then
tier = itemCheck[i].tier
break
end
end
if not craft(src, Recipes.bagcoke[tier]) then
return
end
AddRep(src, 'coke', 1)
end)
local cokecut = {
loosecokestagetwo = {give = {loosecoke =2}, take = {loosecokestagetwo = 1, bakingsoda = 1}},
loosecokestagethree = {give = {loosecokestagetwo = 3}, take = {loosecokestagethree = 1, bakingsoda = 1}},
}
for k, v in pairs (cokecut) do
Bridge.Framework.RegisterUsableItem(k, function(source, item)
local src = source
local can = true
for k, v in pairs (v.take) do
local count = Bridge.Inventory.GetItemCount(src, k)
if count < v then
can = false
break
end
end
if not can then
return craft(src, v)
end
local progress = Bridge.Callback.Trigger("md-drugs:client:uncuff", src, Bridge.Language.Locale('coke.cutCokeAgain'))
if not progress then return end
craft(src, v)
end)
end