Files
md-drugs/server/meth.lua
T
2026-04-03 15:07:53 -07:00

113 lines
3.2 KiB
Lua

if not Config.Drugs['meth'] then return end
local onRun = {}
local vehicles = {}
local function setTimeout(src)
if onRun[src] then
CreateThread(function()
Wait(10 * 60 * 1000)
onRun[src] = nil
end)
end
end
RegisterServerEvent('md-drugs:server:givemethingridients', function(veh)
local src = source
local amount = math.random(1,5)
local vehicle = NetworkGetEntityFromNetworkId(veh)
if vehicles[src] ~= vehicle then
Bridge.Prints.Warn(Bridge.Language.Locale('meth.noVehicle', Bridge.Framework.GetPlayerIdentifier(src), vehicle, vehicles[src]))
return
end
if not DoesEntityExist(vehicle) and GetEntityModel(vehicle) == GetHashKey('journey') then
Bridge.Prints.Warn(Bridge.Language.Locale('meth.wrongVehModel', Bridge.Framework.GetPlayerIdentifier(src), GetEntityModel(vehicle), 'journey'))
return
end
if timeOut(src, 'md-drugs:server:givemethingridients') then return end
if not onRun[src] then
Bridge.Prints.Warn(Bridge.Language.Locale('meth.notOnRun', Bridge.Framework.GetPlayerIdentifier(src)))
return
end
onRun[src] = onRun[src] + 1
local chance = math.random(1,2) == 1 and 'ephedrine' or 'acetone'
if onRun[src] == 5 then
DeleteEntity(vehicle)
onRun[src] = nil
vehicles[src] = nil
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('meth.finishedRun'), "success")
end
Bridge.Inventory.AddItem(src, chance, amount)
end)
RegisterServerEvent('md-drugs:server:getmeth', function(num)
local src = source
if timeOut(src, 'md-drugs:server:getmeth') then return end
if not checkDistance(src, Config.Meth.Locations.BagMeth[num].loc, 2.5, 'md-drugs:server:getmeth') then
return
end
if not craft(src, Config.Meth.recipes.bag.bags) then
return
end
end)
RegisterServerEvent('md-drugs:server:geteph', function(num)
local src = source
if timeOut(src, 'md-drugs:server:geteph') then return end
if not checkDistance(src, Config.Meth.Locations.MethEph[num].loc, 2.5, 'md-drugs:server:geteph') then
return
end
Bridge.Inventory.AddItem(src, 'ephedrine', 1)
end)
RegisterServerEvent('md-drugs:server:getace', function(num)
local src = source
if timeOut(src, 'md-drugs:server:getace') then return end
if not checkDistance(src, Config.Meth.MethAce[num].loc, 2.5, 'md-drugs:server:getace') then
return
end
Bridge.Inventory.AddItem(src, 'acetone', 1)
end)
Bridge.Callback.Register('md-drugs:server:startcook', function(source, num)
local src = source
if not checkDistance(src, Config.Meth.Locations.CookMeth[num].loc, 2.5, 'md-drugs:server:startcook') then
return false
end
if not craft(src, Config.Meth.recipes.cook.heat) then
return false
end
return true
end)
Bridge.Callback.Register('md-drugs:server:registerMeth', function(source, loc, vehNetId)
local src = source
if onRun[source] then
return false
else
if checkDistance(src, Config.Meth.Locations.MethHeist[loc].loc, 10.0, 'md-drugs:server:registerMeth') then
local vehicle = NetworkGetEntityFromNetworkId(vehNetId)
if DoesEntityExist(vehicle) and GetEntityModel(vehicle) == GetHashKey('journey') then
vehicles[src] = vehicle
else
return false
end
else
return false
end
onRun[source] = 0
setTimeout(source)
return true
end
end)