Files
md-drugs/server/lsd.lua
T

233 lines
7.0 KiB
Lua
Raw Normal View History

2025-07-01 03:09:46 -07:00
2024-11-16 23:39:34 -08:00
local prices = {
tabcost = 100, -- price per piece of tab paper event does 10 at a time
lsdlabkitcost = 10000 -- price of the lsd lab kit
}
2025-07-01 03:09:46 -07:00
local timedOut = {}
local function timeout(src, time)
timedOut[src] = true
CreateThread(function()
Wait(time)
timedOut[src] = nil
end)
end
2024-11-22 12:26:27 -08:00
local lsdTables = {}
2024-05-02 18:34:49 -07:00
RegisterServerEvent('md-drugs:server:getlysergic', function(num)
local src = source
2025-07-01 03:09:46 -07:00
if timedOut[src] then return end
if not ps.checkDistance(src, GlobalState.MDDrugsLocs.lysergicacid[num].loc, 2.0) then
Notifys(src, Lang.lsd.notinloc, "error")
return
2023-12-07 15:45:48 -08:00
end
2025-07-01 03:09:46 -07:00
timeout(src, 3000)
ps.addItem(src, 'lysergic_acid', 2)
2023-12-07 15:45:48 -08:00
end)
2024-05-02 18:34:49 -07:00
RegisterServerEvent('md-drugs:server:getdiethylamide', function(num)
local src = source
2025-07-01 03:09:46 -07:00
if not ps.checkDistance(src, GlobalState.MDDrugsLocs.diethylamide[num].loc, 2.0) then
Notifys(src, Lang.lsd.notinloc, "error")
return
2023-12-07 15:45:48 -08:00
end
2025-07-01 03:09:46 -07:00
if timedOut[src] then return end
timeout(src, 3000)
ps.addItem(src, 'diethylamide', 2)
2023-12-07 15:45:48 -08:00
end)
CUI('lsdlabkit', function(source, item)
2024-11-22 12:26:27 -08:00
local src = source
local Player = getPlayer(src)
2025-07-01 03:09:46 -07:00
local placed, loc = ps.callback('md-drugs:client:setlsdlabkit', src)
2024-11-22 12:26:27 -08:00
if placed then
if RemoveItem(src, 'lsdlabkit', 1) then
table.insert(lsdTables, {
owner = GetName(src),
ownerid = Player.PlayerData.citizenid,
src = src,
loc = loc
})
end
2023-12-07 15:45:48 -08:00
end
end)
2023-12-07 15:45:48 -08:00
2024-11-22 12:26:27 -08:00
local function hasLabKit(source)
local src = source
local Player = getPlayer(src)
for k, v in pairs (lsdTables) do
if v.ownerid == Player.PlayerData.citizenid then
return true
end
end
end
2023-12-07 15:45:48 -08:00
2025-07-01 03:09:46 -07:00
ps.registerCallback('md-drugs:server:removecleaningkit', function(source)
local src = source
if not Itemcheck(src, 'cleaningkit', 1) then return end
if RemoveItem(src,"cleaningkit", 1) then
return true
2023-12-07 15:45:48 -08:00
end
end)
RegisterServerEvent('md-drugs:server:getlabkitback', function()
local src = source
2024-11-22 12:26:27 -08:00
local Player = getPlayer(src)
for k, v in pairs (lsdTables) do
if v.ownerid == Player.PlayerData.citizenid then
table.remove(lsdTables, k)
AddItem(src, 'lsdlabkit', 1)
end
2023-12-07 15:45:48 -08:00
end
end)
RegisterServerEvent('md-drugs:server:heatliquid', function()
local src = source
2024-11-22 12:26:27 -08:00
if not hasLabKit(src) then return end
if not GetRecipe(src, 'lsd', 'vial', 'heat') then return end
2023-12-07 15:45:48 -08:00
end)
RegisterServerEvent('md-drugs:server:failheating', function()
local src = source
2024-11-22 12:26:27 -08:00
if not hasLabKit(src) then return end
2024-11-22 01:35:25 -08:00
RemoveItem(src, 'lysergic_acid', 1)
RemoveItem(src, 'diethylamide', 1)
Notifys(src,Lang.lsd.failed, "error")
Log(GetName(src) ..' Failed Basic LSD Like An Idiot!', 'lsd')
2023-12-07 15:45:48 -08:00
end)
RegisterServerEvent('md-drugs:server:refinequalityacid', function()
local src = source
2024-11-22 12:26:27 -08:00
if not hasLabKit(src) then return end
if not Itemcheck(src, 'lsd_one_vial', 1) then return end
2024-05-02 18:34:49 -07:00
if Config.TierSystem then
local lsd = getRep(src, 'lsd')
if RemoveItem(src, 'lsd_one_vial', 1) then
2024-05-02 18:34:49 -07:00
if lsd <= 30 then
AddItem(src,'lsd_vial_two', 1)
2024-05-02 18:34:49 -07:00
elseif lsd >= 31 and lsd <= 60 then
AddItem(src,'lsd_vial_three', 1)
2024-05-02 18:34:49 -07:00
elseif lsd >= 61 and lsd <= 90 then
AddItem(src,'lsd_vial_four', 1)
2024-05-02 18:34:49 -07:00
elseif lsd >= 91 and lsd <= 120 then
AddItem(src,'lsd_vial_five', 1)
2024-05-02 18:34:49 -07:00
else
AddItem(src,'lsd_vial_six', 1)
2024-05-02 18:34:49 -07:00
end
AddRep(src,'lsd')
Log(GetName(src) ..' Refined Acid and Now Has A Rep Of ' .. lsd + 1 .. '!', 'lsd')
2024-05-02 18:34:49 -07:00
end
else
local randomchance = math.random(1,100)
if RemoveItem(src,'lsd_one_vial', 1) then
2024-05-02 18:34:49 -07:00
if randomchance <= 60 then
AddItem(src,'lsd_vial_two', 1)
2024-05-02 18:34:49 -07:00
elseif randomchance >= 61 and randomchance <= 75 then
AddItem(src,'lsd_vial_three', 1)
2024-05-02 18:34:49 -07:00
elseif randomchance >= 76 and randomchance <= 85 then
AddItem(src,'lsd_vial_four', 1)
2024-05-02 18:34:49 -07:00
elseif randomchance >= 86 and randomchance <= 93 then
AddItem(src,'lsd_vial_five', 1)
2024-05-02 18:34:49 -07:00
else
AddItem(src,'lsd_vial_six', 1)
2024-05-02 18:34:49 -07:00
end
Log(GetName(src) ..' Refined Acid!', 'lsd')
2023-12-07 15:45:48 -08:00
end
end
end)
RegisterServerEvent('md-drugs:server:failrefinequality', function()
local src = source
2024-11-22 12:26:27 -08:00
if not hasLabKit(src) then return end
if not Itemcheck(src, 'lsd_one_vial', 1) then return end
2024-09-30 12:46:12 -07:00
RemoveItem(src,'lsd_one_vial', 1)
2023-12-07 15:45:48 -08:00
end)
2024-05-02 18:34:49 -07:00
RegisterServerEvent('md-drugs:server:gettabpaper', function(num)
local src = source
2024-11-01 00:54:21 -07:00
local Player = getPlayer(src)
2024-11-11 20:22:48 -08:00
if not checkLoc(src, 'gettabs', num) then return end
2024-11-16 23:39:34 -08:00
if Player.Functions.RemoveMoney('cash', prices.tabcost * 10) then
AddItem(src,'tab_paper', 10)
2023-12-07 15:45:48 -08:00
else
2024-05-02 18:34:49 -07:00
Notifys(Lang.lsd.broke, "error")
2023-12-07 15:45:48 -08:00
end
end)
RegisterServerEvent('md-drugs:server:getlabkit', function()
2024-05-02 18:34:49 -07:00
local src = source
2024-11-01 00:54:21 -07:00
local Player = getPlayer(src)
2024-11-12 02:36:45 -08:00
if not checkLoc(src,'singleSpot', 'buylsdlabkit') then return end
2024-11-16 23:39:34 -08:00
if Player.Functions.RemoveMoney('cash', prices.lsdlabkitcost) then
AddItem(src,'lsdlabkit', 1)
2023-12-07 15:45:48 -08:00
else
Notifys(src, Lang.lsd.broke, "error")
2023-12-07 15:45:48 -08:00
end
end)
RegisterServerEvent('md-drugs:server:maketabpaper', function()
local src = source
2024-11-05 00:46:12 -08:00
local Player = getPlayer(src)
2024-11-22 12:26:27 -08:00
if not hasLabKit(src) then return end
if not Itemcheck(src,'tab_paper', 1) then return end
local count = 0
2024-11-05 00:46:12 -08:00
local items, recieve = nil, nil
local vialdata = {
{vial = 'lsd_one_vial', sheet = 'smileyfacesheet', log = 'Made A Smiley Face Sheet'},
{vial = 'lsd_vial_two', sheet = 'wildcherrysheet', log = 'Made A Wild Cherry Sheet'},
{vial = 'lsd_vial_three', sheet = 'yinyangsheet', log = 'Made A Yin Yang Sheet'},
{vial = 'lsd_vial_four', sheet = 'pineapplesheet', log = 'Made A Pine Apple Sheet'},
{vial = 'lsd_vial_five', sheet = 'bartsheet', log = 'Made A Cluckin Bell Sheet'},
{vial = 'lsd_vial_six', sheet = 'gratefuldeadsheet', log = 'Made A Maze Sheet'}
}
sortTab(vialdata, 'vial')
for k, v in pairs (vialdata) do
2024-11-05 00:46:12 -08:00
if count >= 1 then break end
local check = Player.Functions.GetItemByName(v.vial)
if check and check.amount >= 1 then
items = v.vial
recieve = v.sheet
count = count + 1
2024-11-22 12:26:27 -08:00
break
end
2024-05-02 18:34:49 -07:00
end
2024-11-05 00:46:12 -08:00
if count >= 1 then
if RemoveItem(src, items, 1) and RemoveItem(src, 'tab_paper', 1) then
AddItem(src, recieve, 1)
end
end
2024-05-02 18:34:49 -07:00
end)
local sheets = {
{item = 'smileyfacesheet', recieve = "smiley_tabs", },
2024-05-02 18:34:49 -07:00
{item = 'wildcherrysheet', recieve = "wildcherry_tabs", },
{item = 'yinyangsheet', recieve = "yinyang_tabs", },
{item = 'pineapplesheet', recieve = "pineapple_tabs", },
{item = 'bartsheet', recieve = "bart_tabs", },
{item = 'gratefuldeadsheet', recieve = "gratefuldead_tabs", },
}
for k, v in pairs (sheets) do
CUI(v.item, function(source)
2024-05-02 18:34:49 -07:00
local src = source
2024-11-01 00:54:21 -07:00
local Player = getPlayer(src)
2024-05-02 18:34:49 -07:00
local math = math.random(1,10)
if RemoveItem(src, v.item, 1) then
AddItem(src, v.recieve, math)
Log(GetName(src) ..' Made ' .. math .. 'Tabs of ' .. v.recieve .. '!', 'lsd')
2024-05-02 18:34:49 -07:00
end
end)
2024-11-22 12:26:27 -08:00
end
AddEventHandler('playerDropped', function()
local src = source
local Player = getPlayer(src)
for k, v in pairs (lsdTables) do
if v.ownerid == Player.PlayerData.citizenid then
table.remove(lsdTables, k)
AddItem(src, 'lsdlabkit', 1)
end
end
end)