Files
md-drugs/client/lsd.lua
T

179 lines
7.3 KiB
Lua
Raw Normal View History

local tableout = false
2024-12-16 03:22:44 -08:00
local dirtylsd = false
2026-01-30 00:45:03 -07:00
repeat Wait(100) until GlobalState.MDDrugsRecipes.LSD ~= nil
2026-01-16 02:57:26 -07:00
local locations = GlobalState.MDDrugsLocations.LSD
2025-08-06 02:25:06 -06:00
2025-09-05 21:28:04 -07:00
local function createLabKit(coord, head)
2026-01-16 02:57:26 -07:00
requestModel("v_ret_ml_tablea")
local labkit = CreateObject("v_ret_ml_tablea", coord.x, coord.y, coord.z - 1, true, false)
SetEntityHeading(labkit, head)
PlaceObjectOnGroundProperly(labkit)
2025-07-01 03:09:46 -07:00
FreezeEntityPosition(labkit, true)
tableout = true
local options = {
2025-07-01 03:09:46 -07:00
{
2026-01-23 03:41:19 -07:00
icon = Bridge.Language.Locale('lsd.targetHeatIcon'),
2026-01-16 02:57:26 -07:00
label = Bridge.Language.Locale('lsd.targetHeat'),
2024-12-16 03:22:44 -08:00
action = function()
2025-07-01 03:09:46 -07:00
if not minigame() then
2026-01-16 02:57:26 -07:00
local coords = GetEntityCoords(labkit)
AddExplosion(coords.x, coords.y, coords.z-1.0, 34, 0.0, true, false, true)
2025-07-01 03:09:46 -07:00
dirtylsd = true
2026-01-16 02:57:26 -07:00
TriggerServerEvent("md-drugs:server:failheating")
2025-07-01 03:09:46 -07:00
return
end
2026-01-30 00:45:03 -07:00
if not progressbar(Bridge.Language.Locale('lsd.heating'), 7000) then return end
2025-07-01 03:09:46 -07:00
TriggerServerEvent("md-drugs:server:heatliquid")
end,
canInteract = function()
if not dirtylsd then return true end
end
},
{
2026-01-23 03:41:19 -07:00
icon = Bridge.Language.Locale('lsd.targetRefineIcon'),
2026-01-16 02:57:26 -07:00
label = Bridge.Language.Locale('lsd.targetRefine'),
2025-07-01 03:09:46 -07:00
action = function()
2026-01-21 22:02:25 -07:00
if not itemCheck('lsd_one_vial') then return end
2025-07-01 03:09:46 -07:00
if not minigame() then TriggerServerEvent("md-drugs:server:failrefinequality") return end
2026-01-21 21:27:08 -07:00
if not progressbar(Bridge.Language.Locale('lsd.refining')) then return end
2025-07-01 03:09:46 -07:00
TriggerServerEvent("md-drugs:server:refinequalityacid")
end,
canInteract = function()
if not dirtylsd then return true end
end
},
{
2026-01-23 03:41:19 -07:00
icon = Bridge.Language.Locale('lsd.targetDippingIcon'),
2026-01-16 02:57:26 -07:00
label = Bridge.Language.Locale('lsd.targetDipping'),
2025-07-01 03:09:46 -07:00
action = function()
2026-01-21 22:02:25 -07:00
if not itemCheck('tab_paper') then return end
2025-07-01 03:09:46 -07:00
if not minigame() then TriggerServerEvent("md-drugs:server:failtabs") return end
2026-01-21 21:27:08 -07:00
if not progressbar(Bridge.Language.Locale('lsd.dipping')) then return end
2025-07-01 03:09:46 -07:00
TriggerServerEvent("md-drugs:server:maketabpaper")
end,
canInteract = function()
if not dirtylsd then return true end
end
},
{
2026-01-23 03:41:19 -07:00
icon = Bridge.Language.Locale('lsd.targetPickupIcon'),
2026-01-16 02:57:26 -07:00
label = Bridge.Language.Locale('lsd.targetPickup'),
2025-07-01 03:09:46 -07:00
action = function()
2026-01-21 21:27:08 -07:00
if not progressbar(Bridge.Language.Locale('lsd.packup')) then return end
2025-07-01 03:09:46 -07:00
DeleteObject(labkit)
TriggerServerEvent('md-drugs:server:getlabkitback')
tableout = false
end,
canInteract = function()
if not dirtylsd then return true end
end
},
{
2026-01-23 03:41:19 -07:00
icon = Bridge.Language.Locale('lsd.targetCleanIcon'),
2026-01-16 02:57:26 -07:00
label = Bridge.Language.Locale('lsd.targetClean'),
2025-07-01 03:09:46 -07:00
action = function()
2026-01-21 22:02:25 -07:00
if not itemCheck('cleaningkit') then return end
2026-01-16 02:57:26 -07:00
if not progressbar(Bridge.Language.Locale('lsd.cleaning'), 4000, 'clean') then return end
local check = Bridge.Callback.Trigger('md-drugs:server:removecleaningkit')
2025-07-01 03:09:46 -07:00
if check then
2024-12-16 03:22:44 -08:00
dirtylsd = false
end
end,
canInteract = function() if dirtylsd then return true end end
}
}
2026-01-16 02:57:26 -07:00
Bridge.Target.AddLocalEntity(labkit, options)
end
2024-01-13 22:23:17 -08:00
2025-08-06 02:25:06 -06:00
for k, v in pairs (locations.lysergicacid) do
2026-01-30 00:45:03 -07:00
Bridge.Target.AddBoxZone('lysergicacid'..k,v.loc, v.size, v.loc.w or 180.0, {
2025-07-01 03:09:46 -07:00
{
2026-01-16 02:57:26 -07:00
label = Bridge.Language.Locale('lsd.targetLys'),
2026-01-23 03:41:19 -07:00
icon = Bridge.Language.Locale('lsd.targetLysIcon'),
2025-07-01 03:09:46 -07:00
action = function()
if not minigame() then TriggerServerEvent("md-drugs:server:faillysergic") return end
2026-01-21 21:27:08 -07:00
if not progressbar(Bridge.Language.Locale('lsd.stealLys')) then return end
2025-07-01 03:09:46 -07:00
TriggerServerEvent("md-drugs:server:getlysergic", k)
end,
canInteract = function()
if not handleGang(v.gang) then return false end
return true
end
}
})
end
2024-01-13 22:23:17 -08:00
2025-08-06 02:25:06 -06:00
for k, v in pairs (locations.diethylamide) do
2026-01-30 00:45:03 -07:00
Bridge.Target.AddBoxZone('diethylamide'..k, v.loc, v.size, v.loc.w or 180.0, {
2025-07-01 03:09:46 -07:00
{
2026-01-16 02:57:26 -07:00
label = Bridge.Language.Locale('lsd.targetDie'),
2026-01-23 03:41:19 -07:00
icon = Bridge.Language.Locale('lsd.targetDieIcon'),
2025-07-01 03:09:46 -07:00
action = function()
if not minigame() then TriggerServerEvent("md-drugs:server:faildiethylamide") return end
2026-01-21 21:27:08 -07:00
if not progressbar(Bridge.Language.Locale('lsd.stealDie')) then return end
2025-07-01 03:09:46 -07:00
TriggerServerEvent("md-drugs:server:getdiethylamide", k)
end,
canInteract = function()
if not handleGang(v.gang) then return false end
return true
end
}
})
end
2024-05-02 18:34:14 -07:00
2025-08-06 02:25:06 -06:00
for k, v in pairs (locations.gettabs) do
2026-01-30 00:45:03 -07:00
Bridge.Target.AddBoxZone('gettabs'..k, v.loc, v.size, v.loc.w or 180.0, {
2025-07-01 03:09:46 -07:00
{
2026-01-16 02:57:26 -07:00
label = Bridge.Language.Locale('lsd.targetBuyTab'),
2026-01-23 03:41:19 -07:00
icon = Bridge.Language.Locale('lsd.targetBuyTabIcon'),
2025-07-01 03:09:46 -07:00
action = function()
2025-08-12 19:42:53 -05:00
TriggerServerEvent("md-drugs:server:gettabpaper", k)
2025-07-01 03:09:46 -07:00
end,
canInteract = function()
if not handleGang(v.gang) then return false end
return true
end
}
})
end
2026-01-16 02:57:26 -07:00
2025-07-17 02:06:17 -05:00
local seller = {}
2025-08-06 02:25:06 -06:00
for k, v in pairs (locations.buyLSDkit) do
2026-01-16 02:57:26 -07:00
requestModel(v.ped, 1000)
2025-07-17 02:06:17 -05:00
seller[k] = CreatePed(4, v.ped, v.loc.x, v.loc.y, v.loc.z, v.loc.w, false, false)
Freeze(seller[k], true, v.loc.w)
2026-01-16 02:57:26 -07:00
Bridge.Target.AddLocalEntity(seller[k], {
2025-07-01 03:09:46 -07:00
{
2026-01-16 02:57:26 -07:00
label = Bridge.Language.Locale('lsd.targetBuyKit'),
2026-01-23 03:41:19 -07:00
icon = Bridge.Language.Locale('lsd.targetBuyKitIcon'),
2025-07-01 03:09:46 -07:00
action = function()
2026-01-16 02:57:26 -07:00
if Bridge.Inventory.HasItem('lsdlabkit') then
Bridge.Notify.SendNotify(Bridge.Language.Locale('lsd.alreadyOwn'), 'error')
2025-08-09 23:58:38 -06:00
return
end
2026-01-21 21:27:08 -07:00
if not progressbar(Bridge.Language.Locale('lsd.buyingKit')) then return end
2025-07-17 02:06:17 -05:00
TriggerServerEvent('md-drugs:server:getlabkit', k)
2025-07-01 03:09:46 -07:00
end,
canInteract = function()
if not handleGang(v.gang) then return false end
return true
end
}
})
end
2024-11-22 12:26:27 -08:00
2026-01-16 02:57:26 -07:00
Bridge.Callback.Register("md-drugs:client:setlsdlabkit", function()
2025-07-17 02:06:17 -05:00
if tableout then
2026-01-16 02:57:26 -07:00
Bridge.Notify.SendNotify(Bridge.Language.Locale('lsd.tableout'), 'error')
2024-11-22 12:26:27 -08:00
return false
else
tableout = true
local loc, head = StartRay()
if not loc then tableout = false return end
2026-01-21 21:27:08 -07:00
if not progressbar(Bridge.Language.Locale('lsd.placing')) then return end
2024-11-22 12:26:27 -08:00
createLabKit(loc, head)
return true, loc
end
2025-08-12 19:42:53 -05:00
end)