jesussssss

This commit is contained in:
Mustache Dom committed 2025-08-06 02:25:06 -06:00
1 parent daa1a4f8a3
commit 3574ecef5b
32 files changed
+1639 -914

No files matched your search

+25 -4
View File
@@ -1,7 +1,7 @@
local cuttingcoke = nil local cuttingcoke = nil
local baggingcoke = nil local baggingcoke = nil
local locations = ps.callback('md-drugs:server:GetCokeLocations')
local function CutCoke(coords, offset, rotation) local function CutCoke(coords, offset, rotation)
local animDict, animName = "anim@amb@business@coc@coc_unpack_cut_left@", "coke_cut_v5_coccutter" local animDict, animName = "anim@amb@business@coc@coc_unpack_cut_left@", "coke_cut_v5_coccutter"
ps.requestAnim(animDict, 500) ps.requestAnim(animDict, 500)
@@ -111,7 +111,7 @@ local function BagCoke(coords, offset, rotation)
FreezeEntityPosition(ped, false) FreezeEntityPosition(ped, false)
end end
for k, v in pairs (GlobalState.MDDrugsLocs.MakePowder) do for k, v in pairs (locations.MakePowder) do
ps.boxTarget('cocaplant'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, { ps.boxTarget('cocaplant'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, {
{ {
label = ps.lang('.targets.coke.pick'), label = ps.lang('.targets.coke.pick'),
@@ -131,7 +131,7 @@ for k, v in pairs (GlobalState.MDDrugsLocs.MakePowder) do
}) })
end end
for k, v in pairs (GlobalState.MDDrugsLocs.CuttingCoke) do for k, v in pairs (locations.CuttingCoke) do
ps.boxTarget('cutcoke'..k, v.loc, {length = 1.0, width = 1.0, height = 1.0, rotation = 180.0}, { ps.boxTarget('cutcoke'..k, v.loc, {length = 1.0, width = 1.0, height = 1.0, rotation = 180.0}, {
{ {
label = ps.lang('targets.coke.cut'), label = ps.lang('targets.coke.cut'),
@@ -148,7 +148,7 @@ for k, v in pairs (GlobalState.MDDrugsLocs.CuttingCoke) do
}) })
end end
for k, v in pairs (GlobalState.MDDrugsLocs.BaggingCoke) do for k, v in pairs (locations.BaggingCoke) do
ps.boxTarget('bagcoke'..k, v.loc, {length = 1.0, width = 1.0, height = 1.0, rotation = 180.0}, { ps.boxTarget('bagcoke'..k, v.loc, {length = 1.0, width = 1.0, height = 1.0, rotation = 180.0}, {
{ {
label = ps.lang('targets.coke.bag'), label = ps.lang('targets.coke.bag'),
@@ -165,6 +165,27 @@ for k, v in pairs (GlobalState.MDDrugsLocs.BaggingCoke) do
}) })
end end
for k, v in pairs (locations.cokeTele) do
ps.boxTarget('coke_tele'..k, v.inside, {length = v.l, width = v.w, heading = v.rot}, {
{
icon = 'fa-solid fa-door-open',
label = ps.lang('targets.coke.telein'),
action = function()
SetEntityCoords(PlayerPedId(), v.outside)
end
}
})
ps.boxTarget('coke_teleout'..k, v.outside, {length = v.l, width = v.w, heading = v.rot}, {
{
icon = 'fa-solid fa-door-closed',
label = ps.lang('targets.coke.teleout'),
action = function()
SetEntityCoords(PlayerPedId(), v.inside)
end
}
})
end
CreateThread(function() CreateThread(function()
BikerCocaine = exports['bob74_ipl']:GetBikerCocaineObject() BikerCocaine = exports['bob74_ipl']:GetBikerCocaineObject()
BikerCocaine.Style.Set(BikerCocaine.Style.upgrade) BikerCocaine.Style.Set(BikerCocaine.Style.upgrade)
+3 -3
View File
@@ -1,5 +1,5 @@
local locations = ps.callback('md-drugs:server:GetCrackLocations')
for k, v in pairs (GlobalState.MDDrugsLocs.makecrack) do for k, v in pairs (locations.makecrack) do
ps.boxTarget('makeCrack'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, { ps.boxTarget('makeCrack'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, {
{ {
label = ps.lang('targets.crack.makecrack'), label = ps.lang('targets.crack.makecrack'),
@@ -18,7 +18,7 @@ for k, v in pairs (GlobalState.MDDrugsLocs.makecrack) do
}) })
end end
for k, v in pairs (GlobalState.MDDrugsLocs.bagcrack) do for k, v in pairs (locations.bagcrack) do
ps.boxTarget('bagCrack'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, { ps.boxTarget('bagCrack'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, {
{ {
label = ps.lang('targets.crack.bagcrack'), label = ps.lang('targets.crack.bagcrack'),
+25 -8
View File
@@ -1,7 +1,7 @@
local herointable = false local herointable = false
local dirty = false local dirty = false
local locations = ps.callback('md-drugs:server:GetHeroinLocations')
local function createLabKit(coord, head) local function createLabKit(coord, head)
local heroinlabkit = CreateObject("v_ret_ml_tablea", coord.x, coord.y, coord.z - 1, true, false,false) local heroinlabkit = CreateObject("v_ret_ml_tablea", coord.x, coord.y, coord.z - 1, true, false,false)
SetEntityHeading(heroinlabkit, head) SetEntityHeading(heroinlabkit, head)
@@ -59,7 +59,7 @@ local function createLabKit(coord, head)
}}) }})
end end
for k, v in pairs (GlobalState.MDDrugsLocs.dryplant) do for k, v in pairs (locations.dryplant) do
ps.boxTarget('dryHeroin'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, { ps.boxTarget('dryHeroin'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, {
{ {
label = ps.lang('targets.heroin.dry'), label = ps.lang('targets.heroin.dry'),
@@ -75,7 +75,7 @@ for k, v in pairs (GlobalState.MDDrugsLocs.dryplant) do
}) })
end end
for k, v in pairs (GlobalState.MDDrugsLocs.cutheroinone) do for k, v in pairs (locations.cutheroinone) do
ps.boxTarget('cutHeroin'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, { ps.boxTarget('cutHeroin'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, {
{ {
label = ps.lang('targets.heroin.cut'), label = ps.lang('targets.heroin.cut'),
@@ -91,11 +91,28 @@ for k, v in pairs (GlobalState.MDDrugsLocs.cutheroinone) do
} }
}) })
end end
local peds = {}
for k, v in pairs (locations.buyKit) do
ps.requestModel(v.ped, 1000)
peds[k] = CreatePed(4, v.ped, v.loc.x, v.loc.y, v.loc.z, v.loc.w, false, false)
Freeze(peds[k], true, v.loc.w)
SetBlockingOfNonTemporaryEvents(peds[k], true)
SetEntityInvincible(peds[k], true)
ps.entityTarget(peds[k], {
{
label = ps.lang('targets.heroin.buykit'),
icon = 'fa-solid fa-box-open',
action = function()
if not ps.progressbar(ps.lang('Heroin.secret'), 4000, 'uncuff') then return end
TriggerServerEvent("md-drugs:server:getheroinlabkit", k)
end,
canInteract = function()
return true
end
}
})
end
RegisterNetEvent("md-drugs:client:buyheroinlabkit", function()
if not ps.progressbar(ps.lang('Heroin.secret'), 4000, 'uncuff') then return end
TriggerServerEvent("md-drugs:server:getheroinlabkit")
end)
ps.registerCallback("md-drugs:client:setheroinlabkit", function() ps.registerCallback("md-drugs:client:setheroinlabkit", function()
if herointable then if herointable then
@@ -111,7 +128,7 @@ ps.registerCallback("md-drugs:client:setheroinlabkit", function()
end end
end) end)
for k, v in pairs (GlobalState.MDDrugsLocs.fillneedle) do for k, v in pairs (locations.fillneedle) do
ps.boxTarget('fillNeedle'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, { ps.boxTarget('fillNeedle'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, {
{ {
label = ps.lang('targets.heroin.fill'), label = ps.lang('targets.heroin.fill'),
+3 -3
View File
@@ -1,10 +1,10 @@
local started = false local started = false
local hit = 0 local hit = 0
local location = ps.callback('md-drugs:server:GetLeanLocs')
local function SpawnCarPedChase() local function SpawnCarPedChase()
local stoploc = vector3(-1157.63, -3056.71, 13.94) local stoploc = vector3(-1157.63, -3056.71, 13.94)
local start = GlobalState.MDDrugsLocs.StartLoc[math.random(1,#GlobalState.MDDrugsLocs.StartLoc)] local start = location.StartLoc[math.random(1,#location.StartLoc)]
if started then ps.notify(Lang.lean.act,'error') return end if started then ps.notify(Lang.lean.act,'error') return end
started = true started = true
@@ -61,7 +61,7 @@ local function SpawnCarPedChase()
end end
local leanPeds = {} local leanPeds = {}
for k, v in pairs (GlobalState.MDDrugsLocs.SyrupVendor) do for k, v in pairs (location.SyrupVendor) do
ps.requestModel(v.ped) ps.requestModel(v.ped)
leanPeds[k] = CreatePed(0, v.ped, v.loc.x, v.loc.y, v.loc.z, false, false) leanPeds[k] = CreatePed(0, v.ped, v.loc.x, v.loc.y, v.loc.z, false, false)
Freeze(leanPeds[k], true, v.loc.w) Freeze(leanPeds[k], true, v.loc.w)
+6 -4
View File
@@ -1,5 +1,7 @@
local tableout = false local tableout = false
local dirtylsd = false local dirtylsd = false
local locations = ps.callback('md-drugs:server:GetLSDLocations')
local function createLabKit(coord, head) local function createLabKit(coord, head)
local labkit = CreateObject("v_ret_ml_tablea", coord.x, coord.y, coord.z - 1, true, false) local labkit = CreateObject("v_ret_ml_tablea", coord.x, coord.y, coord.z - 1, true, false)
SetEntityHeading(labkit, head) SetEntityHeading(labkit, head)
@@ -93,7 +95,7 @@ local function createLabKit(coord, head)
ps.entityTarget(labkit, options) ps.entityTarget(labkit, options)
end end
for k, v in pairs (GlobalState.MDDrugsLocs.lysergicacid) do for k, v in pairs (locations.lysergicacid) do
ps.boxTarget('lysergicacid'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, { ps.boxTarget('lysergicacid'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, {
{ {
label = ps.lang('targets.lsd.lys'), label = ps.lang('targets.lsd.lys'),
@@ -112,7 +114,7 @@ for k, v in pairs (GlobalState.MDDrugsLocs.lysergicacid) do
}) })
end end
for k, v in pairs (GlobalState.MDDrugsLocs.diethylamide) do for k, v in pairs (locations.diethylamide) do
ps.boxTarget('diethylamide'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, { ps.boxTarget('diethylamide'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, {
{ {
label = ps.lang('targets.lsd.die'), label = ps.lang('targets.lsd.die'),
@@ -131,7 +133,7 @@ for k, v in pairs (GlobalState.MDDrugsLocs.diethylamide) do
}) })
end end
for k, v in pairs (GlobalState.MDDrugsLocs.gettabs) do for k, v in pairs (locations.gettabs) do
ps.boxTarget('gettabs'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, { ps.boxTarget('gettabs'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, {
{ {
label = ps.lang('targets.lsd.buyt'), label = ps.lang('targets.lsd.buyt'),
@@ -148,7 +150,7 @@ for k, v in pairs (GlobalState.MDDrugsLocs.gettabs) do
}) })
end end
local seller = {} local seller = {}
for k, v in pairs (GlobalState.MDDrugsLocs.buyLSDkit) do for k, v in pairs (locations.buyLSDkit) do
ps.requestModel(v.ped, 1000) ps.requestModel(v.ped, 1000)
seller[k] = CreatePed(4, v.ped, v.loc.x, v.loc.y, v.loc.z, v.loc.w, false, false) 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) Freeze(seller[k], true, v.loc.w)
+2 -2
View File
@@ -1,5 +1,5 @@
local locations = ps.callback('md-drugs:server:GetMescalineLocs')
for k, v in pairs (GlobalState.MDDrugsLocs.DryOutMescaline) do for k, v in pairs (locations.DryOutMescaline) do
ps.boxTarget('dryoutMesc'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, { ps.boxTarget('dryoutMesc'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, {
{ {
label = ps.lang('mescaline.dry'), label = ps.lang('mescaline.dry'),
+10 -10
View File
@@ -3,13 +3,13 @@ local tray = false
local heated = false local heated = false
local active = false local active = false
local trays = nil local trays = nil
local locations = ps.callback('md-drugs:server:GetMethLocs')
--- meth heist --- meth heist
local startedmeth = false local startedmeth = false
local function SpawnMethCarPedChase() local function SpawnMethCarPedChase()
local stoploc = vector3(-1157.63, -3056.71, 13.94) local stoploc = vector3(-1157.63, -3056.71, 13.94)
local start = GlobalState.MDDrugsLocs.StartLoc[math.random(1,#GlobalState.MDDrugsLocs.StartLoc)] local start = locations.StartLoc[math.random(1,#locations.StartLoc)]
if startedmeth then if startedmeth then
ps.notify(ps.lang('meth.act'),'error') ps.notify(ps.lang('meth.act'),'error')
else else
@@ -64,7 +64,7 @@ local function SpawnMethCarPedChase()
end end
local peds = {} local peds = {}
for k, v in pairs (GlobalState.MDDrugsLocs.MethHeist) do for k, v in pairs (locations.MethHeist) do
peds[k] = CreatePed(4, GetHashKey(v.ped), v.loc.x, v.loc.y, v.loc.z, v.loc.w, false, true) 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) Freeze(peds[k], true, v.loc.w)
ps.entityTarget(peds[k], { ps.entityTarget(peds[k], {
@@ -276,7 +276,7 @@ local function smash(coords, offset, rotation, buckets, k)
amonia = false amonia = false
heated = false heated = false
tray = false tray = false
BagMeth(GlobalState.MDDrugsLocs.BagMeth[k].loc, GlobalState.MDDrugsLocs.BagMeth[k].offset, GlobalState.MDDrugsLocs.BagMeth[k].rotation) BagMeth(locations.BagMeth[k].loc, locations.BagMeth[k].offset, locations.BagMeth[k].rotation)
TriggerServerEvent('md-drugs:server:getmeth', k) TriggerServerEvent('md-drugs:server:getmeth', k)
end, end,
} }
@@ -306,7 +306,7 @@ CreateThread(function()
RefreshInterior(BikerMethLab.interiorId) RefreshInterior(BikerMethLab.interiorId)
end) end)
for k, v in pairs (GlobalState.MDDrugsLocs.CookMeth) do for k, v in pairs (locations.CookMeth) do
ps.boxTarget('cookMeth'..k, v.loc, {length = v.l, width = v.w, rotation = v.rot, height = 1.0},{ ps.boxTarget('cookMeth'..k, v.loc, {length = v.l, width = v.w, rotation = v.rot, height = 1.0},{
{ {
label = 'Cook Meth', label = 'Cook Meth',
@@ -333,14 +333,14 @@ for k, v in pairs (GlobalState.MDDrugsLocs.CookMeth) do
}) })
end end
for k, v in pairs (GlobalState.MDDrugsLocs.MethDials) do for k, v in pairs (locations.MethDials) do
ps.boxTarget('adjustMethDials'..k, v.loc, {length = v.l, width = v.w, rotation = v.rot, height = 1.0},{ ps.boxTarget('adjustMethDials'..k, v.loc, {length = v.l, width = v.w, rotation = v.rot, height = 1.0},{
{ {
name = 'adjustdials', name = 'adjustdials',
icon = "fa-solid fa-temperature-three-quarters", icon = "fa-solid fa-temperature-three-quarters",
label = ps.lang('targets.meth.adjust'), label = ps.lang('targets.meth.adjust'),
action = function() action = function()
dials(GlobalState.MDDrugsLocs.CookMeth[k].loc) dials(locations.CookMeth[k].loc)
end, end,
canInteract = function() canInteract = function()
if amonia and heated == false then return true end if amonia and heated == false then return true end
@@ -349,7 +349,7 @@ for k, v in pairs (GlobalState.MDDrugsLocs.MethDials) do
}) })
end end
for k, v in pairs (GlobalState.MDDrugsLocs.MethSmash) do for k, v in pairs (locations.MethSmash) do
ps.boxTarget('smashMeth'..k, v.loc, {length = v.l, width = v.w, rotation = v.rot, height = 1.0},{ ps.boxTarget('smashMeth'..k, v.loc, {length = v.l, width = v.w, rotation = v.rot, height = 1.0},{
{ {
name = 'smash', name = 'smash',
@@ -373,7 +373,7 @@ RegisterCommand('offset', function()
end) end)
if not Config.MethHeist then if not Config.MethHeist then
for k, v in pairs (GlobalState.MDDrugsLocs.MethEph) do for k, v in pairs (locations.MethEph) do
ps.boxTarget('stealMethEph'..k, v.loc, {length = v.l, width = v.w, rotation = v.rot, height = 1.0},{ ps.boxTarget('stealMethEph'..k, v.loc, {length = v.l, width = v.w, rotation = v.rot, height = 1.0},{
{ {
label = 'Steal Ephedrine', label = 'Steal Ephedrine',
@@ -386,7 +386,7 @@ if not Config.MethHeist then
}) })
end end
for k, v in pairs (GlobalState.MDDrugsLocs.Methace) do for k, v in pairs (locations.Methace) do
ps.boxTarget('stealMethAce'..k, v.loc, {length = v.l, width = v.w, rotation = v.rot, height = 1.0},{ ps.boxTarget('stealMethAce'..k, v.loc, {length = v.l, width = v.w, rotation = v.rot, height = 1.0},{
{ {
label = 'Steal Acetone', label = 'Steal Acetone',
+2 -2
View File
@@ -1,6 +1,6 @@
local carryPackage = nil local carryPackage = nil
local onMission = false local onMission = false
local locations = ps.callback('md-drugs:server:GetOxyLocs')
local function getRoute() local function getRoute()
local Route = ps.callback('md-drugs:server:getRoute') local Route = ps.callback('md-drugs:server:getRoute')
if not Route then if not Route then
@@ -42,7 +42,7 @@ local function getRoute()
}) })
end end
for k, v in pairs(GlobalState.MDDrugsLocs.OxyPayForTruck) do for k, v in pairs(locations.OxyPayForTruck) do
ps.boxTarget('oxyTruckPur' ..k , v.loc, {length = v.l, width = v.w, heading = v.rot}, { ps.boxTarget('oxyTruckPur' ..k , v.loc, {length = v.l, width = v.w, heading = v.rot}, {
{ {
icon = 'fa-solid fa-truck-fast', icon = 'fa-solid fa-truck-fast',
-27
View File
@@ -1,27 +0,0 @@
CreateThread(function()
local config = ps.callback('md-drugs:server:getLocs', false)
local num = ps.callback('md-drugs:server:GetMerchant', false)
local model = {"g_m_y_famdnf_01", 's_m_m_doctor_01', 'u_m_m_jesus_01', "prop_cooker_03"}
for k, v in pairs (model) do
lib.requestModel(v, Config.RequestModelTime)
end
local tabdealer = CreatePed(0, 'g_m_y_famdnf_01',config.singleSpot.buylsdlabkit.x,config.singleSpot.buylsdlabkit.y,config.singleSpot.buylsdlabkit.z-1,config.singleSpot.buylsdlabkit.w, false, false)
local heroinkitdealer = CreatePed(0,"g_m_y_famdnf_01",config.singleSpot.buyheroinlabkit.x, config.singleSpot.buyheroinlabkit.y, config.singleSpot.buyheroinlabkit.z-1, config.singleSpot.buyheroinlabkit.w, false, false)
local SyrupLocation = CreatePed(0, 's_m_m_doctor_01', config.singleSpot.SyrupVendor.x,config.singleSpot.SyrupVendor.y,config.singleSpot.SyrupVendor.z-1, config.singleSpot.SyrupVendor.w, false, false)
local WeedGuy = CreatePed(0,'u_m_m_jesus_01',config.singleSpot.WeedSaleman.x,config.singleSpot.WeedSaleman.y,config.singleSpot.WeedSaleman.z-1, config.singleSpot.WeedSaleman.w, false, false)
local methdealer = CreatePed(0, "g_m_y_famdnf_01", config.singleSpot.MethHeistStart.x, config.singleSpot.MethHeistStart.y, config.singleSpot.MethHeistStart.z - 1, false, false)
local travellingmerchant = CreatePed(0, "g_m_y_famdnf_01",num.x,num.y,num.z-1, num.w, false, false)
Freeze(tabdealer, true,config.singleSpot.buylsdlabkit.w)
Freeze(SyrupLocation, true, config.singleSpot.SyrupVendor.w)
Freeze(heroinkitdealer, true, config.singleSpot.buyheroinlabkit.w)
Freeze(WeedGuy, true, config.singleSpot.WeedSaleman.w)
Freeze(methdealer, true, 220.0)
Freeze(travellingmerchant, true, num.w)
AddSingleModel(tabdealer,{ type = "client", label = Lang.targets.lsd.buy, icon = "fa-solid fa-money-bill", event = "md-drugs:client:buylabkit", distance = 2.0}, tabdealer )
AddSingleModel(heroinkitdealer, { label = Lang.targets.heroin.kit, icon = "fa-solid fa-money-bill", event = "md-drugs:client:buyheroinlabkit", distance = 2.0}, nil )
AddSingleModel(SyrupLocation, { type = "client", label = Lang.targets.lean.git, icon = "fa-solid fa-circle-info", event = "md-drugs:client:getsyruplocationtobuy", distance = 2.0}, nil )
AddSingleModel(WeedGuy, {label = "Weed Shop",icon = "fa-solid fa-cannabis", action = function() makeMenu('WeedShop') lib.showContext('WeedShop')end}, nil)
AddSingleModel(methdealer,{label = Lang.targets.meth.mission, icon = "fa-solid fa-circle-info", action = function() ps.notify(Lang.meth.mission, "success") SpawnMethCarPedChase() end,},nil )
AddSingleModel(travellingmerchant, {label = Lang.targets.travel.travel, icon = "fa-solid fa-cart-shopping", action = function() makeMenu('travellingMerchant') lib.showContext('travellingMerchant') end}, nil)
end)
+3 -8
View File
@@ -1,4 +1,4 @@
local locations = ps.callback('md-drugs:server:GetPharmaLocs')
ps.registerCallback("md-drugs:client:prescriptionpad", function(data, op) ps.registerCallback("md-drugs:client:prescriptionpad", function(data, op)
if ps.getJobType() ~= 'ems' then return end if ps.getJobType() ~= 'ems' then return end
local input = exports.ps_lib:input('Who To Give A Prescription To?',{ local input = exports.ps_lib:input('Who To Give A Prescription To?',{
@@ -7,12 +7,7 @@ ps.registerCallback("md-drugs:client:prescriptionpad", function(data, op)
}) })
if not input[1] then return end if not input[1] then return end
if not ps.progressbar(ps.lang('Pharma.write'), 4000, 'notepad') then return end if not ps.progressbar(ps.lang('Pharma.write'), 4000, 'notepad') then return end
return {who = input[1], what = input[2]} return {who = input[1], what = input[2]}
end)
RegisterNetEvent("md-drugs:client:fillprescription", function(data)
if not ps.progressbar(ps.lang('Pharma.fill'), 4000, 'uncuff') then return end
TriggerServerEvent("md-drugs:server:fillprescription", data.data)
end) end)
ps.registerCallback("md-drugs:client:unbottle", function() ps.registerCallback("md-drugs:client:unbottle", function()
@@ -21,7 +16,7 @@ ps.registerCallback("md-drugs:client:unbottle", function()
end) end)
for k, v in pairs (GlobalState.MDDrugsLocs.FillPrescription) do for k, v in pairs (locations.FillPrescription) do
ps.boxTarget('pharma' ..k , v.loc, {length = v.l, width = v.w, heading = v.rot}, { ps.boxTarget('pharma' ..k , v.loc, {length = v.l, width = v.w, heading = v.rot}, {
{ {
icon = 'fa-solid fa-capsules', icon = 'fa-solid fa-capsules',
+7 -7
View File
@@ -1,6 +1,6 @@
local DrugPlants = { local DrugPlants = {
{model = 'prop_plant_01a', label = 'coke', tbl = GlobalState.CocaPlant, plantTbl = {}, {model = 'prop_plant_01a', label = 'coke', langs = ps.lang('targets.coke.pick'), tbl = GlobalState.CocaPlant, plantTbl = {},
pick = function(loc) pick = function(loc)
if not ps.progressbar(ps.lang('Coke.picking'), 4000, 'uncuff') then return end if not ps.progressbar(ps.lang('Coke.picking'), 4000, 'uncuff') then return end
TriggerServerEvent("coke:pickupCane", loc) TriggerServerEvent("coke:pickupCane", loc)
@@ -12,7 +12,7 @@ local DrugPlants = {
}, },
allow = Config.Drugs.cocaine, allow = Config.Drugs.cocaine,
}, },
{model = 'prop_plant_01b', label = 'heroin', tbl = GlobalState.PoppyPlants, plantTbl = {}, {model = 'prop_plant_01b', label = 'heroin',langs = ps.lang('targets.heroin.pick'), tbl = GlobalState.PoppyPlants, plantTbl = {},
pick = function(loc) pick = function(loc)
if not ps.progressbar(ps.lang('Heroin.pick'), 4000, 'uncuff') then return end if not ps.progressbar(ps.lang('Heroin.pick'), 4000, 'uncuff') then return end
TriggerServerEvent("heroin:pickupCane", loc) TriggerServerEvent("heroin:pickupCane", loc)
@@ -24,7 +24,7 @@ local DrugPlants = {
}, },
allow = Config.Drugs.heroin, allow = Config.Drugs.heroin,
}, },
{model = 'prop_cactus_03', label = 'Mescaline', tbl = GlobalState.Mescaline, plantTbl = {}, {model = 'prop_cactus_03', label = 'Mescaline', langs = ps.lang('targets.mescaline.pick'), tbl = GlobalState.Mescaline, plantTbl = {},
pick = function(loc) pick = function(loc)
if not ps.progressbar(ps.lang('mescaline.pick'), 4000, 'uncuff') then return end if not ps.progressbar(ps.lang('mescaline.pick'), 4000, 'uncuff') then return end
TriggerServerEvent("Mescaline:pickupCane", loc) TriggerServerEvent("Mescaline:pickupCane", loc)
@@ -37,7 +37,7 @@ local DrugPlants = {
allow = Config.Drugs.mescaline, allow = Config.Drugs.mescaline,
}, },
{model = 'prop_weed_01', label = 'weed', tbl = GlobalState.WeedPlant, plantTbl = {}, {model = 'prop_weed_01', label = 'weed', langs = ps.lang('targets.weed.pick'), tbl = GlobalState.WeedPlant, plantTbl = {},
pick = function(loc) pick = function(loc)
if not ps.progressbar(ps.lang('Weed.picking'), 4000, 'uncuff') then return end if not ps.progressbar(ps.lang('Weed.picking'), 4000, 'uncuff') then return end
TriggerServerEvent("weed:pickupCane", loc) TriggerServerEvent("weed:pickupCane", loc)
@@ -49,7 +49,7 @@ local DrugPlants = {
}, },
allow = Config.Drugs.weed, allow = Config.Drugs.weed,
}, },
{model = 'mushroom', label = 'shrooms', tbl = GlobalState.shrooms, plantTbl = {}, {model = 'mushroom', label = 'shrooms', langs = ps.lang('targets.shrooms.pick'), tbl = GlobalState.shrooms, plantTbl = {},
pick = function(loc) pick = function(loc)
if not ps.progressbar(ps.lang('Shrooms.pick'), 4000, 'uncuff') then return end if not ps.progressbar(ps.lang('Shrooms.pick'), 4000, 'uncuff') then return end
TriggerServerEvent("shrooms:pickupCane", loc) TriggerServerEvent("shrooms:pickupCane", loc)
@@ -75,7 +75,7 @@ for k, v in pairs (DrugPlants) do
ps.entityTarget(v.plantTbl[loc], { ps.entityTarget(v.plantTbl[loc], {
{ {
icon = v.icon, icon = v.icon,
label = v.label, label = v.langs,
action = function() action = function()
if not v.pick(loc) then return end if not v.pick(loc) then return end
end end
@@ -99,7 +99,7 @@ for k, v in pairs (DrugPlants) do
ps.entityTarget(v.plantTbl[key], { ps.entityTarget(v.plantTbl[key], {
{ {
icon = v.icon, icon = v.icon,
label = v.label, label = v.langs,
action = function() action = function()
if not v.pick(key) then return end if not v.pick(key) then return end
end end
+7 -5
View File
@@ -1,6 +1,8 @@
RegisterNetEvent('md-drugs:client:takeshrooms', function() ps.registerCallback("md-drugs:client:shrooms", function()
if not ps.progressbar(Lang.Shrooms.eat, 500, 'eat') then return end if not ps.progressbar(ps.lang('Shrooms.eat'), 5000, 'eat') then return end
TriggerEvent("evidence:client:SetStatus", "widepupils", 300) CreateThread(function()
EcstasyEffect() EcstasyEffect()
end) end)
return true
end)
+86 -97
View File
@@ -1,88 +1,57 @@
local exploded, drying = false, false local exploded, drying = false, false
local locations = ps.callback('md-drugs:server:GetWeedLocs')
local function hasJob() for k, v in pairs (locations.WeedDry) do
if Config.Joblock then ps.boxTarget('weed_dry'..k, v.loc, {length = v.l, width = v.w, heading = v.rot}, {
if getJobName() == Config.weedjob then {
return true else return false end icon = 'fa-solid fa-cannabis',
else label = ps.lang('targets.weed.dry'),
return true end action = function()
end if not ps.hasItem('wetcannabis', 1) then
ps.notify(ps.lang('Weed.nodry'), "error")
return
CreateThread(function() end
local config = ps.callback('md-drugs:server:getLocs', false) if drying then return end
AddBoxZoneMulti('weeddry', config.WeedDry, {
name = 'dryweed',
icon = "fas fa-sign-in-alt",
label = Lang.targets.weed.dry,
distance = 1,
action = function()
if not ItemCheck('wetcannabis') then return end
if drying then
ps.notify(Lang.Weed.busy, "error")
else
local loc = GetEntityCoords(PlayerPedId()) local loc = GetEntityCoords(PlayerPedId())
local weedplant = CreateObject("bkr_prop_weed_drying_01a", loc.x, loc.y+.2, loc.z, true, false) local weedplant = CreateObject("bkr_prop_weed_drying_01a", loc.x, loc.y+.2, loc.z, true, false)
drying = true drying = true
FreezeEntityPosition(weedplant, true) FreezeEntityPosition(weedplant, true)
ps.notify(Lang.Weed.wait, "success") ps.notify(ps.lang('Weed.wait'), "success")
Wait(math.random(1000,5000)) Wait(math.random(1000,5000))
ps.notify(Lang.Weed.take, "success") ps.notify(ps.lang('Weed.take'), "success")
AddSingleModel(weedplant, { ps.entityTarget(weedplant, {
icon = "fa-solid fa-cannabis", icon = "fa-solid fa-cannabis",
label = Lang.targets.weed.dpick, label = ps.lang('targets.weed.dpick'),
action = function() action = function()
DeleteEntity(weedplant) DeleteEntity(weedplant)
drying = false drying = false
TriggerServerEvent('md-drugs:server:dryoutweed') TriggerServerEvent('md-drugs:server:dryoutweed')
end, end,
canInteract = function() })
if hasJob() then return true end end
}, nil)
end end
end, }
canInteract = function()
if hasJob() then return true end end
}) })
end
AddBoxZoneSingle('teleinweedout', config.singleSpot.weedTeleout, { name = 'teleout', icon = "fa-solid fa-door-closed", label = Lang.targets.coke.exit, distance = 2.0, action = function() SetEntityCoords(PlayerPedId(),config.singleSpot.weedTelein) end, for k, v in pairs (locations.WeedTele) do
canInteract = function() if hasJob() then return true end end ps.boxTarget('weed_tele'..k, v.inside, {length = v.l, width = v.w, heading = v.rot}, {
}) {
AddBoxZoneSingle('teleinweedin', config.singleSpot.weedTelein, { name = 'teleout', icon = "fa-solid fa-door-open", label = Lang.targets.coke.enter, distance = 2.0, action = function() SetEntityCoords(PlayerPedId(),config.singleSpot.weedTeleout) end, icon = 'fa-solid fa-door-open',
canInteract = function() if hasJob() then return true end end label = ps.lang('targets.weed.telein'),
}) action = function()
AddBoxZoneSingle('MakeButterCrafting', config.singleSpot.MakeButter, {label = Lang.targets.weed.butt, action = function() lib.showContext('ButterCraft') end, icon = "fa-solid fa-cookie", SetEntityCoords(PlayerPedId(), v.outside)
canInteract = function() if hasJob() then return true end end end
}) }
AddBoxZoneSingle('makeoil',config.singleSpot.MakeOil, {
name = 'Oil',
icon = "fa-solid fa-oil-can",
label = Lang.targets.weed.oil,
action = function()
if not ItemCheckMulti({'butane', 'grindedweed'}) then return end
if not minigame() then
local loc = GetEntityCoords(PlayerPedId())
AddExplosion(loc.x, loc.y, loc.z, 49, 10, true, false, true)
exploded = true
ps.notify(Lang.Weed.stovehot, "error")
Wait(1000 * 30)
exploded = false
return end
if not ps.progressbar(Lang.Weed.shat, 4000, 'uncuff') then return end
TriggerServerEvent("md-drugs:server:makeoil")
end,
canInteract = function()
if hasJob() and exploded == false then return true end
end,
}) })
local stove = CreateObject("prop_cooker_03",config.singleSpot.MakeButter.x, config.singleSpot.MakeButter.y, config.singleSpot.MakeButter.z-1, true, false) ps.boxTarget('weed_teleout'..k, v.outside, {length = v.l, width = v.w, heading = v.rot}, {
SetEntityHeading(stove, 270.00) {
FreezeEntityPosition(stove, true) icon = 'fa-solid fa-door-closed',
local stove2 = CreateObject("prop_cooker_03",config.singleSpot.MakeOil.x,config.singleSpot.MakeOil.y, config.singleSpot.MakeOil.z-1, true, false) label = ps.lang('targets.weed.teleout'),
SetEntityHeading(stove2, 90.00) action = function()
FreezeEntityPosition(stove2, true) SetEntityCoords(PlayerPedId(), v.inside)
end) end
}
})
end
CreateThread(function() CreateThread(function()
BikerWeedFarm = exports['bob74_ipl']:GetBikerWeedFarmObject() BikerWeedFarm = exports['bob74_ipl']:GetBikerWeedFarmObject()
@@ -103,46 +72,66 @@ end)
local function createBluntOptions(contextId, contextTitle, eventLabelPrefix, tableName) local function createBluntOptions(contextId, contextTitle, eventLabelPrefix, tableName)
local options = {} local options = {}
local items = ps.callback('md-drugs:server:GetRecipe', false,'weed',tableName) local items = ps.callback('md-drugs:server:GetRecipe', 'weed',tableName)
for k, v in pairs(items) do for k, v in pairs(items) do
local label = {} local label = {}
local item = '' local item = ''
for m, d in pairs(v.take) do table.insert(label, GetLabel(m) .. ' X ' .. d) end for m, d in pairs(v.take) do table.insert(label, ps.getLabel(m) .. ' X ' .. d) end
for m, d in pairs(v.give) do item = m end for m, d in pairs(v.give) do item = m end
options[#options + 1] = { options[#options + 1] = {
icon = GetImage(item), icon = ps.getImage(item),
description = table.concat(label, ", "), description = table.concat(label, ", "),
title = GetLabel(item), title = ps.getLabel(item),
event = "md-drugs:client:MakeWeedItems", action = function()
args = { if not minigame() then return end
item = item, if not ps.progressbar(eventLabelPrefix .. ps.getLabel(item), 4000, 'uncuff') then return end
recipe = 'weed', TriggerServerEvent('md-drugs:server:MakeWeedItems', {item = item, recipe = 'weed', num = k, table = tableName})
num = k, end
label = eventLabelPrefix .. GetLabel(item),
table = tableName
}
} }
end end
sorter(options, 'title') sorter(options, 'title')
lib.registerContext({ id = contextId, title = contextTitle, options = options}) ps.menu(contextTitle, contextTitle, options)
end end
CreateThread(function()
--createBluntOptions('ButterCraft', "Edible Cooking", 'Cooking A ', 'edibles')
--createBluntOptions('mddrugsblunts', "Roll Blunts", 'Rolling A ', 'blunts')
--createBluntOptions('mddrugsbluntwraps', "Dipping Syrup", 'Dipping Syrup To Make ', 'bluntwrap')
end)
RegisterNetEvent("md-drugs:client:MakeWeedItems", function(data)
if not minigame() then return end
if not ps.progressbar('Making ' .. data.item, 4000, 'uncuff') then return end
TriggerServerEvent('md-drugs:server:MakeWeedItems', data)
end)
RegisterNetEvent('md-drugs:client:makeBluntWrap', function(data) RegisterNetEvent('md-drugs:client:makeBluntWrap', function(data)
lib.showContext('mddrugsbluntwraps') createBluntOptions('mddrugsbluntwraps', "Dipping Syrup", 'Dipping Syrup To Make ', 'bluntwrap')
end) end)
RegisterNetEvent('md-drugs:client:rollBlunt', function(data) RegisterNetEvent('md-drugs:client:rollBlunt', function(data)
lib.showContext('mddrugsblunts') createBluntOptions('mddrugsblunts', "Roll Blunts", 'Rolling A ', 'blunts')
end) end)
for k, v in pairs (locations.WeedSalesman) do
ps.requestModel(v.ped)
local ped = CreatePed(4, v.ped, v.loc.x, v.loc.y, v.loc.z - 1.0, v.loc.w, false, true)
FreezeEntityPosition(ped, true)
SetEntityInvincible(ped, true)
SetBlockingOfNonTemporaryEvents(ped, true)
ps.entityTarget(ped, {
{
icon = "fa-solid fa-cannabis",
label = ps.lang('targets.weed.salesman'),
action = function()
local itemList = ps.callback('md-drugs:server:getWeedItems')
local options = {}
for m, d in pairs (itemList) do
options[#options + 1] = {
icon = ps.getImage(m),
title = ps.getLabel(m),
description = '$' .. d,
action = function()
local input = ps.input('Amount To Buy',{
{type = 'number', title = 'How Many To Buy', min = 1, max = 1000}
})
if not input and input[1] then return end
if not ps.progressbar('Buying ' .. ps.getLabel(m), 2000, 'uncuff') then return end
TriggerServerEvent('md-drugs:server:buyWeedItem', k, m, input[1])
end
}
end
ps.menu('Weed Shop', 'Weed Shop', options)
end
}
})
end
+168 -145
View File
@@ -1,157 +1,180 @@
local xtcpress = false local xtcpress = false
local locations = ps.callback('md-drugs:server:GetXtcLocs')
RegisterNetEvent("md-drugs:client:setpress", function(type) local function getRecipeList(tbl)
if xtcpress then local rec = {}
for m, d in pairs(tbl) do table.insert(rec, ps.getLabel(m) .. ' X ' .. d) end
return table.concat(rec, ', ')
end
ps.registerCallback('md-drugs:client:setpress', function(xtcData)
if xtcpress then
ps.notify(Lang.xtc.out, 'error') ps.notify(Lang.xtc.out, 'error')
else return
local coords, head = StartRay2()
xtcpress = true
ps.progressbar('Setting Press On The Ground', 4000, 'uncuff')
local press = CreateObject("bkr_prop_coke_press_01aa", coords.x, coords.y, coords.z, true, false, false)
PlaceObjectOnGroundProperly(press)
Freeze(press, true, head)
local options = {
{ icon = "fas fa-eye", label = Lang.targets.xtc.make, distance = 2.0, action = function() TriggerEvent("md-drugs:client:XTCMenu", type) end,
canInteract = function() if xtcpress then return true end end
},
{icon = "fas fa-eye", label = Lang.targets.xtc.pick, action = function() TriggerEvent("md-drugs:client:GetPressBack", type, press) end, distance = 2.0,
canInteract = function() if xtcpress then return true end end
},
}
AddMultiModel(press, options, nil)
end end
end)
ps.registerCallback('md-drugs:client:setpress', function(type)
if xtcpress then
ps.notify(Lang.xtc.out, 'error')
return false
else
local coords, head = StartRay2() local coords, head = StartRay2()
xtcpress = true xtcpress = true
ps.progressbar('Setting Press On The Ground', 4000, 'uncuff') if not ps.progressbar('Setting Press On The Ground', 4000, 'uncuff') then return end
local press = CreateObject("bkr_prop_coke_press_01aa", coords.x, coords.y, coords.z, true, false, false) local press = CreateObject("bkr_prop_coke_press_01aa", coords.x, coords.y, coords.z, true, false, false)
PlaceObjectOnGroundProperly(press) PlaceObjectOnGroundProperly(press)
Freeze(press, true, head) Freeze(press, true, head)
local options = { local options = {
{ icon = "fa-solid fa-tablets", label = Lang.targets.xtc.make, distance = 2.0, action = function() TriggerEvent("md-drugs:client:XTCMenu", type) end, {
canInteract = function() if xtcpress then return true end end icon = "fas fa-eye",
}, label = ps.lang('targets.xtc.make'),
{icon = "fas fa-eye", label = Lang.targets.xtc.pick, action = function() TriggerEvent("md-drugs:client:GetPressBack", type, press) end, distance = 2.0, distance = 2.0,
canInteract = function() if xtcpress then return true end end action = function()
}, local options = {}
} for k, v in pairs(xtcData.recipes) do
AddMultiModel(press, options, nil) local descript = getRecipeList(v.take)
return true, GetEntityCoords(press) options[#options + 1] = {
end icon = ps.getImage(k),
title = ps.getLabel(k),
description = descript,
action = function()
if not minigame() then ps.notify(ps.lang('xtc.fail'), "error") return end
if not ps.progressbar(string.format(ps.lang('xtc.make'), ps.getLabel(k)), 4000, 'uncuff') then return end
TriggerServerEvent("md-drugs:server:makextc", k)
end,
distance = 2.0
}
end
ps.menu('XTC Recipes', 'XTC Recipes', options)
end,
canInteract = function()
if xtcpress then return true end
end
},
{
icon = "fas fa-eye",
label = ps.lang('targets.xtc.pick'),
action = function()
if not ps.progressbar(ps.lang('xtc.pickup'), 5000, 'uncuff') then return end
DeleteObject(press)
xtcpress = false
TriggerServerEvent("md-drugs:server:getpressback")
end,
canInteract = function()
if xtcpress then return true end
end
},
}
ps.entityTarget(press, options)
return true
end) end)
RegisterNetEvent("md-drugs:client:XTCMenu", function(type) for k, v in pairs(locations.mdp2p) do
local event = "md-drugs:client:MakeXTC" ps.boxTarget('mdp2p'..k, v.loc, {length = v.l, width = v.w, heading = v.rot}, {
lib.registerContext({ {
id = 'XTCmenu', icon = 'fa-solid fa-flask',
title = 'XTC Menu', label = ps.lang('targets.xtc.mdp2p'),
options = { action = function()
{icon = GetImage('white_xtc'), title = 'White XTC', description = '1 X Raw XTC', event = event, args = { data = type, color = 'white'}}, if not minigame() then ps.notify(ps.lang('xtc.fail'), "error") return end
{icon = GetImage('red_xtc'), title = 'Red XTC', description = '1 X Raw XTC and 1 X Loose Coke', event = event, args = { data = type, color = 'red'}}, if not ps.progressbar(ps.lang('xtc.mdp2p'), 4000, 'uncuff') then return end
{icon = GetImage('orange_xtc'), title = 'Orange XTC', description = '1 X Raw XTC and 1 X Heroin Vial', event = event, args = { data = type, color = 'orange'}}, TriggerServerEvent("md-drugs:server:stealmdp2p", k)
{icon = GetImage('blue_xtc'), title = 'Blue XTC', description = '1 X Raw XTC and 1 X Crack Rock', event = event, args = { data = type, color = 'blue'}}, end
} }
})
lib.showContext('XTCmenu')
end)
RegisterNetEvent("md-drugs:client:GetPressBack", function(type, press)
if not ps.progressbar(Lang.xtc.pickup, 5000, 'uncuff') then return end
DeleteObject(press)
xtcpress = false
TriggerServerEvent("md-drugs:server:getpressback", type)
end)
RegisterNetEvent("md-drugs:client:stealisosafrole", function(data)
if not minigame() then ps.notify(Lang.xtc.fail, "error") return end
if not ps.progressbar(Lang.xtc.iso, 4000, 'uncuff') then return end
TriggerServerEvent("md-drugs:server:stealisosafrole",data.data)
end)
RegisterNetEvent("md-drugs:client:stealmdp2p", function(data)
if not minigame() then ps.notify(Lang.xtc.fail, "error") return end
if not ps.progressbar(Lang.xtc.mdp2p, 4000, 'uncuff') then return end
TriggerServerEvent("md-drugs:server:stealmdp2p", data.data)
end)
RegisterNetEvent("md-drugs:client:makingrawxtc", function(data)
if not ItemCheck('isosafrole') then return end
if not ItemCheck('mdp2p') then return end
if not ps.progressbar(Lang.xtc.raw, 4000, 'uncuff') then return end
TriggerServerEvent("md-drugs:server:makingrawxtc",data.data)
end)
RegisterNetEvent("md-drugs:client:MakeXTC", function(data)
if not ItemCheck('raw_xtc') then return end
if not ps.progressbar(Lang.xtc.pressing, 4000, 'uncuff') then return end
TriggerServerEvent("md-drugs:server:makextc",data)
end)
RegisterNetEvent("md-drugs:client:stampwhite", function(data)
lib.registerContext({ id = 'stampxtc', title = 'Stamp XTC Menu',
options = {
{ icon = GetImage('white_xtc'), title = 'White XTC',
onSelect = function()
if not minigame() then ps.notify(Lang.xtc.fail, "error") return end
if not ps.progressbar(string.format(Lang.xtc.stamp, 'White'), 4000, 'uncuff') then return end
TriggerServerEvent("md-drugs:server:stampwhite",data.data)
end
},
{ icon = GetImage('red_xtc'), title = 'Red XTC',
onSelect = function()
if not minigame() then ps.notify(Lang.xtc.fail, "error") return end
if not ps.progressbar(string.format(Lang.xtc.stamp, 'Red'), 4000, 'uncuff') then return end
TriggerServerEvent("md-drugs:server:stampred", data.data)
end
},
{ icon = GetImage('orange_xtc'), title = 'Orange XTC',
onSelect = function()
if not minigame() then ps.notify(Lang.xtc.fail, "error") return end
if not ps.progressbar(string.format(Lang.xtc.stamp, 'Orange'), 4000, 'uncuff') then return end
TriggerServerEvent("md-drugs:server:stamporange", data.data)
end,
},
{ icon = GetImage('blue_xtc'), title = 'Blue XTC',
onSelect = function()
if not minigame() then ps.notify(Lang.xtc.fail, "error") return end
if not ps.progressbar(string.format(Lang.xtc.stamp, 'Blue'), 4000, 'uncuff') then return end
TriggerServerEvent("md-drugs:server:stampblue", data.data)
end
},
}
})
lib.showContext('stampxtc')
end)
RegisterNetEvent("md-drugs:client:getsinglepress", function()
if not ps.progressbar(Lang.xtc.buyp, 4000, 'uncuff') then return end
TriggerServerEvent("md-drugs:server:buypress")
end)
RegisterNetEvent("md-drugs:client:exchangepresses", function(data)
if not ps.progressbar(Lang.xtc.buyp, 4000, 'uncuff') then return end
TriggerServerEvent("md-drugs:server:upgradepress", data.data)
end)
RegisterNetEvent("md-drugs:client:buypress", function()
local img = GetImage('singlepress')
lib.registerContext({
id = 'buypresses',
title = 'Purchase Presses',
options = {
{title = Lang.xtc.press.title.single, description = Lang.xtc.press.des.single, icon = img, event = 'md-drugs:client:getsinglepress'},
{title = Lang.xtc.press.title.dual, description = Lang.xtc.press.des.dual, icon = img, event = 'md-drugs:client:exchangepresses', args = {data = 'dual'}},
{title = Lang.xtc.press.title.triple, description = Lang.xtc.press.des.triple, icon = img, event = 'md-drugs:client:exchangepresses', args = {data = 'triple'}},
{title = Lang.xtc.press.title.quad, description = Lang.xtc.press.des.quad, icon = img, event = 'md-drugs:client:exchangepresses', args = {data = 'quad'}}
}
}) })
lib.showContext('buypresses') end
end) for k, v in pairs(locations.isosafrole) do
ps.boxTarget('isosafrole'..k, v.loc, {length = v.l, width = v.w, heading = v.rot}, {
{
icon = 'fa-solid fa-flask',
label = ps.lang('targets.xtc.isosafrole'),
action = function()
if not minigame() then ps.notify(ps.lang('xtc.fail'), "error") return end
if not ps.progressbar(ps.lang('xtc.isosafrole'), 4000, 'uncuff') then return end
TriggerServerEvent("md-drugs:server:stealisosafrole", k)
end
}
})
end
for k, v in pairs(locations.rawxtcloc) do
ps.boxTarget('xtc'..k, v.loc, {length = v.l, width = v.w, heading = v.rot}, {
{
icon = 'fa-solid fa-flask',
label = ps.lang('targets.xtc.raw'),
action = function()
if not minigame() then ps.notify(ps.lang('xtc.fail'), "error") return end
if not ps.progressbar(ps.lang('xtc.raw'), 4000, 'uncuff') then return end
TriggerServerEvent("md-drugs:server:makingrawxtc", k)
end
}
})
end
for k, v in pairs(locations.xtcpress) do
ps.requestModel(v.ped)
local ped = CreatePed(0, v.ped, v.loc, false, false)
Freeze(ped, true, v.loc.w)
ps.entityTarget(ped, {
{
icon = 'fa-solid fa-flask',
label = ps.lang('targets.xtc.press'),
action = function()
local options = {}
local recipeList = ps.callback('md-drugs:server:getpressrecipes')
for m, d in pairs(recipeList) do
if m == 'singlepress' then
options[#options + 1] = {
icon = ps.getImage(m),
title = ps.getLabel(m),
description = ps.lang('xtc.press.buysingle', d.cash),
action = function()
if not ps.progressbar(ps.lang('xtc.buyp'), 4000, 'uncuff') then return end
TriggerServerEvent('md-drugs:server:buypress', m)
end,
}
else
ps.debug(d.take)
local descript = getRecipeList(d.take)
options[#options + 1] = {
icon = ps.getImage(m),
title = ps.getLabel(m),
description = descript,
action = function()
if not ps.progressbar(ps.lang('xtc.buyp'), 4000, 'uncuff') then return end
TriggerServerEvent("md-drugs:server:upgradepress", k, m)
end,
distance = 2.0
}
end
end
ps.menu('XTC Presses', 'XTC Presses', options)
end
}
})
end
for k, v in pairs (locations.stamp) do
ps.boxTarget('xtc'..k, v.loc, {length = v.l, width = v.w, heading = v.rot}, {
{
icon = 'fa-solid fa-flask',
label = ps.lang('targets.xtc.' .. k),
action = function()
local item = {
{item = 'white_xtc', label = ps.getLabel('white_xtc'), color = 'white'},
{item = 'red_xtc', label = ps.getLabel('red_xtc'), color = 'red'},
{item = 'orange_xtc', label = ps.getLabel('orange_xtc'), color = 'orange'},
{item = 'blue_xtc', label = ps.getLabel('blue_xtc'), color = 'blue'},
}
local options = {}
for m, d in pairs (item) do
options[#options + 1] = {
icon = ps.getImage(d.item),
title = d.label,
description = ps.lang('xtc.stamp_desc', d.color),
action = function()
if not minigame() then ps.notify(ps.lang('xtc.fail'), "error") return end
if not ps.progressbar(string.format(ps.lang('xtc.stamp'), d.label), 4000, 'uncuff') then return end
TriggerServerEvent("md-drugs:server:stamp", k, d.color)
end,
distance = 2.0
}
end
ps.menu('Stamp Pills', 'Stamp Pills', options)
end
}
})
end
+303
View File
@@ -0,0 +1,303 @@
Lang = {}
Lang.targets = {
coke = {
pick = 'Pick Widdle Leafies 🌼',
cut = 'Cutty-Wutty Leaf-Powder',
bag = 'Baggie-Waggie Time!',
enter = 'Enter Snuggle Shack~ 🏠💕',
exit = 'Bye-Bye, Cozy Room! 👋✨',
chop = 'Chop-Chop Leafies Into Fluff! ✂️🍃',
},
CornerSell = {
sell = 'Sell %s Of Cuddle-Dust For $%s 💸💗',
deny = 'No Thx, Not Cute Enough Offer! 💢'
},
crack = {
cook = 'Cook Widdle Sparkle-Rocks 💫🔥',
bag = 'Baggie Up Shiny Pebbles! ✨🧺'
},
Delivery = {
Deliver = 'Deliver Wuv Parcel For %s 📦💞',
open = 'Open Cuddle-Cafe Shop~ 🍰🐾',
hand = 'Handie-Hand Over Giftie! 🎁🤗'
},
heroin = {
pick = 'Pick Poppies (So Fluffy! 🌸)',
up = 'Pick Up Widdle Table',
dry = 'Dry Poppies In Sunbeam ☀️🌼',
cut = 'Cut Heroin With Sugar-Puff ✨🍬',
cook = 'Cook Widdle Dream-Dust 💤🔥',
kit = 'Buy Dream-Lab Kit (So Cute! 🧪🎀)',
clean = 'Clean Widdle Lab Table 🧽✨',
fill = 'Fill Syringe (Itsy-Bitsy Poke!) 💉💖',
vial = 'Make Lil’ Sparkle-Vial 💎💉',
},
lean = {
git = 'Get Widdle Taskie',
st = 'Steal From Car (Shh! 👀🚗)'
},
lsd = {
buy = 'Buy Magic Lab Kit ✨🧪',
heat = 'Warm Widdle Liquids (Like Tea! 🫖)',
refine = 'Make Shiny-Quality Magic 💫✨',
paper = 'Make Magic-Paper Sheets 📜🌈',
back = 'Pick Up Magic Kit 🎒💫',
dab = 'Dab Magic On Paper (Gently! 💧🌸)',
clean = 'Clean Widdle Table 🧼✨',
lys = 'Steal Sparkle-Acid (Shh! 🤫✨)',
die = 'Steal Dream-Ether (Super Secret! 🌌)',
buyt = 'Buy Magic Tabs 🌈💊',
},
mescaline = {
pick = 'Pick Widdle Cactus (Ouchless!) 🌵🫶',
dry = 'Dry Cactus In Sunny Spot ☀️🌵',
},
meth = {
bag = 'Baggie Up Sparkle-Dust ✨🧺',
enter = 'Enter Cozy Lab Hut 🏡💖',
exit = 'Exit Snuggle Zone 👋💕',
cook = 'Cook Widdle Glitter-Bits 🔬🔥',
tray = 'Grab Shiny Tray ✨🍽️',
box = 'Box Up Cuddle-Crystals 📦💗',
adjust = 'Adjust Widdle Heat (Not Too Hot! 🔥😅)',
eph = 'Steal Widdle Ephedrine (Shhh! 🤫)',
ace = 'Steal Acetone (It Smells Funny! 👃✨)',
mission = 'Get Cute Mission Taskie 📝🐰',
stealfromcar = 'Grabby-Grab From Car (No One Saw! 👀🚗)',
},
oxy = {
pack = 'Get Cuddle-Package 📦🤗',
talk = 'Talk To Widdle Buyer (Be Nice! 🥺💬)',
pay = 'Pay For Truckie (With Sparkle-Cash! 💵✨)',
},
pha = {
fill = 'Fill Widdle Prescription (Doctor Mode! 🩺📋)',
},
shrooms = {
pick = 'Pick Widdle Mushies 🍄🫶',
},
travel = {
travel = 'Open Wandering Merchant Cart 🛺✨',
},
xtc = {
iso = 'Steal Isosafrole (Shiny Stuff! ✨)',
mdp = 'Steal MDP2P (Super Secret! 🤫🔬)',
raw = 'Make Raw Sparkle-Dust 💫🧪',
press = 'Buy Pill-Press (Cute Machine! 🤖💖)',
stamp = 'Stamp Widdle Pills (Like Cookies! 🍪)',
make = 'Make XTC (With Love! 💗)',
pick = 'Pick Up Press (It’s Heavy! 💪)',
},
weed = {
pick = 'Pick Widdle Weedies 🌿🫶',
dry = 'Dry Weed In Breezy Spot 🌬️🍃',
dpick = 'Pick Dried Weedies (Crunchy!) 🍂',
butt = 'Open Edible Bakery Menu 🧈🍪',
oil = 'Make Magic Oil (For Yummy Food! 🍲)'
},
Wholesale = {
talk = 'Talk To Big Cuddle Buyer 💬💞'
},
}
-- 💖 COKE: Widdle Leafie Fun 💖
Lang.Coke = {
picking = "Picking Widdle Leafies~ 🍃🫶",
makepow = 'Chopping Leafies Into Fluffy Powder ✨✂️',
cutting = 'Cutting Cuddle-Dust With Sugar-Puff 🍬💫',
bagging = "Bilbo Baggins Mode: ACTIVATED! 🧳🐰",
cut = "You Cut Some Widdle Cuddle-Dust~ 💖",
nocutcoke = "No Leafies? No Cutty! Silly Billy! 😝",
bagcoke = "You Bagged Up Sparkle-Fluff! ✨🧺",
nobagcoke = "No Cuddle-Dust? No Baggin’! 😿",
}
-- 💎 CRACK: Sparkle-Rock Time 💎
Lang.Crack = {
cookcrack = "Cooking Widdle Sparkle-Pebbles 💫🔥",
bagcrack = 'Bilbo Baggin’ Mode: GO! 🎒✨',
makecrack = 'Nice Sparkle-Rocks, Bestie! 💎💖',
nocoke = 'Can’t Make Sparkles Without Leafies, Silly! 🤪🍃'
}
-- 🌈 CORNER SELLING: Cuddle Salesperson Mode 🌈
Lang.Cornerselling = {
inveh = 'STRANGER DANGER! No Car Rides! 🚫🚗',
toofar = "Too Far From Cuddle Corner, Cutie! 🏃‍♂️💔",
selling = 'Selling %s For $%s (With Hugs! 🤗)',
deny = "Nuh-Uh! Not Cute Enough! 💢",
start = "Let’s Get That Sparkle-Cash! 💵✨",
stop = "Lazy Muffin! Go Sell! 🥐💤",
nodrugs = "Selling Air? That’s Not Cute! 🌬️❌",
notcops = "Not Enough Cops Watching… Suspicious! 👮‍♂️👀",
no = 'You Can’t Sell Here, Snuggle-Puff! 🚫💕',
sell = "Selling Cuddle-Goods~ 🛍️💗",
}
-- 📦 DELIVERY: Wuv Parcel Hustle 📦
Lang.Delivery = {
emailn = 'Not A Cuddle-Dealer… Yet! 😉',
emailsub = 'Hurry, Cutie! Deliver the Sparkle-Parcel! ⏳📦',
emailcon = 'If It Doesn’t Arrive, I’ll Tell Your Mom You Said “Fwump!” Just Bring %s Of %s!!! 😾💌',
search = "Looking For Widdle Delivery… 🕵️‍♀️💖",
none = "Nothin’ Near… Sad Pouty Face… (。;﹏;。)",
busy = "Still Doing The Last One, Silly! 🐢",
found = "Marked On Mapie-Wapie! 🗺️✨",
already = "Already Delivering, Bestie! 🚚💞",
checkrep = "Current Cuddle Rep: ",
pack = 'Handing Off Wuv Parcel 🎁🤗',
}
-- 💤 HEROIN: Dream-Dust Crafting 💤
Lang.Heroin = {
pick = "Picking Up Poppies (So Soft! 🌸)",
tableout = 'You Already Have A Widdle Table Out! 🪑',
dryout = "Drying Poppies In Sunbeam ☀️🌼",
cutting = "Cutting Dream-Dust With Sugar-Puff 🍬✨",
secret = "SHHHHHHHHHH! 🤫💖",
table = "Placing Widdle Table Down 🪑🫶",
success = "Heated Dream-Dust Just Right! 💖🔥",
clean = 'Cleaning Widdle Dream Table 🧽✨',
needles = 'Filling Syringe (Itsy-Bitsy Poke!) 💉💗',
pickup = 'Picking Up Widdle Table (Heavy! 💪)',
cutheroin = 'You Made Some Cut Dream-Dust~ 💫',
noheroin = "No Dream-Dust? No Cutty! Silly! 😝",
vial = 'You Made A Sparkle-Vial! 💎💉',
novial = "No Dream-Dust? No Vials! 😿",
fail = 'You Over-Heated Them, Silly! 🔥😅',
fill = 'Filled The Syringe With Cuddle-Juice 💉💖',
nofill = 'No Dream-Dust? No Filly! 😾',
haskit = 'You Already Have A Dream Lab Kit! 🧪🎀'
}
-- 🟪 LEAN: Purple Hug Juice 🟪
Lang.Lean = {
marked = 'Car Marked On Mapie-Wapie! 🚗📍',
lean = 'You Got Purple Hug Juice~ 💜🥤',
dextro = 'You Got Red Sparkle-Syrup! 🔴💉',
act = 'You Already Have A Lean Taskie! 📋🐰',
}
-- 🌈 LSD: Magic Paper Fun 🌈
Lang.lsd = {
steallys = 'Stealing Sparkle-Acid (Shh! 🤫✨)',
stealdie = 'Stealing Dream-Ether (Super Secret! 🌌)',
tableout = 'You Already Have A Magic Table Out! 🪑💫',
tablepack = 'Packing Up Widdle Table 🧳✨',
heat = 'Warming Widdle Liquids (Like Tea! 🫖)',
clean = 'Cleaning Magic Table 🧽🌈',
refine = 'Making Magic Extra Shiny! ✨🌟',
dip = 'Dabbing Magic On Paper (Gently! 💧🌸)',
buypaper = 'Buying Magic-Paper Sheets 📜💖',
buykit = 'Buying Magic Lab Kit 🧪🎀',
place = 'Placing Widdle Table Down 🪑🫶',
hav = 'You Already Have A Magic Table! 🪑✨',
lys = 'You Got Sparkle-Acid! ✨🧪',
die = 'You Got Dream-Ether! 💫🌌',
cleaned = 'You Cleaned It Perfectly! 🧽💖',
madelsd = 'You Made Magic Paper! 🌈📄',
failed = 'You Over-Heated Them, Silly! 🔥😅',
refined = 'You Made It Extra Shiny! ✨🌟',
broke = 'Your Broke-Pants Can’t Afford This! 💸❌',
novial = 'No Magic Vials, Cutie! 😿',
}
-- 🌵 MESCALINE: Cactus Hugs 🌵
Lang.mescaline = {
pick = "Picking Widdle Cactus (Ouchless! 🌵🫶)",
dry = 'Drying Cactus In Sunny Spot ☀️🌵',
nocactus = 'No Cactus Bulbs, Sad Pouty… (。;﹏;。)',
eat = 'Eating Mescaline (Have A Good Trip! 🌀✨)'
}
-- ✨ METH: Glitter-Bits Lab ✨
Lang.meth = {
inside = 'Stuff Already Inside, Silly! 🧪📦',
increaseheat = 'Turning Up Widdle Heat 🔥😅',
mission = 'Car Marked On Mapie-Wapie! 🚗📍',
ace = 'You Got Some Acetone (Smells Funny! 👃✨)',
eph = 'You Got Some Ephedrine (Sparkle-Stuff! ✨)',
mix = 'Mixing Widdle Ingredients (Like Baking! 🧁)',
nobag = 'No Baggies, Sad Pouty… 😿',
act = 'You Already Have A Taskie! 📝🐰',
}
-- 💊 OXY: Cuddle-Pills 💊
Lang.oxy = {
truck = 'Your Truckie Is Here! 🚚💖',
cantcarry = 'You Not Strong Enough, Cutie! 💪😅',
hand = 'Handing Over Cuddle-Pills 💊🤗',
empty = 'Can’t Be Empty-Handed, Silly! 🖐️❌',
broke = 'Your Broke-Pants Can’t Pay! 💸❌',
hot = 'Car Is Hot! Dump It Now! 🔥🚗',
next = 'Go To Next Wuv Spot! 🌟📍'
}
-- 🩺 PHARMA: Doctor Cuddle Mode 🩺
Lang.Pharma = {
notems = 'You Not Doctor, Silly! 🩺❌',
write = 'Writing Widdle Prescription 📝🫶',
fill = 'Filling Cuddle-Prescription 💊💕',
open = 'Opening Widdle Bottle 🍼✨',
pills = 'You Got Widdle Pills! 💊💖',
no = 'No Prescription? No Pills! 😿'
}
-- 🍄 SHROOMS: Widdle Mushies 🍄
Lang.Shrooms = {
pick = 'Picking Widdle Mushies 🍄🫶',
eat = 'Eating Mushies (Have A Nice Trip! 🌈✨)',
trip = 'Have A Super Cute Trip! 💖💫'
}
-- 🌿 WEED: Cuddle-Weed Bakery 🌿
Lang.Weed = {
pick = 'Harvesting Widdle Weedies 🌿🫶',
busy = 'Already Drying, Silly! 🍂⏳',
canna = 'Making Canna-Butter (Yummy! 🧈)',
brown = 'Making Special Brownies 🍫',
cook = 'Making Special Cookies 🍪',
Choc = 'Making Special Chocolate 🍫💖',
muff = 'Making Special Muffin 🧁',
stovehot = 'Stove Too Hot! Wait 30s, Cutie! 🔥⏰',
shat = 'Making Shatter (Sparkle-Stuff! ✨)',
roll = 'Rolling Widdle Blunts 🚬🌸',
wait = 'Wait A Lil’ Bit Before Driving 🚗💤',
take = 'Taking Down Weedies 🌿🫶',
nodry = 'Need Wet Weedies To Dry, Silly! 🌿💧',
noweed = 'Can’t Roll With Air, Silly! 🌬️❌',
noshat = 'Need Shatter For Dab, Cutie! ✨💧',
notorch = 'Need Butane Torch, Bestie! 🔥🛠️'
}
-- 💊 XTC: Cute Pill Press 💊
Lang.xtc = {
out = 'You Already Have A Press Out! 🤖❌',
pressing = 'Pressing Widdle Pills 🌀💖',
raw = 'Making Raw Sparkle-Dust ✨🧪',
mdp2p = 'Stealing MDP2P (Shh! 🤫)',
iso = 'Stealing Isosafrole (Sparkle-Chem! ✨)',
fail = 'Dude… It’s A Circle, Not Rocket Science! 🚀😅',
pickup = 'Picking Up Widdle Press 🤖🫶',
stamp = 'Stamping %s Pills (Like Cookies! 🍪)',
buyp = "Buying Cute Press 🤖💖",
cash = 'I Need 20k In Sparkle-Cash! 💵✨',
press = {
title = {single = 'Single Press', dual = 'Dual Press', triple = 'Triple Press', quad = 'Quad Press'},
des = {
single = 'Buy a single press for 20k 💖',
dual = '20 of each unstamped single stack pill and your single press 💫',
triple = '50 of each unstamped dual stack pill and your dual press ✨',
quad = '150 of each unstamped Triple stack pill and your triple press 🌟'
}
}
}
-- 💼 WHOLESale: Big Cuddle Deals 💼
Lang.Wholesale = {
al = 'You Already Have A Delivery, Cutie! 📦⏳',
na = 'No One Answered… Try Later, Bestie! 📞❌',
}
return Lang
+302
View File
@@ -0,0 +1,302 @@
Lang = {}
Lang.targets = {
coke = {
pick = 'Rrrowr rraar rawr grrr', -- "Pick Wookie Leaf"
cut = 'Rraar gwah raarrrk', -- "Cut Leaf Dust"
bag = 'Rraar rawr wrooowr', -- "Bag Dust Fast"
enter = 'Rrrowr hnnnngg kashyyyk', -- "Enter Safe Den"
exit = 'Hrrooo kashyyyk', -- "Exit Den"
chop = 'Rraar rawr gwah rrrr', -- "Chop Leaf Into Dust"
},
CornerSell = {
sell = 'Rawr %s rraar %s grrr $%s', -- "Sell %s Of %s For $%s"
deny = 'Rrrowr rraarrrk' -- "Deny Offer"
},
crack = {
cook = 'Rraar rawr hrrrnngg', -- "Cook Fire Rock"
bag = 'Rrrowr rawr wrooowr' -- "Bag Rock Fast"
},
Delivery = {
Deliver = 'Rraar rawr %s', -- "Deliver For %s"
open = 'Rraar rawr %s kraar', -- "Open %s Shop"
hand = 'Rrrowr rawr' -- "Hand Over"
},
heroin = {
pick = 'Rrrowr rawr grrr', -- "Pick Poppy Flower"
up = 'Rrrowr rawr kraar', -- "Pick Up Table"
dry = 'Rraar rawr hnnnngg', -- "Dry Poppy In Sun"
cut = 'Rraar rawr grrr grrr', -- "Cut Dust With Sparkle"
cook = 'Rraar rawr hrrrnngg', -- "Cook Dream Dust"
kit = 'Rraar rawr lab kashyyyk', -- "Buy Heroin Lab Kit"
clean = 'Rraar rawr kraar grrr', -- "Clean Table Dust"
fill = 'Rraar rawr syringe', -- "Fill Syringe"
vial = 'Rraar rawr vial', -- "Make Vial"
},
lean = {
git = 'Rrrowr rawr task', -- "Get Task"
st = 'Rrrowr rawr car grrr' -- "Steal From Car"
},
lsd = {
buy = 'Rraar rawr lab kashyyyk', -- "Buy LSD Lab Kit"
heat = 'Rraar rawr fire', -- "Heat Liquid"
refine = 'Rraar rawr pure', -- "Refine Quality"
paper = 'Rraar rawr paper', -- "Make Tab Paper"
back = 'Rrrowr rawr lab kashyyyk', -- "Pick Up Lab Kit"
dab = 'Rraar rawr paper dab', -- "Dab LSD on sheets"
clean = 'Rraar rawr table grrr', -- "Clean Table"
lys = 'Rrrowr rawr acid', -- "Steal Lysergic Acid"
die = 'Rrrowr rawr ether', -- "Steal Diethylamide"
buyt = 'Rraar rawr tab', -- "Buy Tabs"
},
mescaline = {
pick = 'Rrrowr rawr cactus', -- "Pick Cactus"
dry = 'Rraar rawr cactus hnnnngg', -- "Dry Out Cactus"
},
meth = {
bag = 'Rrrowr rawr baggie', -- "Bag Up Meth"
enter = 'Rrrowr hnnnngg kraar', -- "Enter Building"
exit = 'Hrrooo kraar', -- "Exit Building"
cook = 'Rraar rawr fire dust', -- "Cook Meth"
tray = 'Rrrowr rawr tray', -- "Grab Tray"
box = 'Rrrowr rawr box', -- "Box Up Meth"
adjust = 'Rraar rawr heat', -- "Adjust Temperature"
eph = 'Rrrowr rawr ephedrine', -- "Steal Ephedrine"
ace = 'Rrrowr rawr acetone', -- "Steal Acetone"
mission = 'Rrrowr rawr mission', -- "Get Mission"
stealfromcar = 'Rrrowr rawr car grrr' -- "Steal From Car"
},
oxy = {
pack = 'Rrrowr rawr package', -- "Get Oxy Package"
talk = 'Rrrowr rawr buyer', -- "Talk To Buyer"
pay = 'Rrrowr rawr truck', -- "Pay For Truck"
},
pha = {
fill = 'Rrrowr rawr script', -- "Fill Prescription"
},
shrooms = {
pick = 'Rrrowr rawr mushie', -- "Pick Shrooms"
},
travel = {
travel = 'Rrrowr rawr merchant', -- "Open Travelling Merchant"
},
xtc = {
iso = 'Rrrowr rawr iso', -- "Steal Isosafrole"
mdp = 'Rrrowr rawr mdp2p', -- "Steal MDP2P"
raw = 'Rrrowr rawr raw xtc', -- "Make Raw XTC"
press = 'Rrrowr rawr press', -- "Buy XTC Press"
stamp = 'Rrrowr rawr stamp', -- "Stamp Pills"
make = 'Rrrowr rawr xtc', -- "Make XTC"
pick = 'Rrrowr rawr press up', -- "Pick Up Press"
},
weed = {
pick = 'Rrrowr rawr weed', -- "Pick Weed"
dry = 'Rraar rawr weed hnnnngg', -- "Dry Weed"
dpick = 'Rrrowr rawr dried weed', -- "Pick Dried Weed"
butt = 'Rrrowr rawr edible menu', -- "Open Edible Menu"
oil = 'Rrrowr rawr oil', -- "Make Oil"
},
Wholesale = {
talk = 'Rrrowr rawr buyer' -- "Talk To Buyer"
},
}
-- 🌿 COKE: Wookiee Leaf Dust Hustle
Lang.Coke = {
picking = "Rrrowr rawr leaf",
makepow = 'Rraar rawr leaf dust',
cutting = 'Rraar rawr dust sparkle',
bagging = "Rraar rawr baggie wrooowr",
cut = "Rraar rawr dust cut",
nocutcoke = "Rrrowr rawr no dust? RRAAARRGH!",
bagcoke = "Rraar rawr bagged dust",
nobagcoke = "Rrrowr rawr no dust? RRAAARRGH!",
}
-- 💥 CRACK: Fire Rock Time
Lang.Crack = {
cookcrack = "Rraar rawr fire rock",
bagcrack = 'Rraar rawr baggie wrooowr',
makecrack = 'Rraar rawr nice rock',
nocoke = 'Rrrowr rawr no dust? RRAAARRGH!',
}
-- 🛍️ CORNER SELLING: Street Hustle
Lang.Cornerselling = {
inveh = 'Rrrowr rawr car danger! RRAAARRGH!',
toofar = "Rrrowr rawr too far den",
selling = 'Rrrowr rawr %s grrr $%s',
deny = "Rrrowr rawr no offer",
start = "Rraar rawr get cash",
stop = "Rrrowr rawr lazy",
nodrugs = "Rrrowr rawr sell air? RRAAARRGH!",
notcops = "Rrrowr rawr no cops",
no = 'Rrrowr rawr no sell here',
sell = "Rrrowr rawr selling",
}
-- 📦 DELIVERY: Wookiee Courier
Lang.Delivery = {
emailn = 'Rrrowr rawr not dealer',
emailsub = 'Rraar rawr hurry package',
emailcon = 'Rrrowr rawr if no deliver, tell mom you say FUMP! Bring %s Of %s!',
search = "Rrrowr rawr find delivery",
none = "Rrrowr rawr nothing",
busy = "Rrrowr rawr already busy",
found = "Rrrowr rawr map mark",
already = "Rrrowr rawr already go",
checkrep = "Rrrowr rawr rep: ",
pack = 'Rrrowr rawr hand package',
}
-- 💤 HEROIN: Dream Dust of the Forest
Lang.Heroin = {
pick = "Rrrowr rawr poppy",
tableout = 'Rrrowr rawr table out',
dryout = "Rraar rawr poppy sun",
cutting = "Rraar rawr dust sparkle",
secret = "Rrrowr rawr SHHHHHHH",
table = "Rrrowr rawr table down",
success = "Rraar rawr heated good",
clean = 'Rrrowr rawr table clean',
needles = 'Rrrowr rawr syringe fill',
pickup = 'Rrrowr rawr table up',
cutheroin = 'Rraar rawr cut dust',
noheroin = "Rrrowr rawr no dust? RRAAARRGH!",
vial = 'Rraar rawr made vial',
novial = "Rrrowr rawr no dust? RRAAARRGH!",
fail = 'Rraar rawr too hot! RRAAARRGH!',
fill = 'Rrrowr rawr syringe full',
nofill = 'Rrrowr rawr no dust? RRAAARRGH!',
haskit = 'Rrrowr rawr already have kit'
}
-- 🟪 LEAN: Purple Syrup of the Ancients
Lang.Lean = {
marked = 'Rrrowr rawr car marked',
lean = 'Rrrowr rawr purple juice',
dextro = 'Rrrowr rawr red juice',
act = 'Rrrowr rawr already task',
}
-- 🌈 LSD: Magic of the Ancient Trees
Lang.lsd = {
steallys = 'Rrrowr rawr acid steal',
stealdie = 'Rrrowr rawr ether steal',
tableout = 'Rrrowr rawr table out',
tablepack = 'Rrrowr rawr pack table',
heat = 'Rraar rawr heat liquid',
clean = 'Rrrowr rawr clean table',
refine = 'Rraar rawr refine pure',
dip = 'Rrrowr rawr dab paper',
buypaper = 'Rrrowr rawr buy paper',
buykit = 'Rrrowr rawr buy kit',
place = 'Rrrowr rawr place table',
hav = 'Rrrowr rawr already table',
lys = 'Rrrowr rawr got acid',
die = 'Rrrowr rawr got ether',
cleaned = 'Rrrowr rawr table clean',
madelsd = 'Rraar rawr made magic',
failed = 'Rraar rawr too hot! RRAAARRGH!',
refined = 'Rraar rawr refined good',
broke = 'Rrrowr rawr no cash! RRAAARRGH!',
novial = 'Rrrowr rawr no vials',
}
-- 🌵 MESCALINE: Desert Cactus of the Ancients
Lang.mescaline = {
pick = "Rrrowr rawr cactus",
dry = 'Rraar rawr cactus sun',
nocactus = 'Rrrowr rawr no cactus',
eat = 'Rrrowr rawr eat cactus'
}
-- ✨ METH: Fire Dust of the Northern Clans
Lang.meth = {
inside = 'Rrrowr rawr already full',
increaseheat = 'Rraar rawr heat up',
mission = 'Rrrowr rawr car marked',
ace = 'Rrrowr rawr got acetone',
eph = 'Rrrowr rawr got ephedrine',
mix = 'Rraar rawr mix dust',
nobag = 'Rrrowr rawr no bags',
act = 'Rrrowr rawr already task',
}
-- 💊 OXY: Healing Dust of the Elders
Lang.oxy = {
truck = 'Rrrowr rawr truck here',
cantcarry = 'Rrrowr rawr too heavy',
hand = 'Rrrowr rawr hand over',
empty = 'Rrrowr rawr empty hands? RRAAARRGH!',
broke = 'Rrrowr rawr no cash! RRAAARRGH!',
hot = 'Rrrowr rawr car hot! Dump!',
next = 'Rrrowr rawr go next'
}
-- 🩺 PHARMA: Medicine of the Healers
Lang.Pharma = {
notems = 'Rrrowr rawr not healer',
write = 'Rrrowr rawr write script',
fill = 'Rrrowr rawr fill script',
open = 'Rrrowr rawr open bottle',
pills = 'Rrrowr rawr got pills!',
no = 'Rrrowr rawr no script'
}
-- 🍄 SHROOMS: Forest Spirits' Gift
Lang.Shrooms = {
pick = 'Rrrowr rawr pick mushie',
eat = 'Rrrowr rawr eat mushie',
trip = 'Rrrowr rawr good trip!'
}
-- 🌿 WEED: Green Gift of the Trees
Lang.Weed = {
pick = 'Rrrowr rawr harvest weed',
busy = 'Rrrowr rawr already drying',
canna = 'Rrrowr rawr make butter',
brown = 'Rrrowr rawr make brownie',
cook = 'Rrrowr rawr make cookie',
Choc = 'Rrrowr rawr make chocolate',
muff = 'Rrrowr rawr make muffin',
stovehot = 'Rrrowr rawr stove hot! Wait!',
shat = 'Rrrowr rawr make shatter',
roll = 'Rrrowr rawr roll blunt',
wait = 'Rrrowr rawr wait drive',
take = 'Rrrowr rawr take weed',
nodry = 'Rrrowr rawr need wet weed',
noweed = 'Rrrowr rawr no weed? RRAAARRGH!',
noshat = 'Rrrowr rawr need shatter',
notorch = 'Rrrowr rawr need fire stick'
}
-- 💊 XTC: Sacred Pill of the Dance Clans
Lang.xtc = {
out = 'Rrrowr rawr press out',
pressing = 'Rrrowr rawr pressing pills',
raw = 'Rrrowr rawr make raw xtc',
mdp2p = 'Rrrowr rawr steal mdp2p',
iso = 'Rrrowr rawr steal iso',
fail = 'Rrrowr rawr circle not hard!',
pickup = 'Rrrowr rawr pick up press',
stamp = 'Rrrowr rawr stamp %s pills',
buyp = "Rrrowr rawr buy press",
cash = 'Rrrowr rawr need 20k cash',
press = {
title = {single = 'Rrrowr rawr single', dual = 'Rrrowr rawr dual', triple = 'Rrrowr rawr triple', quad = 'Rrrowr rawr quad'},
des = {
single = 'Rrrowr rawr buy single press 20k',
dual = 'Rrrowr rawr 20 unstamped and press',
triple = 'Rrrowr rawr 50 unstamped and press',
quad = 'Rrrowr rawr 150 unstamped and press'
}
}
}
-- 💼 WHOLESALE: Great Trade of the Clans
Lang.Wholesale = {
al = 'Rrrowr rawr already deliver',
na = 'Rrrowr rawr no answer'
}
return Lang
+59 -7
View File
@@ -1,7 +1,47 @@
local cocaineRecipes = {
cokepowder = {
tier1 = {take = {coca_leaf = 1}, give = {coke = 1}},
tier2 = {take = {coca_leaf = 1}, give = {cokestagetwo = 1}},
tier3 = {take = {coca_leaf = 1}, give = {cokestagethree = 1}},
},
cutcoke = {
tier1 = {take = {coke = 1, bakingsoda = 1}, give = {loosecoke = 1}},
tier2 = {take = {cokestagetwo = 1, bakingsoda = 1}, give = {loosecokestagetwo = 1}},
tier3 = {take = {cokestagethree = 1, bakingsoda = 1}, give = {loosecokestagethree = 1}},
},
bagcoke = {
tier1 = {take = {loosecoke = 1, empty_weed_bag = 1}, give = {cokebaggy = 1}},
tier2 = {take = {loosecokestagetwo = 1, empty_weed_bag = 1}, give = {cokebaggystagetwo = 1}},
tier3 = {take = {loosecokestagethree = 1, empty_weed_bag = 1}, give = {cokebaggystagethree = 1}},
}
}
local cocaineLocations = {
MakePowder = {
{loc = vector3(1086.20, -3195.30, -39.20), l = 1.0, w = 1.0, rot = 45.0, gang = "ballas"},
{loc = vector3(1090.15, -3199.5, -39.18), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
{loc = vector3(1093.09, -3199.53, -39.05), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
CuttingCoke = {
{loc = vector3(1095.61, -3195.62, -39.13), l = 1.0, w = 1.0, rot = 45.0, offset = vec3(-1.782227, 0.445068, -0.502701), rotation = vector3(0,0,0), gang = ""},
{loc = vector3(1092.74, -3196.68, -38.99), l = 1.0, w = 1.0, rot = 45.0, offset = vec3(1.983398, 0.407959, -0.642696), rotation = vector3(0,0,180.0), gang = ""},
},
BaggingCoke = {
{loc = vector3(1093.16, -3195.78, -39.19), l = 1.0, w = 1.0, rot = 45.0,offset = vec3(4.515137, 2.542969, -0.814194), rotation = vector3(0,0,180.0), gang = ""},
{loc = vector3(1090.17, -3196.59, -38.99), l = 1.0, w = 1.0, rot = 45.0, offset = vec3(-5.207642, -1.666504, -1.014198), rotation = vector3(0,0, 0.0), gang = ""},
},
cokeTele = {
{inside = vector3(1088.81, -3187.57, -38.99), outside = vector3(198.16, -1276.92, 29.33), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
}
}
ps.registerCallback('md-drugs:server:GetCokeLocations', function()
return cocaineLocations
end)
RegisterServerEvent('md-drugs:server:makepowder', function(num) RegisterServerEvent('md-drugs:server:makepowder', function(num)
local src = source local src = source
if not ps.checkDistance(src, GlobalState.MDDrugsLocs.MakePowder[num].loc, 3.5) then if not ps.checkDistance(src, cocaineLocations.MakePowder[num].loc, 3.5) then
ps.notify(src, 'You are not in the correct location', 'error') ps.notify(src, 'You are not in the correct location', 'error')
return return
end end
@@ -14,13 +54,16 @@ RegisterServerEvent('md-drugs:server:makepowder', function(num)
tier = 'tier3' tier = 'tier3'
end end
end end
if not GetRecipe(src, 'cocaine', 'cokepowder', tier) then return end if not ps.craftItem(src, cocaineRecipes['cocaine']['cokepowder'][tier]) then
ps.notify(src, 'You do not have the required items', 'error')
return
end
end) end)
RegisterServerEvent('md-drugs:server:cutcokeone', function(num) RegisterServerEvent('md-drugs:server:cutcokeone', function(num)
local src = source local src = source
local tier = 'tier1' local tier = 'tier1'
if not ps.checkDistance(src, GlobalState.MDDrugsLocs.CuttingCoke[num].loc, 2.5) then if not ps.checkDistance(src, cocaineLocations.CuttingCoke[num].loc, 2.5) then
ps.notify(src, 'You are not in the correct location', 'error') ps.notify(src, 'You are not in the correct location', 'error')
return return
end end
@@ -37,13 +80,16 @@ RegisterServerEvent('md-drugs:server:cutcokeone', function(num)
end end
end end
end end
if not GetRecipe(src, 'cocaine', 'cutcoke', tier) then return end if not ps.craftItem(src, cocaineRecipes['cocaine']['cutcoke'][tier]) then
ps.notify(src, 'You do not have the required items', 'error')
return
end
end) end)
RegisterServerEvent('md-drugs:server:bagcoke', function(num) RegisterServerEvent('md-drugs:server:bagcoke', function(num)
local src = source local src = source
local tier = 'tier1' local tier = 'tier1'
if not ps.checkDistance(src, GlobalState.MDDrugsLocs.BaggingCoke[num].loc, 2.5) then if not ps.checkDistance(src, cocaineLocations.BaggingCoke[num].loc, 2.5) then
ps.notify(src, 'You are not in the correct location', 'error') ps.notify(src, 'You are not in the correct location', 'error')
return return
end end
@@ -59,10 +105,16 @@ RegisterServerEvent('md-drugs:server:bagcoke', function(num)
break break
end end
end end
if not GetRecipe(src, 'cocaine', 'bagcoke', tier) then return end if not ps.craftItem(src, cocaineRecipes['cocaine']['bagcoke'][tier]) then
ps.notify(src, 'You do not have the required items', 'error')
return
end
AddRep(src, 'coke') AddRep(src, 'coke')
else else
if not GetRecipe(src, 'cocaine', 'bagcoke', 'tier1') then return end if not ps.craftItem(src, cocaineRecipes['cocaine']['bagcoke'][tier]) then
ps.notify(src, 'You do not have the required items', 'error')
return
end
end end
end) end)
+34 -4
View File
@@ -1,8 +1,32 @@
local crackRecipe = {
cookcrack = {
tier1 = {take = {loosecoke = 1, bakingsoda = 1}, give = {crackrock = 1}},
tier2 = {take = {loosecokestagetwo = 1, bakingsoda = 1}, give = {crackrockstagetwo = 1}},
tier3 = {take = {loosecokestagethree = 1,bakingsoda = 1}, give = {crackrockstagethree = 1}},
},
bagcrack = {
tier1 = {take = {crackrock = 1, empty_weed_bag = 1}, give = {baggedcracked = 1}},
tier2 = {take = {crackrockstagetwo = 1, empty_weed_bag = 1}, give = {baggedcrackedstagetwo = 1}},
tier3 = {take = {crackrockstagethree = 1, empty_weed_bag = 1}, give = {baggedcrackedstagethree = 1}},
}
}
local CrackLocations = {
makecrack = { -- make crack with baking soda with cut coke 1-3
{loc = vector3(2433.47, 4970.02, 42.18), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
bagcrack = { --- bag crack 1-3 stages
{loc = vector3(2436.55, 4964.96, 42.18), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
}
ps.registerCallback('md-drugs:server:GetCrackLocations', function()
return CrackLocations
end)
RegisterServerEvent('md-drugs:server:makecrackone', function(num) RegisterServerEvent('md-drugs:server:makecrackone', function(num)
local src = source local src = source
local tier = 'tier1' local tier = 'tier1'
if not ps.checkDistance(src, GlobalState.MDDrugsLocs.makecrack[num].loc, 2.0) then if not ps.checkDistance(src, CrackLocations.makecrack[num].loc, 2.0) then
ps.notify(src, 'You are not in the correct location', 'error') ps.notify(src, 'You are not in the correct location', 'error')
return return
end end
@@ -19,14 +43,17 @@ RegisterServerEvent('md-drugs:server:makecrackone', function(num)
end end
end end
end end
if not GetRecipe(src, 'crack', 'cookcrack', tier) then return end if not ps.craftItem(src, crackRecipe['crack']['cookcrack'][tier]) then
ps.notify(src, 'You do not have the required items', 'error')
return
end
end) end)
RegisterServerEvent('md-drugs:server:bagcrack', function(num) RegisterServerEvent('md-drugs:server:bagcrack', function(num)
local src = source local src = source
local tier = 'tier1' local tier = 'tier1'
if not ps.checkDistance(src, GlobalState.MDDrugsLocs.bagcrack[num].loc, 2.0) then if not ps.checkDistance(src, CrackLocations.bagcrack[num].loc, 2.0) then
ps.notify(src, 'You are not in the correct location', 'error') ps.notify(src, 'You are not in the correct location', 'error')
return return
end end
@@ -43,7 +70,10 @@ RegisterServerEvent('md-drugs:server:bagcrack', function(num)
end end
end end
end end
if not GetRecipe(src, 'crack', 'bagcrack', tier) then return end if not ps.craftItem(src, crackRecipe['crack']['bagcrack'][tier]) then
ps.notify(src, 'You do not have the required items', 'error')
return
end
end) end)
local cokecut = {crackrockstagetwo = 2, crackrockstagethree = 3} local cokecut = {crackrockstagetwo = 2, crackrockstagethree = 3}
+70 -17
View File
@@ -1,4 +1,46 @@
local heroinLabKits = {} local heroinLabKits = {}
local heroinRecipes = {
dryheroin = {
tier1 = {take = {poppyresin = 1}, give = {heroin = 1}},
tier2 = {take = {poppyresin = 1}, give = {heroinstagetwo = 1}},
tier3 = {take = {poppyresin = 1}, give = {heroinstagethree = 1}},
},
cutheroin = {
tier1 = {take = {heroin = 1, bakingsoda = 1}, give = {heroincut = 1}},
tier2 = {take = {heroinstagetwo = 1, bakingsoda = 1}, give = {heroincutstagetwo = 1}},
tier3 = {take = {heroinstagethree = 1, bakingsoda = 1}, give = {heroincutstagethree = 1}},
},
fillvial = {
tier1 = {take = {heroincut = 1, emptyvial = 1}, give = {heroinvial = 1}},
tier2 = {take = {heroincutstagetwo = 1, emptyvial = 1}, give = {heroinvialstagetwo = 1}},
tier3 = {take = {heroincutstagethree = 1, emptyvial = 1}, give = {heroinvialstagethree = 1}},
},
fillneedle = {
tier1 = {take = {heroinvial = 1, needle = 1}, give = {heroin_ready = 1}},
tier2 = {take = {heroinvialstagetwo = 1, needle = 1}, give = {heroin_readystagetwo = 1}},
tier3 = {take = {heroinvialstagethree = 1, needle = 1}, give = {heroin_readystagethree = 1}},
}
}
local heroinLocations = {
dryplant = { -- turn resin into powder
{loc = vector3(-1353.77, -335.58, 43.92), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
cutheroinone = { -- cut heroin stage 1-3 with baking soda
{loc = vector3(-1360.14, -337.03, 43.92), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
fillneedle = { -- fill needles with heroin
{loc = vector3(-1366.32, -334.40, 44.44), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
buyKit = {
{ped = 'a_m_m_farmer_01',loc = vector4(-1366.32, -334.40, 44.44,180.0), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
}
}
ps.registerCallback('md-drugs:server:GetHeroinLocations', function(source)
return heroinLocations
end)
local prices = { local prices = {
heroinlabkitprice = 10000 heroinlabkitprice = 10000
} }
@@ -17,25 +59,28 @@ end)
RegisterServerEvent('md-drugs:server:dryplant', function(num) RegisterServerEvent('md-drugs:server:dryplant', function(num)
local src = source local src = source
if not ps.checkDistance(src, GlobalState.MDDrugsLocs.dryplant[num].loc, 3.0) then return end if not ps.checkDistance(src, heroinLocations.dryplant[num].loc, 3.0) then return end
if not ps.hasItem(src, 'poppyresin', 1) then return end if not ps.hasItem(src, 'poppyresin', 1) then return end
local tier = 'tier1'
if Config.TierSystem then if Config.TierSystem then
local heroin = getRep(src, 'heroin') local heroin = getRep(src, 'heroin')
if heroin <= Config.Tier1 then if heroin <= Config.Tier1 then
if not GetRecipe(src, 'heroin', 'dryheroin', 'tier1') then return end tier = 'tier1'
elseif heroin >= Config.Tier1 and heroin <= Config.Tier2 then elseif heroin >= Config.Tier1 and heroin <= Config.Tier2 then
if not GetRecipe(src, 'heroin', 'dryheroin', 'tier2') then return end tier = 'tier2'
else else
if not GetRecipe(src, 'heroin', 'dryheroin', 'tier3') then return end tier = 'tier3'
end end
end
if not ps.craftItem(src, heroinRecipes['dryheroin'][tier]) then
ps.notify(src, 'You do not have the required items', 'error')
return return
end end
if not GetRecipe(src, 'heroin', 'dryheroin', 'tier1') then return end
end) end)
RegisterServerEvent('md-drugs:server:cutheroin', function(num) RegisterServerEvent('md-drugs:server:cutheroin', function(num)
local src = source local src = source
if not ps.checkDistance(src, GlobalState.MDDrugsLocs.cutheroinone[num].loc, 3.0) then return end if not ps.checkDistance(src, heroinLocations.cutheroinone[num].loc, 3.0) then return end
if not ps.hasItem(src, 'bakingsoda', 1) then return end if not ps.hasItem(src, 'bakingsoda', 1) then return end
if Config.TierSystem then if Config.TierSystem then
local itemList = { local itemList = {
@@ -45,20 +90,26 @@ RegisterServerEvent('md-drugs:server:cutheroin', function(num)
} }
for k, v in pairs(itemList) do for k, v in pairs(itemList) do
local cuth = ps.hasItem(src, k) local cuth = ps.hasItem(src, k)
if cuth then if cuth then
if not GetRecipe(src, 'heroin', 'cutheroin', v) then return end if not ps.craftItem(src, heroinRecipes['cutheroin'][v]) then
ps.notify(src, 'You do not have the required items', 'error')
return
end
AddRep(src, 'heroin') AddRep(src, 'heroin')
return return
end end
end end
else else
if not GetRecipe(src, 'heroin', 'cutheroin', 'tier1') then return end if not ps.craftItem(src, heroinRecipes['cutheroin']['tier1']) then
ps.notify(src, 'You do not have the required items', 'error')
return
end
end end
end) end)
RegisterServerEvent('md-drugs:server:getheroinlabkit', function() RegisterServerEvent('md-drugs:server:getheroinlabkit', function(num)
local src = source local src = source
if not ps.checkDistance(src, GlobalState.MDDrugsLocs.singleSpot.buyheroinlabkit, 3.0) then return end if not ps.checkDistance(src, heroinLocations.buyKit[num].loc, 3.0) then return end
local has = ps.hasItem(src, 'heroinlabkit') local has = ps.hasItem(src, 'heroinlabkit')
if has then ps.notify(src, Lang.Heroin.haskit, 'error') return end if has then ps.notify(src, Lang.Heroin.haskit, 'error') return end
if ps.removeMoney(src, 'cash', prices.heroinlabkitprice) then if ps.removeMoney(src, 'cash', prices.heroinlabkitprice) then
@@ -93,7 +144,7 @@ ps.createUseable('heroinlabkit', function(source, item)
local src = source local src = source
if not ps.hasItem(src, 'heroinlabkit', 1) then return end if not ps.hasItem(src, 'heroinlabkit', 1) then return end
local placed, loc = ps.callback('md-drugs:client:setheroinlabkit', src) local placed, loc = ps.callback('md-drugs:client:setheroinlabkit', src)
if placed then if placed then
ps.removeItem(src, 'heroinlabkit', 1) ps.removeItem(src, 'heroinlabkit', 1)
table.insert(heroinLabKits, { table.insert(heroinLabKits, {
src = src, src = src,
@@ -118,13 +169,16 @@ RegisterServerEvent('md-drugs:server:heatliquidheroin', function()
for k, v in pairs(itemList) do for k, v in pairs(itemList) do
local cuth = ps.hasItem(src, k) local cuth = ps.hasItem(src, k)
if cuth then if cuth then
if not GetRecipe(src, 'heroin', 'fillvial', v) then return end if not ps.craftItem(src, heroinRecipes['fillvial'][v]) then
ps.notify(src, 'You do not have the required items', 'error')
return
end
AddRep(src, 'heroin') AddRep(src, 'heroin')
return return
end end
end end
else else
if not GetRecipe(src, 'heroin', 'fillvial', 'tier1') then return end if not ps.craftItem(src, heroinRecipes['fillvial']['tier1']) then return end
end end
end) end)
@@ -162,15 +216,14 @@ RegisterServerEvent('md-drugs:server:fillneedle', function(num)
for k, v in pairs(itemList) do for k, v in pairs(itemList) do
local vh = ps.hasItem(src, v.item) local vh = ps.hasItem(src, v.item)
if vh then if vh then
if not GetRecipe(src, 'heroin', 'fillneedle', v.tier) then return end if not ps.craftItem(src, heroinRecipes['fillneedle'][v.tier]) then return end
AddRep(src, 'heroin') AddRep(src, 'heroin')
--Log(ps.getPlayerName(src) .. v.log, 'heroin')
return return
end end
end end
ps.notify(src,Lang.Heroin.nofill, "error") ps.notify(src,Lang.Heroin.nofill, "error")
else else
if not GetRecipe(src, 'heroin', 'fillneedle', 'tier1') then return end if not ps.craftItem(src, heroinRecipes['fillneedle']['tier1']) then return end
end end
end) end)
+26 -1
View File
@@ -1,5 +1,30 @@
local onRun = {} local onRun = {}
local leanLocs = {
MakeLean = {
{
loc = vector3(2635.81, 4240.57, 45.32),
checks = { -- these can be arrays like {'police', 'ambulance'} or just a single string like 'police'
--gang = {},
--item = {},
--job = {},
--citizenid = {}
}
},
},
SyrupVendor = {
{ped = 'a_m_m_farmer_01', loc = vector4(365.21, -578.77, 39.30, 347.23), l = 1.0, w = 1.0, rot = 347.23, gang = ""},
},
StartLoc = { -- where truck spawns for lean and meth missions
vector3(-2307.22, 434.77, 174.47),
vector3(614.75, 1786.26, 199.39),
vector3(-224.89, 6388.32, 31.59)
},
}
ps.registerCallback('md-drugs:server:GetLeanLocs', function(source)
return leanLocs
end)
local function setTimeout(identifier) local function setTimeout(identifier)
if onRun[identifier] then if onRun[identifier] then
@@ -25,7 +50,7 @@ RegisterServerEvent('md-drugs:server:givelean', function()
end) end)
exports.ps_lib:registerCrafter({ exports.ps_lib:registerCrafter({
loc = GlobalState.MDDrugsLocs.MakeLean, loc = leanLocs.MakeLean,
recipes = { recipes = {
cupoflean = { cupoflean = {
amount = 1, amount = 1,
-161
View File
@@ -1,161 +0,0 @@
local Target = {
MakePowder = { -- where you chop your coca leaves to make powder
{loc = vector3(1086.20, -3195.30, -39.20), l = 1.0, w = 1.0, rot = 45.0, gang = "ballas"},
{loc = vector3(1090.15, -3199.5, -39.18), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
{loc = vector3(1093.09, -3199.53, -39.05), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
CuttingCoke = { -- only active if Config.FancyCokeAnims = false
{loc = vector3(1095.61, -3195.62, -39.13), l = 1.0, w = 1.0, rot = 45.0, offset = vec3(-1.782227, 0.445068, -0.502701), rotation = vector3(0,0,0), gang = ""},
{loc = vector3(1092.74, -3196.68, -38.99), l = 1.0, w = 1.0, rot = 45.0, offset = vec3(1.983398, 0.407959, -0.642696), rotation = vector3(0,0,180.0), gang = ""},
},
BaggingCoke = { -- only active if Config.FancyCokeAnims = false
{loc = vector3(1093.16, -3195.78, -39.19), l = 1.0, w = 1.0, rot = 45.0,offset = vec3(4.515137, 2.542969, -0.814194), rotation = vector3(0,0,180.0), gang = ""},
{loc = vector3(1090.17, -3196.59, -38.99), l = 1.0, w = 1.0, rot = 45.0, offset = vec3(-5.207642, -1.666504, -1.014198), rotation = vector3(0,0, 0.0), gang = ""},
},
makecrack = { -- make crack with baking soda with cut coke 1-3
{loc = vector3(2433.47, 4970.02, 42.18), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
bagcrack = { --- bag crack 1-3 stages
{loc = vector3(2436.55, 4964.96, 42.18), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
lysergicacid = { -- get lysergic acid
{loc = vector3(-1381.21, -327.75, 39.85), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
{loc = vector3(2405.53, 5008.39, 46.02), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
diethylamide = { -- get diethylamide
{loc = vector3(-1371.71, -316.02, 39.53), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
{loc = vector3(2408.38, 5011.18, 46.08), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
gettabs = { -- buy tab paper
{loc = vector3(-1370.77, -314.51, 39.58), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
{loc = vector3(2409.59, 5012.45, 46.09), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
buyLSDkit = {
{ped = 'g_f_y_families_01', loc = vector4(2598.47, 5033.06, 105.86, 283.51), l = 1.0, w = 1.0, rot = 283.51, gang = ""},
},
dryplant = { -- turn resin into powder
{loc = vector3(-1353.77, -335.58, 43.92), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
cutheroinone = { -- cut heroin stage 1-3 with baking soda
{loc = vector3(-1360.14, -337.03, 43.92), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
fillneedle = { -- fill needles with heroin
{loc = vector3(-1366.32, -334.40, 44.44), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
isosafrole = { -- where to steal isosafrole
{loc = vector3(844.39, -902.92, 25.42), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
mdp2p = { -- where to steal mdp2p
{loc = vector3(844.4, -898.79, 25.23), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
rawxtcloc = { -- where to combine the 2 ingridents to make raw xtc
{loc = vector3(844.71, -910.33, 25.37), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
stamp = { -- where to stamp pills
{loc = vector3(844.71, -900.56, 25.43), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
FillPrescription = { -- where to fill out your prescription
{loc = vector3(2855.62, 4446.73, 48.53), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
DryOutMescaline = { -- where to dry out mescaline
{loc = vector3(2638.22, 4237.93, 44.78), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
MakeLean = {
{
loc = vector3(2635.81, 4240.57, 45.32),
checks = { -- these can be arrays like {'police', 'ambulance'} or just a single string like 'police'
--gang = {},
--item = {},
--job = {},
--citizenid = {}
}
},
},
CookMeth = {
{loc = vector3(1006.09, -3200.59, -38.52), l = 1.0, w = 1.0, rot = 45.0, offset = vec3(4.79, 2.13, -0.41), rotation = vector3(0,0,0.0), gang = ""},
},
MethDials = {
{loc = vector3(1007.89, -3201.17, -38.99),l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
MethSmash = {
{loc = vector3(1012.04, -3194.96, -38.99), bucket = vector4(1012.86, -3194.13, -39.20, 90.00), l = 1.0, w = 1.0, rot = 45.0, offset = vec3(-3.143311, -1.666748, -1.010128), rotation = vector3(0,0,0.0), gang = ""},
},
BagMeth = {
{loc = vector3(1014.25, -3194.93, -38.99), l = 1.0, w = 1.0, rot = 45.0, offset = vec3(-4.9, -1.70, -1.01), rotation = vector3(0,0,0.0), gang = ""},
},
MethEph = { -- get ephedrine
{loc = vector3(3559.86, 3673.9, 28.13), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
Methace = { -- get acetone
{loc = vector3(3535.41, 3661.05, 28.12), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
MethHeist = {
{loc = vector4(-1520.84, 827.72, 181.66, 184.13), ped = 'a_m_m_farmer_01', gang = ""},
},
SyrupVendor = {
{ped = 'a_m_m_farmer_01', loc = vector4(365.21, -578.77, 39.30, 347.23), l = 1.0, w = 1.0, rot = 347.23, gang = ""},
},
OxyPayForTruck = {
{loc = vector3(1437.64, -1491.91, 63.62), truckSpawn = vector4(1450.87, -1482.13, 63.22, 69.95), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
singleSpot = {
CokeTeleIn = vector3(198.16, -1276.92, 29.33), -- where you target to go inside coke
CokeTeleOut = vector3(1088.81, -3187.57, -38.99), -- where you target to leave coke
buylsdlabkit = vector4(2598.47, 5033.06, 105.86, 283.51), -- buy lab kit for lsd
buyheroinlabkit = vector4(-1358.77, -339.12, 43.92, 302.13), -- buy lab kit for heroin
buypress = vector3(845.82, -884.79, 25.18), -- buy lab kit for xtc
weedTelein = vector3(244.74, 374.54, 105.74), -- where you target to tele in
weedTeleout = vector3(1066.31, -3183.36, -39.16), -- where you target to tele out
MakeButter = vector3(1045.48, -3198.49, -38.22), -- where you make cannabutter and baked edibles
MakeOil = vector3(1038.90, -3198.66, -38.17), -- where you make shatter
WeedSaleman = vector4(1030.77, -3203.18, -38.2, 262.37), -- where the weed saleman is
MethTeleIn = vector3(-2222.04, 303.99, 174.6), -- where you target to tele in meth
MethTeleOut = vector3(996.91, -3200.83, -36.39), -- where you target to tele out meth
MethHeistStart = vector4(-1520.84, 827.72, 181.66, 184.13), -- where you get the mission to get ingridients if meth heist = true
truckspawn = vector4(1450.87, -1482.13, 63.22, 69.95), --- where the truck will spawn when you pay for it
Payfortruck = vector3(1437.64, -1491.91, 63.62), --- where you pay for the truck
},
StartLoc = { -- where truck spawns for lean and meth missions
vector3(-2307.22, 434.77, 174.47),
vector3(614.75, 1786.26, 199.39),
vector3(-224.89, 6388.32, 31.59)
},
WeedDry = {
{loc = vector3(1043.0, -3191.59, -38.39),},
{loc = vector3(1041.0, -3191.59, -38.39),},
{loc = vector3(1045.0, -3191.59, -38.39),},
{loc = vector3(1039.0, -3191.59, -38.39),},
},
Travellingmerchant = { -- where the travelling merchant can spawn
vector4(-119.66, -977.43, 304.25, 88.21),
vector4(-1522.93, 1476.01, 111.45, 41.25),
vector4(-3278.98, 973.38, 5.35, 101.53),
},
oxylocations = {
vector4(-2352.32, 266.78, 165.3, 23.46),
vector4(-1467.49, 874.01, 183.59, 298.45),
vector4(-856.71, 874.26, 202.85, 205.3),
vector4(950.58, -128.49, 74.42, 205.3),
vector4(1152.71, -328.43, 69.21, 205.3),
vector4(112.66, -1955.67, 20.75, 37.94),
vector4(-544.4, -1684.8, 19.89, 252.07),
vector4(-1185.02, -1805.4, 3.91, 184.83),
vector4(-1641.4, -981.99, 7.58, 35.38),
vector4(-1827.93, 782.36, 138.29, 219.99),
vector4(-320.84, 2818.73, 59.45, 337.22),
vector4(474.88, 2609.56, 44.48, 357.0),
}
}
GlobalState.MDDrugsLocs = Target
local loc = Target.Travellingmerchant[math.random(1, #Target.Travellingmerchant)]
ps.registerCallback('md-drugs:server:GetMerchant', function(source)
return loc
end)
function getRandW(src)
local rand = math.random(1, #Target.oxylocations)
return Target.oxylocations[rand]
end
+41 -14
View File
@@ -3,6 +3,34 @@ local prices = {
tabcost = 100, -- price per piece of tab paper event does 10 at a time tabcost = 100, -- price per piece of tab paper event does 10 at a time
lsdlabkitcost = 10000 -- price of the lsd lab kit lsdlabkitcost = 10000 -- price of the lsd lab kit
} }
local lsdRecipes = {
vial = {
heat = {take = {lysergic_acid = 1, diethylamide = 1,}, give = {lsd_one_vial = 1}}
},
}
local lsdLocations = {
lysergicacid = { -- get lysergic acid
{loc = vector3(-1381.21, -327.75, 39.85), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
{loc = vector3(2405.53, 5008.39, 46.02), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
diethylamide = { -- get diethylamide
{loc = vector3(-1371.71, -316.02, 39.53), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
{loc = vector3(2408.38, 5011.18, 46.08), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
gettabs = { -- buy tab paper
{loc = vector3(-1370.77, -314.51, 39.58), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
{loc = vector3(2409.59, 5012.45, 46.09), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
buyLSDkit = {
{ped = 'g_f_y_families_01', loc = vector4(2598.47, 5033.06, 105.86, 283.51), l = 1.0, w = 1.0, rot = 283.51, gang = ""},
},
}
ps.registerCallback('md-drugs:server:GetLSDLocations', function(source)
return lsdLocations
end)
local timedOut = {} local timedOut = {}
local function timeout(src, time) local function timeout(src, time)
@@ -18,7 +46,7 @@ local lsdTables = {}
RegisterServerEvent('md-drugs:server:getlysergic', function(num) RegisterServerEvent('md-drugs:server:getlysergic', function(num)
local src = source local src = source
if timedOut[src] then return end if timedOut[src] then return end
if not ps.checkDistance(src, GlobalState.MDDrugsLocs.lysergicacid[num].loc, 2.0) then if not ps.checkDistance(src, lsdLocations.lysergicacid[num].loc, 2.0) then
ps.notify(src, ps.lang('lsd.notinloc'), "error") ps.notify(src, ps.lang('lsd.notinloc'), "error")
return return
end end
@@ -29,7 +57,7 @@ end)
RegisterServerEvent('md-drugs:server:getdiethylamide', function(num) RegisterServerEvent('md-drugs:server:getdiethylamide', function(num)
local src = source local src = source
if timedOut[src] then return end if timedOut[src] then return end
if not ps.checkDistance(src, GlobalState.MDDrugsLocs.diethylamide[num].loc, 2.0) then if not ps.checkDistance(src, lsdLocations.diethylamide[num].loc, 2.0) then
ps.notify(src, Lang.lsd.notinloc, "error") ps.notify(src, Lang.lsd.notinloc, "error")
return return
end end
@@ -80,7 +108,10 @@ end)
RegisterServerEvent('md-drugs:server:heatliquid', function() RegisterServerEvent('md-drugs:server:heatliquid', function()
local src = source local src = source
if not hasLabKit(src) then return end if not hasLabKit(src) then return end
if not GetRecipe(src, 'lsd', 'vial', 'heat') then return end if not ps.craftItem(src, lsdRecipes['vial']['heat']) then
ps.notify(src, ps.lang('lsd.noliquid'), "error")
return
end
end) end)
RegisterServerEvent('md-drugs:server:failheating', function() RegisterServerEvent('md-drugs:server:failheating', function()
@@ -89,7 +120,6 @@ RegisterServerEvent('md-drugs:server:failheating', function()
ps.removeItem(src, 'lysergic_acid', 1) ps.removeItem(src, 'lysergic_acid', 1)
ps.removeItem(src, 'diethylamide', 1) ps.removeItem(src, 'diethylamide', 1)
ps.notify(src, ps.lang('prices.lsd.failed'), "error") ps.notify(src, ps.lang('prices.lsd.failed'), "error")
--Log(ps.getPlayerName(src) ..' Failed Basic LSD Like An Idiot!', 'lsd')
end) end)
@@ -107,28 +137,26 @@ if not ps.hasItem(src, 'lsd_one_vial', 1) then return end
elseif lsd >= 61 and lsd <= 90 then elseif lsd >= 61 and lsd <= 90 then
ps.addItem(src,'lsd_vial_four', 1) ps.addItem(src,'lsd_vial_four', 1)
elseif lsd >= 91 and lsd <= 120 then elseif lsd >= 91 and lsd <= 120 then
ps.addItem(src,'lsd_vial_five', 1) ps.addItem(src,'lsd_vial_five', 1)
else else
ps.addItem(src,'lsd_vial_six', 1) ps.addItem(src,'lsd_vial_six', 1)
end end
AddRep(src,'lsd') AddRep(src,'lsd')
--ps.log(ps.getPlayerName(src) ..' Refined Acid and Now Has A Rep Of ' .. lsd + 1 .. '!', 'lsd')
end end
else else
local randomchance = math.random(1,100) local randomchance = math.random(1,100)
if ps.removeItem(src,'lsd_one_vial', 1) then if ps.removeItem(src,'lsd_one_vial', 1) then
if randomchance <= 60 then if randomchance <= 60 then
ps.addItem(src,'lsd_vial_two', 1) ps.addItem(src,'lsd_vial_two', 1)
elseif randomchance >= 61 and randomchance <= 75 then elseif randomchance >= 61 and randomchance <= 75 then
ps.addItem(src,'lsd_vial_three', 1) ps.addItem(src,'lsd_vial_three', 1)
elseif randomchance >= 76 and randomchance <= 85 then elseif randomchance >= 76 and randomchance <= 85 then
ps.addItem(src,'lsd_vial_four', 1) ps.addItem(src,'lsd_vial_four', 1)
elseif randomchance >= 86 and randomchance <= 93 then elseif randomchance >= 86 and randomchance <= 93 then
ps.addItem(src,'lsd_vial_five', 1) ps.addItem(src,'lsd_vial_five', 1)
else else
ps.addItem(src,'lsd_vial_six', 1) ps.addItem(src,'lsd_vial_six', 1)
end end
--ps.log(ps.getPlayerName(src) ..' Refined Acid!', 'lsd')
end end
end end
end) end)
@@ -142,7 +170,7 @@ end)
RegisterServerEvent('md-drugs:server:gettabpaper', function(num) RegisterServerEvent('md-drugs:server:gettabpaper', function(num)
local src = source local src = source
if not ps.checkDistance(src, GlobalState.MDDrugsLocs.gettabs[num].loc, 3.0) then return end if not ps.checkDistance(src, lsdLocations.gettabs[num].loc, 3.0) then return end
if ps.removeMoney(src, 'cash', prices.tabcost * 10) then if ps.removeMoney(src, 'cash', prices.tabcost * 10) then
ps.addItem(src,'tab_paper', 10) ps.addItem(src,'tab_paper', 10)
else else
@@ -156,7 +184,7 @@ RegisterServerEvent('md-drugs:server:getlabkit', function(num)
ps.notify(src, ps.lang('lsd.havlabkit'), 'error') ps.notify(src, ps.lang('lsd.havlabkit'), 'error')
return return
end end
if not ps.checkDistance(src, GlobalState.MDDrugsLocs.buyLSDkit[num].loc, 3.0) then return end if not ps.checkDistance(src, lsdLocations.buyLSDkit[num].loc, 3.0) then return end
if ps.removeMoney(src, 'cash', prices.lsdlabkitcost) then if ps.removeMoney(src, 'cash', prices.lsdlabkitcost) then
ps.addItem(src,'lsdlabkit', 1) ps.addItem(src,'lsdlabkit', 1)
else else
@@ -201,7 +229,6 @@ for k, v in pairs (sheets) do
local math = math.random(1,10) local math = math.random(1,10)
if ps.removeItem(src, v.item, 1) then if ps.removeItem(src, v.item, 1) then
ps.addItem(src, v.recieve, math) ps.addItem(src, v.recieve, math)
--ps.log(ps.getPlayerName(src) ..' Made ' .. math .. 'Tabs of ' .. v.recieve .. '!', 'lsd')
end end
end) end)
end end
+10 -3
View File
@@ -1,8 +1,15 @@
local mescalineLocation = {
DryOutMescaline = { -- where to dry out your mescaline
{loc = vector3(1850.12, 2595.23, 45.67), l = 1.0, w = 1.0, rot = 0.0, gang = ""},
},
}
ps.registerCallback('md-drugs:server:GetMescalineLocs', function(source)
return mescalineLocation
end)
RegisterNetEvent("md-drugs:server:drymescaline", function(num) RegisterNetEvent("md-drugs:server:drymescaline", function(num)
local src = source local src = source
if not ps.checkDistance(src, GlobalState.MDDrugsLocs.DryOutMescaline[num].loc, 3.0) then if not ps.checkDistance(src, mescalineLocation.DryOutMescaline[num].loc, 3.0) then
ps.notify(src, "You are not in the right location", "error") ps.notify(src, "You are not in the right location", "error")
return return
end end
@@ -13,6 +20,6 @@ ps.createUseable("driedmescaline", function(source, item)
local src = source local src = source
if ps.removeItem(src, "driedmescaline", 1) then if ps.removeItem(src, "driedmescaline", 1) then
TriggerClientEvent("md-drugs:client:takemescaline", src) TriggerClientEvent("md-drugs:client:takemescaline", src)
--Log(GetName(source) .. ' Consumed Mescaline', 'consume')
end end
end) end)
+41 -4
View File
@@ -1,6 +1,42 @@
local onRun = {} local onRun = {}
local cool = {} local cool = {}
local methLocs = {
CookMeth = {
{loc = vector3(1006.09, -3200.59, -38.52), l = 1.0, w = 1.0, rot = 45.0, offset = vec3(4.79, 2.13, -0.41), rotation = vector3(0,0,0.0), gang = ""},
},
MethDials = {
{loc = vector3(1007.89, -3201.17, -38.99),l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
MethSmash = {
{loc = vector3(1012.04, -3194.96, -38.99), bucket = vector4(1012.86, -3194.13, -39.20, 90.00), l = 1.0, w = 1.0, rot = 45.0, offset = vec3(-3.143311, -1.666748, -1.010128), rotation = vector3(0,0,0.0), gang = ""},
},
BagMeth = {
{loc = vector3(1014.25, -3194.93, -38.99), l = 1.0, w = 1.0, rot = 45.0, offset = vec3(-4.9, -1.70, -1.01), rotation = vector3(0,0,0.0), gang = ""},
},
MethEph = { -- get ephedrine
{loc = vector3(3559.86, 3673.9, 28.13), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
Methace = { -- get acetone
{loc = vector3(3535.41, 3661.05, 28.12), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
MethHeist = {
{loc = vector4(-1520.84, 827.72, 181.66, 184.13), ped = 'a_m_m_farmer_01', gang = ""},
},
StartLoc = { -- where truck spawns for lean and meth missions
vector3(-2307.22, 434.77, 174.47),
vector3(614.75, 1786.26, 199.39),
vector3(-224.89, 6388.32, 31.59)
},
MethTele = {
{inside = vector3(996.91, -3200.83, -36.39), outside = vector3(-2222.04, 303.99, 174.6), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
}
}
ps.registerCallback('md-drugs:server:GetMethLocs', function(source)
return methLocs
end)
local function setTimeout(identifier) local function setTimeout(identifier)
if onRun[identifier] then if onRun[identifier] then
CreateThread(function() CreateThread(function()
@@ -37,6 +73,7 @@ RegisterServerEvent('md-drugs:server:givemethingridients', function()
onRun[ps.getIdentifier(src)] = nil onRun[ps.getIdentifier(src)] = nil
end end
end) end)
RegisterServerEvent('md-drugs:server:startcook', function(num) RegisterServerEvent('md-drugs:server:startcook', function(num)
local src = source local src = source
if not GetRecipe(source, 'meth', 'cook', 'heat') then return end if not GetRecipe(source, 'meth', 'cook', 'heat') then return end
@@ -45,13 +82,13 @@ end)
RegisterServerEvent('md-drugs:server:getmeth', function(num) RegisterServerEvent('md-drugs:server:getmeth', function(num)
local src = source local src = source
if not ps.checkDistance(src, GlobalState.MDDrugsLocs.BagMeth[num].loc, 2.5) then return end if not ps.checkDistance(src, methLocs.BagMeth[num].loc, 2.5) then return end
if not GetRecipe(src, 'meth', 'bag', 'bags') then return end if not GetRecipe(src, 'meth', 'bag', 'bags') then return end
end) end)
RegisterServerEvent('md-drugs:server:geteph', function(num) RegisterServerEvent('md-drugs:server:geteph', function(num)
local src = source local src = source
if not ps.checkDistance(src, GlobalState.MDDrugsLocs.MethEph[num].loc, 2.5) then return end if not ps.checkDistance(src, methLocs.MethEph[num].loc, 2.5) then return end
if not coolDown(ps.getIdentifier(src)) then return ps.notify(src, ps.lang('meth.wait'), "error") end if not coolDown(ps.getIdentifier(src)) then return ps.notify(src, ps.lang('meth.wait'), "error") end
if ps.addItem(src, 'ephedrine', 1) then if ps.addItem(src, 'ephedrine', 1) then
ps.notify(src, 'Got Ephedrine!', "success") ps.notify(src, 'Got Ephedrine!', "success")
@@ -60,7 +97,7 @@ end)
RegisterServerEvent('md-drugs:server:getace', function(num) RegisterServerEvent('md-drugs:server:getace', function(num)
local src = source local src = source
if not ps.checkDistance(src, GlobalState.MDDrugsLocs.MethAce[num].loc, 2.5) then return end if not ps.checkDistance(src, methLocs.MethAce[num].loc, 2.5) then return end
if not coolDown(ps.getIdentifier(src)) then return ps.notify(src, ps.lang('meth.wait'), "error") end if not coolDown(ps.getIdentifier(src)) then return ps.notify(src, ps.lang('meth.wait'), "error") end
if ps.addItem(src, 'acetone', 1) then if ps.addItem(src, 'acetone', 1) then
ps.notify(src, 'Got Acetone!', "success") ps.notify(src, 'Got Acetone!', "success")
@@ -69,7 +106,7 @@ end)
ps.registerCallback('md-drugs:server:startcook', function(source, num) ps.registerCallback('md-drugs:server:startcook', function(source, num)
local src = source local src = source
if not ps.checkDistance(src, GlobalState.MDDrugsLocs.CookMeth[num].loc, 2.5) then return false end if not ps.checkDistance(src, methLocs.CookMeth[num].loc, 2.5) then return false end
local recipe = GetRecipe(src, 'meth', 'cook', 'heat') local recipe = GetRecipe(src, 'meth', 'cook', 'heat')
return recipe return recipe
end) end)
+27 -3
View File
@@ -4,6 +4,30 @@ local prices = {
itemChance = 20, itemChance = 20,
} }
local onRoute = {} local onRoute = {}
local oxyLocs = {
OxyPayForTruck = {
{loc = vector3(1437.64, -1491.91, 63.62), truckSpawn = vector4(1450.87, -1482.13, 63.22, 69.95), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
oxylocations = {
vector4(-2352.32, 266.78, 165.3, 23.46),
vector4(-1467.49, 874.01, 183.59, 298.45),
vector4(-856.71, 874.26, 202.85, 205.3),
vector4(950.58, -128.49, 74.42, 205.3),
vector4(1152.71, -328.43, 69.21, 205.3),
vector4(112.66, -1955.67, 20.75, 37.94),
vector4(-544.4, -1684.8, 19.89, 252.07),
vector4(-1185.02, -1805.4, 3.91, 184.83),
vector4(-1641.4, -981.99, 7.58, 35.38),
vector4(-1827.93, 782.36, 138.29, 219.99),
vector4(-320.84, 2818.73, 59.45, 337.22),
vector4(474.88, 2609.56, 44.48, 357.0),
}
}
ps.registerCallback('md-drugs:server:GetOxyLocs', function(source)
return oxyLocs
end)
ps.registerCallback('md-drugs:server:payfortruck', function(source) ps.registerCallback('md-drugs:server:payfortruck', function(source)
local src = source local src = source
if ps.removeMoney(src, 'cash', prices.payfortruck) or ps.removeMoney(src, 'bank', prices.payfortruck) then if ps.removeMoney(src, 'cash', prices.payfortruck) or ps.removeMoney(src, 'bank', prices.payfortruck) then
@@ -24,7 +48,7 @@ RegisterServerEvent('md-drugs:server:giveoxybox', function()
return return
end end
if not ps.checkDistance(src, GlobalState.MDDrugsLocs.oxylocations[onRoute[src]], 3.5) then if not ps.checkDistance(src, oxyLocs.oxylocations[onRoute[src]], 3.5) then
ps.notify(src, ps.lang('oxy.toofar'), "error") ps.notify(src, ps.lang('oxy.toofar'), "error")
return return
end end
@@ -49,8 +73,8 @@ ps.registerCallback('md-drugs:server:getRoute', function(source)
onRoute[source] = nil onRoute[source] = nil
return false return false
else else
onRoute[source] = math.random(1, #GlobalState.MDDrugsLocs.oxylocations) onRoute[source] = math.random(1, #oxyLocs.oxylocations)
return GlobalState.MDDrugsLocs.oxylocations[onRoute[source]] return oxyLocs.oxylocations[onRoute[source]]
end end
end) end)
+14 -8
View File
@@ -1,5 +1,12 @@
local QBCore = exports['qb-core']:GetCoreObject() local pharmaLocations = {
FillPrescription = { -- where to fill out your prescription
{loc = vector3(2855.62, 4446.73, 48.53), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
}
ps.registerCallback('md-drugs:server:GetPharmaLocs', function()
return pharmaLocations
end)
local function GetJob(source) local function GetJob(source)
local src = source local src = source
return ps.getJobType(src) == 'ems' return ps.getJobType(src) == 'ems'
@@ -9,7 +16,7 @@ ps.createUseable('prescription_pad', function(source, item)
local src = source local src = source
local near = {} local near = {}
if GetJob(src) then if GetJob(src) then
local near = ps.getNearbyPlayers(src, 5.0) near = ps.getNearbyPlayers(src, 5.0)
local options = { local options = {
{label = 'Vicodin', value = 'vicodin_prescription'}, {label = 'Vicodin', value = 'vicodin_prescription'},
@@ -37,10 +44,10 @@ for m, d in pairs (pharmabottle) do
} }
for k, v in pairs (get) do for k, v in pairs (get) do
if d == k then if d == k then
ps.removeItem(src, d, 1) if ps.removeItem(src, d, 1) then
ps.addItem(src, v, math.random(10,30)) ps.addItem(src, v, math.random(10,30))
ps.notify(src,ps.lang('Pharma.unbottle'), "success") ps.notify(src,ps.lang('Pharma.unbottle'), "success")
--Log(GetName(src) .. ' Unbottled 30 Of ' .. v .. '!', 'pharma') end
end end
end end
end end
@@ -49,7 +56,7 @@ end
RegisterServerEvent('md-drugs:server:fillprescription', function(num) RegisterServerEvent('md-drugs:server:fillprescription', function(num)
local src = source local src = source
if not ps.checkDistance(src, GlobalState.MDDrugsLocs.FillPrescription[num].loc, 3.5) then if not ps.checkDistance(src, pharmaLocations.FillPrescription[num].loc, 3.5) then
return ps.notify(src, ps.lang('Pharma.toofar'), "error") return ps.notify(src, ps.lang('Pharma.toofar'), "error")
end end
local pres = { local pres = {
@@ -65,5 +72,4 @@ RegisterServerEvent('md-drugs:server:fillprescription', function(num)
break break
end end
end end
--Log(GetName(src) .. ' Filled A Prescription!', 'pharma')
end) end)
+23 -103
View File
@@ -1,63 +1,6 @@
local QBCore = exports['qb-core']:GetCoreObject()
local recipe = {
cocaine = { recipe = {
cokepowder = {
tier1 = {take = {coca_leaf = 1}, give = {coke = 1}},
tier2 = {take = {coca_leaf = 1}, give = {cokestagetwo = 1}},
tier3 = {take = {coca_leaf = 1}, give = {cokestagethree = 1}},
},
cutcoke = {
tier1 = {take = {coke = 1, bakingsoda = 1}, give = {loosecoke = 1}},
tier2 = {take = {cokestagetwo = 1, bakingsoda = 1}, give = {loosecokestagetwo = 1}},
tier3 = {take = {cokestagethree = 1, bakingsoda = 1}, give = {loosecokestagethree = 1}},
},
bagcoke = {
tier1 = {take = {loosecoke = 1, empty_weed_bag = 1}, give = {cokebaggy = 1}},
tier2 = {take = {loosecokestagetwo = 1, empty_weed_bag = 1}, give = {cokebaggystagetwo = 1}},
tier3 = {take = {loosecokestagethree = 1, empty_weed_bag = 1}, give = {cokebaggystagethree = 1}},
}
},
crack = {
cookcrack = {
tier1 = {take = {loosecoke = 1, bakingsoda = 1}, give = {crackrock = 1}},
tier2 = {take = {loosecokestagetwo = 1, bakingsoda = 1}, give = {crackrockstagetwo = 1}},
tier3 = {take = {loosecokestagethree = 1,bakingsoda = 1}, give = {crackrockstagethree = 1}},
},
bagcrack = {
tier1 = {take = {crackrock = 1, empty_weed_bag = 1}, give = {baggedcracked = 1}},
tier2 = {take = {crackrockstagetwo = 1, empty_weed_bag = 1}, give = {baggedcrackedstagetwo = 1}},
tier3 = {take = {crackrockstagethree = 1, empty_weed_bag = 1}, give = {baggedcrackedstagethree = 1}},
}
},
heroin = {
dryheroin = {
tier1 = {take = {poppyresin = 1}, give = {heroin = 1}},
tier2 = {take = {poppyresin = 1}, give = {heroinstagetwo = 1}},
tier3 = {take = {poppyresin = 1}, give = {heroinstagethree = 1}},
},
cutheroin = {
tier1 = {take = {heroin = 1, bakingsoda = 1}, give = {heroincut = 1}},
tier2 = {take = {heroinstagetwo = 1, bakingsoda = 1}, give = {heroincutstagetwo = 1}},
tier3 = {take = {heroinstagethree = 1, bakingsoda = 1}, give = {heroincutstagethree = 1}},
},
fillvial = {
tier1 = {take = {heroincut = 1, emptyvial = 1}, give = {heroinvial = 1}},
tier2 = {take = {heroincutstagetwo = 1, emptyvial = 1}, give = {heroinvialstagetwo = 1}},
tier3 = {take = {heroincutstagethree = 1, emptyvial = 1}, give = {heroinvialstagethree = 1}},
},
fillneedle = {
tier1 = {take = {heroinvial = 1, needle = 1}, give = {heroin_ready = 1}},
tier2 = {take = {heroinvialstagetwo = 1, needle = 1}, give = {heroin_readystagetwo = 1}},
tier3 = {take = {heroinvialstagethree = 1, needle = 1}, give = {heroin_readystagethree = 1}},
}
},
lsd = {
vial = {
heat = {take = {lysergic_acid = 1, diethylamide = 1,}, give = {lsd_one_vial = 1}}
},
},
mescaline = { mescaline = {
dry = { dry = {
dried = {take = {cactusbulb = 1}, give = {driedmescaline = 1} } dried = {take = {cactusbulb = 1}, give = {driedmescaline = 1} }
@@ -78,13 +21,6 @@ local recipe = {
} }
}, },
weed = { weed = {
edibles = {
cannabutter = {take = { mdbutter = 1, grindedweed = 1}, give = {cannabutter = 1}},
specialbrownie = {take = { cannabutter = 1, flour = 1, chocolate = 1}, give = {specialbrownie = 1}},
specialcookie = { take = { cannabutter = 1, flour = 1}, give = {specialcookie = 1}},
specialchocolate = { take = { cannabutter = 1, chocolate = 1}, give = {specialchocolate = 1}},
specialmuffin = { take = { cannabutter = 1, flour = 1}, give = {specialmuffin = 1}},
},
oil = { oil = {
shatter = {take = {butane = 1, grindedweed = 1}, give = {shatter = 1}} shatter = {take = {butane = 1, grindedweed = 1}, give = {shatter = 1}}
}, },
@@ -99,48 +35,32 @@ local recipe = {
dextrobluntwrap = {take = {bluntwrap = 5, mdreddextro = 1}, give = {dextrobluntwrap = 5}}, dextrobluntwrap = {take = {bluntwrap = 5, mdreddextro = 1}, give = {dextrobluntwrap = 5}},
} }
}, },
xtc = {
raw = {
raw_xtc = {take = {mdp2p = 1, isosafrole = 1}, give = {raw_xtc = 1}}
},
singlestack = {
white = {take = {raw_xtc = 1}, give = {white_xtc = 1}},
red = {take = {raw_xtc = 1, loosecoke = 1 }, give = {red_xtc = 1}},
orange = {take = {raw_xtc = 1, heroinvial = 1}, give = {orange_xtc = 1}},
blue = {take = {raw_xtc = 1, crackrock = 1 }, give = {blue_xtc = 1}},
},
dualstack = {
white = {take = {raw_xtc = 1}, give = {white_xtc2 = 1}},
red = {take = {raw_xtc = 1, loosecoke = 1}, give = {red_xtc2 = 1}},
orange = {take = {raw_xtc = 1, heroinvial = 1}, give = {orange_xtc2 = 1}},
blue = {take = {raw_xtc = 1, crackrock = 1}, give = {blue_xtc2 = 1}},
},
triplestack = {
white = {take = {raw_xtc = 1}, give = {white_xtc3 = 1}},
red = {take = {raw_xtc = 1, loosecoke = 1}, give = {red_xtc3 = 1}},
orange = {take = {raw_xtc = 1, heroinvial = 1}, give = {orange_xtc3 = 1}},
blue = {take = {raw_xtc = 1, crackrock = 1}, give = {blue_xtc3 = 1}},
},
quadstack = {
white = {take = {raw_xtc = 1}, give = {white_xtc4 = 1}},
red = {take = {raw_xtc = 1, loosecoke = 1}, give = {red_xtc4 = 1}},
orange = {take = {raw_xtc = 1, heroinvial = 1}, give = {orange_xtc4 = 1}},
blue = {take = {raw_xtc = 1, crackrock = 1}, give = {blue_xtc4 = 1}},
},
press = {
dual = {take = {white_xtc = 20, blue_xtc = 20, red_xtc = 20, orange_xtc = 20, singlepress = 1}, give = {dualpress = 1}},
triple = {take = {white_xtc2 = 50, blue_xtc2 = 50, red_xtc2 = 50, orange_xtc2 = 50, dualpress = 1}, give = {triplepres = 1}},
quad = { take = {white_xtc3 = 50, blue_xtc3 = 50, red_xtc3 = 50, orange_xtc3 = 50, triplepress = 1}, give = {quadpress = 1}}
}
}
} }
function GetRecipe(source, type, method, tier) function GetRecipe(source, type, method, tier)
print(ps.craftItem(source,recipe[type][method][tier])) return ps.craftItem(source, recipe[type][method][tier])
return ps.craftItem(source,recipe[type][method][tier])
end end
ps.registerCallback('md-drugs:server:GetRecipe', function(source, type, cat) ps.registerCallback('md-drugs:server:GetRecipe', function(source, type, cat)
if not source then return false end if not source then return false end
return recipe[type][cat] return recipe[type][cat]
end) end)
function craft(source, tbl, item)
local src = source
local need, have = 0,0
for k, v in pairs(tbl.take) do
if ps.hasItem(src, k, v) then
have = have + v
end
need = need + v
end
if need == have then
for k, v in pairs (tbl.take) do
ps.removeItem(src, k, v)
end
ps.addItem(src, item , tbl.amount)
return true
end
return false
end
+20 -11
View File
@@ -1,4 +1,22 @@
local QBCore = exports['qb-core']:GetCoreObject()
local Target = {
Travellingmerchant = { -- where the travelling merchant can spawn
vector4(-119.66, -977.43, 304.25, 88.21),
vector4(-1522.93, 1476.01, 111.45, 41.25),
vector4(-3278.98, 973.38, 5.35, 101.53),
},
}
local loc = Target.Travellingmerchant[math.random(1, #Target.Travellingmerchant)]
ps.registerCallback('md-drugs:server:GetMerchant', function(source)
return loc
end)
function getRandW(src)
local rand = math.random(1, #Target.oxylocations)
return Target.oxylocations[rand]
end
local stores = { local stores = {
travel = { travel = {
@@ -27,16 +45,7 @@ local stores = {
{name = "leancup", price = 25, amount = 50, }, {name = "leancup", price = 25, amount = 50, },
{name = "xtcburner", price = 25, amount = 50, }, {name = "xtcburner", price = 25, amount = 50, },
}, },
Weed = {
{name = "weedgrinder", price = 25, amount = 50, },
{name = "mdbutter", price = 25, amount = 50, },
{name = "flour", price = 25, amount = 50, },
{name = "chocolate", price = 25, amount = 50, },
{name = "butane", price = 25, amount = 50, },
{name = "butanetorch", price = 2, amount = 1000,},
{name = "dabrig", price = 2, amount = 1000,},
{name = "mdwoods", price = 2, amount = 1000},
},
Products = { Products = {
{name = "weed_white-widow_seed", price = 15, amount = 150, minrep = 0}, {name = "weed_white-widow_seed", price = 15, amount = 150, minrep = 0},
{name = "weed_skunk_seed", price = 15, amount = 150, minrep = 0}, {name = "weed_skunk_seed", price = 15, amount = 150, minrep = 0},
+7 -6
View File
@@ -1,10 +1,11 @@
CUI('shrooms', function(source, item) ps.createUseable('shrooms', function(source, item)
local src = source local src = source
if TriggerClientEvent('md-drugs:client:takeshrooms', src, item.name) then if not ps.callback("md-drugs:client:shrooms", src) then
RemoveItem(src, 'shrooms', 1) ps.notify(src, ps.lang('Shrooms.cancel'), "error")
--Log(GetName(source) .. ' Took Some Mushrooms', 'shrooms') return
end
ps.removeItem(src, 'shrooms', 1)
ps.notify(src, 'You Took Some Shrooms!', 'success') ps.notify(src, 'You Took Some Shrooms!', 'success')
end
end) end)
+141 -34
View File
@@ -1,51 +1,90 @@
local weedLocs = {
WeedTele = { -- where you tele out of weed
{inside = vector3(1066.31, -3183.36, -39.16), outside = vector3(244.74, 374.54, 105.74), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
MakeButter = {
{loc = vector3(1045.48, -3198.49, -38.22), checks = {}},
},
MakeOil = {
{loc = vector3(1038.90, -3198.66, -38.17), checks = {}},
},
WeedDry = {
{loc = vector3(1043.0, -3191.59, -38.39),},
{loc = vector3(1041.0, -3191.59, -38.39),},
{loc = vector3(1045.0, -3191.59, -38.39),},
{loc = vector3(1039.0, -3191.59, -38.39),},
},
WeedSalesman = {
{loc = vector4(1030.77, -3203.18, -38.2, 262.37), ped = 'a_m_m_farmer_01', gang = ""},
},
}
local weedStore = {
weedgrinder =25,
mdbutter =25,
flour =25,
chocolate =25,
butane =25,
butanetorch =2,
dabrig =2,
mdwoods =2,
}
--------------- events ps.registerCallback('md-drugs:server:GetWeedLocs', function(source)
return weedLocs
end)
ps.registerCallback('md-drugs:server:getWeedItems', function(source)
return weedStore
end)
RegisterNetEvent('md-drugs:server:buyWeedItem', function(loc, name, amount)
local src = source
if not ps.checkDistance(src, weedLocs.WeedSalesman[loc].loc, 3.5) then
ps.notify(src, ps.lang('Weed.notHere'), "error")
return
end
if not weedStore[name] then
ps.notify(src, ps.lang('Weed.notHere'), "error")
return
end
if ps.removeMoney(src, 'cash', weedStore[name] * amount) or ps.removeMoney(src, 'bank', weedStore[name] * amount) then
ps.addItem(src, name, amount)
else
ps.notify(src, ps.lang('Weed.noMoney'), "error")
end
end)
RegisterServerEvent('md-drugs:server:dryoutweed', function() RegisterServerEvent('md-drugs:server:dryoutweed', function()
local src = source local src = source
local Player = getPlayer(src) if ps.removeItem(src,"wetcannabis", 1) then
if RemoveItem(src,"wetcannabis", 1) then ps.addItem(src,"drycannabis", 1)
AddItem(src,"drycannabis", 1)
--Log(GetName(source) .. ' Dried Weed', 'weed')
else else
ps.notify(src, Lang.Weed.nodry, "error") ps.notify(src, ps.lang('Weed.nodry'), "error")
end end
end) end)
local bluntwrap = {'mdreddextro','mdlean'} local bluntwrap = {'mdreddextro','mdlean'}
for k, v in pairs (bluntwrap) do for k, v in pairs (bluntwrap) do
CUI(v, function(source, item) TriggerClientEvent('md-drugs:client:makeBluntWrap', source) end) ps.createUseable(v, function(source, item) TriggerClientEvent('md-drugs:client:makeBluntWrap', source) end)
end end
local bluntwraps = {'leanbluntwrap', 'dextrobluntwrap', 'bluntwrap'} local bluntwraps = {'leanbluntwrap', 'dextrobluntwrap', 'bluntwrap'}
for k, v in pairs (bluntwraps) do for k, v in pairs (bluntwraps) do
CUI(v, function(source, item) TriggerClientEvent('md-drugs:client:rollBlunt', source) end) ps.createUseable(v, function(source, item) TriggerClientEvent('md-drugs:client:rollBlunt', source) end)
end end
RegisterServerEvent('md-drugs:server:MakeWeedItems', function(data) RegisterServerEvent('md-drugs:server:MakeWeedItems', function(data)
local src = source local src = source
local Player = getPlayer(src)
if not Player then return end
if not GetRecipe(src, data.recipe, data.table, data.item) then return end if not GetRecipe(src, data.recipe, data.table, data.item) then return end
end) end)
RegisterServerEvent('md-drugs:server:makeoil', function(data)
local src = source
local Player = getPlayer(src)
if not Player then return end
if not GetRecipe(src, 'weed', 'oil', 'shatter') then return end
end)
ps.createUseable("dabrig", function(source, item)
CUI("dabrig", function(source, item)
local src = source local src = source
local Player = getPlayer(src) if ps.hasItem(src, "butanetorch") then
if ps.removeItem(src, "shatter", 1) then
if Player.Functions.GetItemByName("butanetorch") then
if RemoveItem(src, "shatter", 1) then
TriggerClientEvent("md-drugs:client:dodabs", src) TriggerClientEvent("md-drugs:client:dodabs", src)
end end
else else
@@ -53,25 +92,93 @@ CUI("dabrig", function(source, item)
end end
end) end)
CUI("weedgrinder", function(source, item) ps.createUseable("weedgrinder", function(source, item)
local src = source local src = source
local Player = getPlayer(src) if not ps.hasItem(src, "drycannabis") then ps.notify(src, 'You Need Dried Cannabis', 'error') return end
local has = Player.Functions.GetItemByName("drycannabis") local check = ps.callback('md-drugs:client:uncuff', src, 'Grinding Weed')
if not has then ps.notify(src, 'You Need Dried Cannabis', 'error') return end
local check = ps.callback('md-drugs:client:uncuff', src, 'Grinding Weed')
if not check then return end if not check then return end
if RemoveItem(src, "drycannabis",1 ) then if ps.removeItem(src, "drycannabis",1 ) then
AddItem(src, "grindedweed", 1) ps.addItem(src, "grindedweed", 1)
end end
end) end)
CUI("mdwoods", function(source, item) ps.createUseable("mdwoods", function(source, item)
local src = source local src = source
local Player = getPlayer(src)
local check = ps.callback('md-drugs:client:uncuff', src, 'Breaking Blunt Open') local check = ps.callback('md-drugs:client:uncuff', src, 'Breaking Blunt Open')
if not check then return end if not check then return end
if RemoveItem(src, "mdwoods",1 ) then if ps.removeItem(src, "mdwoods",1 ) then
AddItem(src, "bluntwrap", 5) ps.addItem(src, "bluntwrap", 5)
AddItem(src, "tobacco", 5) ps.addItem(src, "tobacco", 5)
end end
end) end)
exports['ps_lib']:registerCrafter({
loc = weedLocs.MakeButter,
recipes = {
cannabutter = {
amount = 1,
time = 4000,
anim = 'uncuff',
recipe = {
mdbutter = 1,
grindedweed = 1
}
},
specialbrownie = {
amount = 1,
time = 4000,
anim = 'uncuff',
recipe = {
cannabutter = 1,
flour = 1,
chocolate = 1
}
},
specialcookie = {
amount = 1,
time = 4000,
anim = 'uncuff',
recipe = {
cannabutter = 1,
flour = 1
}
},
specialchocolate = {
amount = 1,
time = 4000,
anim = 'uncuff',
recipe = {
cannabutter = 1,
chocolate = 1
}
},
specialmuffin = {
amount = 1,
time = 4000,
anim = 'uncuff',
recipe = {
cannabutter = 1,
flour = 1
}
}
}
})
exports['ps_lib']:registerCrafter({
loc = weedLocs.MakeOil,
recipes = {
shatter = {
amount = 1,
time = 4000,
anim = 'uncuff',
recipe = {
butane = 1,
grindedweed = 1
}
}
}
})
+172 -211
View File
@@ -1,251 +1,212 @@
local QBCore = exports['qb-core']:GetCoreObject()
-------------------- stealing ingridients -------------------- stealing ingridients
local RecipeList = {
raw = {
raw_xtc = {take = {mdp2p = 1, isosafrole = 1}, give = {raw_xtc = 1}}
},
singlestack = {
white_xtc = {amount = 1, take = {raw_xtc = 1}},
red_xtc = {amount = 1, take = {raw_xtc = 1, loosecoke = 1},},
orange_xtc = {amount = 1, take = {raw_xtc = 1, heroinvial = 1},},
blue_xtc = {amount = 1, take = {raw_xtc = 1, crackrock = 1},},
},
dualstack = {
white_xtc2 = {amount = 1, take = {raw_xtc = 1},},
red_xtc2 = {amount = 1, take = {raw_xtc = 1, loosecoke = 1},},
orange_xtc2 = {amount = 1, take = {raw_xtc = 1, heroinvial = 1},},
blue_xtc2 = {amount = 1, take = {raw_xtc = 1, crackrock = 1},},
},
triplestack = {
white_xtc3 = {amount = 1, take = {raw_xtc = 1},},
red_xtc3 = {amount = 1, take = {raw_xtc = 1, loosecoke = 1},},
orange_xtc3 = {amount = 1, take = {raw_xtc = 1, heroinvial = 1},},
blue_xtc3 = {amount = 1, take = {raw_xtc = 1, crackrock = 1},},
},
quadstack = {
white_xtc4 = {amount = 1, take = {raw_xtc = 1},},
red_xtc4 = {amount = 1, take = {raw_xtc = 1, loosecoke = 1},},
orange_xtc4 = {amount = 1, take = {raw_xtc = 1, heroinvial = 1},},
blue_xtc4 = {amount = 1, take = {raw_xtc = 1, crackrock = 1},},
},
presses = {
singlepress = {cash = 10000},
dualpress = {amount = 1, take = {white_xtc = 20, blue_xtc = 20, red_xtc = 20, orange_xtc = 20, singlepress = 1}},
triplepress = {amount = 1, take = {white_xtc2 = 50, blue_xtc2 = 50, red_xtc2 = 50, orange_xtc2 = 50, dualpress = 1}},
quadpress = {amount = 1, take = {white_xtc3 = 50, blue_xtc3 = 50, red_xtc3 = 50, orange_xtc3 = 50, triplepress = 1}},
}
}
local xtcLocations = {
isosafrole = { -- where to steal isosafrole
{loc = vector3(844.39, -902.92, 25.42), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
mdp2p = { -- where to steal mdp2p
{loc = vector3(844.4, -898.79, 25.23), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
rawxtcloc = { -- where to combine the 2 ingridents to make raw xtc
{loc = vector3(844.71, -910.33, 25.37), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
xtcpress = {
{ped = 'g_f_y_families_01',loc = vector4(845.82, -884.79, 25.18, 180.0), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
stamp = { -- where to stamp pills
{loc = vector3(844.71, -900.56, 25.43), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
}
ps.registerCallback('md-drugs:server:GetXtcLocs', function(source)
return xtcLocations
end)
local activePresses = {} local activePresses = {}
local timeout = {}
local function timeOut(src)
CreateThread(function()
timeout[ps.getIdentifier(src)] = true
Wait(3000)
timeout[ps.getIdentifier(src)] = nil
end)
end
RegisterServerEvent('md-drugs:server:stealisosafrole', function(num) RegisterServerEvent('md-drugs:server:stealisosafrole', function(num)
local src = source local src = source
if not checkLoc(src, 'isosafrole',num) then return end if not ps.checkDistance(src, xtcLocations.isosafrole[num].loc, 3.0) then return end
if AddItem(src, "isosafrole", 1) then if timeout[ps.getIdentifier(src)] then
ps.notify(src, 'You are still waiting for the last minigame to finish', 'error')
end return
end
timeOut(src)
ps.addItem(src, "isosafrole", 1)
end) end)
RegisterServerEvent('md-drugs:server:stealmdp2p', function(num) RegisterServerEvent('md-drugs:server:stealmdp2p', function(num)
local src = source local src = source
local Player = getPlayer(src) if not ps.checkDistance(src, xtcLocations.mdp2p[num].loc, 3.0) then return end
if not checkLoc(src, 'mdp2p',num) then return end if timeout[ps.getIdentifier(src)] then
if AddItem(src,"mdp2p", 1) then ps.notify(src, 'You are still waiting for the last minigame to finish', 'error')
end return
end
timeOut(src)
ps.addItem(src, "mdp2p", 1)
end) end)
local presses = { local presses = {
{item = 'singlepress', data = 'single'}, {item = 'singlepress', data = 'singlestack', recipes = RecipeList.singlestack},
{item = 'dualpress', data = 'dual'}, {item = 'dualpress', data = 'dualstack', recipes = RecipeList.dualstack},
{item = 'triplepress', data = 'triple'}, {item = 'triplepress', data = 'triplestack', recipes = RecipeList.triplestack},
{item = 'quadpress', data = 'quad'}, {item = 'quadpress', data = 'quadstack', recipes = RecipeList.quadstack},
} }
for k, v in pairs (presses) do
CUI(v.item, function(source, item)
local src = source
local Player = getPlayer(src)
local check, loc = ps.callback('md-drugs:client:setpress', src, v.data)
if check then
if RemoveItem(src, v.item, 1) then
table.insert(activePresses, {
press = v.data,
get = v.item,
owner = GetName(src),
ownerid = Player.PlayerData.citizenid,
src = src,
loc = loc
})
end
end
end)
end
RegisterServerEvent('md-drugs:server:getpressback', function(type) for k, v in pairs (presses) do
local src = source ps.createUseable(v.item, function(source, item)
local Player = getPlayer(src)
for k, v in pairs (activePresses) do
if v.ownerid == Player.PlayerData.citizenid then
if v.press == type then
table.remove(activePresses, k)
AddItem(src, v.get, 1)
end
end
end
end)
local function pressout(source)
local src = source local src = source
local Player = getPlayer(src) local check, loc = ps.callback('md-drugs:client:setpress', src, v)
local ped = GetPlayerPed(src) if check then
local coords = GetEntityCoords(ped) if ps.removeItem(src, v.item, 1) then
for k, v in pairs (activePresses) do activePresses[ps.getIdentifier(src)] = {
if v.ownerid == Player.PlayerData.citizenid then press = v.data,
if #(coords - v.loc) < 3.0 then get = v.item,
return v.press owner = ps.getPlayerName(src),
ownerid = ps.getIdentifier(src),
src = src,
loc = loc
}
end end
end end
end end)
return 'none'
end end
RegisterServerEvent('md-drugs:server:getpressback', function()
local src = source
if not activePresses[ps.getIdentifier(src)] then return end
local press = activePresses[ps.getIdentifier(src)]
ps.addItem(src, press.get, 1)
activePresses[ps.getIdentifier(src)] = nil
end)
RegisterServerEvent('md-drugs:server:makextc', function(data) RegisterServerEvent('md-drugs:server:makextc', function(data)
local src = source local src = source
local Player = getPlayer(src) if not activePresses[ps.getIdentifier(src)] then
if not Itemcheck(src, 'raw_xtc', 1) then return end ps.notify(src, 'You Dont Have A Pill Press', 'error')
if pressout(src) == 'none' then return end return
if pressout(src) == 'single' then end
if data.color == 'white' then craft(src, RecipeList[activePresses[ps.getIdentifier(src)].press][data], data)
if not GetRecipe(src, 'xtc', 'singlestack', 'white') then return end
elseif data.color == 'red' then
if not GetRecipe(src, 'xtc', 'singlestack', 'red') then return end
elseif data.color == 'orange' then
if not GetRecipe(src, 'xtc', 'singlestack', 'orange') then return end
elseif data.color == 'blue' then
if not GetRecipe(src, 'xtc', 'singlestack', 'blue') then return end
end
elseif pressout(src) == 'dual' then
if data.color == 'white' then
if not GetRecipe(src, 'xtc', 'dualstack', 'white') then return end
elseif data.color == 'red' then
if not GetRecipe(src, 'xtc', 'dualstack', 'red') then return end
elseif data.color == 'orange' then
if not GetRecipe(src, 'xtc', 'dualstack', 'orange') then return end
elseif data.color == 'blue' then
if not GetRecipe(src, 'xtc', 'dualstack', 'blue') then return end
end
elseif pressout(src) == 'triple' then
if data.color == 'white' then
if not GetRecipe(src, 'xtc', 'triplestack', 'white') then return end
elseif data.color == 'red' then
if not GetRecipe(src, 'xtc', 'triplestack', 'red') then return end
elseif data.color == 'orange' then
if not GetRecipe(src, 'xtc', 'triplestack', 'orange') then return end
elseif data.color == 'blue' then
if not GetRecipe(src, 'xtc', 'triplestack', 'blue') then return end
end
elseif pressout(src) == 'quad' then
if data.color == 'white' then
if not GetRecipe(src, 'xtc', 'quadstack', 'white') then return end
elseif data.color == 'red' then
if not GetRecipe(src, 'xtc', 'quadstack', 'red') then return end
elseif data.color == 'orange' then
if not GetRecipe(src, 'xtc', 'quadstack', 'orange') then return end
elseif data.color == 'blue' then
if not GetRecipe(src, 'xtc', 'quadstack', 'blue') then return end
end
end
end) end)
RegisterServerEvent('md-drugs:server:buypress', function() RegisterServerEvent('md-drugs:server:buypress', function()
local src = source local src = source
local Player = getPlayer(src) if ps.removeMoney(src,"cash", RecipeList.presses['singlepress'].cash) then
ps.addItem(src, "singlepress", 1)
if Player.Functions.RemoveMoney("cash", 20000) then
AddItem(src, "singlepress", 1)
--Log(GetName(source) .. ' Bought A Pill Press', 'xtc')
else
ps.notify(Lang.xtc.cash, "error")
end
end)
RegisterServerEvent('md-drugs:server:upgradepress', function(data)
local src = source
if data == 'dual' then
if not GetRecipe(src, 'xtc', 'press', 'dual') then return end
elseif data == 'triple' then
if not GetRecipe(src, 'xtc', 'press', 'triple') then return end
elseif data == 'quad' then
if not GetRecipe(src, 'xtc', 'press', 'quad') then return end
else else
ps.notify(src, 'huh', 'error') ps.notify(ps.lang('xtc.cash'), "error")
end end
end) end)
RegisterServerEvent('md-drugs:server:upgradepress', function(data)
local src = source
if not ps.checkDistance(src, xtcLocations.xtcpress[data].loc, 2.0) then
ps.notify(src, ps.lang('xtc.toofar'), "error")
return
end
craft(src, RecipeList.presses[data], data)
end)
ps.registerCallback('md-drugs:server:getpressrecipes', function(source)
return RecipeList.presses
end)
------------- making powder ------------- making powder
RegisterServerEvent('md-drugs:server:makingrawxtc', function(num) RegisterServerEvent('md-drugs:server:makingrawxtc', function(num)
local src = source local src = source
local Player = getPlayer(src) if not ps.checkDistance(src, xtcLocations.rawxtcloc[num].loc, 3.0) then return end
if not checkLoc(src, 'rawxtcloc',num) then return end if timeout[ps.getIdentifier(src)] then
if not GetRecipe(src, 'xtc', 'raw', 'raw_xtc') then return end ps.notify(src, 'You are still waiting for the last minigame to finish', 'error')
end) return
RegisterServerEvent('md-drugs:server:stampwhite', function(num)
local src = source
local one = {'white_playboys', 'white_aliens', 'white_pl', 'white_trolls', 'white_cats'}
local chance = math.random(#one)
local two = {'white_playboys2', 'white_aliens2', 'white_pl2', 'white_trolls2', 'white_cats2'}
local three = {'white_playboys3', 'white_aliens3', 'white_pl3', 'white_trolls3', 'white_cats3'}
local four = {'white_playboys4', 'white_aliens4', 'white_pl4', 'white_trolls4', 'white_cats4'}
if not checkLoc(src, 'stamp', num) then return end
if RemoveItem(src, "white_xtc", 1) then
AddItem(src, one[chance], 1)
elseif RemoveItem(src, "white_xtc2", 1) then
AddItem(src, two[chance], 1)
elseif RemoveItem(src, "white_xtc3", 1) then
AddItem(src, three[chance], 1)
elseif RemoveItem(src, "white_xtc4", 1) then
AddItem(src, four[chance], 1)
else
ps.notify('You Dont Have Unstamped White Pills', 'error')
end end
timeOut(src)
if not ps.craftItem(src, RecipeList.raw.raw_xtc) then return end
end) end)
RegisterServerEvent('md-drugs:server:stampred', function(num) local function getColor(color)
local src = source local colors = {
local one = {'red_playboys', 'red_aliens', 'red_pl', 'red_trolls', 'red_cats'} white = {'white_playboys', 'white_aliens', 'white_pl', 'white_trolls', 'white_cats'},
local chance = math.random(#one) red = {'red_playboys', 'red_aliens', 'red_pl', 'red_trolls', 'red_cats'},
local two = {'red_playboys2', 'red_aliens2', 'red_pl2', 'red_trolls2', 'red_cats2'} orange = {'orange_playboys', 'orange_aliens', 'orange_pl', 'orange_trolls', 'orange_cats'},
local three = {'red_playboys3', 'red_aliens3', 'red_pl3', 'red_trolls3', 'red_cats3'} blue = {'blue_playboys', 'blue_aliens', 'blue_pl', 'blue_trolls', 'blue_cats'}
local four = {'red_playboys4', 'red_aliens4', 'red_pl4', 'red_trolls4', 'red_cats4'} }
if not checkLoc(src, 'stamp', num) then return end if colors[color] then
return colors[color][math.random(#colors[color])]
if RemoveItem(src, "red_xtc", 1) then else
AddItem(src, one[chance], 1) ps.notify('Invalid color specified', 'error')
elseif RemoveItem(src, "red_xtc2", 1) then return nil
AddItem(src, two[chance], 1) end
elseif RemoveItem(src, "red_xtc3", 1) then end
AddItem(src, three[chance], 1)
elseif RemoveItem(src, "red_xtc4", 1) then
AddItem(src, four[chance], 1)
else
ps.notify('You Dont Have Unstamped red Pills', 'error')
end
end)
RegisterServerEvent('md-drugs:server:stamporange', function(num) RegisterServerEvent('md-drugs:server:stamp', function(num, color)
local src = source local src = source
local one = {'orange_playboys', 'orange_aliens', 'orange_pl', 'orange_trolls', 'orange_cats'} if not ps.checkDistance(src, xtcLocations.stamp[num].loc, 3.0) then return end
local two = {'orange_playboys2', 'orange_aliens2', 'orange_pl2', 'orange_trolls2', 'orange_cats2'} local item = getColor(color)
local three = {'orange_playboys3', 'orange_aliens3', 'orange_pl3', 'orange_trolls3', 'orange_cats3'} local colors = {
local four = {'orange_playboys4', 'orange_aliens4', 'orange_pl4', 'orange_trolls4', 'orange_cats4'} white = 'white_xtc',
local chance = math.random(#one) red = 'red_xtc',
if not checkLoc(src, 'stamp', num) then return end orange = 'orange_xtc',
blue = 'blue_xtc'
if RemoveItem(src, "orange_xtc", 1) then }
AddItem(src, one[chance], 1) if ps.removeItem(src, colors[color], 1) then
elseif RemoveItem(src, "orange_xtc2", 1) then ps.addItem(src, item, 1)
AddItem(src, two[chance], 1) elseif ps.removeItem(src, colors[color].."2", 1) then
elseif RemoveItem(src, "orange_xtc3", 1) then ps.addItem(src, item..'2', 1)
AddItem(src, three[chance], 1) elseif ps.removeItem(src, colors[color].."3", 1) then
elseif RemoveItem(src, "orange_xtc4", 1) then ps.addItem(src, item..'3', 1)
AddItem(src, four[chance], 1) elseif ps.removeItem(src, colors[color].."4", 1) then
else ps.addItem(src, item..'4', 1)
ps.notify('You Dont Have Unstamped orange Pills', 'error') else
end ps.notify('You Dont Have Unstamped '..color..' Pills', 'error')
end) end
RegisterServerEvent('md-drugs:server:stampblue', function(num)
local src = source
local one = {'blue_playboys', 'blue_aliens', 'blue_pl', 'blue_trolls', 'blue_cats'}
local chance = math.random(#one)
local two = {'blue_playboys2', 'blue_aliens2', 'blue_pl2', 'blue_trolls2', 'blue_cats2'}
local three = {'blue_playboys3', 'blue_aliens3', 'blue_pl3', 'blue_trolls3', 'blue_cats3'}
local four = {'blue_playboys4', 'blue_aliens4', 'blue_pl4', 'blue_trolls4', 'blue_cats4'}
if not checkLoc(src, 'stamp', num) then return end
if RemoveItem(src, "blue_xtc", 1) then
AddItem(src, one[chance], 1)
elseif RemoveItem(src, "blue_xtc2", 1) then
AddItem(src, two[chance], 1)
elseif RemoveItem(src, "blue_xtc3", 1) then
AddItem(src, three[chance], 1)
elseif RemoveItem(src, "blue_xtc4", 1) then
AddItem(src, four[chance], 1)
else
ps.notify('You Dont Have Unstamped blue Pills', 'error')
end
end) end)
AddEventHandler('playerDropped', function() AddEventHandler('playerDropped', function()
local src = source local src = source
local Player = getPlayer(src) if activePresses[ps.getIdentifier(src)] then
for k, v in pairs (activePresses) do ps.addItem(src, activePresses[ps.getIdentifier(src)].get, 1)
if v.ownerid == Player.PlayerData.citizenid then activePresses[ps.getIdentifier(src)] = nil
table.remove(activePresses, k)
AddItem(src, v.get, 1)
end
end end
end) end)
+2 -2
View File
@@ -1,6 +1,6 @@
Config = {} --Ignore. Config = {} --Ignore.
ps = exports.ps_lib:init() ps = exports.ps_lib:init()
ps.loadLangs("en") ps.loadLangs("wookie")
Config.respawnTime = 3 -- Seconds Config.respawnTime = 3 -- Seconds
Config.Fuel = "LegacyFuel" -- type the name of script you use i.e. ps-fuel, cdn-fuel, LegacyFuel Config.Fuel = "LegacyFuel" -- type the name of script you use i.e. ps-fuel, cdn-fuel, LegacyFuel
Config.TierSystem = true -- allows for three tiers of certain drugs ( coke, heroin, crack, lsd) Config.TierSystem = true -- allows for three tiers of certain drugs ( coke, heroin, crack, lsd)
@@ -66,5 +66,5 @@ Config.Drugs = {
shrooms = true, shrooms = true,
weed = true, weed = true,
wholesale = false, wholesale = false,
xtc = false, xtc = true,
} }