- big change, moved data to shared folder

This commit is contained in:
Mustache Dom committed 2026-01-31 02:05:15 -07:00
1 parent fdc28723bc
commit c7eca0285b
52 files changed
+1117 -1128

No files matched your search

+1 -2
View File
@@ -1,7 +1,6 @@
local cuttingcoke = nil
local baggingcoke = nil
repeat Wait(100) until GlobalState.MDDrugsLocations.Cocaine ~= nil
local locations = GlobalState.MDDrugsLocations.Cocaine
local locations = Config.Cocaine.Locations
local function CutCoke(coords, offset, rotation)
cuttingcoke = true
+2 -1
View File
@@ -1,6 +1,7 @@
local sell = false
local inZone = false
local buyers = {}
local function walkAway(targ)
FreezeEntityPosition(targ, false)
ClearPedTasks(targ)
@@ -209,7 +210,7 @@ RegisterNetEvent('md-drugs:client:cornerselling', function()
end)
CreateThread(function()
for k, v in pairs (GlobalState.MDDrugsLocations.CornerSelling.noSellZones) do
for k, v in pairs (Config.Cornerselling.noSellZones) do
Bridge.Point.Register(
'MDDRUGNOSELLZONE'..k,
v.loc,
+1 -2
View File
@@ -1,5 +1,4 @@
repeat Wait(100) until GlobalState.MDDrugsLocations.Crack ~= nil
local locations = GlobalState.MDDrugsLocations.Crack
local locations = Config.Crack.Locations
for k, v in pairs (locations.makecrack) do
Bridge.Target.AddBoxZone('makeCrack'..k, v.loc, v.size, v.loc.w or 180.0, {
+3 -5
View File
@@ -2,7 +2,7 @@
local dealer = {}
local buyer = nil
repeat Wait(100) until GlobalState.MDDrugsLocations.Deliveries.dealers ~= nil
repeat Wait(100) until GlobalState.MDDrugDealers ~= nil
local function SpawnDealer()
if #dealer >= 1 then
@@ -11,7 +11,7 @@ local function SpawnDealer()
end
dealer = {}
end
for k,v in pairs(GlobalState.MDDrugsLocations.Deliveries.dealers) do
for k,v in pairs(GlobalState.MDDrugDealers) do
requestModel(v.model)
dealer[k] = CreatePed(0, v.model, v.coords.x, v.coords.y, v.coords.z-1, v.coords.w, false, false)
Freeze(dealer[k], true, v.coords.w)
@@ -29,7 +29,7 @@ local function SpawnDealer()
action = function()
local rep = GetRep()
local options = {}
for m, d in pairs (GlobalState.MDDrugsRecipes.Deliveries) do
for m, d in pairs (Config.Deliveries.Recipes) do
if rep.dealerrep >= d.minrep then
options[#options+1] = {
title = Bridge.Inventory.GetItemInfo(d.name).label,
@@ -50,7 +50,6 @@ local function SpawnDealer()
end,
}
})
targets[#targets+1] = dealer[k]
end
end
@@ -81,5 +80,4 @@ RegisterNetEvent('md-drugs:client:setLocation', function(data)
end,
}
})
targets[#targets+1] = buyer
end)
+2 -2
View File
@@ -1,8 +1,8 @@
local herointable = false
local dirty = false
repeat Wait(100) until GlobalState.MDDrugsLocations.Heroin ~= nil
local locations = GlobalState.MDDrugsLocations.Heroin
local locations = Config.Heroin.Locations
local function createLabKit(coord, head)
local heroinlabkit = CreateObject("v_ret_ml_tablea", coord.x, coord.y, coord.z - 1, true, false,false)
+3 -3
View File
@@ -1,8 +1,8 @@
local started = false
local leanCar = nil
repeat Wait(100) until GlobalState.MDDrugsRecipes.Lean ~= nil
local location = GlobalState.MDDrugsLocations.Lean
local location = Config.Lean.Locations
local function SpawnCarPedChase(loc)
local stoploc = vector3(-1157.63, -3056.71, 13.94)
@@ -109,7 +109,7 @@ end
RegisterNetEvent("md-drugs:client:makeLean", function()
local menu = {}
for k, v in pairs (GlobalState.MDDrugsRecipes.Lean) do
for k, v in pairs (Config.Lean.Recipes) do
menu[#menu+1] = {
title = Bridge.Inventory.GetItemInfo(v.item).label,
description = concat(v.ingredients),
+1 -3
View File
@@ -1,8 +1,6 @@
local tableout = false
local dirtylsd = false
repeat Wait(100) until GlobalState.MDDrugsRecipes.LSD ~= nil
local locations = GlobalState.MDDrugsLocations.LSD
local locations = Config.LSD.Locations
local function createLabKit(coord, head)
requestModel("v_ret_ml_tablea")
+1 -2
View File
@@ -1,7 +1,6 @@
local badTrip = 100
repeat Wait(100) until GlobalState.MDDrugsRecipes.Mescaline ~= nil
local locations = GlobalState.MDDrugsLocations.Mescaline
local locations = Config.Mescaline.Locations
local function AlienEffect()
CreateThread(function()
StartScreenEffect("DrugsMichaelAliensFightIn", 3.0, 0)
+1 -2
View File
@@ -1,6 +1,5 @@
local amonia, tray, heated, active, trays, startedmeth, methVan = false, false, false, false, nil, false, nil
repeat Wait(100) until GlobalState.MDDrugsLocations.Meth ~= nil
local locations = GlobalState.MDDrugsLocations.Meth
local locations = Config.Meth.Locations
--- meth heist
+1 -2
View File
@@ -1,7 +1,6 @@
local carryPackage = nil
local onMission = false
repeat Wait(100) until GlobalState.MDDrugsLocations.Oxy ~= nil
local locations = GlobalState.MDDrugsLocations.Oxy
local locations = Config.Oxy.Locations
local pdAlert = 90
local vehicle = nil
+1 -2
View File
@@ -1,5 +1,4 @@
repeat Wait(100) until GlobalState.MDDrugsLocations.Pharma ~= nil
local locations = GlobalState.MDDrugsLocations.Pharma
local locations = Config.Pharma.Locations
Bridge.Callback.Register("md-drugs:client:prescriptionpad", function( data, op)
local job = Bridge.Framework.GetPlayerJob()
+1 -14
View File
@@ -97,17 +97,4 @@ for k, v in pairs (DrugPlants) do
end)
TriggerEvent(v.label ..":init")
::continue::
end
AddEventHandler('onResourceStop', function(resourceName)
if GetCurrentResourceName() == resourceName then
SetModelAsNoLongerNeeded(GetHashKey('prop_plant_01a'))
for k, v in pairs(DrugPlants) do
for key, plant in pairs(v.plantTbl) do
if DoesEntityExist(plant) then DeleteEntity(plant) end
v.plantTbl[key] = nil
end
end
end
end)
end
+1 -2
View File
@@ -1,6 +1,5 @@
local exploded, drying = false, false
repeat Wait(100) until GlobalState.MDDrugsLocations.Weed ~= nil and GlobalState.MDDrugsRecipes.Weed ~= nil
local locations, recipes = GlobalState.MDDrugsLocations.Weed, GlobalState.MDDrugsRecipes.Weed
local locations, recipes = Config.Weed.Locations, Config.Weed.Recipes
for k, v in pairs (locations.WeedDry) do
Bridge.Target.AddBoxZone('weed_dry'..k, v.loc, v.size, v.loc.w or 180.0, {
{
+2 -3
View File
@@ -1,5 +1,4 @@
local prop = nil
repeat Wait(100) until GlobalState.MDDrugsLocations.Whippit ~= nil and GlobalState.MDDrugsRecipes.Whippit ~= nil
local function animation(color)
local coords = GetEntityCoords(PlayerPedId())
@@ -41,7 +40,7 @@ end)
local function spawnShops()
for k, v in pairs(GlobalState.MDDrugsLocations.Whippit) do
for k, v in pairs(Config.Whippit.Locations.Whippit) do
requestModel(v.ped)
local ped = CreatePed(5, GetHashKey(v.ped), v.loc.x, v.loc.y, v.loc.z, v.loc.w, true, true)
FreezeEntityPosition(ped, true)
@@ -53,7 +52,7 @@ local function spawnShops()
icon = Bridge.Language.Locale('Whippit.whippitIcon'),
action = function()
local menu = {}
for item, price in pairs (GlobalState.MDDrugsRecipes.Whippit.shop) do
for item, price in pairs (Config.Whippit.Recipes.shop) do
local itemInfo = Bridge.Inventory.GetItemInfo(item)
menu[#menu + 1] = {
title = itemInfo.label,
+2 -3
View File
@@ -1,6 +1,5 @@
local xtcpress = false
repeat Wait(100) until GlobalState.MDDrugsLocations.XTC ~= nil
local locations = GlobalState.MDDrugsLocations.XTC
local locations = Config.XTC.Locations
local function getRecipeList(tbl, type)
local rec
@@ -139,7 +138,7 @@ for k, v in pairs(locations.xtcpress) do
label = Bridge.Language.Locale('xtc.getPress'),
onSelect = function()
local options = {}
local recipeList = GlobalState.MDDrugsRecipes.XTC.presses
local recipeList = Config.XTC.Recipes.presses
for m, d in pairs(recipeList) do
if m == 'singlepress' then
local itemInfo = Bridge.Inventory.GetItemInfo(m)
+2 -1
View File
@@ -20,7 +20,7 @@ server_scripts {
shared_scripts {
'@ox_lib/init.lua',
'shared/**.lua',
'shared/config.lua',
}
lua54 'yes'
@@ -28,5 +28,6 @@ lua54 'yes'
files {
'client/**.lua',
'server/**.lua',
'shared/**.lua',
'locales/**.json'
}
+4 -41
View File
@@ -1,45 +1,8 @@
local Target = {
Travellingmerchant = {
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)]
local stores = {
travel = {
tab_paper = 50,
bakingsoda = 25,
isosafrole = 25,
mdp2p = 25,
lysergic_acid = 25,
diethylamide = 25,
lockpick = 2,
emptyvial = 2,
needle = 2,
cokeburner = 25,
crackburner = 2,
lsdburner = 2,
heroinburner = 2,
mdlean = 50,
weedgrinder = 25,
mdbutter = 25,
flour = 25,
chocolate = 25,
butane = 25,
butanetorch = 2,
dabrig = 2,
mdwoods = 2,
leancup = 25,
xtcburner = 25,
},
}
local loc = Config.Merchant.Locations.Travellingmerchant[math.random(1, #Config.Merchant.Locations.Travellingmerchant)]
Bridge.Callback.Register('md-drugs:server:GetMerchant', function(source)
return {loc = loc, items = stores.travel}
return {loc = loc, items = Config.Merchant.stores}
end)
@@ -49,11 +12,11 @@ RegisterServerEvent("md-drugs:server:purchaseGoods", function(item)
if not checkDistance(src, loc, 10, 'md-drugs:server:purchaseGoods') then
return
end
if not stores.travel[item] then
if not Config.Merchant.stores[item] then
Bridge.Prints.Warn(Bridge.Language.Locale('merchant.itemDoesntExist', Bridge.Framework.GetPlayerIdentifier(src), item))
return
end
if Bridge.Framework.RemoveAccountBalance(src, 'cash', stores.travel[item]) then
if Bridge.Framework.RemoveAccountBalance(src, 'cash', Config.Merchant.stores[item]) then
Bridge.Inventory.AddItem(src, item, 1)
else
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Catches.notEnoughMoney'), "error")
+7 -42
View File
@@ -1,40 +1,5 @@
Recipes = Recipes or {}
Locations = Locations or {}
Recipes.Cocaine = {
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}},
}
}
GlobalState.MDDrugsRecipes = Recipes
Locations.Cocaine = {
MakePowder = { -- size = vector3(x,y,z) x = length, y = width, z = height
{loc = vector3(1086.20, -3195.30, -39.20), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
CuttingCoke = {
{loc = vector3(1095.61, -3195.62, -39.13), size = vector3(1.0, 1.0, 2.0), offset = vec3(-1.782227, 0.445068, -0.502701), rotation = vector3(0,0,0), gang = ""},
},
BaggingCoke = {
{loc = vector3(1093.16, -3195.78, -39.19), size = vector3(1.0, 1.0, 2.0), offset = vec3(4.515137, 2.542969, -0.814194), rotation = vector3(0,0,180.0), gang = ""},
},
cokeTele = {
{inside = vector3(1088.81, -3187.57, -38.99), outside = vector3(198.16, -1276.92, 29.33), size = vector3(1.0, 1.0, 2.0), gang = ""},
}
}
GlobalState.MDDrugsLocations = Locations
local Locations = Config.Cocaine.Locations
local Recipes = Config.Cocaine.Recipes
local function getTier(source)
if not Config.TierSystem then
@@ -61,7 +26,7 @@ RegisterServerEvent('md-drugs:server:makepowder', function(num)
if timeOut(src, 'md-drugs:server:makepowder') then return end
if not checkDistance(src, Locations.Cocaine.MakePowder[num].loc, 3.5, 'md-drugs:server:makepowder') then
if not checkDistance(src, Locations.MakePowder[num].loc, 3.5, 'md-drugs:server:makepowder') then
return
end
@@ -70,7 +35,7 @@ RegisterServerEvent('md-drugs:server:makepowder', function(num)
return
end
if not craft(src, Recipes.Cocaine.cokepowder[tier]) then
if not craft(src, Recipes.cokepowder[tier]) then
return
end
end)
@@ -80,7 +45,7 @@ RegisterServerEvent('md-drugs:server:cutcokeone', function(num)
if timeOut(src, 'md-drugs:server:cutcokeone') then return end
if not checkDistance(src, Locations.Cocaine.CuttingCoke[num].loc, 2.5, 'md-drugs:server:cutcokeone') then
if not checkDistance(src, Locations.CuttingCoke[num].loc, 2.5, 'md-drugs:server:cutcokeone') then
return
end
@@ -96,7 +61,7 @@ RegisterServerEvent('md-drugs:server:cutcokeone', function(num)
break
end
end
if not craft(src, Recipes.Cocaine.cutcoke[tier]) then
if not craft(src, Recipes.cutcoke[tier]) then
return
end
end)
@@ -122,7 +87,7 @@ RegisterServerEvent('md-drugs:server:bagcoke', function(num)
break
end
end
if not craft(src, Recipes.Cocaine.bagcoke[tier]) then
if not craft(src, Recipes.bagcoke[tier]) then
return
end
AddRep(src, 'coke', 1)
+4 -188
View File
@@ -1,195 +1,11 @@
--[[
effect options
alien
ecstacy
meth
coke
trevor
none
]]
--[[
add = {}
health = number -- amount of health to give
stress = number -- number of stress to give
speed = number -- number of seconds you a fast boi
hunger = number -- number of hunger to fill
thirst = number -- same shit
strength = number -- how long you are strong boi
]]
local Consumables = {}
Consumables.defaulttime = 4000
Consumables.defaultanim = 'pflag2'
Consumables.defaultprogresstext = 'Consuming ' -- it will always show the label of the item being used after what you put here, make sure to keep the space at the end :)
Consumables.defaultstatval = 0
local emotes = {
smoke = {
dict = "amb@world_human_aa_smoke@male@idle_a",
clip = "idle_a",
flag = 49,
prop = {
model = 'ng_proc_cigarette01a',
bone = 28422,
pos = {0.0, 0.0, 0.0},
rot = {0.0, 0.0, 0.0}
}
},
smell = {
dict = 'move_p_m_two_idles@generic',
clip = 'fidget_sniff_fingers',
},
shoot_up = {
dict = "rcmpaparazzo1ig_4",
clip = "miranda_shooting_up",
prop = {
model = 'prop_syringe_01',
bone = 18905,
pos = {0.11, 0.03, 0.0},
rot = {-124.0, 0.0, 0.0}
}
},
eat = {
dict = "mp_player_inteat@burger",
clip = "mp_player_int_eat_burger",
},
drink = {
dict = "mp_player_intdrink",
clip = "loop_bottle",
}
}
local Consume = {
-- meth
methbags = { time = 4000, effect = 'meth', anim = emotes.smoke, progressbartext = "Injesting",
add = {health = -20, stress = -10, speed = 40, strength = 10, thirst = -30}},
cokebaggy = { anim = emotes.smell, time = 4000, effect = 'coke', add = { stress = -10 }},
cokebaggystagetwo = { anim = emotes.smell, time = 1000, effect = 'coke', add = { stress = -10 }},
cokebaggystagethree = { anim = emotes.smell, time = 1000, effect = 'coke', add = { stress = -10 }},
-- heroin
heroin_ready = { anim = emotes.shoot_up, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
heroin_readystagetwo = { anim = emotes.shoot_up, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
heroin_readystagethree = { anim = emotes.shoot_up, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
-- crack
baggedcracked = { anim = emotes.smell, time = 1000, effect = 'coke', add = { stress = -10 }},
baggedcrackedstagetwo = { anim = emotes.smell, time = 1000, effect = 'coke', add = { stress = -10 }},
baggedcrackedstagethree = { anim = emotes.smell, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
-- xtc
white_playboys = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_playboys2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_playboys3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_playboys4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_playboys = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_playboys2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_playboys3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_playboys4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_playboys = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10, hunger = 10 }},
red_playboys2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_playboys3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_playboys4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_playboys = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_playboy2s = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_playboys3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_playboys4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_aliens = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_aliens2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_aliens3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_aliens4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_aliens = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_aliens2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_aliens3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_aliens4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_aliens = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_aliens3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_aliens2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_aliens4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_aliens = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_aliens2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_aliens3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_aliens4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_pl = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_pl2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_pl3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_pl4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_pl = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_pl2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_pl3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_pl4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_pl = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_pl2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_pl3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_pl4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_pl = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_pl2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_pl3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_pl4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_trolls = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_trolls2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_trolls3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_trolls4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_trolls = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_trolls2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_trolls3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_trolls4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_trolls = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_trolls2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_trolls3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_trolls4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_trolls = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_trolls2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_trolls3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_trolls4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_cats2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_cats3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_cats4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_cats = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_cats = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_cats3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_cats2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_cats4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_cats = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_cats2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_cats3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_cats4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_cats = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_cats2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_cats3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_cats4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
-- weed
specialbrownie = { anim = emotes.eat, effect = 'alien', add = { hunger = 10, stress = -10 }},
specialcookie = { anim = emotes.eat, effect = 'alien', add = { hunger = 10, stress = -10 }},
specialchocolate = { anim = emotes.eat, effect = 'alien', add = { hunger = 10, stress = -10 }},
specialmuffin = { anim = emotes.eat, effect = 'alien', add = { hunger = 10, stress = -10 }},
blunt = { anim = emotes.smoke, effect = 'alien', add = { stress = -10 }},
dextroblunts = { anim = emotes.smoke, effect = 'alien', add = { stress = -10 }},
leanblunts = { anim = emotes.smoke, effect = 'alien', add = { stress = -10 }},
chewyblunt = { anim = emotes.smoke, effect = 'alien', add = { stress = -10 }},
-- lean
cupofdextro = { anim = emotes.drink, effect = 'alien', add = { stress = -10 }},
cupoflean = { anim = emotes.drink, effect = 'alien', add = { stress = -10 }},
-- lsd
smiley_tabs = { anim = emotes.eat, effect = 'trevor', add = { stress = -10 }},
wildcherry_tabs = { anim = emotes.eat, effect = 'trevor', add = { stress = -10 }},
yinyang_tabs = { anim = emotes.eat, effect = 'trevor', add = { stress = -10 }},
pineapple_tabs = { anim = emotes.eat, effect = 'trevor', add = { stress = -10 }},
bart_tabs = { anim = emotes.eat, effect = 'trevor', add = { stress = -10 }},
gratefuldead_tabs = { anim = emotes.eat, effect = 'trevor', add = { stress = -10 }},
-- pharma
vicodin = { anim = emotes.eat, effect = 'none', add = { health = 20 }},
adderal = { anim = emotes.eat, effect = 'none', add = { stress = -20 }},
morphine = { anim = emotes.eat, effect = 'none', add = { health = 40 }},
xanax = { anim = emotes.eat, effect = 'none', add = { stress = -40 }},
}
for k, v in pairs(Consume) do
for k, v in pairs(Config.Consumables.Consume) do
Bridge.Framework.RegisterUsableItem(k, function(source, item)
if not Bridge.Inventory.HasItem(source, k, 1) then return end
local time = v.time or Consumables.defaulttime
local time = v.time or Config.Consumables.Defaults.time
local effect = v.effect or 0
local anim = v.anim or Consumables.defaultanim
local progressbartext = v.progressbartext or Consumables.defaultprogresstext
local anim = v.anim or Config.Consumables.Defaults.defaultAnim
local progressbartext = v.progressbartext or Config.Consumables.Defaults.defaultText
local add = v.add or {hunger = 0}
local done = Bridge.Callback.Trigger('md-drugs:client:consumedrugs', source, time, effect, anim, progressbartext, add, k)
if done then
+15 -146
View File
@@ -1,147 +1,16 @@
local DrugDeals = {}
local Drugs = {
["weed_white-widow"] = {rep = 1,min = 15, max = 24 },
["weed_og-kush"] = {rep = 1,min = 15, max = 28 },
["weed_skunk"] = {rep = 1,min = 15, max = 31 },
["weed_amnesia"] = {rep = 1,min = 18, max = 34 },
["weed_purple-haze"] = {rep = 1,min = 18, max = 37},
["weed_ak47"] = {rep = 1,min = 18, max = 40},
["crack_baggy"] = {rep = 1,min = 18, max = 34},
["cokebaggy"] = {rep = 1,min = 18, max = 37},
["cokebaggystagetwo"] = {rep = 1,min = 18, max = 40},
["cokebaggystagethree"] = {rep = 1,min = 18, max = 40},
["heroin_ready"] = {rep = 1,min = 18, max = 40},
["heroin_readystagetwo"] = {rep = 1,min = 18, max = 40},
["heroin_readystagethree"] = {rep = 1,min = 18, max = 40},
["baggedcracked"] = {rep = 1,min = 18, max = 40},
["baggedcrackedstagetwo"] = {rep = 1,min = 18, max = 40},
["baggedcrackedstagethree"] = {rep = 1,min = 18, max = 40},
["white_playboys"] = {rep = 1,min = 18, max = 40},
["white_playboys2"] = {rep = 1,min = 18, max = 40},
["white_playboys3"] = {rep = 1,min = 18, max = 40},
["white_playboys4"] = {rep = 1,min = 18, max = 40},
["blue_playboys"] = {rep = 1,min = 18, max = 40},
["blue_playboys2"] = {rep = 1,min = 18, max = 40},
["blue_playboys3"] = {rep = 1,min = 18, max = 40},
["blue_playboys4"] = {rep = 1,min = 18, max = 40},
["red_playboys"] = {rep = 1,min = 18, max = 40},
["red_playboys2"] = {rep = 1,min = 18, max = 40},
["red_playboys3"] = {rep = 1,min = 18, max = 40},
["red_playboys4"] = {rep = 1,min = 18, max = 40},
["orange_playboys"] = {rep = 1,min = 18, max = 40},
["orange_playboys2"] = {rep = 1,min = 18, max = 40},
["orange_playboys3"] = {rep = 1,min = 18, max = 40},
["orange_playboys4"] = {rep = 1,min = 18, max = 40},
["white_aliens"] = {rep = 1,min = 18, max = 40},
["white_aliens2"] = {rep = 1,min = 18, max = 40},
["white_aliens3"] = {rep = 1,min = 18, max = 40},
["white_aliens4"] = {rep = 1,min = 18, max = 40},
["blue_aliens"] = {rep = 1,min = 18, max = 40},
["blue_aliens2"] = {rep = 1,min = 18, max = 40},
["blue_aliens3"] = {rep = 1,min = 18, max = 40},
["blue_aliens4"] = {rep = 1,min = 18, max = 40},
["red_aliens"] = {rep = 1,min = 18, max = 40},
["red_aliens2"] = {rep = 1,min = 18, max = 40},
["red_aliens3"] = {rep = 1,min = 18, max = 40},
["red_aliens4"] = {rep = 1,min = 18, max = 40},
["orange_aliens"] = {rep = 1,min = 18, max = 40},
["orange_aliens2"] = {rep = 1,min = 18, max = 40},
["orange_aliens3"] = {rep = 1,min = 18, max = 40},
["orange_aliens4"] = {rep = 1,min = 18, max = 40},
["white_pl"] = {rep = 1,min = 18, max = 40},
["white_pl2"] = {rep = 1,min = 18, max = 40},
["white_pl3"] = {rep = 1,min = 18, max = 40},
["white_pl4"] = {rep = 1,min = 18, max = 40},
["blue_pl"] = {rep = 1,min = 18, max = 40},
["blue_pl2"] = {rep = 1,min = 18, max = 40},
["blue_pl3"] = {rep = 1,min = 18, max = 40},
["blue_pl4"] = {rep = 1,min = 18, max = 40},
["red_pl"] = {rep = 1,min = 18, max = 40},
["red_pl2"] = {rep = 1,min = 18, max = 40},
["red_pl3"] = {rep = 1,min = 18, max = 40},
["red_pl4"] = {rep = 1,min = 18, max = 40},
["orange_pl"] = {rep = 1,min = 18, max = 40},
["orange_pl2"] = {rep = 1,min = 18, max = 40},
["orange_pl3"] = {rep = 1,min = 18, max = 40},
["orange_pl4"] = {rep = 1,min = 18, max = 40},
["white_trolls"] = {rep = 1,min = 18, max = 40},
["white_trolls2"] = {rep = 1,min = 18, max = 40},
["white_trolls3"] = {rep = 1,min = 18, max = 40},
["white_trolls4"] = {rep = 1,min = 18, max = 40},
["blue_trolls"] = {rep = 1,min = 18, max = 40},
["blue_trolls2"] = {rep = 1,min = 18, max = 40},
["blue_trolls3"] = {rep = 1,min = 18, max = 40},
["blue_trolls4"] = {rep = 1,min = 18, max = 40},
["red_trolls"] = {rep = 1,min = 18, max = 40},
["red_trolls2"] = {rep = 1,min = 18, max = 40},
["red_trolls3"] = {rep = 1,min = 18, max = 40},
["red_trolls4"] = {rep = 1,min = 18, max = 40},
["orange_trolls"] = {rep = 1,min = 18, max = 40},
["orange_trolls2"] = {rep = 1,min = 18, max = 40},
["orange_trolls3"] = {rep = 1,min = 18, max = 40},
["orange_trolls4"] = {rep = 1,min = 18, max = 40},
["white_cats"] = {rep = 1,min = 18, max = 40},
["white_cats2"] = {rep = 1,min = 18, max = 40},
["white_cats3"] = {rep = 1,min = 18, max = 40},
["white_cats4"] = {rep = 1,min = 18, max = 40},
["blue_cats"] = {rep = 1,min = 18, max = 40},
["blue_cats2"] = {rep = 1,min = 18, max = 40},
["blue_cats3"] = {rep = 1,min = 18, max = 40},
["blue_cats4"] = {rep = 1,min = 18, max = 40},
["red_cats"] = {rep = 1,min = 18, max = 40},
["red_cats2"] = {rep = 1,min = 18, max = 40},
["red_cats3"] = {rep = 1,min = 18, max = 40},
["red_cats4"] = {rep = 1,min = 18, max = 40},
["orange_cats"] = {rep = 1,min = 18, max = 40},
["orange_cats2"] = {rep = 1,min = 18, max = 40},
["orange_cats3"] = {rep = 1,min = 18, max = 40},
["orange_cats4"] = {rep = 1,min = 18, max = 40},
["blunts"] = {rep = 1,min = 18, max = 40},
["leanblunts"] = {rep = 1,min = 18, max = 40},
["dextroblunts"] = {rep = 1,min = 18, max = 40},
["chewyblunt"] = {rep = 1,min = 18, max = 40},
["blunt"] = {rep = 1,min = 18, max = 40},
["specialchocolate"] = {rep = 1,min = 18, max = 40},
["specialbrownie"] = {rep = 1,min = 18, max = 40},
["specialcookie"] = {rep = 1,min = 18, max = 40},
["specialmuffin"] = {rep = 1,min = 18, max = 40},
["shatter"] = {rep = 1,min = 18, max = 40},
["ciggie"] = {rep = 1,min = 18, max = 40},
["methbags"] = {rep = 1,min = 18, max = 40},
["driedmescaline"] = {rep = 1,min = 18, max = 40},
["shrooms"] = {rep = 1,min = 18, max = 40},
["gratefuldead_tabs"] = {rep = 1,min = 18, max = 40},
["bart_tabs"] = {rep = 1,min = 18, max = 40},
["pineapple_tabs"] = {rep = 1,min = 18, max = 40},
["yinyang_tabs"] = {rep = 1,min = 18, max = 40},
["wildcherry_tabs"] = {rep = 1,min = 18, max = 40},
["smiley_tabs"] = {rep = 1,min = 18, max = 40},
["cupoflean"] = {rep = 1,min = 18, max = 40},
["cupofdextro"] = {rep = 1,min = 18, max = 40},
}
local drugsNames = {}
local soldPeds = {}
for k, v in pairs(Drugs) do
for k, v in pairs(Config.Cornerselling.Drugs) do
table.insert(drugsNames, k)
end
GlobalState.DrugNames = drugsNames
Locations = Locations or {}
Locations.CornerSelling = {
noSellZones = {
{loc = vector3(445.11, -991.3, 30.69), width = 10.0, length = 10.0, height = 10.0, rot = 180.0},
}
}
GlobalState.MDDrugsLocations = Locations
local RobbedDrugs = {}
local cornsellConfig = {
MarkedBills = false, -- if you want to use qb markedbills for selling set to true, if you want to use a custom item or cash set to false
CustomItem = '', -- If you want to use a custom item for selling, put the item name here, if not leave it blank ''
--- if MarkedBills is false and CustomItem is blank it will pay cash
policeRequired = 0, -- if you want cops to be required to sell set this to a number above 0
robChance = 20, -- Chance To Be Robbed 1 = 1%
}
local function beingRobbed(source, item, amount, ped)
local src = source
@@ -181,19 +50,19 @@ Bridge.Callback.Register('md-drugs:server:cornerselling:getAvailableDrugs', func
return false
end
for k, v in pairs(Drugs) do
for k, v in pairs(Config.Cornerselling.Drugs) do
local count = Bridge.Inventory.GetItemCount(src, k)
if count >= 1 then
local maths = math.random(1,100)
if maths <= cornsellConfig.robChance then
if maths <= Config.CornerSelling.config.robChance then
beingRobbed(source, k, count, ped)
soldPeds[src][ped] = {item = k, amount = count}
return 'robbed'
else
if count > 15 then count = 15 end
local amount = math.random(1, count)
local price = (math.random(Drugs[k]['min'], Drugs[k]['max']) * amount) * priceAdjust
local price = (math.random(Config.Cornerselling.Drugs[k]['min'], Config.Cornerselling.Drugs[k]['max']) * amount) * priceAdjust
DrugDeals[src] = {item = k, amount = amount, price = math.floor(price), ped = ped}
soldPeds[src][ped] = DrugDeals[src]
return DrugDeals[src]
@@ -204,7 +73,7 @@ Bridge.Callback.Register('md-drugs:server:cornerselling:getAvailableDrugs', func
end)
Bridge.Callback.Register('md-drugs:server:hasDrugs', function(source)
for k, v in pairs(Drugs) do
for k, v in pairs(Config.Cornerselling.Drugs) do
if Bridge.Inventory.HasItem(source, k) then
return true
end
@@ -214,7 +83,7 @@ end)
local function csCheck(src, item, amount, price)
local isIn = false
for k, v in pairs (Drugs) do
for k, v in pairs (Config.Cornerselling.Drugs) do
if item == k then
isIn = true
end
@@ -251,15 +120,15 @@ RegisterNetEvent('md-drugs:server:sellCornerDrugs', function(item, amount, price
return
end
AddRep(src, 'cornerselling', Drugs[item].rep * amount)
AddRep(src, 'cornerselling', Config.Cornerselling.Drugs[item].rep * amount)
DrugDeals[src] = nil
if cornsellConfig.MarkedBills then
if Config.CornerSelling.config.MarkedBills then
Bridge.Inventory.AddItem(src, 'markedbills', price, nil, {worth = price})
return
end
if cornsellConfig.CustomItem ~= '' then
Bridge.Inventory.AddItem(src, cornsellConfig.CustomItem, price)
if Config.CornerSelling.config.CustomItem ~= '' then
Bridge.Inventory.AddItem(src, Config.CornerSelling.config.CustomItem, price)
return
end
Bridge.Framework.AddAccountBalance(src, 'cash', price)
@@ -281,8 +150,8 @@ end)
RegisterCommand('cornersell', function(source, args, raw)
local src = source
if #Bridge.Framework.GetPlayersByJob('police') < cornsellConfig.policeRequired then
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Cornerselling.notEnoughCops', cornsellConfig.policeRequired - #Bridge.Framework.GetPlayersByJob('police')), 'error')
if #Bridge.Framework.GetPlayersByJob('police') < Config.CornerSelling.config.policeRequired then
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Cornerselling.notEnoughCops', Config.CornerSelling.config.policeRequired - #Bridge.Framework.GetPlayersByJob('police')), 'error')
return
end
TriggerClientEvent('md-drugs:client:cornerselling', src)
+5 -30
View File
@@ -1,35 +1,10 @@
Recipes, Locations = Recipes or {}, Locations or {}
Recipes.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}},
}
}
GlobalState.MDDrugsRecipes = Recipes
Locations.Crack = {
makecrack = { -- make crack with baking soda with cut coke 1-3
{loc = vector3(2433.47, 4970.02, 42.18), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
bagcrack = { --- bag crack 1-3 stages
{loc = vector3(2436.55, 4964.96, 42.18), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
}
GlobalState.MDDrugsLocations = Locations
RegisterServerEvent('md-drugs:server:makecrackone', function(num)
local src = source
if timeOut(src, 'md-drugs:server:makecrackone') then return end
if not checkDistance(src, Locations.Crack.makecrack[num].loc, 2.0, 'md-drugs:server:makecrackone') then
if not checkDistance(src, Config.Crack.Locations.makecrack[num].loc, 2.0, 'md-drugs:server:makecrackone') then
return
end
@@ -47,7 +22,7 @@ RegisterServerEvent('md-drugs:server:makecrackone', function(num)
end
end
end
if not craft(src, Recipes.Crack.cookcrack[tier]) then
if not craft(src, Config.Crack.Recipes.cookcrack[tier]) then
return
end
end)
@@ -58,7 +33,7 @@ RegisterServerEvent('md-drugs:server:bagcrack', function(num)
if timeOut(src, 'md-drugs:server:bagcrack') then return end
if not checkDistance(src, Locations.Crack.bagcrack[num].loc, 2.0, 'md-drugs:server:bagcrack') then
if not checkDistance(src, Config.Crack.Locations.bagcrack[num].loc, 2.0, 'md-drugs:server:bagcrack') then
return
end
@@ -76,7 +51,7 @@ RegisterServerEvent('md-drugs:server:bagcrack', function(num)
end
end
end
if not craft(src, Recipes.Crack.bagcrack[tier]) then
if not craft(src, Config.Crack.Recipes.bagcrack[tier]) then
return
end
end)
@@ -107,7 +82,7 @@ end
RegisterNetEvent("md-drugs:server:failcrackone", function(num)
local src = source
if not checkDistance(src, Locations.Crack.makecrack[num].loc, 2.0, 'md-drugs:server:failcrackone') then
if not checkDistance(src, Config.Crack.Locations.makecrack[num].loc, 2.0, 'md-drugs:server:failcrackone') then
return
end
local items = {
+4 -97
View File
@@ -1,95 +1,4 @@
Locations, Recipes = Locations or {}, Recipes or {}
Locations.Deliveries = {
dropOff = {
{coords = vector4(282.48, -1814.32, 27.23, 145.11)},
{coords = vector4(-296.11, -1300.65, 31.31, 270.87)},
{coords = vector4(-36.64, -1492.04, 31.22, 151.91)},
{coords = vector4(282.48, -1814.32, 27.23, 232.19)},
{coords = vector4(54.54, -1873.22, 22.81, 131.47)},
{coords = vector4(-269.34, -2437.25, 6.40, 252.67)},
{coords = vector4(269.19, -3248.55, 5.79, 252.67)},
{coords = vector4(632.94, -3015.44, 7.34, 3.44)},
{coords = vector4(1049.55, -2427.88, 30.30, 79.52)},
{coords = vector4(853.16, -2207.32, 30.68, 284.88)},
{coords = vector4(903.10, -1721.98, 32.25, 168.71)},
{coords = vector4(1289.30, -1710.49, 55.48, 208.57)},
{coords = vector4(1412.01, -1490.53, 60.66, 132.46)},
{coords = vector4(734.26, -1311.26, 27.01, 102.99)},
{coords = vector4(1231.60, -1083.06, 38.53, 102.99)},
{coords = vector4(1143.55, -1000.19, 45.32, 257.05)},
{coords = vector4(1264.82, -702.87, 64.72, 257.05)},
{coords = vector4(1119.65, -639.76, 56.81, 284.53)},
{coords = vector4(1129.59, -462.59, 66.49, 79.23)},
{coords = vector4(42.80, -811.45, 31.43, 79.23)},
{coords = vector4(-509.48, -1001.66, 23.55, 79.23)},
{coords = vector4(-830.97, -862.41, 20.69, 13.72)},
{coords = vector4(-1320.26, -1177.34, 4.89, 74.29)},
{coords = vector4(-1097.63, -1673.24, 8.40, 136.51)},
{coords = vector4(-1147.61, -1452.10, 4.60, 51.50)},
{coords = vector4(-1241.69, -1208.39, 8.52, 107.56)},
{coords = vector4(-1876.92, -584.44, 11.85, 329.54)},
{coords = vector4(-1303.94, -441.39, 35.22, 128.73)},
{coords = vector4(-1705.48, -433.46, 42.17, 128.73)},
{coords = vector4(-1305.99, 336.35, 65.50, 35.13)},
{coords = vector4(-741.80, 484.84, 109.47, 110.85)},
{coords = vector4(-409.57, 341.49, 108.91, 270.45)},
{coords = vector4(-126.44, 588.18, 204.71, 8.12)},
{coords = vector4(211.42, -101.42, 73.28, 174.10)},
{coords = vector4(490.61, -95.04, 66.44, 273.57)},
{coords = vector4(387.19, -993.59, 29.42, 273.57)},
{coords = vector4(-500.47, -712.37, 33.21, 273.57)},
{coords = vector4(2572.20, 479.97, 108.68, 80.27)},
{coords = vector4(-430.10, 1205.41, 325.76, 169.25)},
{coords = vector4(-126.06, 1896.58, 197.33, 169.25)},
{coords = vector4(-2521.08, 2310.31, 33.22, 276.87)},
{coords = vector4(1129.01, 2125.14, 55.55, 276.87)},
{coords = vector4(1546.64, 2166.56, 78.72, 100.37)},
{coords = vector4(404.34, 2584.54, 43.52, 100.37)},
{coords = vector4(180.15, 2792.99, 45.66, 283.04)},
{coords = vector4(287.67, 2843.89, 44.70, 118.41)},
{coords = vector4(2030.23, 3184.42, 45.13, 146.06)},
{coords = vector4(2175.33, 3321.92, 46.13, 214.53)},
{coords = vector4(2389.61, 3340.98, 47.34, 214.52)},
{coords = vector4(1716.25, 3295.08, 41.26, 196.21)},
{coords = vector4(1779.38, 3640.83, 34.50, 24.16)},
{coords = vector4(1894.59, 3715.34, 32.75, 127.89)},
{coords = vector4(1861.90, 3857.15, 36.27, 293.45)},
{coords = vector4(996.38, 3575.07, 34.61, 328.30)},
{coords = vector4(387.45, 3584.73, 33.29, 351.41)},
{coords = vector4(68.08, 3693.22, 40.66, 63.98)},
{coords = vector4(15.55, 3688.70, 39.81, 230.89)},
{coords = vector4(2566.59, 4283.34, 41.97, 348.53)},
{coords = vector4(2570.82, 4667.95, 34.08, 135.30)},
{coords = vector4(2882.05, 4511.72, 48.02, 66.58)},
{coords = vector4(2243.78, 5154.02, 57.89, 139.42)},
{coords = vector4(1642.91, 4846.08, 45.51, 109.83)},
{coords = vector4(1308.87, 4362.17, 41.55, 256.01)},
{coords = vector4(-1090.27, 4940.57, 214.13, 256.01)},
{coords = vector4(-552.37, 5348.37, 74.76, 62.18)},
{coords = vector4(-679.02, 5834.27, 17.33, 137.18)},
{coords = vector4(-481.97, 6276.93, 13.35, 323.16)},
{coords = vector4(-24.92, 6472.60, 31.49, 144.42)},
{coords = vector4(36.03, 6549.18, 31.43, 287.85)},
{coords = vector4(406.08, 6526.43, 27.75, 97.45)},
{coords = vector4(1522.39, 6329.23, 24.61, 331.71)},
{coords = vector4(1741.39, 6419.62, 35.04, 331.71)},
{coords = vector4(3426.72, 5174.42, 7.40, 112.64)},
{coords = vector4(2525.99, 2586.62, 38.94, 257.02)},
{coords = vector4(2696.29, 1664.44, 24.52, 70.12)},
{coords = vector4(106.24, -1280.32, 29.24, 350.89)},
{coords = vector4(223.98, 121.53, 102.76, 259.68)},
{coords = vector4(102.19, -255.02, 50.05, 83.59)},
}
}
Recipes.Deliveries = {
{name = "weed_whitewidow_seed", price = 15, amount = 150, minrep = 0},
{name = "weed_skunk_seed", price = 15, amount = 150, minrep = 0},
{name = "weed_purplehaze_seed", price = 15, amount = 150, minrep = 0},
{name = "weed_ogkush_seed", price = 15, amount = 150, minrep = 0},
{name = "weed_amnesia_seed", price = 15, amount = 150, minrep = 0},
}
GlobalState.MDDrugsRecipes = Recipes
local drugDeliveryItem = {
{item = 'coke_brick', amount = 1},
@@ -107,8 +16,7 @@ CreateThread(function()
model = dealers[i].model or 'a_m_m_skater_01',
}
end
Locations.Deliveries.dealers = Dealers
GlobalState.MDDrugsLocations = Locations
GlobalState.MDDrugDealers = Dealers
end
end)
@@ -125,8 +33,7 @@ RegisterCommand('newdealer', function(source, args, rawCommand)
coords = vec,
model = model,
}
Locations.Deliveries.dealers = Dealers
GlobalState.MDDrugsLocations = Locations
GlobalState.MDDrugDealers = Dealers
Wait(1000)
TriggerClientEvent('md-drugs:client:RefreshDealers', -1)
end, false)
@@ -141,7 +48,7 @@ RegisterNetEvent('md-drugs:server:buyItemDealer', function(item, dealerId)
if not checkDistance(src, Dealers[dealerId].coords, 5.0, 'md-drugs:server:buyItemDealer') then
return
end
local itemExists = Recipes.Deliveries[item]
local itemExists = Config.Deliveries.Recipes[item]
if not itemExists then
Bridge.Prints.Warn(Bridge.Language.Locale('Deliveries.itemDoesntExist', Bridge.Framework.GetPlayerIdentifier(src), item))
@@ -189,7 +96,7 @@ RegisterNetEvent('md-drugs:server:requestDelivery', function(dealerId)
TriggerClientEvent('md-drugs:client:setLocation', src, active[id])
return
end
local deliveryLoc = Locations.Deliveries.dropOff[math.random(1, #Locations.Deliveries.dropOff)]
local deliveryLoc = Config.Deliveries.Locations.dropOff[math.random(1, #Config.Deliveries.Locations.dropOff)]
local item = drugDeliveryItem[math.random(1, #drugDeliveryItem)]
active[id] = {
coords = deliveryLoc.coords,
+14 -54
View File
@@ -1,49 +1,5 @@
Recipes, Locations = Recipes or {}, Locations or {}
local heroinLabKits = {}
Recipes.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}},
}
}
GlobalState.MDDrugsRecipes = Recipes
Locations.Heroin = {
dryplant = { -- turn resin into powder
{loc = vector3(-1353.77, -335.58, 43.92), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
cutheroinone = { -- cut heroin stage 1-3 with baking soda
{loc = vector3(-1360.14, -337.03, 43.92), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
fillneedle = { -- fill needles with heroin
{loc = vector3(-1366.32, -334.40, 44.44), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
buyKit = {
{ped = 'a_m_m_farmer_01',loc = vector4(-1366.32, -334.40, 44.44,180.0), size = vector3(1.0, 1.0, 2.0), gang = ""},
}
}
GlobalState.MDDrugsLocations = Locations
local prices = {
heroinlabkitprice = 10000
}
Bridge.Callback.Register('md-drugs:server:removeCleaningKitHeroin', function(source)
@@ -72,12 +28,12 @@ RegisterServerEvent('md-drugs:server:dryplant', function(num)
if timeOut(src, 'md-drugs:server:dryplant') then return end
if not checkDistance(src, Locations.Heroin.dryplant[num].loc, 3.0, 'md-drugs:server:dryplant') then
if not checkDistance(src, Config.Heroin.Locations.dryplant[num].loc, 3.0, 'md-drugs:server:dryplant') then
return
end
local tier = getTier(src)
if not craft(src, Recipes.Heroin.dryheroin[tier]) then
if not craft(src, Config.Heroin.Recipes.dryheroin[tier]) then
return
end
end)
@@ -87,7 +43,7 @@ RegisterServerEvent('md-drugs:server:cutheroin', function(num)
if timeOut(src, 'md-drugs:server:cutheroin') then return end
if not checkDistance(src, Locations.Heroin.cutheroinone[num].loc, 3.0, 'md-drugs:server:cutheroin') then
if not checkDistance(src, Config.Heroin.Locations.cutheroinone[num].loc, 3.0, 'md-drugs:server:cutheroin') then
return
end
@@ -106,7 +62,7 @@ RegisterServerEvent('md-drugs:server:cutheroin', function(num)
end
end
if not craft(src, Recipes.Heroin.cutheroin[tier]) then
if not craft(src, Config.Heroin.Recipes.cutheroin[tier]) then
return
end
end)
@@ -116,7 +72,7 @@ RegisterServerEvent('md-drugs:server:getheroinlabkit', function(num)
if timeOut(src, 'md-drugs:server:getheroinlabkit') then return end
if not checkDistance(src, Locations.Heroin.buyKit[num].loc, 3.0, 'md-drugs:server:getheroinlabkit') then
if not checkDistance(src, Config.Heroin.Locations.buyKit[num].loc, 3.0, 'md-drugs:server:getheroinlabkit') then
return
end
@@ -125,10 +81,10 @@ RegisterServerEvent('md-drugs:server:getheroinlabkit', function(num)
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('heroin.hasKitAlready'), 'error')
return
end
if Bridge.Framework.RemoveAccountBalance(src, 'cash', prices.heroinlabkitprice) then
if Bridge.Framework.RemoveAccountBalance(src, 'cash', Config.Heroin.prices.heroinlabkitprice) then
Bridge.Inventory.AddItem(src, 'heroinlabkit', 1)
else
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('heroin.notEnoughMoney', prices.heroinlabkitprice), 'error')
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('heroin.notEnoughMoney', Config.Heroin.prices.heroinlabkitprice), 'error')
end
end)
@@ -185,6 +141,10 @@ RegisterServerEvent('md-drugs:server:heatliquidheroin', function()
return
end
if not checkDistance(src, heroinLabKits[src].coords, 3.0, 'md-drugs:server:heatliquidheroin') then
return
end
local tier = 'tier1'
if Config.TierSystem then
local itemList = {
@@ -199,7 +159,7 @@ RegisterServerEvent('md-drugs:server:heatliquidheroin', function()
end
end
end
if not craft(src, Recipes.Heroin.fillvial[tier]) then
if not craft(src, Config.Heroin.Recipes.fillvial[tier]) then
return
end
end)
@@ -229,7 +189,7 @@ RegisterServerEvent('md-drugs:server:fillneedle', function(num)
local src = source
if timeOut(src, 'md-drugs:server:fillneedle') then return end
if not checkDistance(src, Locations.Heroin.fillneedle[num].loc, 3.0, 'md-drugs:server:fillneedle') then
if not checkDistance(src, Config.Heroin.Locations.fillneedle[num].loc, 3.0, 'md-drugs:server:fillneedle') then
return
end
local tier = 'tier1'
@@ -246,7 +206,7 @@ RegisterServerEvent('md-drugs:server:fillneedle', function(num)
end
end
end
if not craft(src, Recipes.Heroin.fillneedle[tier]) then
if not craft(src, Config.Hero8in.Recipes.fillneedle[tier]) then
return
end
end)
+5 -38
View File
@@ -1,40 +1,6 @@
Locations = Locations or {}
Recipes = Recipes or {}
local onRun = {}
Locations.Lean = {
SyrupVendor = {
{ped = 'a_m_m_farmer_01', loc = vector4(365.21, -578.77, 39.30, 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)
},
}
GlobalState.MDDrugsLocations = Locations
Recipes.Lean = {
{
item = 'cupoflean',
amount = 1,
ingredients = {
{item = 'leancup', amount = 1},
{item = 'mdlean', amount = 1},
{item = 'sprunk', amount = 1},
}
},
{
item = 'cupofdextro',
amount = 1,
ingredients = {
{item = 'leancup', amount = 1},
{item = 'mdreddextro', amount = 1},
{item = 'sprunk', amount = 1},
}
}
}
GlobalState.MDDrugsRecipes = Recipes
local function setTimeout(identifier)
if onRun[identifier] then
CreateThread(function()
@@ -43,6 +9,7 @@ local function setTimeout(identifier)
end)
end
end
RegisterServerEvent('md-drugs:server:givelean', function()
local src = source
if not onRun[src] then
@@ -77,7 +44,7 @@ Bridge.Callback.Register('md-drugs:server:registerLean', function(source, loc, v
if onRun[src] then
return false
else
if not checkDistance(src, Locations.Lean.SyrupVendor[loc].loc, 5.0, 'md-drugs:server:registerLean') then
if not checkDistance(src, Config.Lean.Locations.SyrupVendor[loc].loc, 5.0, 'md-drugs:server:registerLean') then
return false
end
if not vehicleNetId then
@@ -107,10 +74,10 @@ end)
RegisterNetEvent('md-drugs:server:makeLean', function(recipe)
local src = source
if not Recipes.Lean[recipe] then
if not Config.Lean.Recipes[recipe] then
return
end
local rec = Recipes.Lean[recipe]
local rec = Config.Lean.Recipes[recipe]
for k, v in pairs (rec.ingredients) do
if not Bridge.Inventory.HasItem(src, v.item, v.amount) then
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('lean.missingIngredients'), 'error')
+9 -36
View File
@@ -1,32 +1,3 @@
Recipes, Locations = Recipes or {}, Locations or {}
local prices = {
tabcost = 100, -- price per piece of tab paper event does 10 at a time
lsdlabkitcost = 10000 -- price of the lsd lab kit
}
Recipes.LSD = {
vial = {
heat = {take = {lysergic_acid = 1, diethylamide = 1,}, give = {lsd_one_vial = 1}}
},
}
GlobalState.MDDrugsRecipes = Recipes
Locations.LSD = {
lysergicacid = { -- get lysergic acid
{loc = vector3(-1381.21, -327.75, 39.85),size = vector3(1.0, 1.0, 2.0), gang = ""},
{loc = vector3(2405.53, 5008.39, 46.02), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
diethylamide = { -- get diethylamide
{loc = vector3(-1372.89, -319.47, 39.05), size = vector3(1.0, 1.0, 2.0), gang = ""},
{loc = vector3(2408.38, 5011.18, 46.08), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
gettabs = { -- buy tab paper
{loc = vector3(-1378.26, -336.56, 39.31), size = vector3(1.0, 1.0, 2.0), gang = ""},
{loc = vector3(2409.59, 5012.45, 46.09), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
buyLSDkit = {
{ped = 'g_f_y_families_01', loc = vector4(-1376.66, -325.52, 39.63, 142.1), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
}
GlobalState.MDDrugsLocations = Locations
local lsdTables = {}
@@ -35,7 +6,7 @@ RegisterServerEvent('md-drugs:server:getlysergic', function(num)
if timeOut(src, 'md-drugs:server:getlysergic') then return end
if not checkDistance(src, Locations.LSD.lysergicacid[num].loc, 2.0, 'md-drugs:server:getlysergic') then
if not checkDistance(src, Config.LSD.Locations.lysergicacid[num].loc, 2.0, 'md-drugs:server:getlysergic') then
return
end
Bridge.Inventory.AddItem(src, 'lysergic_acid', 2)
@@ -44,7 +15,7 @@ end)
RegisterServerEvent('md-drugs:server:getdiethylamide', function(num)
local src = source
if timeOut(src, 'md-drugs:server:getdiethylamide') then return end
if not checkDistance(src, Locations.LSD.diethylamide[num].loc, 2.0, 'md-drugs:server:getdiethylamide') then
if not checkDistance(src, Config.LSD.Locations.diethylamide[num].loc, 2.0, 'md-drugs:server:getdiethylamide') then
return
end
Bridge.Inventory.AddItem(src, 'diethylamide', 2)
@@ -91,7 +62,7 @@ RegisterServerEvent('md-drugs:server:heatliquid', function()
if not checkDistance(src, lsdTables[src].loc, 3.0, 'md-drugs:server:heatliquid') then
return
end
if not craft(src, Recipes.LSD['vial']['heat']) then
if not craft(src, Config.LSD.Recipes.vial.heat) then
return
end
end)
@@ -123,10 +94,12 @@ RegisterServerEvent('md-drugs:server:refinequalityacid', function()
if timeOut(src, 'md-drugs:server:refinequalityacid') then
return
end
local removed = Bridge.Inventory.RemoveItem(src, 'lsd_one_vial', 1)
if not removed then
return
end
if Config.TierSystem then
local lsd = tonumber(getRep(src, 'lsd'))
if lsd <= 30 then
@@ -175,11 +148,11 @@ RegisterServerEvent('md-drugs:server:gettabpaper', function(num)
if timeOut(src, 'md-drugs:server:gettabpaper') then return end
if not checkDistance(src, Locations.LSD.gettabs[num].loc, 3.0, 'md-drugs:server:gettabpaper') then
if not checkDistance(src, Config.LSD.Locations.gettabs[num].loc, 3.0, 'md-drugs:server:gettabpaper') then
return
end
if Bridge.Framework.RemoveAccountBalance(src, 'cash', prices.tabcost * 10) then
if Bridge.Framework.RemoveAccountBalance(src, 'cash', Config.LSD.prices.tabcost * 10) then
Bridge.Inventory.AddItem(src,'tab_paper', 10)
else
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Catches.notEnoughMoney'), "error")
@@ -194,10 +167,10 @@ RegisterServerEvent('md-drugs:server:getlabkit', function(num)
return
end
if not checkDistance(src, Locations.LSD.buyLSDkit[num].loc, 3.0, 'md-drugs:server:getlabkit') then
if not checkDistance(src, Config.LSD.Locations.buyLSDkit[num].loc, 3.0, 'md-drugs:server:getlabkit') then
return
end
if Bridge.Framework.RemoveAccountBalance(src, 'cash', prices.lsdlabkitcost) then
if Bridge.Framework.RemoveAccountBalance(src, 'cash', Config.LSD.prices.lsdlabkitcost) then
Bridge.Inventory.AddItem(src,'lsdlabkit', 1)
else
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Catches.notEnoughMoney'), "error")
+2 -18
View File
@@ -1,30 +1,14 @@
Recipes, Locations = Recipes or {}, Locations or {}
Locations.Mescaline = {
DryOutMescaline = { -- where to dry out your mescaline
{loc = vector3(1850.12, 2595.23, 45.67), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
}
GlobalState.MDDrugsLocations = Locations
Recipes.Mescaline = {
mescaline = {
dry = {
dried = {take = {cactusbulb = 1}, give = {driedmescaline = 1} }
}
},
}
GlobalState.MDDrugsRecipes = Recipes
RegisterNetEvent("md-drugs:server:drymescaline", function(num)
local src = source
if timeOut(src, 'md-drugs:server:drymescaline') then return end
if not checkDistance(src, Locations.Mescaline.DryOutMescaline[num].loc, 3.0, 'md-drugs:server:drymescaline') then
if not checkDistance(src, Config.Mescaline.Locations.DryOutMescaline[num].loc, 3.0, 'md-drugs:server:drymescaline') then
return
end
if not craft(src, Recipes.Mescaline.mescaline.dry.dried) then
if not craft(src, Config.Mescaline.Recipes.dry.dried) then
return
end
end)
+6 -50
View File
@@ -1,48 +1,5 @@
Recipes, Locations = Recipes or {}, Locations or {}
local onRun = {}
local vehicles = {}
Locations.Meth = {
CookMeth = {
{loc = vector3(1006.09, -3200.59, -38.52), size = vector3(1.0, 1.0, 2.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), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
MethSmash = {
{loc = vector3(1012.04, -3194.96, -38.99), bucket = vector4(1012.86, -3194.13, -39.20, 90.00), size = vector3(1.0, 1.0, 2.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), size = vector3(1.0, 1.0, 2.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), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
MethAce = { -- get acetone
{loc = vector3(3535.41, 3661.05, 28.12), size = vector3(1.0, 1.0, 2.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), size = vector3(1.0, 1.0, 2.0), gang = ""},
}
}
GlobalState.MDDrugsLocations = Locations
Recipes.Meth = {
cook = {
heat = {take = {ephedrine = 1, acetone = 1}, give = {}}
},
bag = {
bags = {take = {empty_weed_bag = 5}, give = {methbags = 5} }
}
}
GlobalState.MDDrugsRecipes = Recipes
local function setTimeout(src)
if onRun[src] then
@@ -91,11 +48,11 @@ RegisterServerEvent('md-drugs:server:getmeth', function(num)
local src = source
if timeOut(src, 'md-drugs:server:getmeth') then return end
if not checkDistance(src, Locations.Meth.BagMeth[num].loc, 2.5, 'md-drugs:server:getmeth') then
if not checkDistance(src, Config.Meth.Locations.BagMeth[num].loc, 2.5, 'md-drugs:server:getmeth') then
return
end
if not craft(src, Recipes.Meth.bag.bags) then
if not craft(src, Config.Meth.recipes.bag.bags) then
return
end
end)
@@ -103,7 +60,7 @@ end)
RegisterServerEvent('md-drugs:server:geteph', function(num)
local src = source
if timeOut(src, 'md-drugs:server:geteph') then return end
if not checkDistance(src, Locations.Meth.MethEph[num].loc, 2.5, 'md-drugs:server:geteph') then
if not checkDistance(src, Config.Meth.Locations.MethEph[num].loc, 2.5, 'md-drugs:server:geteph') then
return
end
Bridge.Inventory.AddItem(src, 'ephedrine', 1)
@@ -113,7 +70,6 @@ RegisterServerEvent('md-drugs:server:getace', function(num)
local src = source
if timeOut(src, 'md-drugs:server:getace') then return end
if not checkDistance(src, Locations.Meth.MethAce[num].loc, 2.5, 'md-drugs:server:getace') then
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Catches.notIn'), "error")
return
end
Bridge.Inventory.AddItem(src, 'acetone', 1)
@@ -121,10 +77,10 @@ end)
Bridge.Callback.Register('md-drugs:server:startcook', function(source, num)
local src = source
if not checkDistance(src, Locations.Meth.CookMeth[num].loc, 2.5, 'md-drugs:server:startcook') then
if not checkDistance(src, Config.Meth.Locations.CookMeth[num].loc, 2.5, 'md-drugs:server:startcook') then
return false
end
if not craft(src, Recipes.Meth.cook.heat) then
if not craft(src, Config.Meth.recipes.cook.heat) then
return false
end
return true
@@ -135,7 +91,7 @@ Bridge.Callback.Register('md-drugs:server:registerMeth', function(source, loc, v
if onRun[source] then
return false
else
if checkDistance(src, Locations.Meth.MethHeist[loc].loc, 10.0, 'md-drugs:server:registerMeth') then
if checkDistance(src, Config.Meth.Locations.MethHeist[loc].loc, 10.0, 'md-drugs:server:registerMeth') then
local vehicle = NetworkGetEntityFromNetworkId(vehNetId)
if DoesEntityExist(vehicle) and GetEntityModel(vehicle) == GetHashKey('journey') then
vehicles[src] = vehicle
+9 -37
View File
@@ -1,31 +1,7 @@
Locations = Locations or {}
local prices = {
payfortruck = 500,
hotchance = 30,
itemChance = 20,
}
local onRoute = {}
local vehicles = {}
Locations.Oxy = {
OxyPayForTruck = {
{loc = vector3(1437.64, -1491.91, 63.62), truckSpawn = vector4(1450.87, -1482.13, 63.22, 69.95),size = vector3(1.0, 1.0, 2.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),
}
}
GlobalState.MDDrugsLocations = Locations
Bridge.Callback.Register('md-drugs:server:payfortruck', function(source, loc)
@@ -34,15 +10,15 @@ Bridge.Callback.Register('md-drugs:server:payfortruck', function(source, loc)
if onRoute[src] then
return false
end
if not checkDistance(src, Locations.Oxy.OxyPayForTruck[loc].loc, 2.0, 'md-drugs:server:payfortruck') then
if not checkDistance(src, Config.Oxy.Locations.OxyPayForTruck[loc].loc, 2.0, 'md-drugs:server:payfortruck') then
return false
end
if not Bridge.Framework.RemoveAccountBalance(src, 'cash', prices.payfortruck) then
if not Bridge.Framework.RemoveAccountBalance(src, 'cash', Config.Oxy.prices.payfortruck) then
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('oxy.notEnoughCash'), "error")
return false
end
onRoute[src] = {
amount = math.random(1, #Locations.Oxy.oxylocations),
amount = math.random(1, #Config.Oxy.Locations.oxylocations),
current = 0
}
return true
@@ -57,7 +33,7 @@ RegisterServerEvent('md-drugs:server:giveoxybox', function()
return
end
if not checkDistance(src, Locations.Oxy.oxylocations[onRoute[src].current], 3.5, 'md-drugs:server:giveoxybox') then
if not checkDistance(src, Config.Oxy.Locations.oxylocations[onRoute[src].current], 3.5, 'md-drugs:server:giveoxybox') then
return
end
@@ -73,13 +49,9 @@ RegisterServerEvent('md-drugs:server:giveoxybox', function()
local cash = math.random(50, 200)
local itemchance = math.random(1,100)
local itemList = {
{item = 'oxy', amount = 2},
{item = 'houselockpick', amount = 1},
}
local item = itemList[math.random(1, #itemList)]
local item = Config.Oxy.itemList[math.random(1, #Config.Oxy.itemList)]
Bridge.Framework.AddAccountBalance(src, 'cash', cash)
if itemchance <= prices.itemChance then
if itemchance <= Config.Oxy.prices.itemChance then
Bridge.Inventory.AddItem(src, item.item, item.amount)
end
end)
@@ -91,7 +63,7 @@ Bridge.Callback.Register('md-drugs:server:getRoute', function(source)
vehicles[source] = nil
return false
end
onRoute[source].current = math.random(1, #Locations.Oxy.oxylocations)
onRoute[source].current = math.random(1, #Config.Oxy.Locations.oxylocations)
onRoute[source].amount = onRoute[source].amount - 1
return onRoute[source].current
end)
+1 -8
View File
@@ -1,11 +1,4 @@
Locations = Locations or {}
Locations.Pharma = {
FillPrescription = { -- where to fill out your prescription
{loc = vector3(2855.62, 4446.73, 48.53), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
}
GlobalState.MDDrugsLocations = Locations
local function GetJob(source)
local src = source
@@ -72,7 +65,7 @@ RegisterServerEvent('md-drugs:server:fillprescription', function(num)
local src = source
if timeOut(src, 'md-drugs:server:fillprescription') then return end
if not checkDistance(src, Locations.Pharma.FillPrescription[num].loc, 3.5, 'md-drugs:server:fillprescription') then
if not checkDistance(src, Config.Pharma.Locations.FillPrescription[num].loc, 3.5, 'md-drugs:server:fillprescription') then
return
end
local pres = {
+6 -112
View File
@@ -1,121 +1,15 @@
Locations, Recipes = Locations or {}, Recipes or {}
Locations.Weed = {
WeedTele = { -- where you tele out of weed
{inside = vector3(1066.31, -3183.36, -39.16), outside = vector3(244.74, 374.54, 105.74), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
MakeButter = {
{loc = vector4(1045.43, -3198.75, -38.15, 270.0), prop = 'prop_cooker_03', checks = {}},
},
MakeOil = {
{loc = vector4(1038.8, -3198.68, -38.17, 90.0), prop = 'prop_cooker_03', checks = {}},
},
WeedDry = {
{loc = vector3(1043.0, -3191.59, -38.39), size = vector3(1.0, 1.0, 2.0)},
{loc = vector3(1041.0, -3191.59, -38.39), size = vector3(1.0, 1.0, 2.0)},
{loc = vector3(1045.0, -3191.59, -38.39), size = vector3(1.0, 1.0, 2.0)},
{loc = vector3(1039.0, -3191.59, -38.39), size = vector3(1.0, 1.0, 2.0)},
},
WeedSalesman = {
{loc = vector4(1030.77, -3203.18, -38.2, 262.37), ped = 'a_m_m_farmer_01', gang = ""},
},
}
Recipes.Weed = {
blunts = {
blunt = {take = {bluntwrap = 1, grindedweed = 1}, give = {blunt = 1}},
chewyblunt = {take = {bluntwrap = 1, grindedweed = 1, loosecoke = 1}, give = {chewyblunt = 1}},
leanblunts = {take = {leanbluntwrap = 1, grindedweed = 1}, give = {leanblunts = 1}},
dextroblunts = {take = {dextrobluntwrap = 1, grindedweed = 1}, give = {dextroblunts = 1}}
},
bluntwrap = {
leanbluntwrap = {take = {bluntwrap = 5, mdlean = 1}, give = {leanbluntwrap = 5}},
dextrobluntwrap = {take = {bluntwrap = 5, mdreddextro = 1}, give = {dextrobluntwrap = 5}},
},
makeButter= {
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
}
}
},
makeOil = {
shatter = {
amount = 1,
time = 4000,
anim = 'uncuff',
recipe = {
butane = 1,
grindedweed = 1
}
}
},
weedStore = {
weedgrinder =25,
mdbutter =25,
flour =25,
chocolate =25,
butane =25,
butanetorch =2,
dabrig =2,
mdwoods =2,
}
}
GlobalState.MDDrugsLocations = Locations
GlobalState.MDDrugsRecipes = Recipes
RegisterNetEvent('md-drugs:server:buyWeedItem', function(loc, name, amount)
local src = source
if not checkDistance(src, Locations.Weed.WeedSalesman[loc].loc, 3.5, 'md-drugs:server:buyWeedItem') then
if not checkDistance(src, Config.Weed.Locations.WeedSalesman[loc].loc, 3.5, 'md-drugs:server:buyWeedItem') then
return
end
if not Recipes.Weed.weedStore[name] then
if not Config.Weed.Recipes.weedStore[name] then
Bridge.Prints.Warn(Bridge.Language.Locale('weed.itemDoesntExistWarn', Bridge.Framework.GetPlayerIdentifier(src), name))
return
end
if Bridge.Framework.RemoveAccountBalance(src, 'cash', Recipes.Weed.weedStore[name] * amount) or Bridge.Framework.RemoveAccountBalance(src, 'bank', Recipes.Weed.weedStore[name] * amount) then
if Bridge.Framework.RemoveAccountBalance(src, 'cash', Config.Weed.Recipes.weedStore[name] * amount) or Bridge.Framework.RemoveAccountBalance(src, 'bank', Config.Weed.Recipes.weedStore[name] * amount) then
Bridge.Inventory.AddItem(src, name, amount)
else
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Catches.notEnoughMoney'), "error")
@@ -125,7 +19,7 @@ end)
RegisterServerEvent('md-drugs:server:dryoutweed', function(loc)
local src = source
if timeOut(src, 'md-drugs:server:dryoutweed') then return end
if not checkDistance(src, Locations.Weed.WeedDry[loc].loc, 5.0, 'md-drugs:server:dryoutweed') then
if not checkDistance(src, Config.Weed.Locations.WeedDry[loc].loc, 5.0, 'md-drugs:server:dryoutweed') then
return
end
if Bridge.Inventory.RemoveItem(src,"wetcannabis", 1) then
@@ -155,10 +49,10 @@ RegisterServerEvent('md-drugs:server:MakeWeedItems', function(tabl, item, loc)
Bridge.Prints.Warn(Bridge.Language.Locale('weed.invalidTableWarn', Bridge.Framework.GetPlayerIdentifier(src), tabl))
return
end
if not checkDistance(src, Locations.Weed[locs][loc].loc, 5.0, 'md-drugs:server:MakeWeedItems') then
if not checkDistance(src, Config.Weed.Locations[locs][loc].loc, 5.0, 'md-drugs:server:MakeWeedItems') then
return
end
local recipe = Recipes.Weed[tabl][item]
local recipe = Config.Weed.Recipes[tabl][item]
if not recipe then
Bridge.Prints.Warn(Bridge.Language.Locale('weed.recipeDoesntExistWarn', Bridge.Framework.GetPlayerIdentifier(src), item))
return
+4 -33
View File
@@ -1,32 +1,3 @@
Locations, Recipes = Locations or {}, Recipes or {}
Recipes.Whippit = {
cracker = {
{color = 'blue', item = 'blue_uninflated_balloon'},
{color = 'green', item = 'green_uninflated_balloon'},
{color = 'orange', item = 'orange_uninflated_balloon'},
{color = 'purple', item = 'purple_uninflated_balloon'},
{color = 'red', item = 'red_uninflated_balloon'},
{color = 'white', item = 'white_uninflated_balloon'},
{color = 'yellow', item = 'yellow_uninflated_balloon'}
},
shop = {
blue_uninflated_balloon =5,
green_uninflated_balloon =5,
orange_uninflated_balloon =5,
purple_uninflated_balloon =5,
red_uninflated_balloon =5,
white_uninflated_balloon =5,
yellow_uninflated_balloon =5,
cracker =500,
whipped_cream_cannister =10
}
}
Locations.Whippit = {
{loc =vector4(1695.47, 4872.98, 42.16, 288.86), ped = 'ig_priest' },
}
GlobalState.MDDrugsLocations = Locations
GlobalState.MDDrugsRecipes = Recipes
RegisterServerEvent('md-drugs:server:buyWhippitItem', function(loc, item,amount)
@@ -34,15 +5,15 @@ RegisterServerEvent('md-drugs:server:buyWhippitItem', function(loc, item,amount)
if timeOut(src, 'md-drugs:server:buyWhippitItem') then return end
if not checkDistance(src, Locations.Whippit[loc].loc, 3.0, 'md-drugs:server:buyWhippitItem') then
if not checkDistance(src, Config.Whippit.Locations.Whippit[loc].loc, 3.0, 'md-drugs:server:buyWhippitItem') then
return
end
if not Recipes.Whippit.shop[item] then
if not Config.Whippit.Recipes.shop[item] then
Bridge.Prints.Warn(Bridge.Language.Locale('Whippit.invalidItemWarn', Bridge.Framework.GetPlayerIdentifier(src), item))
return
end
local price = Recipes.Whippit.shop[item] * amount
local price = Config.Whippit.Recipes.shop[item] * amount
if not Bridge.Framework.RemoveAccountBalance(src, 'cash', price, 'whippit-shop') then
return Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Whippit.notEnoughMoney', price), 'error')
end
@@ -54,7 +25,7 @@ Bridge.Framework.RegisterUsableItem('cracker', function(source)
if not Bridge.Inventory.HasItem(src, 'cracker', 1) then return end
if not Bridge.Inventory.HasItem(src, 'whipped_cream_cannister', 1) then return end
local balloonItem, balloonColor = nil, nil
for _, balloon in pairs(Recipes.Whippit.cracker) do
for _, balloon in pairs(Config.Whippit.Recipes.cracker) do
if Bridge.Inventory.HasItem(src, balloon.item, 1) then
balloonItem = balloon.item
balloonColor = 'ate_balloon_' .. balloon.color
+12 -69
View File
@@ -8,64 +8,7 @@ local burners = {
methburner = {'methbaggy'},
}
local active = {}
local settings = {}
settings.WholesaleQuantityBonus = 0.05 -- 5% bonus per 10 units sold (up to 20%)
settings.WholesaleMaxBonus = 0.20 -- Maximum 20% bonus
settings.WholesaleMinQuantity = 5 -- Minimum quantity required for wholesale
settings.WholesaleAmbushEnabled = true -- Enable or disable ambush on failed deals
settings.WholesaleAmbushBase = 2 -- Base number of attackers on failed deals
settings.WholesaleAmbushScale = true -- Scale number of attackers based on drug quantity
settings.WholesaleAmbushTier1 = 10 -- Drug quantity threshold for 3 attackers
settings.WholesaleAmbushTier2 = 20 -- Drug quantity threshold for 4 attackers
settings.WholesaleAmbushTier3 = 30 -- Drug quantity threshold for 5 attackers
settings.FailChance = 20 -- Percentage chance of ambush occurring on a failed deal
settings.PoliceCount = 0 -- Minimum police required to initiate a wholesale deal
local Price = {
cokeburner = {
min = 25,
max = 50
},
crackburner = {
min = 25,
max = 50
},
lsdburner = {
min = 25,
max = 50
},
heroinburner = {
min = 25,
max = 50
},
xtcburner = {
min = 25,
max = 50
},
methburner = {
min = 25,
max = 50
}
}
settings.Locs = {
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),
}
Locations = Locations or {}
GlobalState.MDDrugsLocations = Locations
for k, v in pairs (burners) do
Bridge.Framework.RegisterUsableItem(k, function(source, item)
@@ -74,7 +17,7 @@ for k, v in pairs (burners) do
TriggerClientEvent("md-drugs:client:MarkLocation", src, active[source].location)
return
end
if #Bridge.Framework.GetPlayersByJob('police') < settings.PoliceCount then
if #Bridge.Framework.GetPlayersByJob('police') < Config.Wholesale.settings.PoliceCount then
return Bridge.Notify.SendNotify(source, Bridge.Language.Locale('wholesale.not_enough_police'), 'error')
end
local itemCount, itemList = 0, {}
@@ -85,7 +28,7 @@ for k, v in pairs (burners) do
itemList[d] = amt
end
end
if itemCount < settings.WholesaleMinQuantity then
if itemCount < Config.Wholesale.settings.WholesaleMinQuantity then
return Bridge.Notify.SendNotify(source, Bridge.Language.Locale('wholesale.not_enough_drugs'), 'error')
end
@@ -93,21 +36,21 @@ for k, v in pairs (burners) do
active[src] = {
count = itemCount,
itemList = itemList,
location = settings.Locs[math.random(1, #settings.Locs)],
price = math.random(Price[k].min, Price[k].max),
location = Config.Wholesale.Locs[math.random(1, #Config.Wholesale.Locs)],
price = math.random(Config.Wholesale.Price[k].min, Config.Wholesale.Price[k].max),
drugType = k,
ambush = math.random(1, 100) <= settings.FailChance and true or false,
ambush = math.random(1, 100) <= Config.Wholesale.settings.FailChance and true or false,
}
if active[src].ambush and settings.WholesaleAmbushEnabled then
active[src].attackerCount = settings.WholesaleAmbushBase
if settings.WholesaleAmbushScale then
if active[src].count > settings.WholesaleAmbushTier1 then
if active[src].ambush and Config.Wholesale.settings.WholesaleAmbushEnabled then
active[src].attackerCount = Config.Wholesale.settings.WholesaleAmbushBase
if Config.Wholesale.settings.WholesaleAmbushScale then
if active[src].count > Config.Wholesale.settings.WholesaleAmbushTier1 then
active[src].attackerCount = active[src].attackerCount + 1
end
if active[src].count > settings.WholesaleAmbushTier2 then
if active[src].count > Config.Wholesale.settings.WholesaleAmbushTier2 then
active[src].attackerCount = active[src].attackerCount + 1
end
if active[src].count > settings.WholesaleAmbushTier3 then
if active[src].count > Config.Wholesale.settings.WholesaleAmbushTier3 then
active[src].attackerCount = active[src].attackerCount + 1
end
end
@@ -132,7 +75,7 @@ RegisterNetEvent('md-drugs:server:SuccessSale', function(entity)
return
end
local basePrice = active[src].price * active[src].count
local bonusMultiplier = math.min(math.floor(active[src].count / 10) * settings.WholesaleQuantityBonus, settings.WholesaleMaxBonus)
local bonusMultiplier = math.min(math.floor(active[src].count / 10) * Config.Wholesale.settings.WholesaleQuantityBonus, Config.Wholesale.settings.WholesaleMaxBonus)
local totalPrice = math.floor(basePrice * (1 + bonusMultiplier))
for k, v in pairs (active[src].itemList) do
local has = Bridge.Inventory.GetItemCount(src, k) or 0
+14 -71
View File
@@ -1,66 +1,9 @@
Locations, Recipes = Locations or {}, Recipes or {}
-------------------- stealing ingridients
Recipes.XTC = {
raw = {
raw_xtc = {take = {mdp2p = 1, isosafrole = 1}, give = {raw_xtc = 1}}
},
singlestack = {
white_xtc = {give = {white_xtc = 1}, take = {raw_xtc = 1}},
red_xtc = {give = {red_xtc = 1}, take = {raw_xtc = 1, loosecoke = 1},},
orange_xtc = {give = {orange_xtc = 1}, take = {raw_xtc = 1, heroinvial = 1},},
blue_xtc = {give = {blue_xtc = 1}, take = {raw_xtc = 1, crackrock = 1},},
},
dualstack = {
white_xtc2 = {give = {white_xtc2 = 1}, take = {raw_xtc = 1},},
red_xtc2 = {give = {red_xtc2 = 1}, take = {raw_xtc = 1, loosecoke = 1},},
orange_xtc2 = {give = {orange_xtc2 = 1}, take = {raw_xtc = 1, heroinvial = 1},},
blue_xtc2 = {give = {blue_xtc2 = 1}, take = {raw_xtc = 1, crackrock = 1},},
},
triplestack = {
white_xtc3 = {give = {white_xtc3 = 1}, take = {raw_xtc = 1},},
red_xtc3 = {give = {red_xtc3 = 1}, take = {raw_xtc = 1, loosecoke = 1},},
orange_xtc3 = {give = {orange_xtc3 = 1}, take = {raw_xtc = 1, heroinvial = 1},},
blue_xtc3 = {give = {blue_xtc3 = 1}, take = {raw_xtc = 1, crackrock = 1},},
},
quadstack = {
white_xtc4 = {give = {white_xtc4 = 1}, take = {raw_xtc = 1},},
red_xtc4 = {give = {red_xtc4 = 1}, take = {raw_xtc = 1, loosecoke = 1},},
orange_xtc4 = {give = {orange_xtc4 = 1}, take = {raw_xtc = 1, heroinvial = 1},},
blue_xtc4 = {give = {blue_xtc4 = 1}, take = {raw_xtc = 1, crackrock = 1},},
},
presses = {
singlepress = {type = 1,cash = 10000},
dualpress = {type = 2,give = {dualpress = 1}, take = {white_xtc = 20, blue_xtc = 20, red_xtc = 20, orange_xtc = 20, singlepress = 1}},
triplepress = {type = 3,give = {triplepress = 1}, take = {white_xtc2 = 50, blue_xtc2 = 50, red_xtc2 = 50, orange_xtc2 = 50, dualpress = 1}},
quadpress = {type = 4,give = {quadpress = 1}, take = {white_xtc3 = 50, blue_xtc3 = 50, red_xtc3 = 50, orange_xtc3 = 50, triplepress = 1}},
}
}
Locations.XTC = {
isosafrole = { -- where to steal isosafrole
{loc = vector3(844.39, -902.92, 25.42), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
mdp2p = { -- where to steal mdp2p
{loc = vector3(844.4, -898.79, 25.23), size = vector3(1.0, 1.0, 2.0), rot = 45.0, gang = ""},
},
rawxtcloc = { -- where to combine the 2 ingridents to make raw xtc
{loc = vector3(844.71, -910.33, 25.37), size = vector3(1.0, 1.0, 2.0), rot = 45.0, gang = ""},
},
xtcpress = {
{ped = 'g_f_y_families_01',loc = vector4(845.82, -884.79, 25.18, 180.0), size = vector3(1.0, 1.0, 2.0), rot = 45.0, gang = ""},
},
stamp = { -- where to stamp pills
{loc = vector3(844.71, -900.56, 25.43), size = vector3(1.0, 1.0, 2.0), rot = 45.0, gang = ""},
},
}
GlobalState.MDDrugsLocations = Locations
GlobalState.MDDrugsRecipes = Recipes
local activePresses = {}
RegisterServerEvent('md-drugs:server:stealisosafrole', function(num)
local src = source
if not checkDistance(src, Locations.XTC.isosafrole[num].loc, 3.0,'md-drugs:server:stealisosafrole') then
if not checkDistance(src, Config.XTC.Locations.isosafrole[num].loc, 3.0,'md-drugs:server:stealisosafrole') then
return
end
if timeOut(src, 'md-drugs:server:stealisosafrole') then return end
@@ -69,7 +12,7 @@ end)
RegisterServerEvent('md-drugs:server:stealmdp2p', function(num)
local src = source
if not checkDistance(src, Locations.XTC.mdp2p[num].loc, 3.0,'md-drugs:server:stealmdp2p') then
if not checkDistance(src, Config.XTC.Locations.mdp2p[num].loc, 3.0,'md-drugs:server:stealmdp2p') then
return
end
if timeOut(src, 'md-drugs:server:stealmdp2p') then return end
@@ -77,10 +20,10 @@ RegisterServerEvent('md-drugs:server:stealmdp2p', function(num)
end)
local presses = {
{item = 'singlepress', data = 'singlestack', recipes = Recipes.XTC.singlestack},
{item = 'dualpress', data = 'dualstack', recipes = Recipes.XTC.dualstack},
{item = 'triplepress', data = 'triplestack', recipes = Recipes.XTC.triplestack},
{item = 'quadpress', data = 'quadstack', recipes = Recipes.XTC.quadstack},
{item = 'singlepress', data = 'singlestack', recipes = Config.XTC.Recipes.singlestack},
{item = 'dualpress', data = 'dualstack', recipes = Config.XTC.Recipes.dualstack},
{item = 'triplepress', data = 'triplestack', recipes = Config.XTC.Recipes.triplestack},
{item = 'quadpress', data = 'quadstack', recipes = Config.XTC.Recipes.quadstack},
}
for k, v in pairs (presses) do
@@ -123,18 +66,18 @@ RegisterServerEvent('md-drugs:server:makextc', function(data)
if not checkDistance(src, activePresses[src].loc, 2.0, 'md-drugs:server:makextc') then
return
end
if not craft(src, Recipes.XTC[activePresses[src].press][data]) then
if not craft(src, Config.XTC.Recipes[activePresses[src].press][data]) then
return
end
end)
RegisterServerEvent('md-drugs:server:buypress', function(loc, item)
local src = source
if not checkDistance(src, Locations.XTC.xtcpress[loc].loc, 2.0, 'md-drugs:server:buypress') then
if not checkDistance(src, Config.XTC.Locations.xtcpress[loc].loc, 2.0, 'md-drugs:server:buypress') then
return
end
if timeOut(src, 'md-drugs:server:buypress') then return end
if Bridge.Framework.RemoveAccountBalance(src,"cash", Recipes.XTC.presses['singlepress'].cash) then
if Bridge.Framework.RemoveAccountBalance(src,"cash", Config.XTC.Recipes.presses['singlepress'].cash) then
Bridge.Inventory.AddItem(src, "singlepress", 1)
else
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Catches.notEnoughMoney'), "error")
@@ -144,10 +87,10 @@ end)
RegisterServerEvent('md-drugs:server:upgradepress', function(data, item)
local src = source
if timeOut(src, 'md-drugs:server:upgradepress') then return end
if not checkDistance(src, Locations.XTC.xtcpress[data].loc, 2.0, 'md-drugs:server:buypress') then
if not checkDistance(src, Config.XTC.Locations.xtcpress[data].loc, 2.0, 'md-drugs:server:buypress') then
return
end
if not craft(src, Recipes.XTC.presses[item]) then
if not craft(src, Config.XTC.Recipes.presses[item]) then
return
end
end)
@@ -155,12 +98,12 @@ end)
------------- making powder
RegisterServerEvent('md-drugs:server:makingrawxtc', function(num)
local src = source
if not checkDistance(src, Locations.XTC.rawxtcloc[num].loc, 3.0, 'md-drugs:server:makingrawxtc') then
if not checkDistance(src, Config.XTC.Locations.rawxtcloc[num].loc, 3.0, 'md-drugs:server:makingrawxtc') then
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Checks.notIn'), "error")
return
end
if timeOut(src, 'md-drugs:server:makingrawxtc') then return end
if not craft(src, Recipes.XTC.raw.raw_xtc) then
if not craft(src, Config.XTC.Recipes.raw.raw_xtc) then
return
end
end)
@@ -180,7 +123,7 @@ end
RegisterServerEvent('md-drugs:server:stamp', function(num, color)
local src = source
if not checkDistance(src, Locations.XTC.stamp[num].loc, 3.0, 'md-drugs:server:stamp') then return end
if not checkDistance(src, Config.XTC.Locations.stamp[num].loc, 3.0, 'md-drugs:server:stamp') then return end
if timeOut(src, 'md-drugs:server:stamp') then return end
local item = getColor(color)
local colors = {
+35
View File
@@ -0,0 +1,35 @@
Config.Merchant = {
Locations = {
Travellingmerchant = {
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),
},
},
stores = {
tab_paper = 50,
bakingsoda = 25,
isosafrole = 25,
mdp2p = 25,
lysergic_acid = 25,
diethylamide = 25,
lockpick = 2,
emptyvial = 2,
needle = 2,
cokeburner = 25,
crackburner = 2,
lsdburner = 2,
heroinburner = 2,
mdlean = 50,
weedgrinder = 25,
mdbutter = 25,
flour = 25,
chocolate = 25,
butane = 25,
butanetorch = 2,
dabrig = 2,
mdwoods = 2,
leancup = 25,
xtcburner = 25,
}
}
+33
View File
@@ -0,0 +1,33 @@
Config.Cocaine = {
Locations = {
MakePowder = { -- size = vector3(x,y,z) x = length, y = width, z = height
{loc = vector3(1086.20, -3195.30, -39.20), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
CuttingCoke = {
{loc = vector3(1095.61, -3195.62, -39.13), size = vector3(1.0, 1.0, 2.0), offset = vec3(-1.782227, 0.445068, -0.502701), rotation = vector3(0,0,0), gang = ""},
},
BaggingCoke = {
{loc = vector3(1093.16, -3195.78, -39.19), size = vector3(1.0, 1.0, 2.0), offset = vec3(4.515137, 2.542969, -0.814194), rotation = vector3(0,0,180.0), gang = ""},
},
cokeTele = {
{inside = vector3(1088.81, -3187.57, -38.99), outside = vector3(198.16, -1276.92, 29.33), size = vector3(1.0, 1.0, 2.0), gang = ""},
}
},
Recipes = {
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}},
}
}
}
+192
View File
@@ -0,0 +1,192 @@
local emotes = {
smoke = {
dict = "amb@world_human_aa_smoke@male@idle_a",
clip = "idle_a",
flag = 49,
prop = {
model = 'ng_proc_cigarette01a',
bone = 28422,
pos = {0.0, 0.0, 0.0},
rot = {0.0, 0.0, 0.0}
}
},
smell = {
dict = 'move_p_m_two_idles@generic',
clip = 'fidget_sniff_fingers',
},
shoot_up = {
dict = "rcmpaparazzo1ig_4",
clip = "miranda_shooting_up",
prop = {
model = 'prop_syringe_01',
bone = 18905,
pos = {0.11, 0.03, 0.0},
rot = {-124.0, 0.0, 0.0}
}
},
eat = {
dict = "mp_player_inteat@burger",
clip = "mp_player_int_eat_burger",
},
drink = {
dict = "mp_player_intdrink",
clip = "loop_bottle",
}
}
Config.Consumables = {
Defaults = {
time = 4000, -- time in ms
defaultAnim = {
dict = "mp_player_inteat@burger",
clip = "mp_player_int_eat_burger",
},
defaultText = 'Consuming ',
defaultStats = 0
},
}
--[[
effect options
alien
ecstacy
meth
coke
trevor
none
]]
--[[
add = {}
health = number -- amount of health to give
stress = number -- number of stress to give
speed = number -- number of seconds you a fast boi
hunger = number -- number of hunger to fill
thirst = number -- same shit
strength = number -- how long you are strong boi
]]
Config.Consumables.Consume = {
methbags = { time = 4000, effect = 'meth', anim = emotes.smoke, progressbartext = "Injesting",
add = {health = -20, stress = -10, speed = 40, strength = 10, thirst = -30}},
cokebaggy = { anim = emotes.smell, time = 4000, effect = 'coke', add = { stress = -10 }},
cokebaggystagetwo = { anim = emotes.smell, time = 1000, effect = 'coke', add = { stress = -10 }},
cokebaggystagethree = { anim = emotes.smell, time = 1000, effect = 'coke', add = { stress = -10 }},
-- heroin
heroin_ready = { anim = emotes.shoot_up, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
heroin_readystagetwo = { anim = emotes.shoot_up, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
heroin_readystagethree = { anim = emotes.shoot_up, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
-- crack
baggedcracked = { anim = emotes.smell, time = 1000, effect = 'coke', add = { stress = -10 }},
baggedcrackedstagetwo = { anim = emotes.smell, time = 1000, effect = 'coke', add = { stress = -10 }},
baggedcrackedstagethree = { anim = emotes.smell, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
-- xtc
white_playboys = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_playboys2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_playboys3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_playboys4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_playboys = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_playboys2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_playboys3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_playboys4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_playboys = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10, hunger = 10 }},
red_playboys2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_playboys3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_playboys4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_playboys = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_playboy2s = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_playboys3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_playboys4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_aliens = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_aliens2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_aliens3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_aliens4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_aliens = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_aliens2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_aliens3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_aliens4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_aliens = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_aliens3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_aliens2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_aliens4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_aliens = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_aliens2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_aliens3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_aliens4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_pl = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_pl2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_pl3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_pl4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_pl = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_pl2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_pl3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_pl4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_pl = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_pl2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_pl3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_pl4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_pl = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_pl2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_pl3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_pl4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_trolls = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_trolls2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_trolls3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_trolls4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_trolls = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_trolls2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_trolls3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_trolls4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_trolls = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_trolls2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_trolls3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_trolls4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_trolls = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_trolls2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_trolls3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_trolls4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_cats2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_cats3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_cats4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_cats = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_cats = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_cats3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_cats2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_cats4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_cats = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_cats2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_cats3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_cats4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_cats = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_cats2 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_cats3 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_cats4 = { anim = emotes.eat, time = 1000, effect = 'ecstacy', add = { stress = -10 }},
-- weed
specialbrownie = { anim = emotes.eat, effect = 'alien', add = { hunger = 10, stress = -10 }},
specialcookie = { anim = emotes.eat, effect = 'alien', add = { hunger = 10, stress = -10 }},
specialchocolate = { anim = emotes.eat, effect = 'alien', add = { hunger = 10, stress = -10 }},
specialmuffin = { anim = emotes.eat, effect = 'alien', add = { hunger = 10, stress = -10 }},
blunt = { anim = emotes.smoke, effect = 'alien', add = { stress = -10 }},
dextroblunts = { anim = emotes.smoke, effect = 'alien', add = { stress = -10 }},
leanblunts = { anim = emotes.smoke, effect = 'alien', add = { stress = -10 }},
chewyblunt = { anim = emotes.smoke, effect = 'alien', add = { stress = -10 }},
-- lean
cupofdextro = { anim = emotes.drink, effect = 'alien', add = { stress = -10 }},
cupoflean = { anim = emotes.drink, effect = 'alien', add = { stress = -10 }},
-- lsd
smiley_tabs = { anim = emotes.eat, effect = 'trevor', add = { stress = -10 }},
wildcherry_tabs = { anim = emotes.eat, effect = 'trevor', add = { stress = -10 }},
yinyang_tabs = { anim = emotes.eat, effect = 'trevor', add = { stress = -10 }},
pineapple_tabs = { anim = emotes.eat, effect = 'trevor', add = { stress = -10 }},
bart_tabs = { anim = emotes.eat, effect = 'trevor', add = { stress = -10 }},
gratefuldead_tabs = { anim = emotes.eat, effect = 'trevor', add = { stress = -10 }},
-- pharma
vicodin = { anim = emotes.eat, effect = 'none', add = { health = 20 }},
adderal = { anim = emotes.eat, effect = 'none', add = { stress = -20 }},
morphine = { anim = emotes.eat, effect = 'none', add = { health = 40 }},
xanax = { anim = emotes.eat, effect = 'none', add = { stress = -40 }},
}
+141
View File
@@ -0,0 +1,141 @@
Config.Cornerselling = {
noSellZones = {
{loc = vector3(445.11, -991.3, 30.69), width = 10.0, length = 10.0, height = 10.0, rot = 180.0},
},
CornerSellLevel = {
{price = 0.5, minrep = 0, maxrep = 240, label = 'Rookie'},
{price = 1.0, minrep = 240, maxrep = 600, label = 'Corner Boy'},
{price = 1.1, minrep = 600, maxrep = 1200, label = 'Corner Man'},
{price = 1.2, minrep = 1200, maxrep = 1800, label = 'Dope Peddler'},
{price = 1.3, minrep = 1800, maxrep = 2400, label = 'Drug Supplier'},
{price = 1.5, minrep = 2400, maxrep = 4800, label = 'Drug Pusher'},
{price = 1.75, minrep = 4800, maxrep = 99999999999999, label = 'Drug Lord'},
},
Drugs = {
["weed_white-widow"] = {rep = 1,min = 15, max = 24 },
["weed_og-kush"] = {rep = 1,min = 15, max = 28 },
["weed_skunk"] = {rep = 1,min = 15, max = 31 },
["weed_amnesia"] = {rep = 1,min = 18, max = 34 },
["weed_purple-haze"] = {rep = 1,min = 18, max = 37},
["weed_ak47"] = {rep = 1,min = 18, max = 40},
["crack_baggy"] = {rep = 1,min = 18, max = 34},
["cokebaggy"] = {rep = 1,min = 18, max = 37},
["cokebaggystagetwo"] = {rep = 1,min = 18, max = 40},
["cokebaggystagethree"] = {rep = 1,min = 18, max = 40},
["heroin_ready"] = {rep = 1,min = 18, max = 40},
["heroin_readystagetwo"] = {rep = 1,min = 18, max = 40},
["heroin_readystagethree"] = {rep = 1,min = 18, max = 40},
["baggedcracked"] = {rep = 1,min = 18, max = 40},
["baggedcrackedstagetwo"] = {rep = 1,min = 18, max = 40},
["baggedcrackedstagethree"] = {rep = 1,min = 18, max = 40},
["white_playboys"] = {rep = 1,min = 18, max = 40},
["white_playboys2"] = {rep = 1,min = 18, max = 40},
["white_playboys3"] = {rep = 1,min = 18, max = 40},
["white_playboys4"] = {rep = 1,min = 18, max = 40},
["blue_playboys"] = {rep = 1,min = 18, max = 40},
["blue_playboys2"] = {rep = 1,min = 18, max = 40},
["blue_playboys3"] = {rep = 1,min = 18, max = 40},
["blue_playboys4"] = {rep = 1,min = 18, max = 40},
["red_playboys"] = {rep = 1,min = 18, max = 40},
["red_playboys2"] = {rep = 1,min = 18, max = 40},
["red_playboys3"] = {rep = 1,min = 18, max = 40},
["red_playboys4"] = {rep = 1,min = 18, max = 40},
["orange_playboys"] = {rep = 1,min = 18, max = 40},
["orange_playboys2"] = {rep = 1,min = 18, max = 40},
["orange_playboys3"] = {rep = 1,min = 18, max = 40},
["orange_playboys4"] = {rep = 1,min = 18, max = 40},
["white_aliens"] = {rep = 1,min = 18, max = 40},
["white_aliens2"] = {rep = 1,min = 18, max = 40},
["white_aliens3"] = {rep = 1,min = 18, max = 40},
["white_aliens4"] = {rep = 1,min = 18, max = 40},
["blue_aliens"] = {rep = 1,min = 18, max = 40},
["blue_aliens2"] = {rep = 1,min = 18, max = 40},
["blue_aliens3"] = {rep = 1,min = 18, max = 40},
["blue_aliens4"] = {rep = 1,min = 18, max = 40},
["red_aliens"] = {rep = 1,min = 18, max = 40},
["red_aliens2"] = {rep = 1,min = 18, max = 40},
["red_aliens3"] = {rep = 1,min = 18, max = 40},
["red_aliens4"] = {rep = 1,min = 18, max = 40},
["orange_aliens"] = {rep = 1,min = 18, max = 40},
["orange_aliens2"] = {rep = 1,min = 18, max = 40},
["orange_aliens3"] = {rep = 1,min = 18, max = 40},
["orange_aliens4"] = {rep = 1,min = 18, max = 40},
["white_pl"] = {rep = 1,min = 18, max = 40},
["white_pl2"] = {rep = 1,min = 18, max = 40},
["white_pl3"] = {rep = 1,min = 18, max = 40},
["white_pl4"] = {rep = 1,min = 18, max = 40},
["blue_pl"] = {rep = 1,min = 18, max = 40},
["blue_pl2"] = {rep = 1,min = 18, max = 40},
["blue_pl3"] = {rep = 1,min = 18, max = 40},
["blue_pl4"] = {rep = 1,min = 18, max = 40},
["red_pl"] = {rep = 1,min = 18, max = 40},
["red_pl2"] = {rep = 1,min = 18, max = 40},
["red_pl3"] = {rep = 1,min = 18, max = 40},
["red_pl4"] = {rep = 1,min = 18, max = 40},
["orange_pl"] = {rep = 1,min = 18, max = 40},
["orange_pl2"] = {rep = 1,min = 18, max = 40},
["orange_pl3"] = {rep = 1,min = 18, max = 40},
["orange_pl4"] = {rep = 1,min = 18, max = 40},
["white_trolls"] = {rep = 1,min = 18, max = 40},
["white_trolls2"] = {rep = 1,min = 18, max = 40},
["white_trolls3"] = {rep = 1,min = 18, max = 40},
["white_trolls4"] = {rep = 1,min = 18, max = 40},
["blue_trolls"] = {rep = 1,min = 18, max = 40},
["blue_trolls2"] = {rep = 1,min = 18, max = 40},
["blue_trolls3"] = {rep = 1,min = 18, max = 40},
["blue_trolls4"] = {rep = 1,min = 18, max = 40},
["red_trolls"] = {rep = 1,min = 18, max = 40},
["red_trolls2"] = {rep = 1,min = 18, max = 40},
["red_trolls3"] = {rep = 1,min = 18, max = 40},
["red_trolls4"] = {rep = 1,min = 18, max = 40},
["orange_trolls"] = {rep = 1,min = 18, max = 40},
["orange_trolls2"] = {rep = 1,min = 18, max = 40},
["orange_trolls3"] = {rep = 1,min = 18, max = 40},
["orange_trolls4"] = {rep = 1,min = 18, max = 40},
["white_cats"] = {rep = 1,min = 18, max = 40},
["white_cats2"] = {rep = 1,min = 18, max = 40},
["white_cats3"] = {rep = 1,min = 18, max = 40},
["white_cats4"] = {rep = 1,min = 18, max = 40},
["blue_cats"] = {rep = 1,min = 18, max = 40},
["blue_cats2"] = {rep = 1,min = 18, max = 40},
["blue_cats3"] = {rep = 1,min = 18, max = 40},
["blue_cats4"] = {rep = 1,min = 18, max = 40},
["red_cats"] = {rep = 1,min = 18, max = 40},
["red_cats2"] = {rep = 1,min = 18, max = 40},
["red_cats3"] = {rep = 1,min = 18, max = 40},
["red_cats4"] = {rep = 1,min = 18, max = 40},
["orange_cats"] = {rep = 1,min = 18, max = 40},
["orange_cats2"] = {rep = 1,min = 18, max = 40},
["orange_cats3"] = {rep = 1,min = 18, max = 40},
["orange_cats4"] = {rep = 1,min = 18, max = 40},
["blunts"] = {rep = 1,min = 18, max = 40},
["leanblunts"] = {rep = 1,min = 18, max = 40},
["dextroblunts"] = {rep = 1,min = 18, max = 40},
["chewyblunt"] = {rep = 1,min = 18, max = 40},
["blunt"] = {rep = 1,min = 18, max = 40},
["specialchocolate"] = {rep = 1,min = 18, max = 40},
["specialbrownie"] = {rep = 1,min = 18, max = 40},
["specialcookie"] = {rep = 1,min = 18, max = 40},
["specialmuffin"] = {rep = 1,min = 18, max = 40},
["shatter"] = {rep = 1,min = 18, max = 40},
["ciggie"] = {rep = 1,min = 18, max = 40},
["methbags"] = {rep = 1,min = 18, max = 40},
["driedmescaline"] = {rep = 1,min = 18, max = 40},
["shrooms"] = {rep = 1,min = 18, max = 40},
["gratefuldead_tabs"] = {rep = 1,min = 18, max = 40},
["bart_tabs"] = {rep = 1,min = 18, max = 40},
["pineapple_tabs"] = {rep = 1,min = 18, max = 40},
["yinyang_tabs"] = {rep = 1,min = 18, max = 40},
["wildcherry_tabs"] = {rep = 1,min = 18, max = 40},
["smiley_tabs"] = {rep = 1,min = 18, max = 40},
["cupoflean"] = {rep = 1,min = 18, max = 40},
["cupofdextro"] = {rep = 1,min = 18, max = 40},
},
config = {
MarkedBills = false, -- if you want to use qb markedbills for selling set to true, if you want to use a custom item or cash set to false
CustomItem = '', -- If you want to use a custom item for selling, put the item name here, if not leave it blank ''
--- if MarkedBills is false and CustomItem is blank it will pay cash
policeRequired = 0, -- if you want cops to be required to sell set this to a number above 0
robChance = 20, -- Chance To Be Robbed 1 = 1%
}
}
+22
View File
@@ -0,0 +1,22 @@
Config.Crack = {
Recipes = {
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}},
}
},
Locations = {
makecrack = { -- make crack with baking soda with cut coke 1-3
{loc = vector3(2433.47, 4970.02, 42.18), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
bagcrack = { --- bag crack 1-3 stages
{loc = vector3(2436.55, 4964.96, 42.18), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
}
}
+91
View File
@@ -0,0 +1,91 @@
Config.Deliveries = {
Locations = {
dropOff = {
{coords = vector4(282.48, -1814.32, 27.23, 145.11)},
{coords = vector4(-296.11, -1300.65, 31.31, 270.87)},
{coords = vector4(-36.64, -1492.04, 31.22, 151.91)},
{coords = vector4(282.48, -1814.32, 27.23, 232.19)},
{coords = vector4(54.54, -1873.22, 22.81, 131.47)},
{coords = vector4(-269.34, -2437.25, 6.40, 252.67)},
{coords = vector4(269.19, -3248.55, 5.79, 252.67)},
{coords = vector4(632.94, -3015.44, 7.34, 3.44)},
{coords = vector4(1049.55, -2427.88, 30.30, 79.52)},
{coords = vector4(853.16, -2207.32, 30.68, 284.88)},
{coords = vector4(903.10, -1721.98, 32.25, 168.71)},
{coords = vector4(1289.30, -1710.49, 55.48, 208.57)},
{coords = vector4(1412.01, -1490.53, 60.66, 132.46)},
{coords = vector4(734.26, -1311.26, 27.01, 102.99)},
{coords = vector4(1231.60, -1083.06, 38.53, 102.99)},
{coords = vector4(1143.55, -1000.19, 45.32, 257.05)},
{coords = vector4(1264.82, -702.87, 64.72, 257.05)},
{coords = vector4(1119.65, -639.76, 56.81, 284.53)},
{coords = vector4(1129.59, -462.59, 66.49, 79.23)},
{coords = vector4(42.80, -811.45, 31.43, 79.23)},
{coords = vector4(-509.48, -1001.66, 23.55, 79.23)},
{coords = vector4(-830.97, -862.41, 20.69, 13.72)},
{coords = vector4(-1320.26, -1177.34, 4.89, 74.29)},
{coords = vector4(-1097.63, -1673.24, 8.40, 136.51)},
{coords = vector4(-1147.61, -1452.10, 4.60, 51.50)},
{coords = vector4(-1241.69, -1208.39, 8.52, 107.56)},
{coords = vector4(-1876.92, -584.44, 11.85, 329.54)},
{coords = vector4(-1303.94, -441.39, 35.22, 128.73)},
{coords = vector4(-1705.48, -433.46, 42.17, 128.73)},
{coords = vector4(-1305.99, 336.35, 65.50, 35.13)},
{coords = vector4(-741.80, 484.84, 109.47, 110.85)},
{coords = vector4(-409.57, 341.49, 108.91, 270.45)},
{coords = vector4(-126.44, 588.18, 204.71, 8.12)},
{coords = vector4(211.42, -101.42, 73.28, 174.10)},
{coords = vector4(490.61, -95.04, 66.44, 273.57)},
{coords = vector4(387.19, -993.59, 29.42, 273.57)},
{coords = vector4(-500.47, -712.37, 33.21, 273.57)},
{coords = vector4(2572.20, 479.97, 108.68, 80.27)},
{coords = vector4(-430.10, 1205.41, 325.76, 169.25)},
{coords = vector4(-126.06, 1896.58, 197.33, 169.25)},
{coords = vector4(-2521.08, 2310.31, 33.22, 276.87)},
{coords = vector4(1129.01, 2125.14, 55.55, 276.87)},
{coords = vector4(1546.64, 2166.56, 78.72, 100.37)},
{coords = vector4(404.34, 2584.54, 43.52, 100.37)},
{coords = vector4(180.15, 2792.99, 45.66, 283.04)},
{coords = vector4(287.67, 2843.89, 44.70, 118.41)},
{coords = vector4(2030.23, 3184.42, 45.13, 146.06)},
{coords = vector4(2175.33, 3321.92, 46.13, 214.53)},
{coords = vector4(2389.61, 3340.98, 47.34, 214.52)},
{coords = vector4(1716.25, 3295.08, 41.26, 196.21)},
{coords = vector4(1779.38, 3640.83, 34.50, 24.16)},
{coords = vector4(1894.59, 3715.34, 32.75, 127.89)},
{coords = vector4(1861.90, 3857.15, 36.27, 293.45)},
{coords = vector4(996.38, 3575.07, 34.61, 328.30)},
{coords = vector4(387.45, 3584.73, 33.29, 351.41)},
{coords = vector4(68.08, 3693.22, 40.66, 63.98)},
{coords = vector4(15.55, 3688.70, 39.81, 230.89)},
{coords = vector4(2566.59, 4283.34, 41.97, 348.53)},
{coords = vector4(2570.82, 4667.95, 34.08, 135.30)},
{coords = vector4(2882.05, 4511.72, 48.02, 66.58)},
{coords = vector4(2243.78, 5154.02, 57.89, 139.42)},
{coords = vector4(1642.91, 4846.08, 45.51, 109.83)},
{coords = vector4(1308.87, 4362.17, 41.55, 256.01)},
{coords = vector4(-1090.27, 4940.57, 214.13, 256.01)},
{coords = vector4(-552.37, 5348.37, 74.76, 62.18)},
{coords = vector4(-679.02, 5834.27, 17.33, 137.18)},
{coords = vector4(-481.97, 6276.93, 13.35, 323.16)},
{coords = vector4(-24.92, 6472.60, 31.49, 144.42)},
{coords = vector4(36.03, 6549.18, 31.43, 287.85)},
{coords = vector4(406.08, 6526.43, 27.75, 97.45)},
{coords = vector4(1522.39, 6329.23, 24.61, 331.71)},
{coords = vector4(1741.39, 6419.62, 35.04, 331.71)},
{coords = vector4(3426.72, 5174.42, 7.40, 112.64)},
{coords = vector4(2525.99, 2586.62, 38.94, 257.02)},
{coords = vector4(2696.29, 1664.44, 24.52, 70.12)},
{coords = vector4(106.24, -1280.32, 29.24, 350.89)},
{coords = vector4(223.98, 121.53, 102.76, 259.68)},
{coords = vector4(102.19, -255.02, 50.05, 83.59)},
}
},
Recipes = {
{name = "weed_whitewidow_seed", price = 15, amount = 150, minrep = 0},
{name = "weed_skunk_seed", price = 15, amount = 150, minrep = 0},
{name = "weed_purplehaze_seed", price = 15, amount = 150, minrep = 0},
{name = "weed_ogkush_seed", price = 15, amount = 150, minrep = 0},
{name = "weed_amnesia_seed", price = 15, amount = 150, minrep = 0},
}
}
+41
View File
@@ -0,0 +1,41 @@
Config.Heroin = {
Recipes = {
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}},
}
},
Locations = {
dryplant = { -- turn resin into powder
{loc = vector3(-1353.77, -335.58, 43.92), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
cutheroinone = { -- cut heroin stage 1-3 with baking soda
{loc = vector3(-1360.14, -337.03, 43.92), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
fillneedle = { -- fill needles with heroin
{loc = vector3(-1366.32, -334.40, 44.44), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
buyKit = {
{ped = 'a_m_m_farmer_01',loc = vector4(-1366.32, -334.40, 44.44,180.0), size = vector3(1.0, 1.0, 2.0), gang = ""},
}
},
prices = {
heroinlabkitprice = 10000
}
}
+32
View File
@@ -0,0 +1,32 @@
Config.Lean = {
Locations = {
SyrupVendor = {
{ped = 'a_m_m_farmer_01', loc = vector4(365.21, -578.77, 39.30, 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)
},
},
Recipes = {
{
item = 'cupoflean',
amount = 1,
ingredients = {
{item = 'leancup', amount = 1},
{item = 'mdlean', amount = 1},
{item = 'sprunk', amount = 1},
}
},
{
item = 'cupofdextro',
amount = 1,
ingredients = {
{item = 'leancup', amount = 1},
{item = 'mdreddextro', amount = 1},
{item = 'sprunk', amount = 1},
}
}
}
}
+28
View File
@@ -0,0 +1,28 @@
Config.LSD = {
Recipes = {
vial = {
heat = {take = {lysergic_acid = 1, diethylamide = 1,}, give = {lsd_one_vial = 1}}
},
},
Locations = {
lysergicacid = { -- get lysergic acid
{loc = vector3(-1381.21, -327.75, 39.85),size = vector3(1.0, 1.0, 2.0), gang = ""},
{loc = vector3(2405.53, 5008.39, 46.02), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
diethylamide = { -- get diethylamide
{loc = vector3(-1372.89, -319.47, 39.05), size = vector3(1.0, 1.0, 2.0), gang = ""},
{loc = vector3(2408.38, 5011.18, 46.08), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
gettabs = { -- buy tab paper
{loc = vector3(-1378.26, -336.56, 39.31), size = vector3(1.0, 1.0, 2.0), gang = ""},
{loc = vector3(2409.59, 5012.45, 46.09), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
buyLSDkit = {
{ped = 'g_f_y_families_01', loc = vector4(-1376.66, -325.52, 39.63, 142.1), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
},
prices = {
tabcost = 100, -- price per piece of tab paper event does 10 at a time
lsdlabkitcost = 10000 -- price of the lsd lab kit
}
}
+12
View File
@@ -0,0 +1,12 @@
Config.Mescaline = {
Locations = {
DryOutMescaline = { -- where to dry out your mescaline
{loc = vector3(1850.12, 2595.23, 45.67), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
},
Recipes = {
dry = {
dried = {take = {cactusbulb = 1}, give = {driedmescaline = 1} }
}
}
}
+41
View File
@@ -0,0 +1,41 @@
Config.Meth = {
Locations = {
CookMeth = {
{loc = vector3(1006.09, -3200.59, -38.52), size = vector3(1.0, 1.0, 2.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), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
MethSmash = {
{loc = vector3(1012.04, -3194.96, -38.99), bucket = vector4(1012.86, -3194.13, -39.20, 90.00), size = vector3(1.0, 1.0, 2.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), size = vector3(1.0, 1.0, 2.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), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
MethAce = { -- get acetone
{loc = vector3(3535.41, 3661.05, 28.12), size = vector3(1.0, 1.0, 2.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), size = vector3(1.0, 1.0, 2.0), gang = ""},
}
},
recipes = {
cook = {
heat = {take = {ephedrine = 1, acetone = 1}, give = {}}
},
bag = {
bags = {take = {empty_weed_bag = 5}, give = {methbags = 5} }
}
},
}
+29
View File
@@ -0,0 +1,29 @@
Config.Oxy = {
Locations = {
OxyPayForTruck = {
{loc = vector3(1437.64, -1491.91, 63.62), truckSpawn = vector4(1450.87, -1482.13, 63.22, 69.95),size = vector3(1.0, 1.0, 2.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),
}
},
prices = {
payfortruck = 500,
hotchance = 30,
itemChance = 20,
},
itemList = {
{item = 'lockpick', amount = 1},
}
}
+7
View File
@@ -0,0 +1,7 @@
Config.Pharma = {
Locations = {
FillPrescription = { -- where to fill out your prescription
{loc = vector3(2855.62, 4446.73, 48.53), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
},
}
+1
View File
@@ -0,0 +1 @@
Config.Shrooms ={}
+103
View File
@@ -0,0 +1,103 @@
Config.Weed = {
Locations = {
WeedTele = { -- where you tele out of weed
{inside = vector3(1066.31, -3183.36, -39.16), outside = vector3(244.74, 374.54, 105.74), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
MakeButter = {
{loc = vector4(1045.43, -3198.75, -38.15, 270.0), prop = 'prop_cooker_03', checks = {}},
},
MakeOil = {
{loc = vector4(1038.8, -3198.68, -38.17, 90.0), prop = 'prop_cooker_03', checks = {}},
},
WeedDry = {
{loc = vector3(1043.0, -3191.59, -38.39), size = vector3(1.0, 1.0, 2.0)},
{loc = vector3(1041.0, -3191.59, -38.39), size = vector3(1.0, 1.0, 2.0)},
{loc = vector3(1045.0, -3191.59, -38.39), size = vector3(1.0, 1.0, 2.0)},
{loc = vector3(1039.0, -3191.59, -38.39), size = vector3(1.0, 1.0, 2.0)},
},
WeedSalesman = {
{loc = vector4(1030.77, -3203.18, -38.2, 262.37), ped = 'a_m_m_farmer_01', gang = ""},
},
},
Recipes = {
blunts = {
blunt = {take = {bluntwrap = 1, grindedweed = 1}, give = {blunt = 1}},
chewyblunt = {take = {bluntwrap = 1, grindedweed = 1, loosecoke = 1}, give = {chewyblunt = 1}},
leanblunts = {take = {leanbluntwrap = 1, grindedweed = 1}, give = {leanblunts = 1}},
dextroblunts = {take = {dextrobluntwrap = 1, grindedweed = 1}, give = {dextroblunts = 1}}
},
bluntwrap = {
leanbluntwrap = {take = {bluntwrap = 5, mdlean = 1}, give = {leanbluntwrap = 5}},
dextrobluntwrap = {take = {bluntwrap = 5, mdreddextro = 1}, give = {dextrobluntwrap = 5}},
},
makeButter= {
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
}
}
},
makeOil = {
shatter = {
amount = 1,
time = 4000,
anim = 'uncuff',
recipe = {
butane = 1,
grindedweed = 1
}
}
},
weedStore = {
weedgrinder =25,
mdbutter =25,
flour =25,
chocolate =25,
butane =25,
butanetorch =2,
dabrig =2,
mdwoods =2,
}
}
}
+29
View File
@@ -0,0 +1,29 @@
Config.Whippit = {
Recipes = {
cracker = {
{color = 'blue', item = 'blue_uninflated_balloon'},
{color = 'green', item = 'green_uninflated_balloon'},
{color = 'orange', item = 'orange_uninflated_balloon'},
{color = 'purple', item = 'purple_uninflated_balloon'},
{color = 'red', item = 'red_uninflated_balloon'},
{color = 'white', item = 'white_uninflated_balloon'},
{color = 'yellow', item = 'yellow_uninflated_balloon'}
},
shop = {
blue_uninflated_balloon =5,
green_uninflated_balloon =5,
orange_uninflated_balloon =5,
purple_uninflated_balloon =5,
red_uninflated_balloon =5,
white_uninflated_balloon =5,
yellow_uninflated_balloon =5,
cracker =500,
whipped_cream_cannister =10
}
},
Locations = {
Whippit = {
{loc =vector4(1695.47, 4872.98, 42.16, 288.86), ped = 'ig_priest' },
}
}
}
+55
View File
@@ -0,0 +1,55 @@
Config.Wholesale = {
settings = {
WholesaleQuantityBonus = 0.05, -- 5% bonus per 10 units sold (up to 20%)
WholesaleMaxBonus = 0.20, -- Maximum 20% bonus
WholesaleMinQuantity = 5, -- Minimum quantity required for wholesale
WholesaleAmbushEnabled = true, -- Enable or disable ambush on failed deals
WholesaleAmbushBase = 2, -- Base number of attackers on failed deals
WholesaleAmbushScale = true, -- Scale number of attackers based on drug quantity
WholesaleAmbushTier1 = 10, -- Drug quantity threshold for 3 attackers
WholesaleAmbushTier2 = 20, -- Drug quantity threshold for 4 attackers
WholesaleAmbushTier3 = 30, -- Drug quantity threshold for 5 attackers
FailChance = 20, -- Percentage chance of ambush occurring on a failed deal
PoliceCount = 0, -- Minimum police required to initiate a wholesale deal
},
Locs = {
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),
},
Price = {
cokeburner = {
min = 25,
max = 50
},
crackburner = {
min = 25,
max = 50
},
lsdburner = {
min = 25,
max = 50
},
heroinburner = {
min = 25,
max = 50
},
xtcburner = {
min = 25,
max = 50
},
methburner = {
min = 25,
max = 50
}
}
}
+54
View File
@@ -0,0 +1,54 @@
Config.XTC = {
Recipes = {
raw = {
raw_xtc = {take = {mdp2p = 1, isosafrole = 1}, give = {raw_xtc = 1}}
},
singlestack = {
white_xtc = {give = {white_xtc = 1}, take = {raw_xtc = 1}},
red_xtc = {give = {red_xtc = 1}, take = {raw_xtc = 1, loosecoke = 1},},
orange_xtc = {give = {orange_xtc = 1}, take = {raw_xtc = 1, heroinvial = 1},},
blue_xtc = {give = {blue_xtc = 1}, take = {raw_xtc = 1, crackrock = 1},},
},
dualstack = {
white_xtc2 = {give = {white_xtc2 = 1}, take = {raw_xtc = 1},},
red_xtc2 = {give = {red_xtc2 = 1}, take = {raw_xtc = 1, loosecoke = 1},},
orange_xtc2 = {give = {orange_xtc2 = 1}, take = {raw_xtc = 1, heroinvial = 1},},
blue_xtc2 = {give = {blue_xtc2 = 1}, take = {raw_xtc = 1, crackrock = 1},},
},
triplestack = {
white_xtc3 = {give = {white_xtc3 = 1}, take = {raw_xtc = 1},},
red_xtc3 = {give = {red_xtc3 = 1}, take = {raw_xtc = 1, loosecoke = 1},},
orange_xtc3 = {give = {orange_xtc3 = 1}, take = {raw_xtc = 1, heroinvial = 1},},
blue_xtc3 = {give = {blue_xtc3 = 1}, take = {raw_xtc = 1, crackrock = 1},},
},
quadstack = {
white_xtc4 = {give = {white_xtc4 = 1}, take = {raw_xtc = 1},},
red_xtc4 = {give = {red_xtc4 = 1}, take = {raw_xtc = 1, loosecoke = 1},},
orange_xtc4 = {give = {orange_xtc4 = 1}, take = {raw_xtc = 1, heroinvial = 1},},
blue_xtc4 = {give = {blue_xtc4 = 1}, take = {raw_xtc = 1, crackrock = 1},},
},
presses = {
singlepress = {type = 1,cash = 10000},
dualpress = {type = 2,give = {dualpress = 1}, take = {white_xtc = 20, blue_xtc = 20, red_xtc = 20, orange_xtc = 20, singlepress = 1}},
triplepress = {type = 3,give = {triplepress = 1}, take = {white_xtc2 = 50, blue_xtc2 = 50, red_xtc2 = 50, orange_xtc2 = 50, dualpress = 1}},
quadpress = {type = 4,give = {quadpress = 1}, take = {white_xtc3 = 50, blue_xtc3 = 50, red_xtc3 = 50, orange_xtc3 = 50, triplepress = 1}},
}
},
Locations = {
isosafrole = { -- where to steal isosafrole
{loc = vector3(844.39, -902.92, 25.42), size = vector3(1.0, 1.0, 2.0), gang = ""},
},
mdp2p = { -- where to steal mdp2p
{loc = vector3(844.4, -898.79, 25.23), size = vector3(1.0, 1.0, 2.0), rot = 45.0, gang = ""},
},
rawxtcloc = { -- where to combine the 2 ingridents to make raw xtc
{loc = vector3(844.71, -910.33, 25.37), size = vector3(1.0, 1.0, 2.0), rot = 45.0, gang = ""},
},
xtcpress = {
{ped = 'g_f_y_families_01',loc = vector4(845.82, -884.79, 25.18, 180.0), size = vector3(1.0, 1.0, 2.0), rot = 45.0, gang = ""},
},
stamp = { -- where to stamp pills
{loc = vector3(844.71, -900.56, 25.43), size = vector3(1.0, 1.0, 2.0), rot = 45.0, gang = ""},
},
}
}
+25 -9
View File
@@ -4,15 +4,7 @@ Config, Bridge, targets = {}, exports.community_bridge:Bridge(), {}
Config.TierSystem = true -- allows for three tiers of certain drugs ( coke, heroin, crack, lsd)
Config.Tier1 = 100 -- amount to hit for level 2
Config.Tier2 = 300 -- amount to hit for level 3
Config.CornerSellLevel = {
{price = 0.5, minrep = 0, maxrep = 240, label = 'Rookie'},
{price = 1.0, minrep = 240, maxrep = 600, label = 'Corner Boy'},
{price = 1.1, minrep = 600, maxrep = 1200, label = 'Corner Man'},
{price = 1.2, minrep = 1200, maxrep = 1800, label = 'Dope Peddler'},
{price = 1.3, minrep = 1800, maxrep = 2400, label = 'Drug Supplier'},
{price = 1.5, minrep = 2400, maxrep = 4800, label = 'Drug Pusher'},
{price = 1.75, minrep = 4800, maxrep = 99999999999999, label = 'Drug Lord'},
}
--- Customizations
Config.Dispatch = 'ps' -- either 'ps', 'cd', 'core', 'aty'
@@ -79,3 +71,27 @@ Config.Bzz = { -- if you have BZZZ props for these turn it on if you want
shrooms = false,
weed = false,
}
for k, v in pairs (Config.Drugs) do
if not v then goto continue end
local resourceName = 'md-drugs'
local filePath = 'shared/DrugData/' .. k .. '.lua'
local fullScript = LoadResourceFile(resourceName, filePath)
if not fullScript then
Bridge.Prints.Error("Error: Failed to load module '" .. filePath .. "' from resource '" .. resourceName .. "'.")
return false
end
local chunk, err = load(fullScript, filePath, "t")
if not chunk then
Bridge.Prints.Error("Error loading Lua chunk from '" .. filePath .. "': " .. tostring(err))
return false
end
local success, execErr = pcall(chunk)
if not success then
Bridge.Prints.Error("Error executing Lua chunk from '" .. filePath .. "': " .. tostring(execErr))
return false
end
::continue::
end