Files
md-drugs/client/meth.lua
T

443 lines
16 KiB
Lua
Raw Normal View History

2026-01-16 02:57:26 -07:00
local amonia, tray, heated, active, trays, startedmeth, methVan = false, false, false, false, nil, false, nil
local locations = GlobalState.MDDrugsLocations.Meth
2025-07-18 01:19:12 -07:00
--- meth heist
2026-01-16 02:57:26 -07:00
local function SpawnMethCarPedChase(loc)
2025-07-18 01:19:12 -07:00
local stoploc = vector3(-1157.63, -3056.71, 13.94)
2025-08-06 02:25:06 -06:00
local start = locations.StartLoc[math.random(1,#locations.StartLoc)]
2025-07-18 01:19:12 -07:00
if startedmeth then
2026-01-16 02:57:26 -07:00
Bridge.Notify.SendNotify(Bridge.Language.Locale('meth.alreadyChasing'),'error')
2025-07-18 01:19:12 -07:00
else
startedmeth = true
2026-01-16 02:57:26 -07:00
requestModel("journey", 30000)
requestModel("a_m_m_hillbilly_02", 30000)
requestModel("cargobob3", 30000)
methVan = CreateVehicle("journey", start.x+3, start.y-2, start.z-1, 52.0, true, false)
2025-07-18 01:19:12 -07:00
local methdriver = CreatePed(26, "a_m_m_hillbilly_02", start.x, start.y, start.z, 268.9422, false, false)
local methpilot = CreatePed(26, "a_m_m_hillbilly_02", stoploc.x-3, stoploc.y-3, stoploc.z-1, 268.9422, false, false)
2026-01-16 02:57:26 -07:00
local can = Bridge.Callback.Trigger('md-drugs:server:registerMeth', loc, NetworkGetNetworkIdFromEntity(methVan))
if not can then
startedmeth = false
DeleteVehicle(methVan)
DeleteEntity(methdriver)
DeleteEntity(methpilot)
return
end
2025-07-18 01:19:12 -07:00
FreezeEntityPosition(methpilot, true)
SetEntityInvincible(methpilot, true)
2026-01-16 02:57:26 -07:00
SetEntityAsMissionEntity(methVan)
AddBlipForEntity(methVan)
SetPedIntoVehicle(methdriver, methVan, -1)
2025-07-18 01:19:12 -07:00
SetPedFleeAttributes(methdriver,false)
2026-01-16 02:57:26 -07:00
TaskVehicleDriveToCoordLongrange(methdriver, methVan, stoploc.x, stoploc.y, stoploc.z-1, 50.0, 524288, 25.0)
2025-07-18 01:19:12 -07:00
SetPedKeepTask(methdriver, true)
repeat
Wait(1000)
until #(GetEntityCoords(methdriver) - stoploc) < 20.0 or GetEntityHealth(methdriver) == 0
if GetEntityHealth(methdriver) == 0 then
2026-01-16 02:57:26 -07:00
Bridge.Target.AddLocalEntity(methVan, {
2025-07-18 01:19:12 -07:00
{
name = 'methcar',
2026-01-23 03:41:19 -07:00
icon = Bridge.Language.Locale('meth.targetStealFromCarIcon'),
2026-01-16 02:57:26 -07:00
label = Bridge.Language.Locale('meth.targetStealFromCar'),
2025-07-18 01:19:12 -07:00
action = function()
if not minigame() then return end
2026-01-16 02:57:26 -07:00
TriggerServerEvent('md-drugs:server:givemethingridients', NetworkGetNetworkIdFromEntity(methVan))
2025-07-18 01:19:12 -07:00
startedmeth = false
2026-01-16 02:57:26 -07:00
DeleteEntity(methdriver)
DeleteEntity(methpilot)
2025-07-18 01:19:12 -07:00
end,
}
})
else
2026-01-16 02:57:26 -07:00
DeleteVehicle(methVan)
2025-07-18 01:19:12 -07:00
DeleteEntity(methdriver)
DeleteEntity(methpilot)
end
end
end
local peds = {}
2025-08-06 02:25:06 -06:00
for k, v in pairs (locations.MethHeist) do
2025-07-18 01:19:12 -07:00
peds[k] = CreatePed(4, GetHashKey(v.ped), v.loc.x, v.loc.y, v.loc.z, v.loc.w, false, true)
Freeze(peds[k], true, v.loc.w)
2026-01-16 02:57:26 -07:00
Bridge.Target.AddLocalEntity(peds[k], {
2025-07-18 01:19:12 -07:00
{
2026-01-23 03:41:19 -07:00
icon = Bridge.Language.Locale('meth.targetHeistIcon'),
2026-01-16 02:57:26 -07:00
label = Bridge.Language.Locale('meth.targetHeist'),
2025-07-18 01:19:12 -07:00
action = function()
2026-01-23 03:41:19 -07:00
if startedmeth then
Bridge.Notify.SendNotify(Bridge.Language.Locale('meth.alreadyChasing'),'error')
return
end
2026-01-16 02:57:26 -07:00
SpawnMethCarPedChase(k)
2025-07-18 01:19:12 -07:00
end,
canInteract = function()
return handleGang(v.gang)
end
}
})
end
2025-07-17 02:06:17 -05:00
---- start animation shit
local function loadParticle(dict)
if not HasNamedPtfxAssetLoaded(dict) then
RequestNamedPtfxAsset(dict)
end
while not HasNamedPtfxAssetLoaded(dict) do
Wait(0)
end
SetPtfxAssetNextCall(dict)
end
2026-01-16 02:57:26 -07:00
2025-09-23 01:29:35 -07:00
local function dialSuccess(coords)
2026-01-16 02:57:26 -07:00
requestModel('hei_prop_heist_thermite', 2000)
2025-09-23 01:29:35 -07:00
loadParticle('scr_ornate_heist')
2026-01-16 02:57:26 -07:00
local thermite = CreateObject('hei_prop_heist_thermite', coords.x - 0.5, coords.y - 0.5, coords.z -0.5, true, false, false)
2025-09-23 01:29:35 -07:00
FreezeEntityPosition(thermite, true)
2026-01-16 02:57:26 -07:00
SetEntityVisible(thermite, false)
2025-09-23 01:29:35 -07:00
Wait(1000)
local therm = StartParticleFxLoopedOnEntity('scr_heist_ornate_thermal_burn', thermite, 0.0, 1.4, 0.0, 0.0, 0.0, 0.0, 1.5, false, false, false)
Wait(math.random(10000, 20000))
StopParticleFxLooped(therm, true)
2026-01-16 02:57:26 -07:00
DeleteObject(thermite)
2025-09-23 01:29:35 -07:00
end
2025-07-17 02:06:17 -05:00
local function MethCooking(coords, offset, rotation)
local animDict, animName = "anim@amb@business@meth@meth_monitoring_cooking@cooking@", "chemical_pour_short_cooker"
2026-01-16 02:57:26 -07:00
Bridge.Anim.RequestDict(animDict)
2025-07-17 02:06:17 -05:00
SetEntityCoords(PlayerPedId(), coords)
local targetPosition = GetEntityCoords(PlayerPedId())
local animDuration = GetAnimDuration(animDict, animName) * 800
FreezeEntityPosition(PlayerPedId(), true)
local scenePos, sceneRot = vector3(coords.x + offset.x, coords.y + offset.y, coords.z + offset.z), rotation
local netScene = NetworkCreateSynchronisedScene(scenePos, sceneRot, 2, false, false, 1065353216, 0, 1.3)
NetworkAddPedToSynchronisedScene(PlayerPedId(), netScene, animDict, animName, 1.5, -4.0, 1, 16, 1148846080, 0)
local sacid = CreateObjectNoOffset("bkr_prop_meth_sacid", targetPosition, 1, 1, 0)
NetworkAddEntityToSynchronisedScene(sacid, netScene, animDict, "chemical_pour_short_sacid", 4.0, -8.0, 1)
local ammonia = CreateObjectNoOffset("bkr_prop_meth_ammonia", targetPosition, 1, 1, 0)
NetworkAddEntityToSynchronisedScene(ammonia, netScene, animDict, "chemical_pour_short_ammonia", 4.0, -8.0, 1)
NetworkStartSynchronisedScene(netScene)
Wait(animDuration)
NetworkStopSynchronisedScene(netScene)
DeleteObject(sacid) DeleteObject(ammonia)
FreezeEntityPosition(PlayerPedId(), false)
end
local function SmashMeth(coords, offset, rotation)
local ver = ""
local animDict, animName = "anim@amb@business@meth@meth_smash_weight_check@", "break_weigh_"..ver.."char02"
2026-01-16 02:57:26 -07:00
Bridge.Anim.RequestDict(animDict, 500)
2025-07-17 02:06:17 -05:00
local ped = PlayerPedId()
local targetPosition = coords
SetEntityCoords(ped, targetPosition)
Wait(1)
local animDuration = GetAnimDuration(animDict, animName) * 800
FreezeEntityPosition(ped, true)
local scenePos, sceneRot = vector3(coords.x + offset.x, coords.y + offset.y, coords.z + offset.z), rotation
local netScene = NetworkCreateSynchronisedScene(scenePos, sceneRot, 2, false, false, 1065353216, 0, 1.3)
NetworkAddPedToSynchronisedScene(ped, netScene, animDict, animName, 1.5, -4.0, 1, 16, 1148846080, 0)
local objects, sceneObjects = {}, {
{ hash = "w_me_hammer", animName = "break_weigh_" .. ver .. "hammer"},
{ hash = "bkr_Prop_Meth_SmashedTray_01_frag_", animName = "break_weigh_"..ver.."tray01"},
{ hash = "bkr_Prop_Meth_Tray_02a", animName = "break_weigh_"..ver.."tray01^1"},
{ hash = "bkr_Prop_Meth_Tray_02a", animName = "break_weigh_"..ver.."tray01^2"},
{ hash = "bkr_Prop_Meth_SmashedTray_01_frag_", animName = "break_weigh_"..ver.."tray01^3"},
}
for i=1, #sceneObjects, 1 do
local obj = CreateObjectNoOffset(sceneObjects[i].hash, targetPosition, true, true, true)
NetworkAddEntityToSynchronisedScene(obj, netScene, animDict, sceneObjects[i].animName, 4.0, -8.0, 1)
objects[#objects+1] = obj
end
NetworkStartSynchronisedScene(netScene)
Wait(animDuration)
NetworkStopSynchronisedScene(netScene)
for i=1, #objects, 1 do
DeleteObject(objects[i])
end
RemoveAnimDict(animDict)
FreezeEntityPosition(ped, false)
end
local function BagMeth(coords, offset, rotation)
local ver = ""
local animDict, animName = "anim@amb@business@meth@meth_smash_weight_check@", "break_weigh_"..ver.."char01"
2026-01-16 02:57:26 -07:00
Bridge.Anim.RequestDict(animDict, 500)
2025-07-17 02:06:17 -05:00
local animDuration = GetAnimDuration(animDict, animName) * 1000
local ped = PlayerPedId()
SetEntityCoords(ped, coords)
local scenePos, sceneRot = vector3(coords.x + offset.x, coords.y + offset.y, coords.z + offset.z), rotation
local scenes = {
{
{ hash = "bkr_prop_meth_bigbag_04a", animName = "break_weigh_"..ver.."box01"},
{ hash = "bkr_prop_meth_bigbag_03a", animName = "break_weigh_"..ver.."box01^1"},
{ hash = "bkr_prop_meth_openbag_02", animName = "break_weigh_"..ver.."methbag01"}
},
{
{ hash = "bkr_prop_meth_openbag_02", animName = "break_weigh_"..ver.."methbag01^1"},
{ hash = "bkr_prop_meth_openbag_02", animName = "break_weigh_"..ver.."methbag01^2"},
{ hash = "bkr_prop_meth_openbag_02", animName = "break_weigh_"..ver.."methbag01^3"}
},
{
{ hash = "bkr_prop_meth_openbag_02", animName = "break_weigh_"..ver.."methbag01^4"},
{ hash = "bkr_prop_meth_openbag_02", animName = "break_weigh_"..ver.."methbag01^5"},
{ hash = "bkr_prop_meth_openbag_02", animName = "break_weigh_"..ver.."methbag01^6"}
},
{
{ hash = "bkr_prop_meth_scoop_01a", animName = "break_weigh_"..ver.."scoop"},
{ hash = "bkr_prop_coke_scale_01", animName = "break_weigh_"..ver.."scale"},
{ hash = "bkr_prop_fakeid_penclipboard", animName = "break_weigh_"..ver.."pen"}
},
{
{ hash = "bkr_prop_fakeid_clipboard_01a", animName = "break_weigh_"..ver.."clipboard"},
{ hash = "bkr_Prop_Meth_Tray_02a", animName = "break_weigh_"..ver.."tray01^5"}
}
}
local scenesList, entitiesList = {}, {}
for i=1, #scenes, 1 do
local scene = NetworkCreateSynchronisedScene(scenePos, sceneRot, 2, false, false, 1065353216, 0, 1.3)
NetworkAddPedToSynchronisedScene(ped, scene, animDict, animName, 1.5, -4.0, 1, 16, 1148846080, 0)
for j=1, #scenes[i], 1 do
local s = scenes[i][j]
RequestModel(s.hash)
while not HasModelLoaded(s.hash) do
Wait(0)
end
local obj = CreateObjectNoOffset(s.hash, coords, true, true, true)
SetModelAsNoLongerNeeded(s.hash)
entitiesList[#entitiesList+1] = obj
NetworkAddEntityToSynchronisedScene(obj, scene, animDict, s.animName, 4.0, -8.0, 1)
end
scenesList[#scenesList+1] = scene
end
DisableCamCollisionForEntity(ped)
FreezeEntityPosition(ped, true)
for i=1, #scenesList, 1 do
NetworkStartSynchronisedScene(scenesList[i])
end
Wait(animDuration-11000)
for i=1, #scenesList, 1 do
NetworkStopSynchronisedScene(scenesList[i])
end
for i=1, #entitiesList, 1 do
DeleteEntity(entitiesList[i])
end
RemoveAnimDict(animDict)
FreezeEntityPosition(ped, false)
end
---------------------- end animation shit
---
local function startcook(num, coords, offset, rotation)
if not amonia then
2026-01-16 02:57:26 -07:00
local adding = Bridge.Callback.Trigger('md-drugs:server:startcook', num)
2025-07-17 02:06:17 -05:00
if not adding then return end
2024-05-02 18:34:14 -07:00
active = true
2025-07-17 02:06:17 -05:00
MethCooking(coords, offset, rotation)
2024-05-02 18:34:14 -07:00
amonia = true
else
2026-01-16 02:57:26 -07:00
Bridge.Notify.SendNotify(Bridge.Language.Locale('meth.started'), "error")
2024-05-02 18:34:14 -07:00
end
end
2024-01-13 22:23:17 -08:00
2025-07-17 02:06:17 -05:00
local function dials(coords)
2025-09-23 01:29:35 -07:00
if amonia then
2025-09-23 01:08:35 -07:00
if not minigame() then
2025-07-17 02:06:17 -05:00
AddExplosion(coords.x, coords.y,coords.z, 49, 10, true, false, true)
amonia = false
active = false
2026-01-16 02:57:26 -07:00
return
end
Bridge.Notify.SendNotify(Bridge.Language.Locale('meth.increaseHeat'), "success")
2025-09-23 01:29:35 -07:00
dialSuccess(coords)
2025-07-17 02:06:17 -05:00
heated = true
2024-05-02 18:34:14 -07:00
end
end
2025-07-17 02:06:17 -05:00
local function smash(coords, offset, rotation, buckets, k)
2025-09-23 01:29:35 -07:00
if active and tray and amonia and heated then
2025-07-17 02:06:17 -05:00
DeleteObject(trays)
2025-09-23 01:29:35 -07:00
tray = false
2025-07-17 02:06:17 -05:00
local bucket = CreateObject("bkr_prop_meth_bigbag_03a", buckets.x, buckets.y, buckets.z, true, true, true)
Freeze(bucket, true, buckets.w)
2025-09-23 01:08:35 -07:00
SmashMeth(coords, offset, rotation)
Wait(100)
2026-01-16 02:57:26 -07:00
Bridge.Target.AddLocalEntity(bucket, {
2025-07-17 02:06:17 -05:00
{
name = 'bucket',
2026-01-23 03:41:19 -07:00
icon = Bridge.Language.Locale('meth.targetBagIcon'),
2026-01-16 02:57:26 -07:00
label = Bridge.Language.Locale('meth.targetBag'),
2025-07-17 02:06:17 -05:00
action = function()
DeleteObject(bucket)
active = false
amonia = false
heated = false
tray = false
2025-08-06 02:25:06 -06:00
BagMeth(locations.BagMeth[k].loc, locations.BagMeth[k].offset, locations.BagMeth[k].rotation)
2025-07-17 02:06:17 -05:00
TriggerServerEvent('md-drugs:server:getmeth', k)
end,
2025-09-23 01:29:35 -07:00
canInteract = function()
if not active then return false end
return true
end,
2025-07-17 02:06:17 -05:00
}
})
end
2024-05-02 18:34:14 -07:00
end
local function trayscarry()
2025-09-23 01:29:35 -07:00
if amonia and heated then
2024-05-02 18:34:14 -07:00
local pos = GetEntityCoords(PlayerPedId(), true)
2026-01-16 02:57:26 -07:00
Bridge.Anim.RequestDict('anim@heists@box_carry@')
2025-07-17 02:06:17 -05:00
TaskPlayAnim(PlayerPedId(), 'anim@heists@box_carry@', 'idle', 5.0, -1, -1, 50, 0, false, false, false)
2026-01-16 02:57:26 -07:00
requestModel('bkr_prop_meth_tray_02a')
2025-07-17 02:06:17 -05:00
trays = CreateObject("bkr_prop_meth_tray_02a", pos.x, pos.y, pos.z, true, true, true)
AttachEntityToEntity(trays, PlayerPedId(), GetPedBoneIndex(PlayerPedId(), 28422), 0.01, -0.2,-0.2, 20.0, 0.0, 0.0, true, true, false, true, 1, true)
2024-05-02 18:34:14 -07:00
tray = true
end
end
2025-07-17 02:06:17 -05:00
2026-01-24 00:54:49 -07:00
2024-01-13 22:23:17 -08:00
2025-08-06 02:25:06 -06:00
for k, v in pairs (locations.CookMeth) do
2026-01-16 02:57:26 -07:00
Bridge.Target.AddBoxZone('cookMeth'..k, v.loc, vector3(v.l, v.w, 2.0), v.loc.w or 180.0, {
2025-07-17 02:06:17 -05:00
{
2026-01-16 02:57:26 -07:00
label = Bridge.Language.Locale('meth.targetCook'),
2026-01-23 03:41:19 -07:00
icon = Bridge.Language.Locale('meth.targetCookIcon'),
2025-07-17 02:06:17 -05:00
action = function()
2025-09-23 01:29:35 -07:00
startcook(k, v.loc, v.offset or vec3(0,0,0), v.rotation or vector3(0,0,180.0))
2025-07-17 02:06:17 -05:00
end,
canInteract = function()
2025-08-09 03:10:00 -06:00
if not handleGang(v.gang) then return false end
2025-07-17 02:06:17 -05:00
if not amonia and not active then
return true
end
2025-07-17 02:06:17 -05:00
end,
2024-05-02 18:34:14 -07:00
},
2025-07-17 02:06:17 -05:00
{
2026-01-23 03:41:19 -07:00
icon = Bridge.Language.Locale('meth.targetGrabTrayIcon'),
2026-01-16 02:57:26 -07:00
label = Bridge.Language.Locale('meth.targetGrabTray'),
2025-07-17 02:06:17 -05:00
action = function() trayscarry() end,
canInteract = function()
2025-08-09 03:10:00 -06:00
if not handleGang(v.gang) then return false end
2025-07-17 02:06:17 -05:00
if heated and amonia and not tray then
return true
end
end,
2024-05-02 18:34:14 -07:00
},
2025-07-17 02:06:17 -05:00
})
end
2025-08-06 02:25:06 -06:00
for k, v in pairs (locations.MethDials) do
2026-01-16 02:57:26 -07:00
Bridge.Target.AddBoxZone('adjustMethDials'..k, v.loc, vector3(v.l, v.w, 1.0), v.loc.w or 180.0, {
2025-07-17 02:06:17 -05:00
{
name = 'adjustdials',
2026-01-23 03:41:19 -07:00
icon = Bridge.Language.Locale('meth.targetHeatIcon'),
2026-01-16 02:57:26 -07:00
label = Bridge.Language.Locale('meth.targetHeat'),
2025-07-17 02:06:17 -05:00
action = function()
2025-08-06 02:25:06 -06:00
dials(locations.CookMeth[k].loc)
2025-07-17 02:06:17 -05:00
end,
2026-01-23 03:41:19 -07:00
canInteract = function()
if not handleGang(v.gang) then return false end
if amonia and heated == false then return true end
end
2025-07-17 02:06:17 -05:00
}
})
end
2025-08-06 02:25:06 -06:00
for k, v in pairs (locations.MethSmash) do
2026-01-16 02:57:26 -07:00
Bridge.Target.AddBoxZone('smashMeth'..k, v.loc, vector3(v.l, v.w, 1.0), v.loc.w or 180.0, {
2025-07-17 02:06:17 -05:00
{
name = 'smash',
2026-01-23 03:41:19 -07:00
icon = Bridge.Language.Locale('meth.targetSmashIcon'),
2026-01-16 02:57:26 -07:00
label = Bridge.Language.Locale('meth.targetSmash'),
2025-07-17 02:06:17 -05:00
action = function()
smash(v.loc, v.offset, v.rotation, v.bucket,k)
end,
canInteract = function()
2025-08-09 03:10:00 -06:00
if not handleGang(v.gang) then return false end
2025-07-17 02:06:17 -05:00
if heated and amonia and tray then return true end
end
}
})
end
2024-01-13 22:23:17 -08:00
2025-08-12 23:08:43 -05:00
for k, v in pairs (locations.MethTele) do
2026-01-16 02:57:26 -07:00
Bridge.Target.AddBoxZone('meth_tele'..k, v.inside, vector3(v.l, v.w, 1.0), v.rot, {
2025-08-12 23:08:43 -05:00
{
2026-01-23 03:41:19 -07:00
icon = Bridge.Language.Locale('meth.teleOutIcon'),
label = Bridge.Language.Locale('meth.teleOut'),
2025-08-12 23:08:43 -05:00
action = function()
SetEntityCoords(PlayerPedId(), v.outside)
end,
canInteract = function()
return handleGang(v.gang)
end
}
})
2026-01-16 02:57:26 -07:00
Bridge.Target.AddBoxZone('meth_teleout'..k, v.outside, vector3(v.l, v.w, 1.0), v.rot, {
2025-08-12 23:08:43 -05:00
{
2026-01-23 03:41:19 -07:00
icon = Bridge.Language.Locale('meth.teleInIcon'),
label = Bridge.Language.Locale('meth.teleIn'),
2025-08-12 23:08:43 -05:00
action = function()
SetEntityCoords(PlayerPedId(), v.inside)
end,
canInteract = function()
return handleGang(v.gang)
end
}
})
end
2025-07-17 02:06:17 -05:00
RegisterCommand('offset', function()
local pos = GetEntityCoords(PlayerPedId())
Wait(4000)
local offset = GetEntityCoords(PlayerPedId()) - pos
print("Offset: ", offset)
2024-05-02 18:34:14 -07:00
end)
2025-08-09 03:10:00 -06:00
for k, v in pairs (locations.MethEph) do
2026-01-16 02:57:26 -07:00
Bridge.Target.AddBoxZone('stealMethEph'..k, v.loc, vector3(v.l, v.w, 1.0), v.loc.w or 180.0, {
2025-08-09 03:10:00 -06:00
{
2026-01-16 02:57:26 -07:00
label = Bridge.Language.Locale('meth.targetStealEPH'),
2026-01-23 03:41:19 -07:00
icon = Bridge.Language.Locale('meth.targetStealEPHIcon'),
2025-08-09 03:10:00 -06:00
action = function()
2026-01-21 21:27:08 -07:00
if not progressbar(Bridge.Language.Locale('meth.stealingEPH')) then return end
2025-08-09 03:10:00 -06:00
TriggerServerEvent("md-drugs:server:geteph", k)
end,
canInteract = function()
return handleGang(v.gang)
end
}
})
end
for k, v in pairs (locations.MethAce) do
2026-01-16 02:57:26 -07:00
Bridge.Target.AddBoxZone('stealMethAce'..k, v.loc, vector3(v.l, v.w, 1.0), v.loc.w or 180.0, {
2025-08-09 03:10:00 -06:00
{
2026-01-16 02:57:26 -07:00
label = Bridge.Language.Locale('meth.targetStealACE'),
2026-01-23 03:41:19 -07:00
icon = Bridge.Language.Locale('meth.targetStealACEIcon'),
2025-08-09 03:10:00 -06:00
action = function()
2026-01-21 21:27:08 -07:00
if not progressbar(Bridge.Language.Locale('meth.stealingACE')) then return end
2025-08-09 03:10:00 -06:00
TriggerServerEvent("md-drugs:server:getace", k)
end,
canInteract = function()
return handleGang(v.gang)
end
}
})
2025-08-12 19:43:32 -05:00
2026-01-24 00:54:49 -07:00
end
CreateThread(function()
BikerMethLab = exports['bob74_ipl']:GetBikerMethLabObject()
BikerMethLab.Style.Set(BikerMethLab.Style.upgrade)
BikerMethLab.Security.Set(BikerMethLab.Security.upgrade)
BikerMethLab.Details.Enable(BikerMethLab.Details.production, true)
RefreshInterior(BikerMethLab.interiorId)
end)