- 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 cuttingcoke = nil
local baggingcoke = nil local baggingcoke = nil
repeat Wait(100) until GlobalState.MDDrugsLocations.Cocaine ~= nil local locations = Config.Cocaine.Locations
local locations = GlobalState.MDDrugsLocations.Cocaine
local function CutCoke(coords, offset, rotation) local function CutCoke(coords, offset, rotation)
cuttingcoke = true cuttingcoke = true
+2 -1
View File
@@ -1,6 +1,7 @@
local sell = false local sell = false
local inZone = false local inZone = false
local buyers = {} local buyers = {}
local function walkAway(targ) local function walkAway(targ)
FreezeEntityPosition(targ, false) FreezeEntityPosition(targ, false)
ClearPedTasks(targ) ClearPedTasks(targ)
@@ -209,7 +210,7 @@ RegisterNetEvent('md-drugs:client:cornerselling', function()
end) end)
CreateThread(function() CreateThread(function()
for k, v in pairs (GlobalState.MDDrugsLocations.CornerSelling.noSellZones) do for k, v in pairs (Config.Cornerselling.noSellZones) do
Bridge.Point.Register( Bridge.Point.Register(
'MDDRUGNOSELLZONE'..k, 'MDDRUGNOSELLZONE'..k,
v.loc, v.loc,
+1 -2
View File
@@ -1,5 +1,4 @@
repeat Wait(100) until GlobalState.MDDrugsLocations.Crack ~= nil local locations = Config.Crack.Locations
local locations = GlobalState.MDDrugsLocations.Crack
for k, v in pairs (locations.makecrack) do for k, v in pairs (locations.makecrack) do
Bridge.Target.AddBoxZone('makeCrack'..k, v.loc, v.size, v.loc.w or 180.0, { 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 dealer = {}
local buyer = nil local buyer = nil
repeat Wait(100) until GlobalState.MDDrugsLocations.Deliveries.dealers ~= nil repeat Wait(100) until GlobalState.MDDrugDealers ~= nil
local function SpawnDealer() local function SpawnDealer()
if #dealer >= 1 then if #dealer >= 1 then
@@ -11,7 +11,7 @@ local function SpawnDealer()
end end
dealer = {} dealer = {}
end end
for k,v in pairs(GlobalState.MDDrugsLocations.Deliveries.dealers) do for k,v in pairs(GlobalState.MDDrugDealers) do
requestModel(v.model) requestModel(v.model)
dealer[k] = CreatePed(0, v.model, v.coords.x, v.coords.y, v.coords.z-1, v.coords.w, false, false) 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) Freeze(dealer[k], true, v.coords.w)
@@ -29,7 +29,7 @@ local function SpawnDealer()
action = function() action = function()
local rep = GetRep() local rep = GetRep()
local options = {} 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 if rep.dealerrep >= d.minrep then
options[#options+1] = { options[#options+1] = {
title = Bridge.Inventory.GetItemInfo(d.name).label, title = Bridge.Inventory.GetItemInfo(d.name).label,
@@ -50,7 +50,6 @@ local function SpawnDealer()
end, end,
} }
}) })
targets[#targets+1] = dealer[k]
end end
end end
@@ -81,5 +80,4 @@ RegisterNetEvent('md-drugs:client:setLocation', function(data)
end, end,
} }
}) })
targets[#targets+1] = buyer
end) end)
+2 -2
View File
@@ -1,8 +1,8 @@
local herointable = false local herointable = false
local dirty = 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 function createLabKit(coord, head)
local heroinlabkit = CreateObject("v_ret_ml_tablea", coord.x, coord.y, coord.z - 1, true, false,false) local heroinlabkit = CreateObject("v_ret_ml_tablea", coord.x, coord.y, coord.z - 1, true, false,false)
+3 -3
View File
@@ -1,8 +1,8 @@
local started = false local started = false
local leanCar = nil 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 function SpawnCarPedChase(loc)
local stoploc = vector3(-1157.63, -3056.71, 13.94) local stoploc = vector3(-1157.63, -3056.71, 13.94)
@@ -109,7 +109,7 @@ end
RegisterNetEvent("md-drugs:client:makeLean", function() RegisterNetEvent("md-drugs:client:makeLean", function()
local menu = {} local menu = {}
for k, v in pairs (GlobalState.MDDrugsRecipes.Lean) do for k, v in pairs (Config.Lean.Recipes) do
menu[#menu+1] = { menu[#menu+1] = {
title = Bridge.Inventory.GetItemInfo(v.item).label, title = Bridge.Inventory.GetItemInfo(v.item).label,
description = concat(v.ingredients), description = concat(v.ingredients),
+1 -3
View File
@@ -1,8 +1,6 @@
local tableout = false local tableout = false
local dirtylsd = false local dirtylsd = false
repeat Wait(100) until GlobalState.MDDrugsRecipes.LSD ~= nil local locations = Config.LSD.Locations
local locations = GlobalState.MDDrugsLocations.LSD
local function createLabKit(coord, head) local function createLabKit(coord, head)
requestModel("v_ret_ml_tablea") requestModel("v_ret_ml_tablea")
+1 -2
View File
@@ -1,7 +1,6 @@
local badTrip = 100 local badTrip = 100
repeat Wait(100) until GlobalState.MDDrugsRecipes.Mescaline ~= nil local locations = Config.Mescaline.Locations
local locations = GlobalState.MDDrugsLocations.Mescaline
local function AlienEffect() local function AlienEffect()
CreateThread(function() CreateThread(function()
StartScreenEffect("DrugsMichaelAliensFightIn", 3.0, 0) 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 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 = Config.Meth.Locations
local locations = GlobalState.MDDrugsLocations.Meth
--- meth heist --- meth heist
+1 -2
View File
@@ -1,7 +1,6 @@
local carryPackage = nil local carryPackage = nil
local onMission = false local onMission = false
repeat Wait(100) until GlobalState.MDDrugsLocations.Oxy ~= nil local locations = Config.Oxy.Locations
local locations = GlobalState.MDDrugsLocations.Oxy
local pdAlert = 90 local pdAlert = 90
local vehicle = nil local vehicle = nil
+1 -2
View File
@@ -1,5 +1,4 @@
repeat Wait(100) until GlobalState.MDDrugsLocations.Pharma ~= nil local locations = Config.Pharma.Locations
local locations = GlobalState.MDDrugsLocations.Pharma
Bridge.Callback.Register("md-drugs:client:prescriptionpad", function( data, op) Bridge.Callback.Register("md-drugs:client:prescriptionpad", function( data, op)
local job = Bridge.Framework.GetPlayerJob() local job = Bridge.Framework.GetPlayerJob()
+1 -14
View File
@@ -97,17 +97,4 @@ for k, v in pairs (DrugPlants) do
end) end)
TriggerEvent(v.label ..":init") TriggerEvent(v.label ..":init")
::continue:: ::continue::
end
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)
+1 -2
View File
@@ -1,6 +1,5 @@
local exploded, drying = false, false local exploded, drying = false, false
repeat Wait(100) until GlobalState.MDDrugsLocations.Weed ~= nil and GlobalState.MDDrugsRecipes.Weed ~= nil local locations, recipes = Config.Weed.Locations, Config.Weed.Recipes
local locations, recipes = GlobalState.MDDrugsLocations.Weed, GlobalState.MDDrugsRecipes.Weed
for k, v in pairs (locations.WeedDry) do for k, v in pairs (locations.WeedDry) do
Bridge.Target.AddBoxZone('weed_dry'..k, v.loc, v.size, v.loc.w or 180.0, { 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 local prop = nil
repeat Wait(100) until GlobalState.MDDrugsLocations.Whippit ~= nil and GlobalState.MDDrugsRecipes.Whippit ~= nil
local function animation(color) local function animation(color)
local coords = GetEntityCoords(PlayerPedId()) local coords = GetEntityCoords(PlayerPedId())
@@ -41,7 +40,7 @@ end)
local function spawnShops() 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) requestModel(v.ped)
local ped = CreatePed(5, GetHashKey(v.ped), v.loc.x, v.loc.y, v.loc.z, v.loc.w, true, true) local ped = CreatePed(5, GetHashKey(v.ped), v.loc.x, v.loc.y, v.loc.z, v.loc.w, true, true)
FreezeEntityPosition(ped, true) FreezeEntityPosition(ped, true)
@@ -53,7 +52,7 @@ local function spawnShops()
icon = Bridge.Language.Locale('Whippit.whippitIcon'), icon = Bridge.Language.Locale('Whippit.whippitIcon'),
action = function() action = function()
local menu = {} 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) local itemInfo = Bridge.Inventory.GetItemInfo(item)
menu[#menu + 1] = { menu[#menu + 1] = {
title = itemInfo.label, title = itemInfo.label,
+2 -3
View File
@@ -1,6 +1,5 @@
local xtcpress = false local xtcpress = false
repeat Wait(100) until GlobalState.MDDrugsLocations.XTC ~= nil local locations = Config.XTC.Locations
local locations = GlobalState.MDDrugsLocations.XTC
local function getRecipeList(tbl, type) local function getRecipeList(tbl, type)
local rec local rec
@@ -139,7 +138,7 @@ for k, v in pairs(locations.xtcpress) do
label = Bridge.Language.Locale('xtc.getPress'), label = Bridge.Language.Locale('xtc.getPress'),
onSelect = function() onSelect = function()
local options = {} local options = {}
local recipeList = GlobalState.MDDrugsRecipes.XTC.presses local recipeList = Config.XTC.Recipes.presses
for m, d in pairs(recipeList) do for m, d in pairs(recipeList) do
if m == 'singlepress' then if m == 'singlepress' then
local itemInfo = Bridge.Inventory.GetItemInfo(m) local itemInfo = Bridge.Inventory.GetItemInfo(m)
+2 -1
View File
@@ -20,7 +20,7 @@ server_scripts {
shared_scripts { shared_scripts {
'@ox_lib/init.lua', '@ox_lib/init.lua',
'shared/**.lua', 'shared/config.lua',
} }
lua54 'yes' lua54 'yes'
@@ -28,5 +28,6 @@ lua54 'yes'
files { files {
'client/**.lua', 'client/**.lua',
'server/**.lua', 'server/**.lua',
'shared/**.lua',
'locales/**.json' 'locales/**.json'
} }
+4 -41
View File
@@ -1,45 +1,8 @@
local Target = { local loc = Config.Merchant.Locations.Travellingmerchant[math.random(1, #Config.Merchant.Locations.Travellingmerchant)]
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,
},
}
Bridge.Callback.Register('md-drugs:server:GetMerchant', function(source) Bridge.Callback.Register('md-drugs:server:GetMerchant', function(source)
return {loc = loc, items = stores.travel} return {loc = loc, items = Config.Merchant.stores}
end) end)
@@ -49,11 +12,11 @@ RegisterServerEvent("md-drugs:server:purchaseGoods", function(item)
if not checkDistance(src, loc, 10, 'md-drugs:server:purchaseGoods') then if not checkDistance(src, loc, 10, 'md-drugs:server:purchaseGoods') then
return return
end 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)) Bridge.Prints.Warn(Bridge.Language.Locale('merchant.itemDoesntExist', Bridge.Framework.GetPlayerIdentifier(src), item))
return return
end 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) Bridge.Inventory.AddItem(src, item, 1)
else else
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Catches.notEnoughMoney'), "error") Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Catches.notEnoughMoney'), "error")
+7 -42
View File
@@ -1,40 +1,5 @@
Recipes = Recipes or {} local Locations = Config.Cocaine.Locations
Locations = Locations or {} local Recipes = Config.Cocaine.Recipes
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 function getTier(source) local function getTier(source)
if not Config.TierSystem then 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 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 return
end end
@@ -70,7 +35,7 @@ RegisterServerEvent('md-drugs:server:makepowder', function(num)
return return
end end
if not craft(src, Recipes.Cocaine.cokepowder[tier]) then if not craft(src, Recipes.cokepowder[tier]) then
return return
end end
end) end)
@@ -80,7 +45,7 @@ RegisterServerEvent('md-drugs:server:cutcokeone', function(num)
if timeOut(src, 'md-drugs:server:cutcokeone') then return end 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 return
end end
@@ -96,7 +61,7 @@ RegisterServerEvent('md-drugs:server:cutcokeone', function(num)
break break
end end
end end
if not craft(src, Recipes.Cocaine.cutcoke[tier]) then if not craft(src, Recipes.cutcoke[tier]) then
return return
end end
end) end)
@@ -122,7 +87,7 @@ RegisterServerEvent('md-drugs:server:bagcoke', function(num)
break break
end end
end end
if not craft(src, Recipes.Cocaine.bagcoke[tier]) then if not craft(src, Recipes.bagcoke[tier]) then
return return
end end
AddRep(src, 'coke', 1) AddRep(src, 'coke', 1)
+4 -188
View File
@@ -1,195 +1,11 @@
--[[ for k, v in pairs(Config.Consumables.Consume) do
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
Bridge.Framework.RegisterUsableItem(k, function(source, item) Bridge.Framework.RegisterUsableItem(k, function(source, item)
if not Bridge.Inventory.HasItem(source, k, 1) then return end 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 effect = v.effect or 0
local anim = v.anim or Consumables.defaultanim local anim = v.anim or Config.Consumables.Defaults.defaultAnim
local progressbartext = v.progressbartext or Consumables.defaultprogresstext local progressbartext = v.progressbartext or Config.Consumables.Defaults.defaultText
local add = v.add or {hunger = 0} local add = v.add or {hunger = 0}
local done = Bridge.Callback.Trigger('md-drugs:client:consumedrugs', source, time, effect, anim, progressbartext, add, k) local done = Bridge.Callback.Trigger('md-drugs:client:consumedrugs', source, time, effect, anim, progressbartext, add, k)
if done then if done then
+15 -146
View File
@@ -1,147 +1,16 @@
local DrugDeals = {} 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 drugsNames = {}
local soldPeds = {} local soldPeds = {}
for k, v in pairs(Drugs) do
for k, v in pairs(Config.Cornerselling.Drugs) do
table.insert(drugsNames, k) table.insert(drugsNames, k)
end end
GlobalState.DrugNames = drugsNames 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 GlobalState.MDDrugsLocations = Locations
local RobbedDrugs = {} 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 function beingRobbed(source, item, amount, ped)
local src = source local src = source
@@ -181,19 +50,19 @@ Bridge.Callback.Register('md-drugs:server:cornerselling:getAvailableDrugs', func
return false return false
end end
for k, v in pairs(Drugs) do for k, v in pairs(Config.Cornerselling.Drugs) do
local count = Bridge.Inventory.GetItemCount(src, k) local count = Bridge.Inventory.GetItemCount(src, k)
if count >= 1 then if count >= 1 then
local maths = math.random(1,100) local maths = math.random(1,100)
if maths <= cornsellConfig.robChance then if maths <= Config.CornerSelling.config.robChance then
beingRobbed(source, k, count, ped) beingRobbed(source, k, count, ped)
soldPeds[src][ped] = {item = k, amount = count} soldPeds[src][ped] = {item = k, amount = count}
return 'robbed' return 'robbed'
else else
if count > 15 then count = 15 end if count > 15 then count = 15 end
local amount = math.random(1, count) 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} DrugDeals[src] = {item = k, amount = amount, price = math.floor(price), ped = ped}
soldPeds[src][ped] = DrugDeals[src] soldPeds[src][ped] = DrugDeals[src]
return DrugDeals[src] return DrugDeals[src]
@@ -204,7 +73,7 @@ Bridge.Callback.Register('md-drugs:server:cornerselling:getAvailableDrugs', func
end) end)
Bridge.Callback.Register('md-drugs:server:hasDrugs', function(source) 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 if Bridge.Inventory.HasItem(source, k) then
return true return true
end end
@@ -214,7 +83,7 @@ end)
local function csCheck(src, item, amount, price) local function csCheck(src, item, amount, price)
local isIn = false local isIn = false
for k, v in pairs (Drugs) do for k, v in pairs (Config.Cornerselling.Drugs) do
if item == k then if item == k then
isIn = true isIn = true
end end
@@ -251,15 +120,15 @@ RegisterNetEvent('md-drugs:server:sellCornerDrugs', function(item, amount, price
return return
end end
AddRep(src, 'cornerselling', Drugs[item].rep * amount) AddRep(src, 'cornerselling', Config.Cornerselling.Drugs[item].rep * amount)
DrugDeals[src] = nil DrugDeals[src] = nil
if cornsellConfig.MarkedBills then if Config.CornerSelling.config.MarkedBills then
Bridge.Inventory.AddItem(src, 'markedbills', price, nil, {worth = price}) Bridge.Inventory.AddItem(src, 'markedbills', price, nil, {worth = price})
return return
end end
if cornsellConfig.CustomItem ~= '' then if Config.CornerSelling.config.CustomItem ~= '' then
Bridge.Inventory.AddItem(src, cornsellConfig.CustomItem, price) Bridge.Inventory.AddItem(src, Config.CornerSelling.config.CustomItem, price)
return return
end end
Bridge.Framework.AddAccountBalance(src, 'cash', price) Bridge.Framework.AddAccountBalance(src, 'cash', price)
@@ -281,8 +150,8 @@ end)
RegisterCommand('cornersell', function(source, args, raw) RegisterCommand('cornersell', function(source, args, raw)
local src = source local src = source
if #Bridge.Framework.GetPlayersByJob('police') < cornsellConfig.policeRequired then if #Bridge.Framework.GetPlayersByJob('police') < Config.CornerSelling.config.policeRequired then
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Cornerselling.notEnoughCops', cornsellConfig.policeRequired - #Bridge.Framework.GetPlayersByJob('police')), 'error') Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Cornerselling.notEnoughCops', Config.CornerSelling.config.policeRequired - #Bridge.Framework.GetPlayersByJob('police')), 'error')
return return
end end
TriggerClientEvent('md-drugs:client:cornerselling', src) 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) RegisterServerEvent('md-drugs:server:makecrackone', function(num)
local src = source local src = source
if timeOut(src, 'md-drugs:server:makecrackone') then return end 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 return
end end
@@ -47,7 +22,7 @@ RegisterServerEvent('md-drugs:server:makecrackone', function(num)
end end
end end
end end
if not craft(src, Recipes.Crack.cookcrack[tier]) then if not craft(src, Config.Crack.Recipes.cookcrack[tier]) then
return return
end end
end) end)
@@ -58,7 +33,7 @@ RegisterServerEvent('md-drugs:server:bagcrack', function(num)
if timeOut(src, 'md-drugs:server:bagcrack') then return end 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 return
end end
@@ -76,7 +51,7 @@ RegisterServerEvent('md-drugs:server:bagcrack', function(num)
end end
end end
end end
if not craft(src, Recipes.Crack.bagcrack[tier]) then if not craft(src, Config.Crack.Recipes.bagcrack[tier]) then
return return
end end
end) end)
@@ -107,7 +82,7 @@ end
RegisterNetEvent("md-drugs:server:failcrackone", function(num) RegisterNetEvent("md-drugs:server:failcrackone", function(num)
local src = source 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 return
end end
local items = { 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 = { local drugDeliveryItem = {
{item = 'coke_brick', amount = 1}, {item = 'coke_brick', amount = 1},
@@ -107,8 +16,7 @@ CreateThread(function()
model = dealers[i].model or 'a_m_m_skater_01', model = dealers[i].model or 'a_m_m_skater_01',
} }
end end
Locations.Deliveries.dealers = Dealers GlobalState.MDDrugDealers = Dealers
GlobalState.MDDrugsLocations = Locations
end end
end) end)
@@ -125,8 +33,7 @@ RegisterCommand('newdealer', function(source, args, rawCommand)
coords = vec, coords = vec,
model = model, model = model,
} }
Locations.Deliveries.dealers = Dealers GlobalState.MDDrugDealers = Dealers
GlobalState.MDDrugsLocations = Locations
Wait(1000) Wait(1000)
TriggerClientEvent('md-drugs:client:RefreshDealers', -1) TriggerClientEvent('md-drugs:client:RefreshDealers', -1)
end, false) 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 if not checkDistance(src, Dealers[dealerId].coords, 5.0, 'md-drugs:server:buyItemDealer') then
return return
end end
local itemExists = Recipes.Deliveries[item] local itemExists = Config.Deliveries.Recipes[item]
if not itemExists then if not itemExists then
Bridge.Prints.Warn(Bridge.Language.Locale('Deliveries.itemDoesntExist', Bridge.Framework.GetPlayerIdentifier(src), item)) 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]) TriggerClientEvent('md-drugs:client:setLocation', src, active[id])
return return
end 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)] local item = drugDeliveryItem[math.random(1, #drugDeliveryItem)]
active[id] = { active[id] = {
coords = deliveryLoc.coords, coords = deliveryLoc.coords,
+14 -54
View File
@@ -1,49 +1,5 @@
Recipes, Locations = Recipes or {}, Locations or {}
local heroinLabKits = {} 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) 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 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 return
end end
local tier = getTier(src) local tier = getTier(src)
if not craft(src, Recipes.Heroin.dryheroin[tier]) then if not craft(src, Config.Heroin.Recipes.dryheroin[tier]) then
return return
end end
end) end)
@@ -87,7 +43,7 @@ RegisterServerEvent('md-drugs:server:cutheroin', function(num)
if timeOut(src, 'md-drugs:server:cutheroin') then return end 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 return
end end
@@ -106,7 +62,7 @@ RegisterServerEvent('md-drugs:server:cutheroin', function(num)
end end
end end
if not craft(src, Recipes.Heroin.cutheroin[tier]) then if not craft(src, Config.Heroin.Recipes.cutheroin[tier]) then
return return
end end
end) end)
@@ -116,7 +72,7 @@ RegisterServerEvent('md-drugs:server:getheroinlabkit', function(num)
if timeOut(src, 'md-drugs:server:getheroinlabkit') then return end 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 return
end end
@@ -125,10 +81,10 @@ RegisterServerEvent('md-drugs:server:getheroinlabkit', function(num)
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('heroin.hasKitAlready'), 'error') Bridge.Notify.SendNotify(src, Bridge.Language.Locale('heroin.hasKitAlready'), 'error')
return return
end 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) Bridge.Inventory.AddItem(src, 'heroinlabkit', 1)
else 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
end) end)
@@ -185,6 +141,10 @@ RegisterServerEvent('md-drugs:server:heatliquidheroin', function()
return return
end end
if not checkDistance(src, heroinLabKits[src].coords, 3.0, 'md-drugs:server:heatliquidheroin') then
return
end
local tier = 'tier1' local tier = 'tier1'
if Config.TierSystem then if Config.TierSystem then
local itemList = { local itemList = {
@@ -199,7 +159,7 @@ RegisterServerEvent('md-drugs:server:heatliquidheroin', function()
end end
end end
end end
if not craft(src, Recipes.Heroin.fillvial[tier]) then if not craft(src, Config.Heroin.Recipes.fillvial[tier]) then
return return
end end
end) end)
@@ -229,7 +189,7 @@ RegisterServerEvent('md-drugs:server:fillneedle', function(num)
local src = source local src = source
if timeOut(src, 'md-drugs:server:fillneedle') then return end 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 return
end end
local tier = 'tier1' local tier = 'tier1'
@@ -246,7 +206,7 @@ RegisterServerEvent('md-drugs:server:fillneedle', function(num)
end end
end end
end end
if not craft(src, Recipes.Heroin.fillneedle[tier]) then if not craft(src, Config.Hero8in.Recipes.fillneedle[tier]) then
return return
end end
end) end)
+5 -38
View File
@@ -1,40 +1,6 @@
Locations = Locations or {}
Recipes = Recipes or {}
local onRun = {} 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) local function setTimeout(identifier)
if onRun[identifier] then if onRun[identifier] then
CreateThread(function() CreateThread(function()
@@ -43,6 +9,7 @@ local function setTimeout(identifier)
end) end)
end end
end end
RegisterServerEvent('md-drugs:server:givelean', function() RegisterServerEvent('md-drugs:server:givelean', function()
local src = source local src = source
if not onRun[src] then if not onRun[src] then
@@ -77,7 +44,7 @@ Bridge.Callback.Register('md-drugs:server:registerLean', function(source, loc, v
if onRun[src] then if onRun[src] then
return false return false
else 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 return false
end end
if not vehicleNetId then if not vehicleNetId then
@@ -107,10 +74,10 @@ end)
RegisterNetEvent('md-drugs:server:makeLean', function(recipe) RegisterNetEvent('md-drugs:server:makeLean', function(recipe)
local src = source local src = source
if not Recipes.Lean[recipe] then if not Config.Lean.Recipes[recipe] then
return return
end end
local rec = Recipes.Lean[recipe] local rec = Config.Lean.Recipes[recipe]
for k, v in pairs (rec.ingredients) do for k, v in pairs (rec.ingredients) do
if not Bridge.Inventory.HasItem(src, v.item, v.amount) then if not Bridge.Inventory.HasItem(src, v.item, v.amount) then
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('lean.missingIngredients'), 'error') 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 = {} local lsdTables = {}
@@ -35,7 +6,7 @@ RegisterServerEvent('md-drugs:server:getlysergic', function(num)
if timeOut(src, 'md-drugs:server:getlysergic') then return end 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 return
end end
Bridge.Inventory.AddItem(src, 'lysergic_acid', 2) Bridge.Inventory.AddItem(src, 'lysergic_acid', 2)
@@ -44,7 +15,7 @@ end)
RegisterServerEvent('md-drugs:server:getdiethylamide', function(num) RegisterServerEvent('md-drugs:server:getdiethylamide', function(num)
local src = source local src = source
if timeOut(src, 'md-drugs:server:getdiethylamide') then return end 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 return
end end
Bridge.Inventory.AddItem(src, 'diethylamide', 2) 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 if not checkDistance(src, lsdTables[src].loc, 3.0, 'md-drugs:server:heatliquid') then
return return
end end
if not craft(src, Recipes.LSD['vial']['heat']) then if not craft(src, Config.LSD.Recipes.vial.heat) then
return return
end end
end) end)
@@ -123,10 +94,12 @@ RegisterServerEvent('md-drugs:server:refinequalityacid', function()
if timeOut(src, 'md-drugs:server:refinequalityacid') then if timeOut(src, 'md-drugs:server:refinequalityacid') then
return return
end end
local removed = Bridge.Inventory.RemoveItem(src, 'lsd_one_vial', 1) local removed = Bridge.Inventory.RemoveItem(src, 'lsd_one_vial', 1)
if not removed then if not removed then
return return
end end
if Config.TierSystem then if Config.TierSystem then
local lsd = tonumber(getRep(src, 'lsd')) local lsd = tonumber(getRep(src, 'lsd'))
if lsd <= 30 then 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 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 return
end 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) Bridge.Inventory.AddItem(src,'tab_paper', 10)
else else
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Catches.notEnoughMoney'), "error") Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Catches.notEnoughMoney'), "error")
@@ -194,10 +167,10 @@ RegisterServerEvent('md-drugs:server:getlabkit', function(num)
return return
end 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 return
end 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) Bridge.Inventory.AddItem(src,'lsdlabkit', 1)
else else
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Catches.notEnoughMoney'), "error") 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) RegisterNetEvent("md-drugs:server:drymescaline", function(num)
local src = source local src = source
if timeOut(src, 'md-drugs:server:drymescaline') then return end 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 return
end end
if not craft(src, Recipes.Mescaline.mescaline.dry.dried) then if not craft(src, Config.Mescaline.Recipes.dry.dried) then
return return
end end
end) end)
+6 -50
View File
@@ -1,48 +1,5 @@
Recipes, Locations = Recipes or {}, Locations or {}
local onRun = {} local onRun = {}
local vehicles = {} 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) local function setTimeout(src)
if onRun[src] then if onRun[src] then
@@ -91,11 +48,11 @@ RegisterServerEvent('md-drugs:server:getmeth', function(num)
local src = source local src = source
if timeOut(src, 'md-drugs:server:getmeth') then return end 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 return
end end
if not craft(src, Recipes.Meth.bag.bags) then if not craft(src, Config.Meth.recipes.bag.bags) then
return return
end end
end) end)
@@ -103,7 +60,7 @@ end)
RegisterServerEvent('md-drugs:server:geteph', function(num) RegisterServerEvent('md-drugs:server:geteph', function(num)
local src = source local src = source
if timeOut(src, 'md-drugs:server:geteph') then return end 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 return
end end
Bridge.Inventory.AddItem(src, 'ephedrine', 1) Bridge.Inventory.AddItem(src, 'ephedrine', 1)
@@ -113,7 +70,6 @@ RegisterServerEvent('md-drugs:server:getace', function(num)
local src = source local src = source
if timeOut(src, 'md-drugs:server:getace') then return end 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 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 return
end end
Bridge.Inventory.AddItem(src, 'acetone', 1) Bridge.Inventory.AddItem(src, 'acetone', 1)
@@ -121,10 +77,10 @@ end)
Bridge.Callback.Register('md-drugs:server:startcook', function(source, num) Bridge.Callback.Register('md-drugs:server:startcook', function(source, num)
local src = source 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 return false
end end
if not craft(src, Recipes.Meth.cook.heat) then if not craft(src, Config.Meth.recipes.cook.heat) then
return false return false
end end
return true return true
@@ -135,7 +91,7 @@ Bridge.Callback.Register('md-drugs:server:registerMeth', function(source, loc, v
if onRun[source] then if onRun[source] then
return false return false
else 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) local vehicle = NetworkGetEntityFromNetworkId(vehNetId)
if DoesEntityExist(vehicle) and GetEntityModel(vehicle) == GetHashKey('journey') then if DoesEntityExist(vehicle) and GetEntityModel(vehicle) == GetHashKey('journey') then
vehicles[src] = vehicle 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 onRoute = {}
local vehicles = {} 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) 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 if onRoute[src] then
return false return false
end 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 return false
end 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") Bridge.Notify.SendNotify(src, Bridge.Language.Locale('oxy.notEnoughCash'), "error")
return false return false
end end
onRoute[src] = { onRoute[src] = {
amount = math.random(1, #Locations.Oxy.oxylocations), amount = math.random(1, #Config.Oxy.Locations.oxylocations),
current = 0 current = 0
} }
return true return true
@@ -57,7 +33,7 @@ RegisterServerEvent('md-drugs:server:giveoxybox', function()
return return
end 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 return
end end
@@ -73,13 +49,9 @@ RegisterServerEvent('md-drugs:server:giveoxybox', function()
local cash = math.random(50, 200) local cash = math.random(50, 200)
local itemchance = math.random(1,100) local itemchance = math.random(1,100)
local itemList = { local item = Config.Oxy.itemList[math.random(1, #Config.Oxy.itemList)]
{item = 'oxy', amount = 2},
{item = 'houselockpick', amount = 1},
}
local item = itemList[math.random(1, #itemList)]
Bridge.Framework.AddAccountBalance(src, 'cash', cash) 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) Bridge.Inventory.AddItem(src, item.item, item.amount)
end end
end) end)
@@ -91,7 +63,7 @@ Bridge.Callback.Register('md-drugs:server:getRoute', function(source)
vehicles[source] = nil vehicles[source] = nil
return false return false
end 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 onRoute[source].amount = onRoute[source].amount - 1
return onRoute[source].current return onRoute[source].current
end) 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 function GetJob(source)
local src = source local src = source
@@ -72,7 +65,7 @@ RegisterServerEvent('md-drugs:server:fillprescription', function(num)
local src = source local src = source
if timeOut(src, 'md-drugs:server:fillprescription') then return end 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 return
end end
local pres = { 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) RegisterNetEvent('md-drugs:server:buyWeedItem', function(loc, name, amount)
local src = source 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 return
end 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)) Bridge.Prints.Warn(Bridge.Language.Locale('weed.itemDoesntExistWarn', Bridge.Framework.GetPlayerIdentifier(src), name))
return return
end 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) Bridge.Inventory.AddItem(src, name, amount)
else else
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Catches.notEnoughMoney'), "error") Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Catches.notEnoughMoney'), "error")
@@ -125,7 +19,7 @@ end)
RegisterServerEvent('md-drugs:server:dryoutweed', function(loc) RegisterServerEvent('md-drugs:server:dryoutweed', function(loc)
local src = source local src = source
if timeOut(src, 'md-drugs:server:dryoutweed') then return end 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 return
end end
if Bridge.Inventory.RemoveItem(src,"wetcannabis", 1) then 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)) Bridge.Prints.Warn(Bridge.Language.Locale('weed.invalidTableWarn', Bridge.Framework.GetPlayerIdentifier(src), tabl))
return return
end 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 return
end end
local recipe = Recipes.Weed[tabl][item] local recipe = Config.Weed.Recipes[tabl][item]
if not recipe then if not recipe then
Bridge.Prints.Warn(Bridge.Language.Locale('weed.recipeDoesntExistWarn', Bridge.Framework.GetPlayerIdentifier(src), item)) Bridge.Prints.Warn(Bridge.Language.Locale('weed.recipeDoesntExistWarn', Bridge.Framework.GetPlayerIdentifier(src), item))
return 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) 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 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 return
end 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)) Bridge.Prints.Warn(Bridge.Language.Locale('Whippit.invalidItemWarn', Bridge.Framework.GetPlayerIdentifier(src), item))
return return
end 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 if not Bridge.Framework.RemoveAccountBalance(src, 'cash', price, 'whippit-shop') then
return Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Whippit.notEnoughMoney', price), 'error') return Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Whippit.notEnoughMoney', price), 'error')
end 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, 'cracker', 1) then return end
if not Bridge.Inventory.HasItem(src, 'whipped_cream_cannister', 1) then return end if not Bridge.Inventory.HasItem(src, 'whipped_cream_cannister', 1) then return end
local balloonItem, balloonColor = nil, nil 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 if Bridge.Inventory.HasItem(src, balloon.item, 1) then
balloonItem = balloon.item balloonItem = balloon.item
balloonColor = 'ate_balloon_' .. balloon.color balloonColor = 'ate_balloon_' .. balloon.color
+12 -69
View File
@@ -8,64 +8,7 @@ local burners = {
methburner = {'methbaggy'}, methburner = {'methbaggy'},
} }
local active = {} 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 for k, v in pairs (burners) do
Bridge.Framework.RegisterUsableItem(k, function(source, item) 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) TriggerClientEvent("md-drugs:client:MarkLocation", src, active[source].location)
return return
end 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') return Bridge.Notify.SendNotify(source, Bridge.Language.Locale('wholesale.not_enough_police'), 'error')
end end
local itemCount, itemList = 0, {} local itemCount, itemList = 0, {}
@@ -85,7 +28,7 @@ for k, v in pairs (burners) do
itemList[d] = amt itemList[d] = amt
end end
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') return Bridge.Notify.SendNotify(source, Bridge.Language.Locale('wholesale.not_enough_drugs'), 'error')
end end
@@ -93,21 +36,21 @@ for k, v in pairs (burners) do
active[src] = { active[src] = {
count = itemCount, count = itemCount,
itemList = itemList, itemList = itemList,
location = settings.Locs[math.random(1, #settings.Locs)], location = Config.Wholesale.Locs[math.random(1, #Config.Wholesale.Locs)],
price = math.random(Price[k].min, Price[k].max), price = math.random(Config.Wholesale.Price[k].min, Config.Wholesale.Price[k].max),
drugType = k, 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 if active[src].ambush and Config.Wholesale.settings.WholesaleAmbushEnabled then
active[src].attackerCount = settings.WholesaleAmbushBase active[src].attackerCount = Config.Wholesale.settings.WholesaleAmbushBase
if settings.WholesaleAmbushScale then if Config.Wholesale.settings.WholesaleAmbushScale then
if active[src].count > settings.WholesaleAmbushTier1 then if active[src].count > Config.Wholesale.settings.WholesaleAmbushTier1 then
active[src].attackerCount = active[src].attackerCount + 1 active[src].attackerCount = active[src].attackerCount + 1
end end
if active[src].count > settings.WholesaleAmbushTier2 then if active[src].count > Config.Wholesale.settings.WholesaleAmbushTier2 then
active[src].attackerCount = active[src].attackerCount + 1 active[src].attackerCount = active[src].attackerCount + 1
end end
if active[src].count > settings.WholesaleAmbushTier3 then if active[src].count > Config.Wholesale.settings.WholesaleAmbushTier3 then
active[src].attackerCount = active[src].attackerCount + 1 active[src].attackerCount = active[src].attackerCount + 1
end end
end end
@@ -132,7 +75,7 @@ RegisterNetEvent('md-drugs:server:SuccessSale', function(entity)
return return
end end
local basePrice = active[src].price * active[src].count 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)) local totalPrice = math.floor(basePrice * (1 + bonusMultiplier))
for k, v in pairs (active[src].itemList) do for k, v in pairs (active[src].itemList) do
local has = Bridge.Inventory.GetItemCount(src, k) or 0 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 = {} local activePresses = {}
RegisterServerEvent('md-drugs:server:stealisosafrole', function(num) RegisterServerEvent('md-drugs:server:stealisosafrole', function(num)
local src = source 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 return
end end
if timeOut(src, '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) RegisterServerEvent('md-drugs:server:stealmdp2p', function(num)
local src = source 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 return
end end
if timeOut(src, '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) end)
local presses = { local presses = {
{item = 'singlepress', data = 'singlestack', recipes = Recipes.XTC.singlestack}, {item = 'singlepress', data = 'singlestack', recipes = Config.XTC.Recipes.singlestack},
{item = 'dualpress', data = 'dualstack', recipes = Recipes.XTC.dualstack}, {item = 'dualpress', data = 'dualstack', recipes = Config.XTC.Recipes.dualstack},
{item = 'triplepress', data = 'triplestack', recipes = Recipes.XTC.triplestack}, {item = 'triplepress', data = 'triplestack', recipes = Config.XTC.Recipes.triplestack},
{item = 'quadpress', data = 'quadstack', recipes = Recipes.XTC.quadstack}, {item = 'quadpress', data = 'quadstack', recipes = Config.XTC.Recipes.quadstack},
} }
for k, v in pairs (presses) do 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 if not checkDistance(src, activePresses[src].loc, 2.0, 'md-drugs:server:makextc') then
return return
end 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 return
end end
end) end)
RegisterServerEvent('md-drugs:server:buypress', function(loc, item) RegisterServerEvent('md-drugs:server:buypress', function(loc, item)
local src = source 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 return
end end
if timeOut(src, '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) Bridge.Inventory.AddItem(src, "singlepress", 1)
else else
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Catches.notEnoughMoney'), "error") Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Catches.notEnoughMoney'), "error")
@@ -144,10 +87,10 @@ end)
RegisterServerEvent('md-drugs:server:upgradepress', function(data, item) RegisterServerEvent('md-drugs:server:upgradepress', function(data, item)
local src = source local src = source
if timeOut(src, 'md-drugs:server:upgradepress') then return end 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 return
end end
if not craft(src, Recipes.XTC.presses[item]) then if not craft(src, Config.XTC.Recipes.presses[item]) then
return return
end end
end) end)
@@ -155,12 +98,12 @@ end)
------------- making powder ------------- making powder
RegisterServerEvent('md-drugs:server:makingrawxtc', function(num) RegisterServerEvent('md-drugs:server:makingrawxtc', function(num)
local src = source local src = source
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") Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Checks.notIn'), "error")
return return
end end
if timeOut(src, 'md-drugs:server:makingrawxtc') then 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 return
end end
end) end)
@@ -180,7 +123,7 @@ end
RegisterServerEvent('md-drugs:server:stamp', function(num, color) RegisterServerEvent('md-drugs:server:stamp', function(num, color)
local src = source 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 if timeOut(src, 'md-drugs:server:stamp') then return end
local item = getColor(color) local item = getColor(color)
local colors = { 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.TierSystem = true -- allows for three tiers of certain drugs ( coke, heroin, crack, lsd)
Config.Tier1 = 100 -- amount to hit for level 2 Config.Tier1 = 100 -- amount to hit for level 2
Config.Tier2 = 300 -- amount to hit for level 3 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 --- Customizations
Config.Dispatch = 'ps' -- either 'ps', 'cd', 'core', 'aty' 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, shrooms = false,
weed = 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