Files
md-drugs/client/cocaine.lua
T

214 lines
8.3 KiB
Lua
Raw Normal View History

2024-01-13 22:23:17 -08:00
local cuttingcoke = nil
2024-09-17 13:01:17 -07:00
local baggingcoke = nil
2026-01-16 02:57:26 -07:00
local locations = GlobalState.MDDrugsLocations.Cocaine
2025-09-08 00:06:28 -07:00
2025-07-18 01:19:12 -07:00
local function CutCoke(coords, offset, rotation)
2026-01-16 02:57:26 -07:00
cuttingcoke = true
2025-07-18 01:19:12 -07:00
local animDict, animName = "anim@amb@business@coc@coc_unpack_cut_left@", "coke_cut_v5_coccutter"
2026-01-16 02:57:26 -07:00
Bridge.Anim.RequestDict(animDict, 500)
2025-07-18 01:19:12 -07:00
local animDuration = GetAnimDuration(animDict, animName) * 1000
local ped = PlayerPedId()
local scenePos, sceneRot = vector3(coords.x + offset.x, coords.y + offset.y,coords.z + offset.z), rotation
local scenes = {
{
{ hash = "bkr_prop_coke_bakingsoda_o", animName = "coke_cut_v5_bakingsoda"},
{ hash = "prop_cs_credit_card", animName = "coke_cut_v5_creditcard"},
{ hash = "prop_cs_credit_card", animName = "coke_cut_v5_creditcard^1"}
},
}
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)
2026-01-16 02:57:26 -07:00
cuttingcoke = nil
2025-07-18 01:19:12 -07:00
end
local function BagCoke(coords, offset, rotation)
2026-01-16 02:57:26 -07:00
baggingcoke = true
2025-07-18 01:19:12 -07:00
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-18 01:19:12 -07:00
local animDuration = GetAnimDuration(animDict, animName) * 1000
local ped = PlayerPedId()
local scenePos, sceneRot = vector3(coords.x + offset.x, coords.y + offset.y,coords.z + offset.z), rotation
local scenes = {
{
{ hash = "bkr_prop_coke_cutblock_01", animName = "break_weigh_"..ver.."box01"},
{ hash = "bkr_prop_coke_fullmetalbowl_02", animName = "break_weigh_"..ver.."box01^1"},
{ hash = "bkr_prop_coke_cutblock_01", animName = "break_weigh_"..ver.."methbag01"}
},
{
{ hash = "xm3_prop_xm3_bag_coke_01a", animName = "break_weigh_"..ver.."methbag01^1"},
{ hash = "xm3_prop_xm3_bag_coke_01a", animName = "break_weigh_"..ver.."methbag01^2"},
{ hash = "xm3_prop_xm3_bag_coke_01a", animName = "break_weigh_"..ver.."methbag01^3"}
},
{
{ hash = "bkr_prop_coke_fullscoop_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"},
}
}
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)
2026-01-16 02:57:26 -07:00
baggingcoke = nil
2025-07-18 01:19:12 -07:00
end
2025-08-06 02:25:06 -06:00
for k, v in pairs (locations.MakePowder) do
2026-01-16 02:57:26 -07:00
Bridge.Target.AddBoxZone('cocaplant'..k, v.loc, vector3(v.l, v.w, 2.0), v.loc.w or 180.0, {
2025-06-30 23:24:57 -07:00
{
2026-01-16 02:57:26 -07:00
label = Bridge.Language.Locale('coke.targetMakePow'),
2025-06-30 23:24:57 -07:00
icon = 'fa-solid fa-seedling',
action = function()
2026-01-16 02:57:26 -07:00
if not Bridge.Inventory.HasItem('coca_leaf') then
Bridge.Notify.SendNotify(Bridge.Language.Locale('Catches.itemMissings', Bridge.Inventory.GetItemInfo('coca_leaf').label), 'error')
2025-07-14 01:34:58 -07:00
return
end
2026-01-16 02:57:26 -07:00
if not progressbar(Bridge.Language.Locale('coke.makePow'), 4000, 'weld') then return end
2025-06-30 23:24:57 -07:00
TriggerServerEvent("md-drugs:server:makepowder", k)
end,
canInteract = function()
return handleGang(v.gang)
end
}
})
end
2024-01-13 22:23:17 -08:00
2025-08-06 02:25:06 -06:00
for k, v in pairs (locations.CuttingCoke) do
2026-01-16 02:57:26 -07:00
Bridge.Target.AddBoxZone('cutcoke'..k, v.loc, vector3(v.l, v.w, 2.0), v.loc.w or 180.0, {
2025-06-30 23:24:57 -07:00
{
2026-01-16 02:57:26 -07:00
label = Bridge.Language.Locale('coke.targetCutCoke'),
2025-06-30 23:24:57 -07:00
icon = 'fa-solid fa-mortar-pestle',
action = function()
2026-01-16 02:57:26 -07:00
if not Bridge.Inventory.HasItem('bakingsoda') then
Bridge.Notify.SendNotify(Bridge.Language.Locale('Catches.itemMissings', Bridge.Inventory.GetItemInfo('bakingsoda').label), 'error')
2025-08-09 23:58:38 -06:00
return
end
2025-06-30 23:24:57 -07:00
CutCoke(v.loc, v.offset, v.rotation)
TriggerServerEvent("md-drugs:server:cutcokeone", k)
2025-06-30 23:24:57 -07:00
end,
canInteract = function()
if not handleGang(v.gang) then return false end
if cuttingcoke ~= nil or baggingcoke ~= nil then return false end
return true
end,
}
})
end
2025-07-14 01:34:58 -07:00
2025-08-06 02:25:06 -06:00
for k, v in pairs (locations.BaggingCoke) do
2026-01-16 02:57:26 -07:00
Bridge.Target.AddBoxZone('bagcoke'..k, v.loc, vector3(v.l, v.w, 2.0), v.loc.w or 180.0, {
2025-06-30 23:24:57 -07:00
{
2026-01-16 02:57:26 -07:00
label = Bridge.Language.Locale('coke.targetBagCoke'),
2025-06-30 23:24:57 -07:00
icon = 'fa-solid fa-sack-xmark',
action = function()
2026-01-16 02:57:26 -07:00
if not Bridge.Inventory.HasItem('empty_weed_bag') then
Bridge.Notify.SendNotify(Bridge.Language.Locale('Catches.itemMissings', Bridge.Inventory.GetItemInfo('empty_weed_bag').label), 'error')
2025-08-09 23:58:38 -06:00
return
end
2025-06-30 23:24:57 -07:00
BagCoke(v.loc, v.offset, v.rotation)
TriggerServerEvent("md-drugs:server:bagcoke", k)
2025-06-30 23:24:57 -07:00
end,
canInteract = function()
if not handleGang(v.gang) then return false end
if cuttingcoke ~= nil or baggingcoke ~= nil then return false end
return true
end
}
})
2025-07-18 01:19:12 -07:00
end
2025-08-06 02:25:06 -06:00
for k, v in pairs (locations.cokeTele) do
2026-01-16 02:57:26 -07:00
Bridge.Target.AddBoxZone('coke_tele'..k, v.inside, vector3(v.l, v.w, 2.0), v.inside.w or 180.0,{
2025-08-06 02:25:06 -06:00
{
icon = 'fa-solid fa-door-open',
2026-01-16 02:57:26 -07:00
label = Bridge.Language.Locale('coke.teleOut'),
2025-08-06 02:25:06 -06:00
action = function()
SetEntityCoords(PlayerPedId(), v.outside)
2025-08-09 03:10:00 -06:00
end,
canInteract = function()
return handleGang(v.gang)
end
2025-08-06 02:25:06 -06:00
}
})
2026-01-16 02:57:26 -07:00
Bridge.Target.AddBoxZone('coke_teleout'..k, v.outside, vector3(v.l, v.w, 2.0), v.outside.w or 180.0,{
2025-08-06 02:25:06 -06:00
{
icon = 'fa-solid fa-door-closed',
2026-01-16 02:57:26 -07:00
label = Bridge.Language.Locale('coke.teleIn'),
2025-08-06 02:25:06 -06:00
action = function()
SetEntityCoords(PlayerPedId(), v.inside)
2025-08-09 03:10:00 -06:00
end,
canInteract = function()
return handleGang(v.gang)
end
2025-08-06 02:25:06 -06:00
}
})
end
2025-07-18 01:19:12 -07:00
CreateThread(function()
BikerCocaine = exports['bob74_ipl']:GetBikerCocaineObject()
BikerCocaine.Style.Set(BikerCocaine.Style.upgrade)
BikerCocaine.Security.Set(BikerCocaine.Security.upgrade)
BikerCocaine.Details.Enable({BikerCocaine.Details.cokeBasic1, BikerCocaine.Details.cokeBasic2, BikerCocaine.Details.cokeBasic3}, true)
end)
2025-08-12 15:26:56 -05:00