36 Commits
Author SHA1 Message Date
Mustache Dom 0e55a18676 Update functions.lua 2026-06-23 17:13:07 -07:00
Mustache Dom 28d4244243 Update meth.lua 2026-04-03 15:07:53 -07:00
Mustache Dom ff5a86b3f3 Update heroin.lua 2026-04-03 13:21:43 -07:00
Mustache Dom 0f80534168 - fix Weed Blunts 2026-03-23 21:09:06 -07:00
Mustache Dom 30f12ebbe5 fix no animation defaults 2026-03-11 21:09:37 -07:00
Mustache Dom fdd4b0cb7b Update cocaine.lua 2026-03-11 02:47:56 -07:00
Mustache Dom 32af7ae59a Merge pull request #81 from Mustachedom/Community_bridge
Merge to Community_bridge
2026-03-05 00:12:46 -08:00
Mustache Dom c08ff45617 Merge branch 'main' into Community_bridge 2026-03-05 00:11:52 -08:00
Mustache Dom 97af3833b7 test 2026-03-05 00:07:51 -08:00
Mustache Dom 4e48857437 - push for ready 2026-03-05 00:00:34 -08:00
Mustache Dom c3084abc78 Update functions.lua 2026-02-07 15:42:58 -08:00
Mustache Dom d97cd43951 Update cocaine.lua 2026-02-01 10:49:46 -08:00
Mustache Dom 7ceaa97b5f - add locales, fix cornerselling 2026-01-31 02:44:07 -07:00
Mustache Dom 11e7015672 remove loader function, ensure files through fx 2026-01-31 02:21:15 -07:00
Mustache Dom c7eca0285b - big change, moved data to shared folder 2026-01-31 02:05:15 -07:00
Mustache Dom fdc28723bc - forgot a target 2026-01-30 01:40:18 -07:00
Mustache Dom 1d82b8beba - target fix 2026-01-30 01:19:50 -07:00
Mustache Dom 5db30458eb - big push 2026-01-30 00:45:03 -07:00
Mustache Dom b5297bd109 - fix progressbar 2026-01-25 03:30:48 -07:00
Mustache Dom 547ba993d4 adjust readme 2026-01-24 00:57:03 -07:00
Mustache Dom c380c75149 - moved shit around 2026-01-24 00:54:49 -07:00
Mustache Dom 9c0723d4c7 - remove version 2026-01-24 00:52:33 -07:00
Mustache Dom c3aaf67421 - update consumables 2026-01-24 00:50:26 -07:00
Mustache Dom addce12081 - finish rewrite of deliveries 2026-01-23 23:40:20 -07:00
Mustache Dom a975406031 - remove qbdrugsrewrite file
- add dealer table in case you dropped it
- updated readme
2026-01-23 04:10:58 -07:00
Mustache Dom c752baffda condense locales 2026-01-23 03:41:19 -07:00
Mustache Dom fc8a623067 locales and wholesale 2026-01-22 02:08:35 -07:00
Mustache Dom c1c8b8cb86 add itemCheck function 2026-01-21 22:02:25 -07:00
Mustache Dom 690db7ce55 - clean remove requirement for emote menu 2026-01-21 21:27:08 -07:00
Mustache Dom d46e28e8f2 added troll feature 2026-01-21 01:36:38 -07:00
Mustache Dom fb500dc502 edit checkDistance 2026-01-19 00:46:49 -07:00
Mustache Dom df9584711a 90% 2026-01-19 00:38:01 -07:00
Mustache Dom 66934fd68a - 80% 2026-01-18 01:20:44 -07:00
Mustache Dom ebc47ba5d7 - half done 2026-01-16 02:57:26 -07:00
Mustache Dom d2f70d78ed Update version.txt 2026-01-11 14:37:53 -08:00
Mustache Dom 0ed22eb62b - fix xtc not allowing to upgrade 2026-01-07 02:12:06 -07:00
85 changed files with 3740 additions and 7620 deletions

No files matched your search

+2 -1
View File
@@ -21,6 +21,7 @@
"heroinCooldown",
"checkLoc",
"getRandW",
"shroomsCooldown"
"shroomsCooldown",
"targets"
]
}
+16 -9
View File
@@ -1,28 +1,35 @@
if not Config.Drugs['TravellingMerchant'] then return end
local function spawn()
local data = ps.callback('md-drugs:server:GetMerchant')
local data = Bridge.Callback.Trigger('md-drugs:server:GetMerchant')
local model = 's_m_m_trucker_01'
ps.requestModel(model)
requestModel(model)
local ped = CreatePed(4, model, data.loc.x, data.loc.y, data.loc.z, data.loc.w, false, true)
Freeze(ped, true, data.loc.w)
ps.entityTarget(ped, {
Bridge.Target.AddLocalEntity(ped, {
{
label = ps.lang('merchant.targetOpen'),
icon = Bridge.Language.Locale('merchant.targetIcon'),
label = Bridge.Language.Locale('merchant.targetOpen'),
action = function()
local options = {}
for k, v in pairs (data.items) do
local itemInfo = Bridge.Inventory.GetItemInfo(k)
options[#options+1] = {
title = ps.getLabel(k),
title = itemInfo.label,
description = '$'..v,
icon = ps.getImage(k),
action = function()
icon = itemInfo.image,
onSelect = function()
TriggerServerEvent('md-drugs:server:purchaseGoods', k)
end
}
end
ps.menu('Travelling Merchant', 'Travelling Merchant', options)
Bridge.Menu.Open({
id = 'merchant_menu',
title = Bridge.Language.Locale('merchant.menuTitle'),
options = options
})
end
}
})
targets[#targets+1] = ped
end
spawn()
+32 -33
View File
@@ -1,11 +1,11 @@
local cuttingcoke = nil
local baggingcoke = nil
local locations = ps.callback('md-drugs:server:GetCokeLocations')
local locations = Config.Cocaine.Locations
local function CutCoke(coords, offset, rotation)
cuttingcoke = true
local animDict, animName = "anim@amb@business@coc@coc_unpack_cut_left@", "coke_cut_v5_coccutter"
ps.requestAnim(animDict, 500)
Bridge.Anim.RequestDict(animDict, 500)
local animDuration = GetAnimDuration(animDict, animName) * 1000
local ped = PlayerPedId()
local scenePos, sceneRot = vector3(coords.x + offset.x, coords.y + offset.y,coords.z + offset.z), rotation
@@ -48,15 +48,17 @@ local function CutCoke(coords, offset, rotation)
end
RemoveAnimDict(animDict)
FreezeEntityPosition(ped, false)
cuttingcoke = nil
end
local function BagCoke(coords, offset, rotation)
baggingcoke = true
local ver = ""
local animDict, animName = "anim@amb@business@meth@meth_smash_weight_check@", "break_weigh_"..ver.."char01"
ps.requestAnim(animDict, 500)
Bridge.Anim.RequestDict(animDict, 500)
local animDuration = GetAnimDuration(animDict, animName) * 1000
local ped = PlayerPedId()
local scenePos, sceneRot = vector3(coords.x + offset.x, coords.y + offset.y,coords.z + offset.z), rotation
local scenePos, sceneRot = vector3(coords.x + offset.x, coords.y + offset.y,coords.z + offset.z +0.03), rotation
local scenes = {
{
{ hash = "bkr_prop_coke_cutblock_01", animName = "break_weigh_"..ver.."box01"},
@@ -109,19 +111,17 @@ local function BagCoke(coords, offset, rotation)
end
RemoveAnimDict(animDict)
FreezeEntityPosition(ped, false)
baggingcoke = nil
end
for k, v in pairs (locations.MakePowder) do
ps.boxTarget('cocaplant'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, {
Bridge.Target.AddBoxZone('cocaplant'..k, v.loc, v.size, v.loc.w or 180.0, {
{
label = ps.lang('coke.targetMakePow'),
icon = 'fa-solid fa-seedling',
label = Bridge.Language.Locale('coke.targetMakePow'),
icon = Bridge.Language.Locale('coke.targetMakePowIcon'),
action = function()
if not ps.hasItem('coca_leaf') then
ps.notify(ps.lang('Catches.itemMissings', ps.getLabel('coca_leaf')), 'error')
return
end
if not ps.progressbar(ps.lang('coke.makePow'), 4000, 'uncuff') then return end
if not itemCheck('coca_leaf') then return end
if not progressbar(Bridge.Language.Locale('coke.makePow')) then return end
TriggerServerEvent("md-drugs:server:makepowder", k)
end,
canInteract = function()
@@ -129,18 +129,16 @@ for k, v in pairs (locations.MakePowder) do
end
}
})
targets[#targets+1] = 'cocaplant'..k
end
for k, v in pairs (locations.CuttingCoke) do
ps.boxTarget('cutcoke'..k, v.loc, {length = 1.0, width = 1.0, height = 1.0, rotation = 180.0}, {
Bridge.Target.AddBoxZone('cutcoke'..k, v.loc, v.size, v.loc.w or 180.0, {
{
label = ps.lang('coke.targetCutCoke'),
icon = 'fa-solid fa-mortar-pestle',
label = Bridge.Language.Locale('coke.targetCutCoke'),
icon = Bridge.Language.Locale('coke.targetCutCokeIcon'),
action = function()
if not ps.hasItem('bakingsoda') then
ps.notify(ps.lang('Catches.itemMissings', ps.getLabel('bakingsoda')), 'error')
return
end
if not itemCheck('bakingsoda') then return end
CutCoke(v.loc, v.offset, v.rotation)
TriggerServerEvent("md-drugs:server:cutcokeone", k)
end,
@@ -151,18 +149,16 @@ for k, v in pairs (locations.CuttingCoke) do
end,
}
})
targets[#targets+1] = 'cutcoke'..k
end
for k, v in pairs (locations.BaggingCoke) do
ps.boxTarget('bagcoke'..k, v.loc, {length = 1.0, width = 1.0, height = 1.0, rotation = 180.0}, {
Bridge.Target.AddBoxZone('bagcoke'..k, v.loc, v.size, v.loc.w or 180.0, {
{
label = ps.lang('coke.targetBagCoke'),
icon = 'fa-solid fa-sack-xmark',
label = Bridge.Language.Locale('coke.targetBagCoke'),
icon = Bridge.Language.Locale('coke.targetBagCokeIcon'),
action = function()
if not ps.hasItem('empty_weed_bag') then
ps.notify(ps.lang('Catches.itemMissings', ps.getLabel('empty_weed_bag')), 'error')
return
end
if not itemCheck('empty_weed_bag') then return end
BagCoke(v.loc, v.offset, v.rotation)
TriggerServerEvent("md-drugs:server:bagcoke", k)
end,
@@ -173,13 +169,14 @@ for k, v in pairs (locations.BaggingCoke) do
end
}
})
targets[#targets+1] = 'bagcoke'..k
end
for k, v in pairs (locations.cokeTele) do
ps.boxTarget('coke_tele'..k, v.inside, {length = v.l, width = v.w, heading = v.rot}, {
Bridge.Target.AddBoxZone('coke_tele'..k, v.inside, v.size, v.inside.w or 180.0,{
{
icon = 'fa-solid fa-door-open',
label = ps.lang('coke.teleOut'),
icon = Bridge.Language.Locale('coke.teleOutIcon'),
label = Bridge.Language.Locale('coke.teleOut'),
action = function()
SetEntityCoords(PlayerPedId(), v.outside)
end,
@@ -188,10 +185,11 @@ for k, v in pairs (locations.cokeTele) do
end
}
})
ps.boxTarget('coke_teleout'..k, v.outside, {length = v.l, width = v.w, heading = v.rot}, {
targets[#targets+1] = 'coke_tele'..k
Bridge.Target.AddBoxZone('coke_teleout'..k, v.outside, v.size, v.outside.w or 180.0,{
{
icon = 'fa-solid fa-door-closed',
label = ps.lang('coke.teleIn'),
icon = Bridge.Language.Locale('coke.teleInIcon'),
label = Bridge.Language.Locale('coke.teleIn'),
action = function()
SetEntityCoords(PlayerPedId(), v.inside)
end,
@@ -200,6 +198,7 @@ for k, v in pairs (locations.cokeTele) do
end
}
})
targets[#targets+1] = 'coke_teleout'..k
end
CreateThread(function()
+4 -3
View File
@@ -1,7 +1,8 @@
if not Config.Drugs['consumables'] then return end
ps.registerCallback('md-drugs:client:consumedrugs', function(time, effect, anim, progresstext, status, item)
if not ps.progressbar(progresstext .. ps.getLabel(item).. "!", time, anim ) then return end
Bridge.Callback.Register('md-drugs:client:consumedrugs', function(time, effect, anim, progresstext, status, item)
Bridge.Anim.RequestDict(anim.dict)
if not progressbar(progresstext .. Bridge.Inventory.GetItemInfo(item).label.. "!", time, anim ) then return end
for k, v in pairs (status) do
if k == 'health' then
local cur = GetEntityHealth(PlayerPedId())
+88 -34
View File
@@ -9,31 +9,62 @@ end
local function sellDrug(item, amount, price, targ)
PoliceCall(20)
if ps.vehicleData() then
ps.notify(ps.lang('Cornerselling.inVeh'), 'error')
if IsPedInAnyVehicle(PlayerPedId(), true) then
Bridge.Notify.SendNotify(Bridge.Language.Locale('Cornerselling.inVeh'), 'error')
walkAway(targ)
return
end
if not ps.progressbar(string.format(ps.lang('Cornerselling.selling', ps.getLabel(item), price)), 4000, 'uncuff') then walkAway(targ) return end
if not progressbar(Bridge.Language.Locale('Cornerselling.selling', Bridge.Inventory.GetItemInfo(item).label, price)) then
walkAway(targ)
return
end
buyers[targ] = 'sold'
TriggerServerEvent('md-drugs:server:sellCornerDrugs', item, amount, price)
TriggerServerEvent('md-drugs:server:sellCornerDrugs', item, amount, price, NetworkGetNetworkIdFromEntity(targ))
walkAway(targ)
end
local function deny(targ)
PoliceCall(20)
PoliceCall(20)
buyers[targ] = 'sold'
if not ps.progressbar(ps.lang('Cornerselling.deny'), 4000, 'argue5') then return end
if not progressbar(Bridge.Language.Locale('Cornerselling.deny'), 4000, {
dict = 'anim@amb@casino@brawl@fights@argue@',
clip = 'arguement_loop_mp_m_brawler_01',
flag = 49
}) then return end
walkAway(targ)
end
local function getClosestPed()
local coords = GetEntityCoords(PlayerPedId())
local distance = 10.0
local pedList = GetGamePool('CPed')
local closestDistance = 1000.0
local PED = nil
for i = 1, #pedList do
local ped = pedList[i]
if ped ~= PlayerPedId() then
local pedCoords = GetEntityCoords(ped)
local dist = #(coords - pedCoords)
if dist < closestDistance then
PED = ped
closestDistance = dist
end
end
end
if PED and closestDistance < distance then
return PED, closestDistance
else
return nil
end
end
local function findPed()
local targ = nil
repeat
Wait(100)
targ = ps.getNearestPed(GetEntityCoords(PlayerPedId()), 8)
targ = getClosestPed()
if IsPedInAnyVehicle(targ, false) or GetEntityHealth(targ) == 0 or not IsPedHuman(targ) then
targ = nil
end
@@ -44,18 +75,21 @@ local function findPed()
targ = nil
end
until targ ~= nil or sell == false
if not sell then return end
buyers[targ] = true
ps.drawText(ps.lang('Cornerselling.wait'))
Bridge.HelpText.ShowHelpText(Bridge.Language.Locale('Cornerselling.wait'))
repeat
Wait(1000)
TaskGoToCoordAnyMeans(targ, GetEntityCoords(PlayerPedId()), 1.0, 0, 0, 0, 0)
until #(GetEntityCoords(PlayerPedId()) - GetEntityCoords(targ)) < 2.0 or sell == false or inZone
if not sell then return end
TaskTurnPedToFaceEntity(targ, PlayerPedId(), -1)
ps.hideText()
Bridge.HelpText.HideHelpText()
CreateThread(function()
Wait(45000)
walkAway(targ)
@@ -65,14 +99,17 @@ local function findPed()
end
local function checkItems()
local count = 0
local has = false
for k, v in pairs (GlobalState.DrugNames) do
if ps.hasItem(v) then
count = count + 1
if Bridge.Inventory.HasItem(v) then
has = true
break
end
end
if count == 0 then ps.notify(ps.lang('Cornerselling.nodrugs', 'error')) return false end
if not has then
Bridge.Notify.SendNotify(Bridge.Language.Locale('Cornerselling.nodrugs', 'error'))
return false
end
return true
end
@@ -89,10 +126,10 @@ local function Cornersell()
return
end
ps.drawText(ps.lang('Cornerselling.searching'))
Bridge.HelpText.ShowHelpText(Bridge.Language.Locale('Cornerselling.searching'))
local targ = findPed()
local data = ps.callback('md-drugs:server:cornerselling:getAvailableDrugs', targ)
local data = Bridge.Callback.Trigger('md-drugs:server:cornerselling:getAvailableDrugs', NetworkGetNetworkIdFromEntity(targ))
if data == false then
sell = false
return
@@ -102,13 +139,13 @@ local function Cornersell()
TaskGoStraightToCoord(targ, -1858.232910, -1242.395630, 8.60510, 100.0, -1, 0.0, 0.0)
SetPedMoveRateOverride(targ, 10.0)
local got = false
ps.entityTarget(targ, {
Bridge.Target.AddLocalEntity(targ, {
{
label = ps.lang('Cornerselling.targetTakeBack'),
icon ="fa-solid fa-money-bill",
label = Bridge.Language.Locale('Cornerselling.targetTakeBack'),
icon = Bridge.Language.Locale("Cornerselling.targetTakeBackIcon"),
action = function()
got = true
TriggerServerEvent('md-drugs:server:getBackRobbed')
TriggerServerEvent('md-drugs:server:getBackRobbed', NetworkGetNetworkIdFromEntity(targ))
Cornersell()
end,
canInteract = function()
@@ -116,15 +153,17 @@ local function Cornersell()
return true
end
end,
}}, nil)
}
})
targets[#targets+1] = targ
else
ps.requestAnim("rcmme_tracey1")
Bridge.Anim.RequestDict("rcmme_tracey1")
TaskStartScenarioInPlace(targ, "WORLD_HUMAN_STAND_IMPATIENT_UPRIGHT", 0, false)
FreezeEntityPosition(targ, true)
ps.entityTarget(targ, {
Bridge.Target.AddLocalEntity(targ, {
{
label = string.format(ps.lang('Cornerselling.targetSell'), data.amount, ps.getLabel(data.item), data.price),
icon ="fa-solid fa-money-bill",
label = Bridge.Language.Locale('Cornerselling.targetSell', data.amount, Bridge.Inventory.GetItemInfo(data.item).label, data.price),
icon = Bridge.Language.Locale("Cornerselling.targetSellIcon"),
action = function()
sellDrug(data.item, data.amount, data.price, targ)
Cornersell()
@@ -136,8 +175,8 @@ local function Cornersell()
end,
},
{
label = ps.lang('Cornerselling.targetDeny'),
icon = "fa-solid fa-person-harassing",
label = Bridge.Language.Locale('Cornerselling.targetDeny'),
icon = Bridge.Language.Locale("Cornerselling.targetDenyIcon"),
action = function()
deny(targ)
walkAway(targ)
@@ -150,24 +189,39 @@ local function Cornersell()
end
}
})
targets[#targets+1] = targ
end
end
RegisterNetEvent('md-drugs:client:cornerselling', function()
if inZone then
Bridge.Notify.SendNotify(Bridge.Language.Locale('Cornerselling.inNoSellZone'), 'error')
return
end
if sell then
sell = false
ps.hideText()
ps.notify(ps.lang('Cornerselling.stopped'), 'error')
Bridge.HelpText.HideHelpText()
Bridge.Notify.SendNotify(Bridge.Language.Locale('Cornerselling.stopped'), 'error')
else
sell = true
ps.notify(ps.lang('Cornerselling.start'), 'success')
Bridge.Notify.SendNotify(Bridge.Language.Locale('Cornerselling.start'), 'success')
Cornersell()
end
end)
CreateThread(function()
for k, v in pairs (QBConfig.NoSellZones) do
local box = ps.zones.box({ coords = v.loc, size = vec3(v.width, v.length, v.height), rotation = 180.0, debug = false,
onEnter = function() inZone = true end, onExit = function() inZone = false end})
for k, v in pairs (Config.Cornerselling.noSellZones) do
Bridge.Point.Register(
'MDDRUGNOSELLZONE'..k,
v.loc,
((v.width or 10.0) + (v.length or 10.0)) / 2,
nil,
function()
inZone = true
end,
function(point, data)
inZone = false
end
)
end
end)
end)
+13 -17
View File
@@ -1,20 +1,17 @@
local locations = ps.callback('md-drugs:server:GetCrackLocations')
local locations = Config.Crack.Locations
for k, v in pairs (locations.makecrack) do
ps.boxTarget('makeCrack'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, {
Bridge.Target.AddBoxZone('makeCrack'..k, v.loc, v.size, v.loc.w or 180.0, {
{
label = ps.lang('crack.targetMake'),
icon = 'fa-solid fa-temperature-high',
label = Bridge.Language.Locale('crack.targetMake'),
icon = Bridge.Language.Locale('crack.makeIcon'),
action = function()
if not ps.hasItem('bakingsoda') then
ps.notify(ps.lang('Catches.itemMissings', ps.getLabel('bakingsoda')), 'error')
return
end
if not itemCheck('bakingsoda') then return end
if not minigame() then
TriggerServerEvent("md-drugs:server:failcrackone", k)
return
end
if not ps.progressbar(ps.lang('crack.cook'), 4000, 'uncuff') then return end
if not progressbar(Bridge.Language.Locale('crack.cook')) then return end
TriggerServerEvent('md-drugs:server:makecrackone', k)
end,
canInteract = function()
@@ -23,19 +20,17 @@ for k, v in pairs (locations.makecrack) do
end
}
})
targets[#targets+1] = 'makeCrack'..k
end
for k, v in pairs (locations.bagcrack) do
ps.boxTarget('bagCrack'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, {
Bridge.Target.AddBoxZone('bagCrack'..k, v.loc, v.size, v.loc.w or 180.0, {
{
label = ps.lang('crack.targetBag'),
icon = 'fa-solid fa-weight-scale',
label = Bridge.Language.Locale('crack.targetBag'),
icon = Bridge.Language.Locale('crack.bagIcon'),
action = function()
if not ps.hasItem('empty_weed_bag') then
ps.notify(ps.lang('Catches.itemMissings', ps.getLabel('empty_weed_bag')), 'error')
return
end
if not ps.progressbar(ps.lang('crack.bag'), 4000, 'uncuff') then return end
if not itemCheck('empty_weed_bag') then return end
if not progressbar(Bridge.Language.Locale('crack.bag')) then return end
TriggerServerEvent("md-drugs:server:bagcrack", k)
end,
canInteract = function()
@@ -44,4 +39,5 @@ for k, v in pairs (locations.bagcrack) do
end
}
})
targets[#targets+1] = 'bagCrack'..k
end
+48 -44
View File
@@ -1,79 +1,83 @@
local isActive = false
if not Config.Drugs['deliveries'] then return end
local dealer = {}
local buyer = nil
repeat Wait(100) until GlobalState.MDDrugDealers ~= nil
local function SpawnDealer()
local getDealers = ps.callback('md-drugs:server:getDealers')
for k,v in pairs(getDealers) do
local Ped = "g_m_y_famdnf_01"
ps.requestModel(Ped, 30000)
local loc = json.decode(v.coords)
dealer[k] = CreatePed(0, Ped,loc.x,loc.y, loc.z-1, loc.h, false, false)
Freeze(dealer[k], true, loc.h)
ps.entityTarget(dealer[k], {
if #dealer >= 1 then
for k,v in pairs (dealer) do
DeletePed(v)
end
dealer = {}
end
for k,v in pairs(GlobalState.MDDrugDealers) do
requestModel(v.model)
dealer[k] = CreatePed(0, v.model, v.coords.x, v.coords.y, v.coords.z-1, v.coords.w, false, false)
Freeze(dealer[k], true, v.coords.w)
Bridge.Target.AddLocalEntity(dealer[k], {
{
icon = 'fas fa-user-secret',
label = ps.lang('Deliveries.targetGetDel'),
icon = Bridge.Language.Locale('Deliveries.targetGetDelIcon'),
label = Bridge.Language.Locale('Deliveries.targetGetDel'),
action = function()
local data = ps.callback('md-drugs:server:GetDeliveryItem', k)
if type(data) == 'table' and data.coords then
TriggerEvent('md-drugs:client:setLocation', data)
end
TriggerServerEvent('md-drugs:server:requestDelivery', k)
end,
},
{
icon = "fa-solid fa-store",
label = ps.lang('Deliveries.targetOpenShop'),
icon = Bridge.Language.Locale('Deliveries.targetOpenShopIcon'),
label = Bridge.Language.Locale('Deliveries.targetOpenShop'),
action = function()
local rep = GetRep()
local items = ps.callback('md-drugs:server:dealerList')
local options = {}
for m, d in pairs (items) do
for m, d in pairs (Config.Deliveries.Recipes) do
if rep.dealerrep >= d.minrep then
options[#options+1] = {
title = ps.getLabel(d.name),
title = Bridge.Inventory.GetItemInfo(d.name).label,
description = '$' .. d.price,
icon = ps.getImage(d.name),
action = function()
TriggerServerEvent('md-drugs:server:buyItemDealer', m)
icon = Bridge.Inventory.GetItemInfo(d.name).image,
onSelect = function()
TriggerServerEvent('md-drugs:server:buyItemDealer', m, k)
end,
}
end
end
ps.menu(ps.lang('Deliveries.shopHeader'), ps.lang('Deliveries.shopHeader'), options)
Bridge.Menu.Open({
id = 'DealerMenu',
title = Bridge.Language.Locale('Deliveries.shopHeader'),
description = Bridge.Language.Locale('Deliveries.shopHeader'),
options = options
})
end,
}
})
end
end
SpawnDealer()
RegisterNetEvent('md-drugs:client:RefreshDealers', function()
SpawnDealer()
end)
SpawnDealer()
RegisterNetEvent('md-drugs:client:setLocation', function(data)
local coord = json.decode(data.coords)
if buyer then
DeletePed(buyer)
end
local coord = data.coords
SetNewWaypoint(coord.x, coord.y)
if isActive then return end
isActive = true
local Buyer = CreatePed(0, "g_m_y_famdnf_01",coord.x, coord.y, coord.z-1, coord.w, false, false)
Freeze(Buyer, true, coord.w)
ps.entityTarget(Buyer, {
requestModel("g_m_y_famdnf_01")
buyer = CreatePed(0, "g_m_y_famdnf_01",coord.x, coord.y, coord.z-1, coord.w, false, false)
Freeze(buyer, true, coord.w)
Bridge.Target.AddLocalEntity(buyer , {
{
icon = 'fas fa-user-secret',
label = ps.lang('Deliveries.targetHandOff'),
icon = Bridge.Language.Locale('Deliveries.targetHandOffIcon'),
label = Bridge.Language.Locale('Deliveries.targetHandOff'),
action = function()
if not ps.progressbar(ps.lang('Deliveries.delivering'), 4000, 'uncuff') then return end
isActive = false
DeletePed(Buyer)
TriggerServerEvent('md-drugs:server:giveDeliveryItems', data.item, data.amount)
if not progressbar(Bridge.Language.Locale('Deliveries.delivering')) then return end
TriggerServerEvent('md-drugs:server:giveDeliveryItems')
Wait(400)
DeletePed(buyer)
end,
canInteract = function()
if isActive then
return true
end
end
}
})
end)
end)
+187 -61
View File
@@ -1,6 +1,19 @@
local minigametype = Config.minigametype
local dispatch = Config.Dispatch
function requestModel(ped, timeout)
timeout = timeout or 15000
local startTime = GetGameTimer()
RequestModel(ped)
while not HasModelLoaded(ped) do
Wait(0)
if GetGameTimer() - startTime > timeout then
Bridge.Prints.Debug('requestModel timed out', ped, GetGameTimer() - startTime)
return false
end
end
return true
end
function minigame()
local time = 0
@@ -83,46 +96,26 @@ function minigame()
end
function GetRep()
local rep = ps.callback('md-drugs:server:GetRep')
local rep = Bridge.Callback.Trigger('md-drugs:server:GetRep')
return rep
end
function PoliceCall(chance)
local math = math.random(1,100)
if math <= chance then
if dispatch == 'ps' then
exports['ps-dispatch']:DrugSale()
elseif dispatch == 'cd' then
local data = exports['cd_dispatch']:GetPlayerInfo()
TriggerServerEvent('cd_dispatch:AddNotification', {
job_table = {'police', },
coords = data.coords,
title = '420-69 Drug Sale',
message = 'A '..data.sex..' robbing a store at '..data.street,
flash = 0,
unique_id = data.unique_id,
sound = 1,
blip = { sprite = 431, scale = 1.2, colour = 3, flashes = false, text = '420-69 Drug Sale', time = 5, radius = 0,}
})
elseif dispatch == 'core' then
exports['core_dispatch']:addCall("420-69", "Drugs Are Being Sold", {
{icon="fa-ruler", info="4.5 MILES"},
}, {GetEntityCoords(PlayerPedId())}, "police", 3000, 11, 5 )
elseif dispatch == 'aty' then
exports["aty_dispatch"]:SendDispatch('Drug Sale', '420-69', 40, {'police'})
elseif dispatch == 'qs' then
exports['qs-dispatch']:DrugSale()
elseif dispatch == 'codem' then
local Data = {
type = 'Drug Sale',
header = 'Someone Selling Drugs',
text = 'Hurry up and save the community',
code = '420-69',
}
exports['codem-dispatch']:CustomDispatch(Data)
else
print('Congrats, You Choose 0 of the options :)')
end
Bridge.Dispatch.SendAlert({
message = Bridge.Language.Locale('Dispatch.header'),
code = Bridge.Language.Locale('Dispatch.code'),
coords = GetEntityCoords(PlayerPedId()),
jobs = {"police"},
blipData = {
sprite = 161,
color = 1,
scale = 1.0
},
time = 300000,
icon = Bridge.Language.Locale('Dispatch.icon')
})
else
return
end
@@ -130,8 +123,8 @@ end
function GetCops(number)
if number == 0 then return true end
local amount = ps.callback('md-drugs:server:GetCoppers')
if amount >= number then return true else ps.notify('You Need '.. number - amount .. ' More Cops To Do This', 'error') end
local amount = Bridge.Callback.Trigger('md-drugs:server:GetCoppers')
if amount >= number then return true else Bridge.Notify.SendNotify(string.format(Bridge.Language.Locale('Catches.YouNeedMoreCops'), number - amount), 'error') end
end
function Freeze(entity, toggle, head)
@@ -142,18 +135,55 @@ function Freeze(entity, toggle, head)
SetBlockingOfNonTemporaryEvents(entity, toggle)
end
local function RotationToDirection(rotation)
local adjustedRotation = {
x = (math.pi / 180) * rotation.x,
y = (math.pi / 180) * rotation.y,
z = (math.pi / 180) * rotation.z
}
local direction = {
x = -math.sin(adjustedRotation.z) * math.abs(math.cos(adjustedRotation.x)),
y = math.cos(adjustedRotation.z) * math.abs(math.cos(adjustedRotation.x)),
z = math.sin(adjustedRotation.x)
}
return direction
end
local function RayCastGamePlayCamera(distance)
local currentRenderingCam = false
if not IsGameplayCamRendering() then
currentRenderingCam = GetRenderingCam()
end
local cameraRotation = not currentRenderingCam and GetGameplayCamRot() or GetCamRot(currentRenderingCam, 2)
local cameraCoord = not currentRenderingCam and GetGameplayCamCoord() or GetCamCoord(currentRenderingCam)
local direction = RotationToDirection(cameraRotation)
local destination = {
x = cameraCoord.x + direction.x * distance,
y = cameraCoord.y + direction.y * distance,
z = cameraCoord.z + direction.z * distance
}
local _, hit, endCoords, surfaceNormal, entityHit = GetShapeTestResult(StartShapeTestRay(cameraCoord.x, cameraCoord.y, cameraCoord.z, destination.x, destination.y, destination.z, -1, PlayerPedId(), 0))
return _, hit, endCoords, surfaceNormal, entityHit
end
local function ray()
local _, hit, endCoords, surfaceNormal, entityHit = RayCastGamePlayCamera(1000.0)
return hit, endCoords, surfaceNormal, entityHit
end
local created = false
local heading = 180.0
function StartRay()
local run = true
local pedcoord = GetEntityCoords(PlayerPedId())
ps.requestModel('v_ret_ml_tablea', 30000)
requestModel('v_ret_ml_tablea', 30000)
local table = CreateObject('v_ret_ml_tablea', pedcoord.x, pedcoord.y, pedcoord.z+1, heading, false, false)
repeat
local hit, endCoords, surfaceNormal, entityHit = ps.raycast()
local hit, endCoords, surfaceNormal, entityHit = ray()
if not created then
created = true
ps.drawText([[[E] To Place
Bridge.HelpText.ShowHelpText([[[E] To Place
[DEL] To Cancel
[<-] To Move Left
[->] To Move Right]])
@@ -170,7 +200,7 @@ function StartRay()
heading = heading + 2
end
if IsControlPressed(0, 38) then
ps.hideText()
Bridge.HelpText.HideHelpText()
run = false
DeleteObject(table)
created = false
@@ -178,7 +208,7 @@ function StartRay()
end
if IsControlPressed(0, 178) then
ps.hideText()
Bridge.HelpText.HideHelpText()
run = false
created = false
DeleteObject(table)
@@ -191,13 +221,13 @@ end
function StartRay2()
local run = true
local pedcoord = GetEntityCoords(PlayerPedId())
ps.requestModel('bkr_prop_coke_press_01aa', 30000)
requestModel('bkr_prop_coke_press_01aa', 30000)
local table = CreateObject('bkr_prop_coke_press_01aa', pedcoord.x, pedcoord.y, pedcoord.z+1, heading, false, false)
repeat
local hit, endCoords, surfaceNormal, entityHit = ps.raycast()
local hit, endCoords, surfaceNormal, entityHit = ray()
if not created then
created = true
ps.drawText([[[E] To Place
Bridge.HelpText.ShowHelpText([[[E] To Place
[DEL] To Cancel
[<-] To Move Left
[->] To Move Right]])
@@ -214,7 +244,7 @@ function StartRay2()
heading = heading + 2
end
if IsControlPressed(0, 38) then
ps.hideText()
Bridge.HelpText.HideHelpText()
run = false
DeleteObject(table)
created = false
@@ -222,7 +252,7 @@ function StartRay2()
end
if IsControlPressed(0, 178) then
ps.hideText()
Bridge.HelpText.HideHelpText()
run = false
created = false
DeleteObject(table)
@@ -232,25 +262,121 @@ function StartRay2()
until run == false
end
ps.registerCallback('md-drugs:client:uncuff', function(data)
if not ps.progressbar(data, 4000, 'uncuff') then return end
Bridge.Callback.Register('md-drugs:client:uncuff', function(data)
if not progressbar(data) then return end
return true
end)
RegisterCommand('DrugRep', function()
if not Config.TierSystem then return end
local rep = ps.callback('md-drugs:server:GetRep', false)
ps.menu('Drug Rep', 'Drug Rep', {
{icon = "fa-solid fa-face-flushed", title = 'Cocaine: '..rep.coke},
{icon = "fa-solid fa-syringe", title = 'Heroin: '..rep.heroin},
{icon = "fa-solid fa-vial", title = 'LSD: '..rep.lsd},
{icon = "fa-solid fa-plug", title = 'Dealer: '..rep.dealerrep},
{icon = "fa-solid fa-money-bill", title = 'Corner Selling: ' .. rep.cornerselling.rep, description = 'Rank: ' .. rep.cornerselling.label }
local rep = GetRep()
Bridge.Menu.Open({
id = 'drugrep',
title = Bridge.Language.Locale('DrugRep.header'),
description = Bridge.Language.Locale('DrugRep.increased'),
options = {
{icon = Bridge.Language.Locale('DrugRep.coke.icon'), title = Bridge.Language.Locale('DrugRep.coke.title', rep.coke)},
{icon = Bridge.Language.Locale('DrugRep.heroin.icon'), title = Bridge.Language.Locale('DrugRep.heroin.title', rep.heroin)},
{icon = Bridge.Language.Locale('DrugRep.lsd.icon'), title = Bridge.Language.Locale('DrugRep.lsd.title', rep.lsd)},
{icon = Bridge.Language.Locale('DrugRep.dealerrep.icon'), title = Bridge.Language.Locale('DrugRep.dealerrep.title', rep.dealerrep)},
{icon = Bridge.Language.Locale('DrugRep.cornerselling.icon'), title = Bridge.Language.Locale('DrugRep.cornerselling.title', rep.cornerselling.rep), description = Bridge.Language.Locale('DrugRep.cornerselling.description', rep.cornerselling.label) }
}
})
end, false)
function handleGang(gang)
if gang == nil or gang == '' or gang == "" then return true end
if ps.getGangName() == gang or gang == 1 then return true end
return false
end
if Bridge.Framework.GetResourceName() == 'es_extended' then
function handleGang(gang)
return true
end
else
function handleGang(gang)
if not gang then
return true
end
if #gang == 0 then
return true
end
local data = Bridge.Framework.GetPlayerData()
if not data.gang then
return false
end
return data.gang.name == gang
end
end
if Config.Emotes == 'scully' then
function playEmote(emote)
exports.scully_emotemenu:playEmoteByCommand(emote, 0)
end
function stopEmote()
exports.scully_emotemenu:cancelEmote()
end
end
if Config.Emotes == 'dpemotes' then
function playEmote(emote)
TriggerEvent('animations:client:EmoteCommandStart', {emote})
end
function stopEmote()
TriggerEvent('animations:client:EmoteCommandStart', {"c"})
end
end
if Config.Emotes == 'rpemotes' then
function playEmote(emote)
exports["rpemotes"]:EmoteCommandStart(emote, 0)
end
function stopEmote()
exports["rpemotes"]:EmoteCancel()
end
end
local animation = nil
function progressbar(text, time, emote, cancel)
local animData
if type(emote) == 'string' then
playEmote(emote)
animation = emote
elseif type(emote) == 'table' then
animData = emote
if emote.prop and not emote.prop.model then
emote.prop = nil
end
end
local success = Bridge.ProgressBar.Open({
duration = time or 5000,
label = text or 'LAZY AF DEVS',
canCancel = true,
disable = cancel or Config.ProgressBar.Disables,
anim = animData or Config.DefaultAnimation,
prop = animData and animData.prop or nil
})
if animation then
animation = nil
stopEmote()
end
return success
end
function itemCheck(item)
if not Bridge.Inventory.HasItem(item) then
Bridge.Notify.SendNotify(Bridge.Language.Locale('Catches.itemMissings', Bridge.Inventory.GetItemInfo(item).label), 'error')
return false
end
return true
end
AddEventHandler('onResourceStop', function(resourceName)
if GetCurrentResourceName() ~= resourceName then return end
for k, v in pairs (targets) do
if type(v) == 'number' then
Bridge.Target.RemoveLocalEntity(v)
if DoesEntityExist(v) then
DeleteEntity(v)
end
else
Bridge.Target.RemoveZone(v)
end
end
end)
+47 -49
View File
@@ -1,32 +1,30 @@
if not Config.Drugs['heroin'] then return end
local herointable = false
local dirty = false
local locations = ps.callback('md-drugs:server:GetHeroinLocations')
local locations = Config.Heroin.Locations
local function createLabKit(coord, head)
local heroinlabkit = CreateObject("v_ret_ml_tablea", coord.x, coord.y, coord.z - 1, true, false,false)
SetEntityHeading(heroinlabkit, head)
PlaceObjectOnGroundProperly(heroinlabkit)
ps.entityTarget(heroinlabkit, {
Bridge.Target.AddLocalEntity(heroinlabkit, {
{
icon = "fa-solid fa-temperature-high",
label = ps.lang('heroin.targetCook'),
icon = Bridge.Language.Locale('heroin.cookIcon'),
label = Bridge.Language.Locale('heroin.targetCook'),
action = function()
if not ps.hasItem('emptyvial') then
ps.notify(ps.lang('Catches.itemMissings', ps.getLabel('emptyvial')), 'error')
return
end
if not itemCheck('emptyvial') then return end
if not minigame() then
dirty = true
TriggerServerEvent("md-drugs:server:failheatingheroin")
ps.requestPTFX("core")
local heroinkit = StartParticleFxLoopedOnEntity("exp_air_molotov", heroinlabkit, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.5, false, false, false)
local coords = GetEntityCoords(heroinlabkit)
AddExplosion(coords.x, coords.y, coords.z-1.0, 34, 0.0, true, false, true)
SetParticleFxLoopedAlpha(heroinkit, 3.0)
SetPedToRagdoll(PlayerPedId(), 1300, 1300, 0, 0, 0, 0)
return end
if not ps.progressbar(ps.lang('heroin.pbCook'), 4000, 'uncuff') then return end
return
end
if not progressbar(Bridge.Language.Locale('heroin.pbCook')) then return end
TriggerServerEvent("md-drugs:server:heatliquidheroin")
end,
canInteract = function()
@@ -34,10 +32,10 @@ local function createLabKit(coord, head)
end
},
{
icon = "fas fa-box-circle-check",
label = ps.lang('heroin.targetPickup'),
icon = Bridge.Language.Locale('heroin.targetPickupIcon'),
label = Bridge.Language.Locale('heroin.targetPickup'),
action = function()
if not ps.progressbar(ps.lang('heroin.pbPickup'), 4000, 'uncuff') then return end
if not progressbar(Bridge.Language.Locale('heroin.pbPickup')) then return end
herointable = false
DeleteObject(heroinlabkit)
TriggerServerEvent("md-drugs:server:getheroinlabkitback")
@@ -48,15 +46,12 @@ local function createLabKit(coord, head)
end
},
{
icon = "fa-solid fa-hand-sparkles",
label = ps.lang('heroin.targetClean'),
icon = Bridge.Language.Locale('heroin.targetCleanIcon'),
label = Bridge.Language.Locale('heroin.targetClean'),
action = function()
if not ps.hasItem('cleaningkit') then
ps.notify(ps.lang('Catches.itemMissings', ps.getLabel('cleaningkit')), 'error')
return
end
if not ps.progressbar(ps.lang('heroin.pbClean'), 4000, 'clean') then return end
local done = ps.callback('removeCleaningkit', false)
if not itemCheck('cleaningkit') then return end
if not progressbar(Bridge.Language.Locale('heroin.pbClean'), 4000, 'clean') then return end
local done = Bridge.Callback.Trigger('md-drugs:server:removeCleaningKitHeroin', false)
if done then dirty = false end
end,
canInteract = function()
@@ -64,15 +59,16 @@ local function createLabKit(coord, head)
return false
end
}})
targets[#targets+1] = heroinlabkit
end
for k, v in pairs (locations.dryplant) do
ps.boxTarget('dryHeroin'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, {
Bridge.Target.AddBoxZone('dryHeroin'..k, v.loc, v.size, v.loc.w or 180.0, {
{
label = ps.lang('heroin.targetDry'),
icon = 'fa-solid fa-temperature-high',
label = Bridge.Language.Locale('heroin.targetDry'),
icon = Bridge.Language.Locale('heroin.dryIcon'),
action = function()
if not ps.progressbar(ps.lang('heroin.pbDry'), 4000, 'uncuff') then return end
if not progressbar(Bridge.Language.Locale('heroin.pbDry')) then return end
TriggerServerEvent("md-drugs:server:dryplant", k)
end,
canInteract = function()
@@ -80,19 +76,17 @@ for k, v in pairs (locations.dryplant) do
end
}
})
targets[#targets+1] = 'dryHeroin'..k
end
for k, v in pairs (locations.cutheroinone) do
ps.boxTarget('cutHeroin'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, {
Bridge.Target.AddBoxZone('cutHeroin'..k, v.loc, v.size, v.loc.w or 180.0, {
{
label = ps.lang('heroin.targetCutHeroin'),
icon = 'fa-solid fa-seedling',
label = Bridge.Language.Locale('heroin.targetCutHeroin'),
icon = Bridge.Language.Locale('heroin.cutIcon'),
action = function()
if not ps.hasItem('bakingsoda') then
ps.notify(ps.lang('Catches.itemMissings', ps.getLabel('bakingsoda')), 'error')
return
end
if not ps.progressbar(ps.lang('heroin.pbCutHeroin'), 4000, 'uncuff') then return end
if not itemCheck('bakingsoda') then return end
if not progressbar(Bridge.Language.Locale('heroin.pbCutHeroin')) then return end
TriggerServerEvent("md-drugs:server:cutheroin", k)
end,
canInteract = function()
@@ -100,20 +94,22 @@ for k, v in pairs (locations.cutheroinone) do
end
}
})
targets[#targets+1] = 'cutHeroin'..k
end
local peds = {}
for k, v in pairs (locations.buyKit) do
ps.requestModel(v.ped, 1000)
requestModel(v.ped, 1000)
peds[k] = CreatePed(4, v.ped, v.loc.x, v.loc.y, v.loc.z, v.loc.w, false, false)
Freeze(peds[k], true, v.loc.w)
SetBlockingOfNonTemporaryEvents(peds[k], true)
SetEntityInvincible(peds[k], true)
ps.entityTarget(peds[k], {
Bridge.Target.AddLocalEntity(peds[k], {
{
label = ps.lang('heroin.targetBuyKit'),
icon = 'fa-solid fa-box-open',
label = Bridge.Language.Locale('heroin.targetBuyKit'),
icon = Bridge.Language.Locale('heroin.buyIcon'),
action = function()
if not ps.progressbar(ps.lang('heroin.pbBuyKit'), 4000, 'uncuff') then return end
if not progressbar(Bridge.Language.Locale('heroin.pbBuyKit')) then return end
TriggerServerEvent("md-drugs:server:getheroinlabkit", k)
end,
canInteract = function()
@@ -122,31 +118,32 @@ for k, v in pairs (locations.buyKit) do
end
}
})
targets[#targets+1] = peds[k]
end
ps.registerCallback("md-drugs:client:setheroinlabkit", function()
Bridge.Callback.Register("md-drugs:client:setheroinlabkit", function()
if herointable then
ps.notify(ps.lang('heroin.tableout'), 'error')
Bridge.Notify.SendNotify(Bridge.Language.Locale('heroin.tableout'), 'error')
return false
else
herointable = true
local location, head = StartRay()
if not location then herointable = false return end
if not ps.progressbar(ps.lang('heroin.placing'), 4000, 'uncuff') then return end
if not progressbar(Bridge.Language.Locale('heroin.placing')) then return end
createLabKit(location, head)
return true, location
end
end)
for k, v in pairs (locations.fillneedle) do
ps.boxTarget('fillNeedle'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, {
Bridge.Target.AddBoxZone('fillNeedle'..k, v.loc, v.size, v.loc.w or 180.0, {
{
label = ps.lang('heroin.targetFill'),
icon = 'fa-solid fa-syringe',
label = Bridge.Language.Locale('heroin.targetFill'),
icon = Bridge.Language.Locale('heroin.fillNeedleIcon'),
action = function()
if not minigame() then TriggerServerEvent("md-drugs:server:failheroin", k) return end
if not ps.progressbar(ps.lang('heroin.pbFill'), 4000, 'uncuff') then return end
if not progressbar(Bridge.Language.Locale('heroin.pbFill')) then return end
TriggerServerEvent("md-drugs:server:fillneedle", k)
end,
canInteract = function()
@@ -154,4 +151,5 @@ for k, v in pairs (locations.fillneedle) do
end
}
})
targets[#targets+1] = 'fillNeedle'..k
end
+78 -30
View File
@@ -1,61 +1,68 @@
if not Config.Drugs['lean'] then return end
local started = false
local hit = 0
local location = ps.callback('md-drugs:server:GetLeanLocs')
local leanCar = nil
local function SpawnCarPedChase()
local location = Config.Lean.Locations
local function SpawnCarPedChase(loc)
local stoploc = vector3(-1157.63, -3056.71, 13.94)
local start = location.StartLoc[math.random(1,#location.StartLoc)]
if started then ps.notify(ps.lang('lean.alreadyChasing'), 'error') return end
if started then Bridge.Notify.SendNotify(Bridge.Language.Locale('lean.alreadyChasing'), 'error') return end
started = true
ps.callback('md-drugs:server:RegisterLean')
ps.requestModel("pounder", 30000)
ps.requestModel("ig_priest", 30000)
ps.requestModel("cargobob3", 30000)
requestModel("pounder", 30000)
requestModel("ig_priest", 30000)
requestModel("cargobob3", 30000)
local leancar = CreateVehicle("pounder", start.x+3, start.y-2, start.z-1, 52.0, true, false)
leanCar = CreateVehicle("pounder", start.x+3, start.y-2, start.z-1, 52.0, true, false)
local driver = CreatePed(26, "ig_priest", start.x, start.y, start.z, 268.9422, false, false)
local pilot2 = CreatePed(26, "ig_priest", stoploc.x-3, stoploc.y-3, stoploc.z-1, 268.9422, false, false)
local can = Bridge.Callback.Trigger('md-drugs:server:registerLean', loc, NetworkGetNetworkIdFromEntity(leanCar))
if not can then
Bridge.Notify.SendNotify(Bridge.Language.Locale('lean.cantStart'), 'error')
DeleteVehicle(leanCar)
DeleteEntity(driver)
DeleteEntity(pilot2)
started = false
return
end
Bridge.Notify.SendNotify(Bridge.Language.Locale('lean.chaseStarted'), 'success')
SetPedIntoVehicle(pilot2, leanCar, 1)
FreezeEntityPosition(driver, true)
FreezeEntityPosition(pilot2, true)
SetEntityInvincible(pilot2, true)
SetEntityAsMissionEntity(leancar)
AddBlipForEntity(leancar)
SetPedIntoVehicle(driver, leancar, -1)
SetEntityAsMissionEntity(leanCar)
AddBlipForEntity(leanCar)
SetPedIntoVehicle(driver, leanCar, -1)
SetPedFleeAttributes(driver,false)
TaskVehicleDriveToCoordLongrange(driver, leancar, stoploc.x, stoploc.y, stoploc.z-1, 50.0, 524288, 25.0)
TaskVehicleDriveToCoordLongrange(driver, leanCar, stoploc.x, stoploc.y, stoploc.z-1, 50.0, 524288, 25.0)
SetPedKeepTask(driver, true)
repeat
Wait(1000)
until #(GetEntityCoords(driver) - stoploc) < 20.0 or GetEntityHealth(driver) == 0
RemoveBlip(leancar)
RemoveBlip(leanCar)
if GetEntityHealth(driver) == 0 then
ps.entityTarget(leancar, {
Bridge.Target.AddLocalEntity(leanCar, {
{
name = 'leancar',
icon = 'fa-solid fa-car',
label = ps.lang('lean.stealFromTruck'),
icon = Bridge.Language.Locale('lean.carIcon'),
label = Bridge.Language.Locale('lean.stealFromTruck'),
action = function()
hit = hit + 1
if not minigame() then return end
TriggerServerEvent('md-drugs:server:givelean')
started = false
if math.random(1,100) <= 30 or hit == 4 then
hit = 0
DeleteVehicle(leancar)
DeleteEntity(driver)
DeleteEntity(pilot2)
end
end
}
})
targets[#targets+1] = leanCar
else
DeleteVehicle(leancar)
DeleteEntity(driver)
DeleteEntity(pilot2)
end
@@ -63,15 +70,15 @@ end
local leanPeds = {}
for k, v in pairs (location.SyrupVendor) do
ps.requestModel(v.ped)
requestModel(v.ped)
leanPeds[k] = CreatePed(0, v.ped, v.loc.x, v.loc.y, v.loc.z, false, false)
Freeze(leanPeds[k], true, v.loc.w)
ps.entityTarget(leanPeds[k], {
Bridge.Target.AddLocalEntity(leanPeds[k], {
{
icon = "fa-solid fa-hand-holding-medical",
label = ps.lang('lean.startMission'),
icon = Bridge.Language.Locale('lean.startMissionIcon'),
label = Bridge.Language.Locale('lean.startMission'),
action = function()
SpawnCarPedChase()
SpawnCarPedChase(k)
end,
canInteract = function()
if not handleGang(v.gang) then return false end
@@ -79,4 +86,45 @@ for k, v in pairs (location.SyrupVendor) do
end
},
})
end
targets[#targets+1] = leanPeds[k]
end
local function concat(tbl)
local str = ""
for k, v in pairs (tbl) do
str = str .. v.item .. " X " .. v.amount .. " \n "
end
return str
end
local function getDisabled(recipe)
for k, v in pairs (recipe.ingredients) do
local count = Bridge.Inventory.GetItemCount(v.item)
if count < v.amount then
return true
end
end
return false
end
RegisterNetEvent("md-drugs:client:makeLean", function()
local menu = {}
for k, v in pairs (Config.Lean.Recipes) do
menu[#menu+1] = {
title = Bridge.Inventory.GetItemInfo(v.item).label,
description = concat(v.ingredients),
icon = Bridge.Inventory.GetItemInfo(v.item).image,
disabled = getDisabled(v),
onSelect = function()
if not progressbar(Bridge.Language.Locale('lean.makingLean')) then return end
TriggerServerEvent('md-drugs:server:makeLean', k)
end,
}
end
Bridge.Menu.Open({
id = 'makeLeanMenu',
title = Bridge.Language.Locale('lean.makeLeanMenuTitle'),
description = Bridge.Language.Locale('lean.makeLeanMenuDesc'),
options = menu
})
end)
+53 -66
View File
@@ -1,18 +1,10 @@
if not Config.Drugs['lsd'] then return end
local tableout = false
local dirtylsd = false
local locations = ps.callback('md-drugs:server:GetLSDLocations')
local function loadParticle(dict)
if not HasNamedPtfxAssetLoaded(dict) then
RequestNamedPtfxAsset(dict)
end
while not HasNamedPtfxAssetLoaded(dict) do
Wait(0)
end
SetPtfxAssetNextCall(dict)
end
local locations = Config.LSD.Locations
local function createLabKit(coord, head)
requestModel("v_ret_ml_tablea")
local labkit = CreateObject("v_ret_ml_tablea", coord.x, coord.y, coord.z - 1, true, false)
SetEntityHeading(labkit, head)
PlaceObjectOnGroundProperly(labkit)
@@ -20,18 +12,17 @@ local function createLabKit(coord, head)
tableout = true
local options = {
{
icon = "fa-solid fa-temperature-high",
label = ps.lang('lsd.targetHeat'),
icon = Bridge.Language.Locale('lsd.targetHeatIcon'),
label = Bridge.Language.Locale('lsd.targetHeat'),
action = function()
local dict = "scr_ie_svm_technical2"
if not minigame() then
local coords = GetEntityCoords(labkit)
AddExplosion(coords.x, coords.y, coords.z-1.0, 34, 0.0, true, false, true)
dirtylsd = true
loadParticle(dict)
local exitPtfx = StartParticleFxLoopedOnEntity("scr_dst_cocaine", labkit, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.5, false, false, false)
SetParticleFxLoopedAlpha(exitPtfx, 3.0)
TriggerServerEvent("md-drugs:server:failheating")
return
end
if not ps.progressbar(ps.lang('lsd.heating'), 7000, 'uncuff') then return end
if not progressbar(Bridge.Language.Locale('lsd.heating'), 7000) then return end
TriggerServerEvent("md-drugs:server:heatliquid")
end,
canInteract = function()
@@ -39,15 +30,12 @@ local function createLabKit(coord, head)
end
},
{
icon = "fa-solid fa-temperature-high",
label = ps.lang('lsd.targetRefine'),
icon = Bridge.Language.Locale('lsd.targetRefineIcon'),
label = Bridge.Language.Locale('lsd.targetRefine'),
action = function()
if not ps.hasItem('lsd_one_vial') then
ps.notify(ps.lang('Catches.itemNeeded', ps.getLabel('lsd_one_vial')), 'error')
return
end
if not itemCheck('lsd_one_vial') then return end
if not minigame() then TriggerServerEvent("md-drugs:server:failrefinequality") return end
if not ps.progressbar(ps.lang('lsd.refining'), 4000, 'uncuff') then return end
if not progressbar(Bridge.Language.Locale('lsd.refining')) then return end
TriggerServerEvent("md-drugs:server:refinequalityacid")
end,
canInteract = function()
@@ -55,15 +43,12 @@ local function createLabKit(coord, head)
end
},
{
icon = "fa-regular fa-note-sticky",
label = ps.lang('lsd.targetDipping'),
icon = Bridge.Language.Locale('lsd.targetDippingIcon'),
label = Bridge.Language.Locale('lsd.targetDipping'),
action = function()
if not ps.hasItem('tab_paper') then
ps.notify(ps.lang('Catches.itemNeeded', ps.getLabel('tab_paper')), 'error')
return
end
if not itemCheck('tab_paper') then return end
if not minigame() then TriggerServerEvent("md-drugs:server:failtabs") return end
if not ps.progressbar(ps.lang('lsd.dipping'), 4000, 'uncuff') then return end
if not progressbar(Bridge.Language.Locale('lsd.dipping')) then return end
TriggerServerEvent("md-drugs:server:maketabpaper")
end,
canInteract = function()
@@ -71,11 +56,10 @@ local function createLabKit(coord, head)
end
},
{
event = "md-drugs:client:getlabkitback",
icon = "fas fa-box-circle-check",
label = ps.lang('lsd.targetPickup'),
icon = Bridge.Language.Locale('lsd.targetPickupIcon'),
label = Bridge.Language.Locale('lsd.targetPickup'),
action = function()
if not ps.progressbar(ps.lang('lsd.packup'), 4000, 'uncuff') then return end
if not progressbar(Bridge.Language.Locale('lsd.packup')) then return end
DeleteObject(labkit)
TriggerServerEvent('md-drugs:server:getlabkitback')
tableout = false
@@ -85,15 +69,12 @@ local function createLabKit(coord, head)
end
},
{
icon = "fa-solid fa-hand-sparkles",
label = ps.lang('lsd.targetClean'),
icon = Bridge.Language.Locale('lsd.targetCleanIcon'),
label = Bridge.Language.Locale('lsd.targetClean'),
action = function()
if not ps.hasItem('cleaningkit') then
ps.notify(ps.lang('Catches.itemNeeded', ps.getLabel('cleaningkit')), 'error')
return
end
if not ps.progressbar(ps.lang('lsd.cleaning'), 4000, 'clean') then return end
local check = ps.callback('md-drugs:server:removecleaningkit')
if not itemCheck('cleaningkit') then return end
if not progressbar(Bridge.Language.Locale('lsd.cleaning'), 4000, 'clean') then return end
local check = Bridge.Callback.Trigger('md-drugs:server:removecleaningkit')
if check then
dirtylsd = false
end
@@ -101,17 +82,18 @@ local function createLabKit(coord, head)
canInteract = function() if dirtylsd then return true end end
}
}
ps.entityTarget(labkit, options)
Bridge.Target.AddLocalEntity(labkit, options)
targets[#targets+1] = labkit
end
for k, v in pairs (locations.lysergicacid) do
ps.boxTarget('lysergicacid'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, {
Bridge.Target.AddBoxZone('lysergicacid'..k,v.loc, v.size, v.loc.w or 180.0, {
{
label = ps.lang('lsd.targetLys'),
icon = 'fa-solid fa-temperature-high',
label = Bridge.Language.Locale('lsd.targetLys'),
icon = Bridge.Language.Locale('lsd.targetLysIcon'),
action = function()
if not minigame() then TriggerServerEvent("md-drugs:server:faillysergic") return end
if not ps.progressbar(ps.lang('lsd.stealLys'), 4000, 'uncuff') then return end
if not progressbar(Bridge.Language.Locale('lsd.stealLys')) then return end
TriggerServerEvent("md-drugs:server:getlysergic", k)
end,
canInteract = function()
@@ -120,16 +102,17 @@ for k, v in pairs (locations.lysergicacid) do
end
}
})
targets[#targets+1] = 'lysergicacid'..k
end
for k, v in pairs (locations.diethylamide) do
ps.boxTarget('diethylamide'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, {
Bridge.Target.AddBoxZone('diethylamide'..k, v.loc, v.size, v.loc.w or 180.0, {
{
label = ps.lang('lsd.targetDie'),
icon = 'fa-solid fa-temperature-high',
label = Bridge.Language.Locale('lsd.targetDie'),
icon = Bridge.Language.Locale('lsd.targetDieIcon'),
action = function()
if not minigame() then TriggerServerEvent("md-drugs:server:faildiethylamide") return end
if not ps.progressbar(ps.lang('lsd.stealDie'), 4000, 'uncuff') then return end
if not progressbar(Bridge.Language.Locale('lsd.stealDie')) then return end
TriggerServerEvent("md-drugs:server:getdiethylamide", k)
end,
canInteract = function()
@@ -138,13 +121,14 @@ for k, v in pairs (locations.diethylamide) do
end
}
})
targets[#targets+1] = 'diethylamide'..k
end
for k, v in pairs (locations.gettabs) do
ps.boxTarget('gettabs'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, {
Bridge.Target.AddBoxZone('gettabs'..k, v.loc, v.size, v.loc.w or 180.0, {
{
label = ps.lang('lsd.targetBuyTab'),
icon = 'fa-solid fa-hand-holding-dollar',
label = Bridge.Language.Locale('lsd.targetBuyTab'),
icon = Bridge.Language.Locale('lsd.targetBuyTabIcon'),
action = function()
TriggerServerEvent("md-drugs:server:gettabpaper", k)
end,
@@ -154,22 +138,24 @@ for k, v in pairs (locations.gettabs) do
end
}
})
targets[#targets+1] = 'gettabs'..k
end
local seller = {}
for k, v in pairs (locations.buyLSDkit) do
ps.requestModel(v.ped, 1000)
requestModel(v.ped, 1000)
seller[k] = CreatePed(4, v.ped, v.loc.x, v.loc.y, v.loc.z, v.loc.w, false, false)
Freeze(seller[k], true, v.loc.w)
ps.entityTarget(seller[k], {
Bridge.Target.AddLocalEntity(seller[k], {
{
label = ps.lang('lsd.targetBuyKit'),
icon = 'fa-solid fa-hand-holding-dollar',
label = Bridge.Language.Locale('lsd.targetBuyKit'),
icon = Bridge.Language.Locale('lsd.targetBuyKitIcon'),
action = function()
if ps.hasItem('lsdlabkit') then
ps.notify(ps.lang('lsd.alreadyOwn'), 'error')
if Bridge.Inventory.HasItem('lsdlabkit') then
Bridge.Notify.SendNotify(Bridge.Language.Locale('lsd.alreadyOwn'), 'error')
return
end
if not ps.progressbar(ps.lang('lsd.buyingKit'), 4000, 'uncuff') then return end
if not progressbar(Bridge.Language.Locale('lsd.buyingKit')) then return end
TriggerServerEvent('md-drugs:server:getlabkit', k)
end,
canInteract = function()
@@ -178,17 +164,18 @@ for k, v in pairs (locations.buyLSDkit) do
end
}
})
targets[#targets+1] = seller[k]
end
ps.registerCallback("md-drugs:client:setlsdlabkit", function()
Bridge.Callback.Register("md-drugs:client:setlsdlabkit", function()
if tableout then
ps.notify(ps.lang('lsd.tableout'), 'error')
Bridge.Notify.SendNotify(Bridge.Language.Locale('lsd.tableout'), 'error')
return false
else
tableout = true
local loc, head = StartRay()
if not loc then tableout = false return end
if not ps.progressbar(ps.lang('lsd.placing'), 4000, 'uncuff') then return end
if not progressbar(Bridge.Language.Locale('lsd.placing')) then return end
createLabKit(loc, head)
return true, loc
end
+15 -14
View File
@@ -1,28 +1,27 @@
local locations = ps.callback('md-drugs:server:GetMescalineLocs')
local badTrip = 20
if not Config.Drugs['mescaline'] then return end
local badTrip = 100
local locations = Config.Mescaline.Locations
local function AlienEffect()
CreateThread(function()
StartScreenEffect("DrugsMichaelAliensFightIn", 3.0, 0)
Wait(math.random(5000, 8000))
StartScreenEffect("DrugsMichaelAliensFight", 3.0, 0)
Wait(math.random(5000, 8000))
Wait(math.random(25000, 35000))
StartScreenEffect("DrugsMichaelAliensFightOut", 3.0, 0)
StopScreenEffect("DrugsMichaelAliensFightIn")
StopScreenEffect("DrugsMichaelAliensFight")
StopScreenEffect("DrugsMichaelAliensFightOut")
end)
end
for k, v in pairs (locations.DryOutMescaline) do
ps.boxTarget('dryoutMesc'..k, v.loc, {length = v.l, width = v.w, height = 1.0, rotation = v.rot}, {
Bridge.Target.AddBoxZone('dryoutMesc'..k, v.loc, v.size, v.loc.w or 180.0,{
{
label = ps.lang('mesc.targetDry'),
label = Bridge.Language.Locale('mesc.targetDry'),
icon = 'fa-solid fa-temperature-high',
action = function()
if not ps.hasItem('cactusbulb') then
ps.notify(ps.lang('Catches.itemNeeded', ps.getLabel('cactusbulb')), 'error')
return
end
if not ps.progressbar(ps.lang('mescaline.dry'), 4000, 'uncuff') then return end
if not itemCheck('cactusbulb') then return end
if not progressbar(Bridge.Language.Locale('mesc.dry')) then return end
TriggerServerEvent("md-drugs:server:drymescaline", k)
end,
canInteract = function()
@@ -31,16 +30,18 @@ for k, v in pairs (locations.DryOutMescaline) do
end
}
})
targets[#targets+1] = 'dryoutMesc'..k
end
RegisterNetEvent("md-drugs:client:takemescaline", function()
local chance, chance2 = math.random(1,100), math.random(1,100)
local weapon = ''
if chance2 == 100 then weapon = 'weapon_rpg' else weapon = 'weapon_flaregun' end
if not ps.progressbar(ps.lang('mescaline.eat'), 4000, 'uncuff') then return end
if chance <= badTrip then
if not progressbar(Bridge.Language.Locale('mesc.eat')) then return end
if chance <= badTrip then
AlienEffect()
local clone = ClonePed(PlayerPedId(), false, false, true)
Wait(math.random(3000,6000))
local clone = ClonePed(PlayerPedId(), true, true, true)
SetEntityAsMissionEntity(clone)
SetPedFleeAttributes(clone, false)
GiveWeaponToPed(clone, weapon, 1, false, true)
+97 -86
View File
@@ -1,37 +1,37 @@
local amonia = false
local tray = false
local heated = false
local active = false
local trays = nil
local locations = ps.callback('md-drugs:server:GetMethLocs')
if not Config.Drugs['meth'] then return end
local amonia, tray, heated, active, trays, startedmeth, methVan = false, false, false, false, nil, false, nil
local locations = Config.Meth.Locations
--- meth heist
local startedmeth = false
local function SpawnMethCarPedChase()
local function SpawnMethCarPedChase(loc)
local stoploc = vector3(-1157.63, -3056.71, 13.94)
local start = locations.StartLoc[math.random(1,#locations.StartLoc)]
if startedmeth then
ps.notify(ps.lang('meth.alreadyChasing'),'error')
Bridge.Notify.SendNotify(Bridge.Language.Locale('meth.alreadyChasing'),'error')
else
startedmeth = true
ps.callback('md-drugs:server:registerMeth')
ps.requestModel("journey", 30000)
ps.requestModel("a_m_m_hillbilly_02", 30000)
ps.requestModel("cargobob3", 30000)
local methcar = CreateVehicle("journey", start.x+3, start.y-2, start.z-1, 52.0, true, false)
requestModel("journey", 30000)
requestModel("a_m_m_hillbilly_02", 30000)
requestModel("cargobob3", 30000)
methVan = CreateVehicle("journey", start.x+3, start.y-2, start.z-1, 52.0, true, false)
local methdriver = CreatePed(26, "a_m_m_hillbilly_02", start.x, start.y, start.z, 268.9422, false, false)
local methpilot = CreatePed(26, "a_m_m_hillbilly_02", stoploc.x-3, stoploc.y-3, stoploc.z-1, 268.9422, false, false)
local can = Bridge.Callback.Trigger('md-drugs:server:registerMeth', loc, NetworkGetNetworkIdFromEntity(methVan))
if not can then
startedmeth = false
DeleteVehicle(methVan)
DeleteEntity(methdriver)
DeleteEntity(methpilot)
return
end
FreezeEntityPosition(methpilot, true)
SetEntityInvincible(methpilot, true)
SetEntityAsMissionEntity(methcar)
AddBlipForEntity(methcar)
SetPedIntoVehicle(methdriver, methcar, -1)
SetEntityAsMissionEntity(methVan)
AddBlipForEntity(methVan)
SetPedIntoVehicle(methdriver, methVan, -1)
SetPedFleeAttributes(methdriver,false)
TaskVehicleDriveToCoordLongrange(methdriver, methcar, stoploc.x, stoploc.y, stoploc.z-1, 50.0, 524288, 25.0)
TaskVehicleDriveToCoordLongrange(methdriver, methVan, stoploc.x, stoploc.y, stoploc.z-1, 50.0, 524288, 25.0)
SetPedKeepTask(methdriver, true)
repeat
@@ -39,25 +39,22 @@ local function SpawnMethCarPedChase()
until #(GetEntityCoords(methdriver) - stoploc) < 20.0 or GetEntityHealth(methdriver) == 0
if GetEntityHealth(methdriver) == 0 then
ps.entityTarget(methcar, {
Bridge.Target.AddLocalEntity(methVan, {
{
name = 'methcar',
icon = 'fa-solid fa-car',
label = ps.lang('meth.targetStealFromCar'),
icon = Bridge.Language.Locale('meth.targetStealFromCarIcon'),
label = Bridge.Language.Locale('meth.targetStealFromCar'),
action = function()
if not minigame() then return end
TriggerServerEvent('md-drugs:server:givemethingridients')
TriggerServerEvent('md-drugs:server:givemethingridients', NetworkGetNetworkIdFromEntity(methVan))
startedmeth = false
if math.random(1,100) <= 30 then
DeleteVehicle(methcar)
DeleteEntity(methdriver)
DeleteEntity(methpilot)
end
DeleteEntity(methdriver)
DeleteEntity(methpilot)
end,
}
})
else
DeleteVehicle(methcar)
DeleteVehicle(methVan)
DeleteEntity(methdriver)
DeleteEntity(methpilot)
end
@@ -68,20 +65,23 @@ local peds = {}
for k, v in pairs (locations.MethHeist) do
peds[k] = CreatePed(4, GetHashKey(v.ped), v.loc.x, v.loc.y, v.loc.z, v.loc.w, false, true)
Freeze(peds[k], true, v.loc.w)
ps.entityTarget(peds[k], {
Bridge.Target.AddLocalEntity(peds[k], {
{
name = 'methheist'..k,
icon = 'fa-solid fa-user-secret',
label = ps.lang('meth.targetHeist'),
icon = Bridge.Language.Locale('meth.targetHeistIcon'),
label = Bridge.Language.Locale('meth.targetHeist'),
action = function()
if startedmeth then ps.notify(ps.lang('meth.alreadyChasing'),'error') return end
SpawnMethCarPedChase()
if startedmeth then
Bridge.Notify.SendNotify(Bridge.Language.Locale('meth.alreadyChasing'),'error')
return
end
SpawnMethCarPedChase(k)
end,
canInteract = function()
return handleGang(v.gang)
end
}
})
targets[#targets+1] = peds[k]
end
---- start animation shit
@@ -94,21 +94,23 @@ local function loadParticle(dict)
end
SetPtfxAssetNextCall(dict)
end
local function dialSuccess(coords)
ps.requestModel('hei_prop_heist_thermite', 2000)
requestModel('hei_prop_heist_thermite', 2000)
loadParticle('scr_ornate_heist')
local thermite = CreateObject('hei_prop_heist_thermite', vector3(1006.09, -3201.29, -39.30), true, false, false)
local thermite = CreateObject('hei_prop_heist_thermite', coords.x - 0.5, coords.y - 0.5, coords.z -0.5, true, false, false)
FreezeEntityPosition(thermite, true)
SetEntityRotation(thermite, 190.0, 90.0, 140.0, 3, true )
SetEntityVisible(thermite, false)
Wait(1000)
local therm = StartParticleFxLoopedOnEntity('scr_heist_ornate_thermal_burn', thermite, 0.0, 1.4, 0.0, 0.0, 0.0, 0.0, 1.5, false, false, false)
Wait(math.random(10000, 20000))
StopParticleFxLooped(therm, true)
DeleteObject(thermite)
end
local function MethCooking(coords, offset, rotation)
local animDict, animName = "anim@amb@business@meth@meth_monitoring_cooking@cooking@", "chemical_pour_short_cooker"
ps.requestAnim(animDict, 500)
Bridge.Anim.RequestDict(animDict)
SetEntityCoords(PlayerPedId(), coords)
local targetPosition = GetEntityCoords(PlayerPedId())
local animDuration = GetAnimDuration(animDict, animName) * 800
@@ -131,7 +133,7 @@ end
local function SmashMeth(coords, offset, rotation)
local ver = ""
local animDict, animName = "anim@amb@business@meth@meth_smash_weight_check@", "break_weigh_"..ver.."char02"
ps.requestAnim(animDict, 500)
Bridge.Anim.RequestDict(animDict, 500)
local ped = PlayerPedId()
local targetPosition = coords
SetEntityCoords(ped, targetPosition)
@@ -166,7 +168,7 @@ end
local function BagMeth(coords, offset, rotation)
local ver = ""
local animDict, animName = "anim@amb@business@meth@meth_smash_weight_check@", "break_weigh_"..ver.."char01"
ps.requestAnim(animDict, 500)
Bridge.Anim.RequestDict(animDict, 500)
local animDuration = GetAnimDuration(animDict, animName) * 1000
local ped = PlayerPedId()
SetEntityCoords(ped, coords)
@@ -235,13 +237,13 @@ end
local function startcook(num, coords, offset, rotation)
if not amonia then
local adding = ps.callback('md-drugs:server:startcook', num)
local adding = Bridge.Callback.Trigger('md-drugs:server:startcook', num)
if not adding then return end
active = true
MethCooking(coords, offset, rotation)
amonia = true
else
ps.notify(ps.lang('meth.started'), "error")
Bridge.Notify.SendNotify(Bridge.Language.Locale('meth.started'), "error")
end
end
@@ -252,8 +254,9 @@ local function dials(coords)
AddExplosion(coords.x, coords.y,coords.z, 49, 10, true, false, true)
amonia = false
active = false
return end
ps.notify(ps.lang('meth.increaseHeat'), "success")
return
end
Bridge.Notify.SendNotify(Bridge.Language.Locale('meth.increaseHeat'), "success")
dialSuccess(coords)
heated = true
end
@@ -267,11 +270,11 @@ local function smash(coords, offset, rotation, buckets, k)
Freeze(bucket, true, buckets.w)
SmashMeth(coords, offset, rotation)
Wait(100)
ps.entityTarget(bucket, {
Bridge.Target.AddLocalEntity(bucket, {
{
name = 'bucket',
icon = "fa-solid fa-sack-xmark",
label = ps.lang('meth.targetBag'),
icon = Bridge.Language.Locale('meth.targetBagIcon'),
label = Bridge.Language.Locale('meth.targetBag'),
action = function()
DeleteObject(bucket)
active = false
@@ -287,34 +290,29 @@ local function smash(coords, offset, rotation, buckets, k)
end,
}
})
targets[#targets+1] = bucket
end
end
local function trayscarry()
if amonia and heated then
local pos = GetEntityCoords(PlayerPedId(), true)
ps.requestAnim('anim@heists@box_carry@')
Bridge.Anim.RequestDict('anim@heists@box_carry@')
TaskPlayAnim(PlayerPedId(), 'anim@heists@box_carry@', 'idle', 5.0, -1, -1, 50, 0, false, false, false)
ps.requestModel('bkr_prop_meth_tray_02a')
requestModel('bkr_prop_meth_tray_02a')
trays = CreateObject("bkr_prop_meth_tray_02a", pos.x, pos.y, pos.z, true, true, true)
AttachEntityToEntity(trays, PlayerPedId(), GetPedBoneIndex(PlayerPedId(), 28422), 0.01, -0.2,-0.2, 20.0, 0.0, 0.0, true, true, false, true, 1, true)
tray = true
end
end
CreateThread(function()
BikerMethLab = exports['bob74_ipl']:GetBikerMethLabObject()
BikerMethLab.Style.Set(BikerMethLab.Style.upgrade)
BikerMethLab.Security.Set(BikerMethLab.Security.upgrade)
BikerMethLab.Details.Enable(BikerMethLab.Details.production, true)
RefreshInterior(BikerMethLab.interiorId)
end)
for k, v in pairs (locations.CookMeth) do
ps.boxTarget('cookMeth'..k, v.loc, {length = v.l, width = v.w, rotation = v.rot, height = 1.0},{
Bridge.Target.AddBoxZone('cookMeth'..k, v.loc, v.size, v.loc.w or 180.0, {
{
label = ps.lang('meth.targetCook'),
icon = 'fa-solid fa-temperature-high',
label = Bridge.Language.Locale('meth.targetCook'),
icon = Bridge.Language.Locale('meth.targetCookIcon'),
action = function()
startcook(k, v.loc, v.offset or vec3(0,0,0), v.rotation or vector3(0,0,180.0))
end,
@@ -326,8 +324,8 @@ for k, v in pairs (locations.CookMeth) do
end,
},
{
icon = "fas fa-sign-in-alt",
label = ps.lang('meth.targetGrabTray'),
icon = Bridge.Language.Locale('meth.targetGrabTrayIcon'),
label = Bridge.Language.Locale('meth.targetGrabTray'),
action = function() trayscarry() end,
canInteract = function()
if not handleGang(v.gang) then return false end
@@ -337,14 +335,15 @@ for k, v in pairs (locations.CookMeth) do
end,
},
})
targets[#targets+1] = 'cookMeth'..k
end
for k, v in pairs (locations.MethDials) do
ps.boxTarget('adjustMethDials'..k, v.loc, {length = v.l, width = v.w, rotation = v.rot, height = 1.0},{
Bridge.Target.AddBoxZone('adjustMethDials'..k, v.loc, v.size, v.loc.w or 180.0, {
{
name = 'adjustdials',
icon = "fa-solid fa-temperature-three-quarters",
label = ps.lang('meth.targetHeat'),
icon = Bridge.Language.Locale('meth.targetHeatIcon'),
label = Bridge.Language.Locale('meth.targetHeat'),
action = function()
dials(locations.CookMeth[k].loc)
end,
@@ -354,14 +353,15 @@ for k, v in pairs (locations.MethDials) do
end
}
})
targets[#targets+1] = 'adjustMethDials'..k
end
for k, v in pairs (locations.MethSmash) do
ps.boxTarget('smashMeth'..k, v.loc, {length = v.l, width = v.w, rotation = v.rot, height = 1.0},{
Bridge.Target.AddBoxZone('smashMeth'..k, v.loc, v.size, v.loc.w or 180.0, {
{
name = 'smash',
icon = "fa-solid fa-weight-scale",
label = ps.lang('meth.targetSmash'),
icon = Bridge.Language.Locale('meth.targetSmashIcon'),
label = Bridge.Language.Locale('meth.targetSmash'),
action = function()
smash(v.loc, v.offset, v.rotation, v.bucket,k)
end,
@@ -371,13 +371,14 @@ for k, v in pairs (locations.MethSmash) do
end
}
})
targets[#targets+1] = 'smashMeth'..k
end
for k, v in pairs (locations.MethTele) do
ps.boxTarget('meth_tele'..k, v.inside, {length = v.l, width = v.w, heading = v.rot}, {
Bridge.Target.AddBoxZone('meth_tele'..k, v.inside, v.size, v.rot, {
{
icon = 'fa-solid fa-door-open',
label = ps.lang('coke.teleOut'),
icon = Bridge.Language.Locale('meth.teleOutIcon'),
label = Bridge.Language.Locale('meth.teleOut'),
action = function()
SetEntityCoords(PlayerPedId(), v.outside)
end,
@@ -386,10 +387,10 @@ for k, v in pairs (locations.MethTele) do
end
}
})
ps.boxTarget('meth_teleout'..k, v.outside, {length = v.l, width = v.w, heading = v.rot}, {
Bridge.Target.AddBoxZone('meth_teleout'..k, v.outside, v.size, v.rot, {
{
icon = 'fa-solid fa-door-closed',
label = ps.lang('coke.teleIn'),
icon = Bridge.Language.Locale('meth.teleInIcon'),
label = Bridge.Language.Locale('meth.teleIn'),
action = function()
SetEntityCoords(PlayerPedId(), v.inside)
end,
@@ -398,6 +399,8 @@ for k, v in pairs (locations.MethTele) do
end
}
})
targets[#targets+1] = 'meth_tele'..k
targets[#targets+1] = 'meth_teleout'..k
end
RegisterCommand('offset', function()
@@ -408,12 +411,12 @@ RegisterCommand('offset', function()
end)
for k, v in pairs (locations.MethEph) do
ps.boxTarget('stealMethEph'..k, v.loc, {length = v.l, width = v.w, rotation = v.rot, height = 1.0},{
Bridge.Target.AddBoxZone('stealMethEph'..k, v.loc, v.size, v.loc.w or 180.0, {
{
label = ps.lang('meth.targetStealEPH'),
icon = 'fa-solid fa-bucket',
label = Bridge.Language.Locale('meth.targetStealEPH'),
icon = Bridge.Language.Locale('meth.targetStealEPHIcon'),
action = function()
if not ps.progressbar(ps.lang('meth.stealingEPH'), 4000, 'uncuff') then return end
if not progressbar(Bridge.Language.Locale('meth.stealingEPH')) then return end
TriggerServerEvent("md-drugs:server:geteph", k)
end,
canInteract = function()
@@ -421,14 +424,15 @@ for k, v in pairs (locations.MethEph) do
end
}
})
targets[#targets+1] = 'stealMethEph'..k
end
for k, v in pairs (locations.MethAce) do
ps.boxTarget('stealMethAce'..k, v.loc, {length = v.l, width = v.w, rotation = v.rot, height = 1.0},{
Bridge.Target.AddBoxZone('stealMethAce'..k, v.loc, v.size, v.loc.w or 180.0, {
{
label = ps.lang('meth.targetStealACE'),
icon = 'fa-solid fa-bucket',
label = Bridge.Language.Locale('meth.targetStealACE'),
icon = Bridge.Language.Locale('meth.targetStealACEIcon'),
action = function()
if not ps.progressbar(ps.lang('meth.stealingACE'), 4000, 'uncuff') then return end
if not progressbar(Bridge.Language.Locale('meth.stealingACE')) then return end
TriggerServerEvent("md-drugs:server:getace", k)
end,
canInteract = function()
@@ -436,6 +440,13 @@ for k, v in pairs (locations.MethAce) do
end
}
})
targets[#targets+1] = 'stealMethAce'..k
end
CreateThread(function()
BikerMethLab = exports['bob74_ipl']:GetBikerMethLabObject()
BikerMethLab.Style.Set(BikerMethLab.Style.upgrade)
BikerMethLab.Security.Set(BikerMethLab.Security.upgrade)
BikerMethLab.Details.Enable(BikerMethLab.Details.production, true)
RefreshInterior(BikerMethLab.interiorId)
end)
+34 -33
View File
@@ -1,18 +1,20 @@
if not Config.Drugs['oxyruns'] then return end
local carryPackage = nil
local onMission = false
local locations = ps.callback('md-drugs:server:GetOxyLocs')
local locations = Config.Oxy.Locations
local pdAlert = 90
local vehicle = nil
local function getRoute()
local Route = ps.callback('md-drugs:server:getRoute')
local Route = Bridge.Callback.Trigger('md-drugs:server:getRoute')
if not Route then
ps.notify(ps.lang('oxy.ditchCar'), "error")
Bridge.Notify.SendNotify(Bridge.Language.Locale('oxy.ditchCar'), "error")
onMission = false
return false
end
local Route = locations.oxylocations[Route]
SetNewWaypoint(Route.x, Route.y)
ps.requestModel('g_m_y_famdnf_01', 30000)
requestModel('g_m_y_famdnf_01', 30000)
local oxybuyer = CreatePed(0, 'g_m_y_famdnf_01',Route.x,Route.y,Route.z-1, Route.w, false, false)
Freeze(oxybuyer, true, Route.w)
local timeOut = 300
@@ -23,13 +25,13 @@ local function getRoute()
until #(GetEntityCoords(PlayerPedId()) - vector3(Route.x,Route.y,Route.z)) < 5.0 or timeOut == 0
PoliceCall(pdAlert)
ps.entityTarget(oxybuyer,{
Bridge.Target.AddLocalEntity(oxybuyer,{
{
label = ps.lang('oxy.targetHandoff'),
icon = "fa-solid fa-dollar-sign",
label = Bridge.Language.Locale('oxy.targetHandoff'),
icon = Bridge.Language.Locale('oxy.targetHandOffIcon'),
action = function()
if carryPackage then
if not ps.progressbar(ps.lang('oxy.handingoff'), 4000, 'uncuff') then return end
if not progressbar(Bridge.Language.Locale('oxy.handingoff')) then return end
TriggerServerEvent("md-drugs:server:giveoxybox")
DeleteEntity(oxybuyer)
DetachEntity(carryPackage, true, true)
@@ -37,47 +39,44 @@ local function getRoute()
carryPackage = nil
getRoute()
else
ps.notify(ps.lang('oxy.emptyHands'), "error")
Bridge.Notify.SendNotify(Bridge.Language.Locale('oxy.emptyHands'), "error")
end
end
}
})
targets[#targets+1] = oxybuyer
end
for k, v in pairs(locations.OxyPayForTruck) do
ps.boxTarget('oxyTruckPur' ..k , v.loc, {length = v.l, width = v.w, heading = v.rot}, {
Bridge.Target.AddBoxZone('oxyTruckPur' ..k , v.loc, v.size, v.loc.w or 180.0, {
{
icon = 'fa-solid fa-truck-fast',
label = ps.lang('oxy.targetPay'),
icon = Bridge.Language.Locale('oxy.targetPayIcon'),
label = Bridge.Language.Locale('oxy.targetPay'),
action = function()
ps.requestModel("burrito3", 30000)
requestModel("burrito3", 30000)
local paid = ps.callback('md-drugs:server:payfortruck', false)
local paid = Bridge.Callback.Trigger('md-drugs:server:payfortruck', k)
if not paid then return end
local oxycar = CreateVehicle("burrito3",v.truckSpawn.x, v.truckSpawn.y, v.truckSpawn.z, v.truckSpawn.w, true, false)
if Config.Fuel == "ox_fuel" then
Entity(oxycar).state.fuel = 100.0
else
exports[Config.Fuel]:SetFuel(oxycar, 100.0)
end
TriggerEvent("vehiclekeys:client:SetOwner", GetVehicleNumberPlateText(oxycar))
ps.notify(ps.lang('oxy.keys'), 'success')
vehicle = CreateVehicle("burrito3",v.truckSpawn.x, v.truckSpawn.y, v.truckSpawn.z, v.truckSpawn.w, true, false)
SetVehicleFuelLevel(vehicle, 100.0)
local plate = GetVehicleNumberPlateText(vehicle)
Bridge.VehicleKey.GiveKeys(vehicle, plate)
Bridge.Notify.SendNotify(Bridge.Language.Locale('oxy.keys'), 'success')
onMission = true
getRoute()
ps.entityTarget(oxycar, {
TriggerServerEvent('md-drugs:server:startOxyRun', NetworkGetNetworkIdFromEntity(vehicle))
Bridge.Target.AddLocalEntity(vehicle, {
{
icon = "fa-solid fa-box",
label = ps.lang('oxy.targetGetPackage'),
icon = Bridge.Language.Locale('oxy.targetGetPackageIcon'),
label = Bridge.Language.Locale('oxy.targetGetPackage'),
action = function()
if carryPackage then
ps.notify(ps.lang('oxy.alreadyCarrying'), "error")
Bridge.Notify.SendNotify(Bridge.Language.Locale('oxy.alreadyCarrying'), "error")
else
local pos = GetEntityCoords(PlayerPedId(), true)
ps.requestAnim('anim@heists@box_carry@')
Bridge.Anim.RequestDict('anim@heists@box_carry@')
TaskPlayAnim(PlayerPedId(), 'anim@heists@box_carry@', 'idle', 5.0, -1, -1, 50, 0, false, false, false)
ps.requestModel("hei_prop_drug_statue_box_big")
requestModel("hei_prop_drug_statue_box_big")
carryPackage = CreateObject("hei_prop_drug_statue_box_big", pos.x, pos.y, pos.z, true, true, true)
AttachEntityToEntity(carryPackage, PlayerPedId(), GetPedBoneIndex(PlayerPedId(), 57005), 0.05, 0.1, -0.3, 300.0, 250.0, 20.0, true, true, false, true, 1, true)
end
@@ -87,6 +86,8 @@ for k, v in pairs(locations.OxyPayForTruck) do
end
}
})
Wait(1000)
getRoute()
end,
canInteract = function()
if onMission then
@@ -96,5 +97,5 @@ for k, v in pairs(locations.OxyPayForTruck) do
end
}
})
targets[#targets+1] = 'oxyTruckPur' ..k
end
+29 -13
View File
@@ -1,29 +1,45 @@
local locations = ps.callback('md-drugs:server:GetPharmaLocs')
ps.registerCallback("md-drugs:client:prescriptionpad", function(data, op)
if ps.getJobType() ~= 'ems' then return end
local input = ps.input(ps.lang('pharma.input.header'), {
{type = 'select', title = ps.lang('pharma.input.title1'), options = data},
{type = 'select', title = ps.lang('pharma.input.title2'), options = op}
if not Config.Drugs['pharma'] then return end
local locations = Config.Pharma.Locations
Bridge.Callback.Register("md-drugs:client:prescriptionpad", function( data, op)
local job = Bridge.Framework.GetPlayerJob()
if job ~= 'ambulance' then
Bridge.Notify.SendNotify(Bridge.Language.Locale('pharma.notPharma'), 'error')
return
end
local input = Bridge.Input.Open(Bridge.Language.Locale('pharma.input.header'), {
{type = 'select', title = Bridge.Language.Locale('pharma.input.title1'), options = data},
{type = 'select', title = Bridge.Language.Locale('pharma.input.title2'), options = op}
})
if not input[1] then return end
if not ps.progressbar(ps.lang('pharma.write'), 4000, 'notepad') then return end
if not progressbar(Bridge.Language.Locale('pharma.write'), 4000, {
dict = 'missheistdockssetup1clipboard@base',
clip = 'base',
flag = 49,
prop = {
model = 'prop_notepad_01',
bone = 18905,
pos = {0.1, 0.02, 0.03},
rot = { -90.0, 0.0, 0.0}
}
}) then return end
return {who = input[1], what = input[2]}
end)
ps.registerCallback("md-drugs:client:unbottle", function()
if not ps.progressbar(ps.lang('pharma.opening'), 4000, 'uncuff') then return end
Bridge.Callback.Register("md-drugs:client:unbottle", function()
if not progressbar(Bridge.Language.Locale('pharma.opening')) then return end
return true
end)
for k, v in pairs (locations.FillPrescription) do
ps.boxTarget('pharma' ..k , v.loc, {length = v.l, width = v.w, heading = v.rot}, {
Bridge.Target.AddBoxZone('pharma' ..k , v.loc,v.size, v.loc.w or 180, {
{
icon = 'fa-solid fa-capsules',
label = ps.lang('pharma.targetFill'),
icon = Bridge.Language.Locale('pharma.fillIcon'),
label = Bridge.Language.Locale('pharma.targetFill'),
action = function()
if not ps.progressbar(ps.lang('pharma.fill'), 4000, 'uncuff') then return end
if not progressbar(Bridge.Language.Locale('pharma.fill')) then return end
TriggerServerEvent("md-drugs:server:fillprescription", k)
end,
}
+21 -27
View File
@@ -1,45 +1,50 @@
local DrugPlants = {
{model = 'prop_plant_01a', label = 'coke', langs = ps.lang('coke.targetPick'), tbl = GlobalState.CocaPlant, plantTbl = {},
{model = 'prop_plant_01a', label = 'coke', langs = Bridge.Language.Locale('coke.targetPick'), tbl = GlobalState.CocaPlant, plantTbl = {},
pick = function(loc)
if not ps.progressbar(ps.lang('coke.picking'), 4000, 'uncuff') then return end
if not progressbar(Bridge.Language.Locale('coke.picking')) then return end
TriggerServerEvent("coke:pickupCane", loc)
return true
end,
allow = Config.Drugs.cocaine,
icon = Bridge.Language.Locale('coke.pickIcon'),
},
{model = 'prop_plant_01b', label = 'heroin',langs = ps.lang('heroin.targetPick'), tbl = GlobalState.PoppyPlants, plantTbl = {},
{model = 'prop_plant_01b', label = 'heroin',langs = Bridge.Language.Locale('heroin.targetPick'), tbl = GlobalState.PoppyPlants, plantTbl = {},
pick = function(loc)
if not ps.progressbar(ps.lang('heroin.picking'), 4000, 'uncuff') then return end
if not progressbar(Bridge.Language.Locale('heroin.picking')) then return end
TriggerServerEvent("heroin:pickupCane", loc)
return true
end,
allow = Config.Drugs.heroin,
icon = Bridge.Language.Locale('heroin.pickIcon'),
},
{model = 'prop_cactus_03', label = 'Mescaline', langs = ps.lang('mesc.targetPick'), tbl = GlobalState.Mescaline, plantTbl = {},
{model = 'prop_cactus_03', label = 'Mescaline', langs = Bridge.Language.Locale('mesc.targetPick'), tbl = GlobalState.Mescaline, plantTbl = {},
pick = function(loc)
if not ps.progressbar(ps.lang('mesc.picking'), 4000, 'uncuff') then return end
if not progressbar(Bridge.Language.Locale('mesc.picking')) then return end
TriggerServerEvent("Mescaline:pickupCane", loc)
return true
end,
allow = Config.Drugs.mescaline,
icon = Bridge.Language.Locale('mesc.pickIcon'),
},
{model = 'prop_weed_01', label = 'weed', langs = ps.lang('weed.targetPick'), tbl = GlobalState.WeedPlant, plantTbl = {},
{model = 'prop_weed_01', label = 'weed', langs = Bridge.Language.Locale('weed.targetPick'), tbl = GlobalState.WeedPlant, plantTbl = {},
pick = function(loc)
if not ps.progressbar(ps.lang('weed.picking'), 4000, 'uncuff') then return end
if not progressbar(Bridge.Language.Locale('weed.picking')) then return end
TriggerServerEvent("weed:pickupCane", loc)
return true
end,
allow = Config.Drugs.weed,
icon = Bridge.Language.Locale('weed.pickIcon'),
},
{model = 'mushroom', label = 'shrooms', langs = ps.lang('shrooms.targetPick'), tbl = GlobalState.shrooms, plantTbl = {},
{model = 'mushroom', label = 'shrooms', langs = Bridge.Language.Locale('shrooms.targetPick'), tbl = GlobalState.shrooms, plantTbl = {},
pick = function(loc)
if not ps.progressbar(ps.lang('shrooms.picking'), 4000, 'uncuff') then return end
if not progressbar(Bridge.Language.Locale('shrooms.picking')) then return end
TriggerServerEvent("shrooms:pickupCane", loc)
return true
end,
allow = Config.Drugs.shrooms,
icon = Bridge.Language.Locale('shrooms.pickIcon'),
},
}
@@ -49,10 +54,10 @@ for k, v in pairs (DrugPlants) do
local plant = v.tbl[loc]
local hash = GetHashKey(plant.model)
if not v.plantTbl[loc] then
ps.requestModel(hash)
requestModel(hash)
v.plantTbl[loc] = CreateObject(hash, plant.location, false, true, true)
Freeze(v.plantTbl[loc], true, plant.heading)
ps.entityTarget(v.plantTbl[loc], {
Bridge.Target.AddLocalEntity(v.plantTbl[loc], {
{
icon = v.icon,
label = v.langs,
@@ -61,6 +66,7 @@ for k, v in pairs (DrugPlants) do
end
}
})
targets[#targets+1] = v.plantTbl[loc]
end
end)
@@ -76,7 +82,7 @@ for k, v in pairs (DrugPlants) do
if not value.taken then
v.plantTbl[key] = CreateObject(hash, value.location.x, value.location.y, value.location.z, false, true, true)
Freeze(v.plantTbl[key], true, v.heading)
ps.entityTarget(v.plantTbl[key], {
Bridge.Target.AddLocalEntity(v.plantTbl[key], {
{
icon = v.icon,
label = v.langs,
@@ -85,22 +91,10 @@ for k, v in pairs (DrugPlants) do
end
}
})
targets[#targets+1] = v.plantTbl[key]
end
end
end)
TriggerEvent(v.label ..":init")
::continue::
end
AddEventHandler('onResourceStop', function(resourceName)
if GetCurrentResourceName() == resourceName then
SetModelAsNoLongerNeeded(GetHashKey('prop_plant_01a'))
for k, v in pairs(DrugPlants) do
for key, plant in pairs(v.plantTbl) do
if DoesEntityExist(plant) then DeleteEntity(plant) end
v.plantTbl[key] = nil
end
end
end
end)
end
+8 -2
View File
@@ -1,3 +1,5 @@
if not Config.Drugs['shrooms'] then return end
local function EcstasyEffect()
local startStamina = 50
SetFlash(0, 0, 500, 20000, 500)
@@ -16,8 +18,12 @@ local function EcstasyEffect()
startStamina = 0
end
ps.registerCallback("md-drugs:client:shrooms", function()
if not ps.progressbar(ps.lang('shrooms.eat'), 5000, 'eat') then return end
Bridge.Callback.Register("md-drugs:client:shrooms", function()
if not progressbar(Bridge.Language.Locale('shrooms.eat'), 5000, {
dict = 'mp_player_inteat@burger',
clip = 'mp_player_int_eat_burger',
flags = 49
}) then return end
CreateThread(function()
EcstasyEffect()
end)
+118 -49
View File
@@ -1,31 +1,29 @@
if not Config.Drugs['weed'] then return end
local exploded, drying = false, false
local locations = ps.callback('md-drugs:server:GetWeedLocs')
local locations, recipes = Config.Weed.Locations, Config.Weed.Recipes
for k, v in pairs (locations.WeedDry) do
ps.boxTarget('weed_dry'..k, v.loc, {length = v.l, width = v.w, heading = v.rot}, {
Bridge.Target.AddBoxZone('weed_dry'..k, v.loc, v.size, v.loc.w or 180.0, {
{
icon = 'fa-solid fa-cannabis',
label = ps.lang('weed.targetDry'),
icon = Bridge.Language.Locale('weed.targetDryIcon'),
label = Bridge.Language.Locale('weed.targetDry'),
action = function()
if not ps.hasItem('wetcannabis', 1) then
ps.notify(ps.lang('weed.noDry'), "error")
return
end
if not itemCheck("wetcannabis") then return end
if drying then return end
local loc = GetEntityCoords(PlayerPedId())
local weedplant = CreateObject("bkr_prop_weed_drying_01a", loc.x, loc.y+.2, loc.z, true, false)
drying = true
FreezeEntityPosition(weedplant, true)
ps.notify(ps.lang('weed.wait'), "success")
Bridge.Notify.SendNotify(Bridge.Language.Locale('weed.wait'), "success")
Wait(math.random(1000,5000))
ps.notify(ps.lang('weed.take'), "success")
ps.entityTarget(weedplant, {
Bridge.Notify.SendNotify(Bridge.Language.Locale('weed.take'), "success")
Bridge.Target.AddLocalEntity(weedplant, {
{
icon = "fa-solid fa-cannabis",
label = ps.lang('weed.targetDryed'),
icon = Bridge.Language.Locale('weed.targetDryIcon'),
label = Bridge.Language.Locale('weed.targetDryed'),
action = function()
DeleteEntity(weedplant)
drying = false
TriggerServerEvent('md-drugs:server:dryoutweed')
TriggerServerEvent('md-drugs:server:dryoutweed', k)
end,
}
})
@@ -36,27 +34,30 @@ for k, v in pairs (locations.WeedDry) do
end
}
})
targets[#targets+1] = 'weed_dry'..k
end
for k, v in pairs (locations.WeedTele) do
ps.boxTarget('weed_tele'..k, v.inside, {length = v.l, width = v.w, heading = v.rot}, {
Bridge.Target.AddBoxZone('weed_tele'..k, v.inside, v.size, v.rot or 180.0, {
{
icon = 'fa-solid fa-door-open',
label = ps.lang('weed.teleportOut'),
icon = Bridge.Language.Locale('weed.teleportOutIcon'),
label = Bridge.Language.Locale('weed.teleportOut'),
action = function()
SetEntityCoords(PlayerPedId(), v.outside)
end
}
})
ps.boxTarget('weed_teleout'..k, v.outside, {length = v.l, width = v.w, heading = v.rot}, {
targets[#targets+1] = 'weed_tele'..k
Bridge.Target.AddBoxZone('weed_teleout'..k, v.outside, v.size, v.rot or 180.0, {
{
icon = 'fa-solid fa-door-closed',
label = ps.lang('weed.teleportIn'),
icon = Bridge.Language.Locale('weed.teleportInIcon'),
label = Bridge.Language.Locale('weed.teleportIn'),
action = function()
SetEntityCoords(PlayerPedId(), v.inside)
end
}
})
targets[#targets+1] = 'weed_teleout'..k
end
CreateThread(function()
@@ -83,88 +84,156 @@ local function AlienEffect()
end
RegisterNetEvent("md-drugs:client:dodabs", function()
if not ps.progressbar(ps.lang('weed.dabs'), 4000, 'bong2') then AlienEffect() return end
if not progressbar(Bridge.Language.Locale('weed.dabs'), 4000, 'bong2') then AlienEffect() return end
end)
local function createBluntOptions(contextId, contextTitle, eventLabelPrefix, tableName)
local options = {}
local items = ps.callback('md-drugs:server:GetWeedRecipe', tableName)
for k, v in pairs(items) do
for k, v in pairs(recipes[tableName]) do
local label = {}
local item = ''
for m, d in pairs(v.take) do table.insert(label, ps.getLabel(m) .. ' X ' .. d) end
for m, d in pairs(v.take) do table.insert(label, Bridge.Inventory.GetItemInfo(m).label .. ' X ' .. d .. ' \n ') end
for m, d in pairs(v.give) do item = m end
local itemData = Bridge.Inventory.GetItemInfo(item)
options[#options + 1] = {
icon = ps.getImage(item),
description = table.concat(label, ", "),
title = ps.getLabel(item),
action = function()
icon = itemData.image,
description = table.concat(label, " "),
title = itemData.label,
onSelect = function()
if not minigame() then return end
if not ps.progressbar(eventLabelPrefix .. ps.getLabel(item), 4000, 'uncuff') then return end
TriggerServerEvent('md-drugs:server:MakeWeedItems', {item = item, recipe = 'weed', num = k, table = tableName})
if not progressbar( Bridge.Language.Locale(eventLabelPrefix, itemData.label)) then return end
TriggerServerEvent('md-drugs:server:RollBlunt', tableName, item)
end
}
end
ps.sorter(options, 'title')
ps.menu(contextTitle, contextTitle, options)
Bridge.Menu.Open({
id = contextId,
title = contextTitle,
options = options,
})
end
RegisterNetEvent('md-drugs:client:makeBluntWrap', function(data)
createBluntOptions('mddrugsbluntwraps', "Dipping Syrup", ps.lang('weed.bluntWrap'), 'bluntwrap')
createBluntOptions('mddrugsbluntwraps', "Dipping Syrup", 'weed.bluntWrap', 'bluntwrap')
end)
RegisterNetEvent('md-drugs:client:rollBlunt', function(data)
createBluntOptions('mddrugsblunts', "Roll Blunts", ps.lang('weed.blunts'), 'blunts')
createBluntOptions('mddrugsblunts', "Roll Blunts", 'weed.rolling', 'blunts')
end)
for k, v in pairs (locations.WeedSalesman) do
ps.requestModel(v.ped)
requestModel(v.ped)
local ped = CreatePed(4, v.ped, v.loc.x, v.loc.y, v.loc.z - 1.0, v.loc.w, false, true)
FreezeEntityPosition(ped, true)
SetEntityInvincible(ped, true)
SetBlockingOfNonTemporaryEvents(ped, true)
ps.entityTarget(ped, {
Bridge.Target.AddLocalEntity(ped, {
{
icon = "fa-solid fa-cannabis",
label = ps.lang('weed.targetSales'),
icon = Bridge.Language.Locale('weed.salesIcon'),
label = Bridge.Language.Locale('weed.targetSales'),
action = function()
local itemList = ps.callback('md-drugs:server:getWeedItems')
local options = {}
for m, d in pairs (itemList) do
for m, d in pairs (recipes.weedStore) do
local itemInfo = Bridge.Inventory.GetItemInfo(m)
options[#options + 1] = {
icon = ps.getImage(m),
title = ps.getLabel(m),
icon = itemInfo.image,
title = itemInfo.label,
description = '$' .. d,
action = function()
local input = ps.input('Amount To Buy',{
{type = 'number', title = 'How Many To Buy', min = 1, max = 1000}
onSelect = function()
local input = Bridge.Input.Open(Bridge.Language.Locale('weed.salesHeader'),{
{type = 'number', title = Bridge.Language.Locale('weed.salesDesc'), min = 1, max = 1000}
})
if not input and input[1] then return end
if not ps.progressbar(ps.lang('weed.buying', ps.getLabel(m)), 2000, 'uncuff') then return end
if not progressbar(Bridge.Language.Locale('weed.buying', Bridge.Inventory.GetItemInfo(m).label)) then return end
TriggerServerEvent('md-drugs:server:buyWeedItem', k, m, input[1])
end
}
end
ps.menu('Weed Shop', 'Weed Shop', options)
Bridge.Menu.Open({
id = 'weedDude',
title = Bridge.Language.Locale('weed.salessHeader'),
options = options,
})
end
}
})
targets[#targets+1] = ped
end
local props = {}
for locationKey, locationData in pairs (locations.MakeButter) do
if locationData.prop then
ps.requestModel(locationData.prop)
requestModel(locationData.prop)
props[#props+1] = CreateObject(locationData.prop, locationData.loc.x, locationData.loc.y, locationData.loc.z - 1.0, false, false, false)
FreezeEntityPosition(props[#props], true)
SetEntityHeading(props[#props], locationData.loc.w)
Bridge.Target.AddLocalEntity(props[#props], {
{
icon = Bridge.Language.Locale('weed.cannabisIcon'),
label = Bridge.Language.Locale('weed.targetMakeButter'),
action = function()
local options = {}
for k, v in pairs (recipes.makeButter) do
local itemInfo = Bridge.Inventory.GetItemInfo(k)
local label = {}
for m, d in pairs(v.recipe) do table.insert(label, Bridge.Inventory.GetItemInfo(m).label .. ' X ' .. d .. ' \n ') end
options[#options + 1] = {
icon = itemInfo.image,
title = itemInfo.label,
description = table.concat(label, " "),
onSelect = function()
if not progressbar(Bridge.Language.Locale('weed.making', itemInfo.label)) then return end
TriggerServerEvent('md-drugs:server:MakeWeedItems', 'makeButter', k, locationKey)
end
}
end
Bridge.Menu.Open({
id = 'weedMakeButter',
title = Bridge.Language.Locale('weed.makeButter'),
options = options,
})
end
}
})
targets[#targets+1] = props[#props]
end
end
for locationKey, locationData in pairs (locations.MakeOil) do
if locationData.prop then
ps.requestModel(locationData.prop)
requestModel(locationData.prop)
props[#props+1] = CreateObject(locationData.prop, locationData.loc.x, locationData.loc.y, locationData.loc.z - 1.0, false, false, false)
FreezeEntityPosition(props[#props], true)
SetEntityHeading(props[#props], locationData.loc.w)
Bridge.Target.AddLocalEntity(props[#props], {
{
icon = Bridge.Language.Locale('weed.cannabisIcon'),
label = Bridge.Language.Locale('weed.targetMakeOil'),
action = function()
local options = {}
for k, v in pairs (recipes.makeOil) do
local itemInfo = Bridge.Inventory.GetItemInfo(k)
local label = {}
for m, d in pairs(v.recipe) do table.insert(label, Bridge.Inventory.GetItemInfo(m).label .. ' X ' .. d .. ' \n ') end
options[#options + 1] = {
icon = itemInfo.image,
title = itemInfo.label,
description = table.concat(label, " "),
onSelect = function()
if not progressbar(Bridge.Language.Locale('weed.making', itemInfo.label)) then return end
TriggerServerEvent('md-drugs:server:MakeWeedItems', 'makeOil', k, locationKey)
end
}
end
Bridge.Menu.Open({
id = 'weedMakeOil',
title = Bridge.Language.Locale('weed.makeOil'),
options = options,
})
end
}
})
targets[#targets+1] = props[#props]
end
end
+39 -32
View File
@@ -1,12 +1,14 @@
if not Config.Drugs['whippit'] then return end
local prop = nil
local function animation(color)
local coords = GetEntityCoords(PlayerPedId())
ps.requestAnim('mp_player_intdrink')
ps.requestModel(color)
Bridge.Anim.RequestDict('mp_player_intdrink')
requestModel(color)
prop = CreateObject(GetHashKey(color), coords.x, coords.y, coords.z, true, true, true)
AttachEntityToEntity(prop, PlayerPedId(), GetPedBoneIndex(PlayerPedId(), 18905), 0.087000, -0.130001, 0.138999, 63.630001, 3.299881, -21.000000, true, true, false, true, 1, true)
TaskPlayAnim(PlayerPedId(), 'mp_player_intdrink', 'loop_bottle', 8.0, -8.0, -1, 49, 0, false, false, false)
if ps.progressbar('Inhaling Nitrous', 5000, false) then
if progressbar('Inhaling Nitrous', 5000, false) then
ClearPedTasks(PlayerPedId())
DetachEntity(prop, true, true)
DeleteEntity(prop)
@@ -28,7 +30,7 @@ local function blur(duration)
end)
end
ps.registerCallback('md-drugs:client:useWhippit', function(color)
Bridge.Callback.Register('md-drugs:client:useWhippit', function(color)
if animation(color) then
blur(30000)
return true
@@ -38,39 +40,44 @@ ps.registerCallback('md-drugs:client:useWhippit', function(color)
end)
local function spawnShops()
local locations = ps.callback('md-drugs:server:getWhippitLocations')
for k, v in pairs(locations) do
ps.requestModel(v.ped)
for k, v in pairs(Config.Whippit.Locations.Whippit) do
requestModel(v.ped)
local ped = CreatePed(5, GetHashKey(v.ped), v.loc.x, v.loc.y, v.loc.z, v.loc.w, true, true)
FreezeEntityPosition(ped, true)
SetEntityInvincible(ped, true)
SetBlockingOfNonTemporaryEvents(ped, true)
ps.entityTarget(ped, {
{
label = ps.lang('Whippit.targetShop'),
icon = 'fa-solid fa-cart-shopping',
action = function()
local menu = {}
local items = ps.callback('md-drugs:server:getwhippitShop')
for item, price in pairs (items) do
menu[#menu + 1] = {
title = ps.getLabel(item),
icon = ps.getImage(item),
description = '$' .. price,
action = function()
local amount = ps.input(ps.getLabel(item), {
{type = 'number', label = 'Amount', name = 'amount', min = 1, max = 100, default = 1}
})
if amount and amount[1] then
TriggerServerEvent('md-drugs:server:buyWhippitItem', k, item, amount[1])
end
end
}
end
ps.menu(ps.lang('Whippit.shopHeader'), ps.lang('Whippit.shopHeader'), menu)
end
},
Bridge.Target.AddLocalEntity(ped, {
{
label = Bridge.Language.Locale('Whippit.targetShop'),
icon = Bridge.Language.Locale('Whippit.whippitIcon'),
action = function()
local menu = {}
for item, price in pairs (Config.Whippit.Recipes.shop) do
local itemInfo = Bridge.Inventory.GetItemInfo(item)
menu[#menu + 1] = {
title = itemInfo.label,
icon = itemInfo.image,
description = '$' .. price,
onSelect = function()
local amount = Bridge.Input.Open(itemInfo.label, {
{type = 'number', label = 'Amount', name = 'amount', min = 1, max = 100, default = 1}
})
if amount and amount[1] then
TriggerServerEvent('md-drugs:server:buyWhippitItem', k, item, amount[1])
end
end
}
end
Bridge.Menu.Open({
id = 'whippitShop',
title = Bridge.Language.Locale('Whippit.shopHeader'),
options = menu
})
end
},
})
targets[#targets+1] = ped
end
end
+80 -137
View File
@@ -1,152 +1,95 @@
local miss = false
local settings = ps.callback('md-drugs:server:GetWSsettings')
if not Config.Drugs['wholesale'] then return end
local active, ped, peds = false, nil, {}
function SetUpPeds(drugCount)
local attackerCount = settings.WholesaleAmbushBase
if settings.WholesaleAmbushScale then
if drugCount > settings.WholesaleAmbushTier1 then
attackerCount = 3
local function loop(wholesaleData)
local timeout = 600 -- 10 minutes
while active do
Wait(1000)
local dist = #(GetEntityCoords(PlayerPedId()) - vector3(wholesaleData.location.x, wholesaleData.location.y, wholesaleData.location.z))
if dist < 100.0 then
if IsEntityDead(PlayerPedId()) then
active = false
Bridge.Point.Remove('md-drugs:wholesaleZone'..Bridge.Framework.GetPlayerIdentifier())
TriggerServerEvent('md-drugs:server:getkilledFuckingNoob')
for k, v in pairs (peds) do
DeleteEntity(v)
end
peds = {}
break
end
end
if drugCount > settings.WholesaleAmbushTier2 then
attackerCount = 4
end
if drugCount > settings.WholesaleAmbushTier3 then
attackerCount = 5
timeout = timeout - 1
if timeout <= 0 then
break
end
end
local weaponTier = settings.WholesaleWeaponsTier1
if settings.WholesaleWeaponTiers then
if drugCount > settings.WholesaleAmbushTier3 then
weaponTier = settings.WholesaleWeaponsTier4
elseif drugCount > settings.WholesaleAmbushTier2 then
weaponTier = settings.WholesaleWeaponsTier3
elseif drugCount > settings.WholesaleAmbushTier1 then
weaponTier = settings.WholesaleWeaponsTier2
end
end
local playerPed = PlayerPedId()
local playerCoords = GetEntityCoords(playerPed, false)
end
function SetUpPeds(attackerCount, location)
local models = {"g_m_y_ballasout_01", "g_m_y_famdnf_01", "g_m_y_famca_01", "g_m_y_mexgoon_01", "g_m_y_salvagoon_01"}
for i = 1, attackerCount do
local angle = (360 / attackerCount) * i
local x = playerCoords.x + math.cos(math.rad(angle)) * 15
local y = playerCoords.y + math.sin(math.rad(angle)) * 15
local z = playerCoords.z
local x = location.x + math.cos(math.rad(angle)) * 15
local y = location.y + math.sin(math.rad(angle)) * 15
local z = location.z
local modelHash = GetHashKey(models[math.random(1, #models)])
ps.requestModel(modelHash)
local ped = CreatePed(4, modelHash, x, y, z, 0.0, true, false)
local weapon = weaponTier[math.random(1, #weaponTier)]
SetPedRelationshipGroupHash(ped, GetHashKey("HATES_PLAYER"))
SetPedCombatAttributes(ped, 46, true)
SetPedCombatAttributes(ped, 0, true)
SetPedCombatAttributes(ped, 5, true)
SetPedCombatAttributes(ped, 2, true)
local healthMultiplier = 1.0
if drugCount > settings.WholesaleAmbushTier3 then
healthMultiplier = 1.5
elseif drugCount > settings.WholesaleAmbushTier2 then
healthMultiplier = 1.3
elseif drugCount > settings.WholesaleAmbushTier1 then
healthMultiplier = 1.2
end
local baseHealth = GetEntityHealth(ped)
SetEntityHealth(ped, math.floor(baseHealth * healthMultiplier))
GiveWeaponToPed(ped, GetHashKey(weapon), 500, false, true)
TaskCombatPed(ped, playerPed, 0, 16)
local blip = AddBlipForEntity(ped)
SetBlipAsShortRange(blip, true)
SetBlipColour(blip, 1)
SetBlipScale(blip, 0.7)
SetEntityAsNoLongerNeeded(ped)
requestModel(modelHash)
peds[#peds+1] = CreatePed(4, modelHash, x, y, z, 0.0, true, true)
local weapon = math.random(1, 2) == 1 and "WEAPON_PISTOL" or "WEAPON_BAT"
SetPedRelationshipGroupHash(peds[#peds], GetHashKey("HATES_PLAYER"))
SetPedCombatAttributes(peds[#peds], 46, true)
SetPedCombatAttributes(peds[#peds], 0, true)
SetPedCombatAttributes(peds[#peds], 5, true)
SetPedCombatAttributes(peds[#peds], 2, true)
GiveWeaponToPed(peds[#peds], GetHashKey(weapon), 500, false, true)
TaskCombatPed(peds[#peds], PlayerPedId(), 0, 16)
end
local tierName = "Basic"
if drugCount > settings.WholesaleAmbushTier3 then
tierName = "Elite"
elseif drugCount > settings.WholesaleAmbushTier2 then
tierName = "Advanced"
elseif drugCount > settings.WholesaleAmbushTier1 then
tierName = "Medium"
end
ps.notify(string.format(ps.lang('wholesale.ambush'), attackerCount, tierName), 'error')
end
RegisterNetEvent("md-drugs:client:GetLocation", function(drug)
if miss then
SetNewWaypoint(drug.location.x, drug.location.y)
else
local loc = drug.location
local timer = 0
miss = true
SetNewWaypoint(loc.x, loc.y)
if settings.WholesaleShowEstimates and drug.count > 0 then
local bonusTiers = math.floor(drug.count / 10)
local potentialBonus = math.min(bonusTiers * settings.WholesaleQuantityBonus, settings.WholesaleMaxBonus)
local bonusPercent = math.floor(potentialBonus * 100)
local minPayout = math.floor(drug.price.min * (1 + potentialBonus))
local maxPayout = math.floor(drug.price.max * (1 + potentialBonus))
local totalMinPayout = drug.count * minPayout
local totalMaxPayout = drug.count * maxPayout
ps.notify(string.format(ps.lang('wholesale.count'), drug.count), 'info')
if bonusPercent > 0 then
ps.notify(string.format(ps.lang('wholesale.bonus'), bonusPercent), 'info')
end
ps.notify(string.format(ps.lang('wholesale.estimate'), totalMinPayout, totalMaxPayout), 'info')
elseif drug.count <= 0 then
ps.notify(ps.lang('wholesale.no_drugs'), 'error')
end
ps.requestModel("g_m_y_famdnf_01", settings.RequestModelTime)
local current = "g_m_y_famdnf_01"
local drugdealer = CreatePed(0, current,loc.x,loc.y,loc.z-1, 90.0, false, false)
FreezeEntityPosition(drugdealer, true)
SetEntityInvincible(drugdealer, true)
ps.entityTarget(drugdealer, {{
label = ps.lang('wholesale.targetBuyer'),
icon = "fas fa-eye",
action = function()
local luck = math.random(1,100)
if luck <= settings.SuccessfulChance then
if not ps.progressbar(ps.lang('wholesale.wholesaling'), 4000, 'uncuff') then return end
TriggerServerEvent("md-drugs:server:SuccessSale", drug)
else
ps.progressbar("Deal Going Bad", 4000, 'uncuff')
if settings.WholesaleAmbushEnabled then
SetUpPeds(drug.count)
end
if settings.WholesaleFailPoliceAlert > 0 then
local alertChance = math.random(1, 100)
if alertChance <= settings.WholesaleFailPoliceAlert then
PoliceCall(100)
end
end
TriggerServerEvent('md-drugs:server:CleanupWholesale')
RegisterNetEvent("md-drugs:client:GetLocation", function(wholesaleData)
if active then return end
if not wholesaleData then return end
active = true
SetNewWaypoint(wholesaleData.location.x, wholesaleData.location.y)
Bridge.Notify.SendNotify(Bridge.Language.Locale('wholesale.go_location'), 'success')
Bridge.Point.Register(
'md-drugs:wholesaleZone'..Bridge.Framework.GetPlayerIdentifier(),
vector3(wholesaleData.location.x, wholesaleData.location.y, wholesaleData.location.z),
50.0,
nil,
function(point, data)
if wholesaleData.ambush then
SetUpPeds(wholesaleData.attackerCount, wholesaleData.location)
loop(wholesaleData)
end
requestModel(GetHashKey("s_m_m_ammucountry"))
ped = CreatePed(4, GetHashKey("s_m_m_ammucountry"), wholesaleData.location.x, wholesaleData.location.y, wholesaleData.location.z, wholesaleData.location.w, false, true)
FreezeEntityPosition(ped, true)
TaskStartScenarioInPlace(ped, "WORLD_HUMAN_STAND_IMPATIENT", 0, true)
Bridge.Notify.SendNotify(Bridge.Language.Locale('wholesale.meet_dealer'), 'info')
Bridge.Target.AddLocalEntity(ped, {
{
label = Bridge.Language.Locale('wholesale.sell_drugs'),
icon = Bridge.Language.Locale('wholesale.sell_drugs_icon'),
action = function()
if not progressbar(Bridge.Language.Locale('wholesale.selling_drugs'), 15000) then return end
TriggerServerEvent('md-drugs:server:SuccessSale')
DeleteEntity(ped)
active = false
Bridge.Point.Remove('md-drugs:wholesaleZone'.. Bridge.Framework.GetPlayerIdentifier())
end
Wait(3000)
DeleteEntity(drugdealer)
miss = false
end
}},drugdealer )
repeat
Wait(1000)
timer = timer + 1
until #(GetEntityCoords(PlayerPedId()) - vector3(loc.x, loc.y, loc.z) ) < 4.0 or timer == settings.WholesaleTimeout + 1
PoliceCall(settings.AlertPoliceWholesale)
if timer <= settings.WholesaleTimeout or #(GetEntityCoords(PlayerPedId()) - vector3(loc.x, loc.y, loc.z) ) < 4.0 then
timer = 0
else
ps.notify(ps.lang('wholesale.tooLong'), 'error')
DeleteEntity(drugdealer)
TriggerServerEvent('md-drugs:server:CleanupWholesale')
if settings.WholesaleResetOnTimeout then
miss = false
end
end
end
}
})
targets[#targets+1] = ped
end,
function(point, data)
Bridge.Point.Remove('md-drugs:wholesaleZone'.. Bridge.Framework.GetPlayerIdentifier())
return data
end)
end)
RegisterNetEvent('md-drugs:client:WholesaleComplete', function(data)
local bonusText = ""
if data.bonus > 0 then
bonusText = " (+" .. data.bonus .. "% quantity bonus)"
end
ps.notify(string.format(ps.lang('wholesale.complete'), data.quantity, data.payout, bonusText), 'success')
RegisterNetEvent('md-drugs:client:MarkLocation', function(data)
SetNewWaypoint(data.x, data.y)
Bridge.Notify.SendNotify(Bridge.Language.Locale('wholesale.go_location'), 'success')
end)
+96 -65
View File
@@ -1,55 +1,67 @@
if not Config.Drugs['xtc'] then return end
local xtcpress = false
local locations = ps.callback('md-drugs:server:GetXtcLocs')
local locations = Config.XTC.Locations
local function getRecipeList(tbl)
local rec = {}
for m, d in pairs(tbl) do table.insert(rec, ps.getLabel(m) .. ' X ' .. d) end
return table.concat(rec, ', ')
local function getRecipeList(tbl, type)
local rec
if type == 'presses' then
rec = {'XTC FROM THE PREVIOUS TIER REQUIRED TO UPGRADE \n '}
else
rec = {'REQUIRED INGREDIENTS: \n '}
end
for m, d in pairs(tbl) do table.insert(rec, Bridge.Inventory.GetItemInfo(m).label .. ' X ' .. d .. ' \n ') end
return table.concat(rec, ' ')
end
ps.registerCallback('md-drugs:client:setpress', function(xtcData)
Bridge.Callback.Register('md-drugs:client:setpress', function(xtcData)
if xtcpress then
ps.notify(ps.lang('xtc.alreadyOut'), 'error')
Bridge.Notify.SendNotify(Bridge.Language.Locale('xtc.alreadyOut'), 'error')
return
end
local coords, head = StartRay2()
xtcpress = true
if not ps.progressbar(ps.lang('xtc.settingDown'), 4000, 'uncuff') then return end
if not progressbar(Bridge.Language.Locale('xtc.settingDown')) then return end
local press = CreateObject("bkr_prop_coke_press_01aa", coords.x, coords.y, coords.z, true, false, false)
PlaceObjectOnGroundProperly(press)
Freeze(press, true, head)
local options = {
{
icon = "fas fa-eye",
label = ps.lang('xtc.targetMake'),
icon = Bridge.Language.Locale('xtc.pressIcon'),
label = Bridge.Language.Locale('xtc.targetMake'),
distance = 2.0,
action = function()
local options = {}
for k, v in pairs(xtcData.recipes) do
local descript = getRecipeList(v.take)
local itemInfo = Bridge.Inventory.GetItemInfo(k)
options[#options + 1] = {
icon = ps.getImage(k),
title = ps.getLabel(k),
icon = itemInfo.image,
title = Bridge.Language.Locale(k),
description = descript,
action = function()
if not minigame() then ps.notify(ps.lang('xtc.fail'), "error") return end
if not ps.progressbar(ps.lang('xtc.making', ps.getLabel(k)), 4000, 'uncuff') then return end
onSelect = function()
if not minigame() then return end
if not progressbar(Bridge.Language.Locale('xtc.making', Bridge.Language.Locale(k))) then return end
TriggerServerEvent("md-drugs:server:makextc", k)
end,
distance = 2.0
}
end
ps.menu('XTC Recipes', 'XTC Recipes', options)
Bridge.Menu.Open({
id = 'XTC Recipes',
title = 'XTC Recipes',
options = options
})
end,
canInteract = function()
if xtcpress then return true end
end
},
{
icon = "fas fa-eye",
label = ps.lang('xtc.targetPickup'),
icon = Bridge.Language.Locale('xtc.pressIcon'),
label = Bridge.Language.Locale('xtc.targetPickup'),
action = function()
if not ps.progressbar(ps.lang('xtc.picking'), 5000, 'uncuff') then return end
if not progressbar(Bridge.Language.Locale('xtc.picking')) then return end
DeleteObject(press)
xtcpress = false
TriggerServerEvent("md-drugs:server:getpressback")
@@ -59,18 +71,19 @@ ps.registerCallback('md-drugs:client:setpress', function(xtcData)
end
},
}
ps.entityTarget(press, options)
Bridge.Target.AddLocalEntity(press, options)
targets[#targets+1] = press
return coords
end)
for k, v in pairs(locations.mdp2p) do
ps.boxTarget('mdp2p'..k, v.loc, {length = v.l, width = v.w, heading = v.rot}, {
Bridge.Target.AddBoxZone('mdp2p'..k, v.loc, v.size, v.rot or 180.0, {
{
icon = 'fa-solid fa-flask',
label = ps.lang('xtc.targetStealMDP2P'),
icon = Bridge.Language.Locale('xtc.mdp2pIcon'),
label = Bridge.Language.Locale('xtc.targetStealMDP2P'),
action = function()
if not minigame() then ps.notify(ps.lang('xtc.fail'), "error") return end
if not ps.progressbar(ps.lang('xtc.stealingMDP2P'), 4000, 'uncuff') then return end
if not minigame() then return end
if not progressbar(Bridge.Language.Locale('xtc.stealingMDP2P')) then return end
TriggerServerEvent("md-drugs:server:stealmdp2p", k)
end,
canInteract = function()
@@ -78,15 +91,16 @@ for k, v in pairs(locations.mdp2p) do
end
}
})
targets[#targets+1] = 'mdp2p'..k
end
for k, v in pairs(locations.isosafrole) do
ps.boxTarget('isosafrole'..k, v.loc, {length = v.l, width = v.w, heading = v.rot}, {
Bridge.Target.AddBoxZone('isosafrole'..k, v.loc, v.size, v.rot or 180.0, {
{
icon = 'fa-solid fa-flask',
label = ps.lang('xtc.targetStealIsosafrole'),
icon = Bridge.Language.Locale('xtc.isosafroleIcon'),
label = Bridge.Language.Locale('xtc.targetStealIsosafrole'),
action = function()
if not minigame() then ps.notify(ps.lang('xtc.fail'), "error") return end
if not ps.progressbar(ps.lang('xtc.stealingIsosafrole'), 4000, 'uncuff') then return end
if not minigame() then return end
if not progressbar(Bridge.Language.Locale('xtc.stealingIsosafrole')) then return end
TriggerServerEvent("md-drugs:server:stealisosafrole", k)
end,
canInteract = function()
@@ -94,16 +108,17 @@ for k, v in pairs(locations.isosafrole) do
end
}
})
targets[#targets+1] = 'isosafrole'..k
end
for k, v in pairs(locations.rawxtcloc) do
ps.boxTarget('xtcraw'..k, v.loc, {length = v.l, width = v.w, heading = v.rot}, {
Bridge.Target.AddBoxZone('xtcraw'..k, v.loc, v.size, v.rot or 180.0, {
{
icon = 'fa-solid fa-flask',
label = ps.lang('xtc.targetRaw'),
icon = Bridge.Language.Locale('xtc.rawIcon'),
label = Bridge.Language.Locale('xtc.targetRaw'),
action = function()
if not minigame() then ps.notify(ps.lang('xtc.fail'), "error") return end
if not ps.progressbar(ps.lang('xtc.makingRaw'), 4000, 'uncuff') then return end
if not minigame() then return end
if not progressbar(Bridge.Language.Locale('xtc.makingRaw')) then return end
TriggerServerEvent("md-drugs:server:makingrawxtc", k)
end,
canInteract = function()
@@ -111,80 +126,96 @@ for k, v in pairs(locations.rawxtcloc) do
end
}
})
targets[#targets+1] = 'xtcraw'..k
end
for k, v in pairs(locations.xtcpress) do
ps.requestModel(v.ped)
requestModel(v.ped)
local ped = CreatePed(0, v.ped, v.loc, false, false)
Freeze(ped, true, v.loc.w)
ps.entityTarget(ped, {
Bridge.Target.AddLocalEntity(ped, {
{
icon = 'fa-solid fa-flask',
label = ps.lang('xtc.getPress'),
action = function()
icon = Bridge.Language.Locale('xtc.pressIcon'),
label = Bridge.Language.Locale('xtc.getPress'),
onSelect = function()
local options = {}
local recipeList = ps.callback('md-drugs:server:getpressrecipes')
local recipeList = Config.XTC.Recipes.presses
for m, d in pairs(recipeList) do
if m == 'singlepress' then
local itemInfo = Bridge.Inventory.GetItemInfo(m)
options[#options + 1] = {
icon = ps.getImage(m),
title = ps.getLabel(m),
description = ps.lang('xtc.buySingle', d.cash),
action = function()
if not ps.progressbar(ps.lang('xtc.buyp'), 4000, 'uncuff') then return end
icon = itemInfo.image,
title = itemInfo.label,
description = Bridge.Language.Locale('xtc.buySingle', d.cash),
type = d.type,
onSelect = function()
if not progressbar(Bridge.Language.Locale('xtc.buyp')) then return end
TriggerServerEvent('md-drugs:server:buypress',k, m)
end,
}
else
local descript = getRecipeList(d.take)
local itemInfo = Bridge.Inventory.GetItemInfo(m)
local descript = getRecipeList(d.take, 'presses')
options[#options + 1] = {
icon = ps.getImage(m),
title = ps.getLabel(m),
icon = itemInfo.image,
title = itemInfo.label,
description = descript,
action = function()
if not ps.progressbar(ps.lang('xtc.buyp'), 4000, 'uncuff') then return end
type = d.type,
onSelect = function()
if not progressbar(Bridge.Language.Locale('xtc.buyp')) then return end
TriggerServerEvent("md-drugs:server:upgradepress", k, m)
end,
distance = 2.0
}
end
end
ps.menu('XTC Presses', 'XTC Presses', options)
table.sort(options, function(a, b) return a.type < b.type end)
Bridge.Menu.Open({
id = 'XTC Presses',
title = 'XTC Presses',
options = options
})
end,
canInteract = function() return handleGang(v.gang) end
}
})
targets[#targets+1] = ped
end
for k, v in pairs (locations.stamp) do
ps.boxTarget('xtcstamp'..k, v.loc, {length = v.l, width = v.w, heading = v.rot}, {
Bridge.Target.AddBoxZone('xtcstamp'..k, v.loc, v.size, v.rot or 180.0, {
{
icon = 'fa-solid fa-flask',
label = ps.lang('xtc.targetStamp'),
action = function()
icon = Bridge.Language.Locale('xtc.stampIcon'),
label = Bridge.Language.Locale('xtc.targetStamp'),
onSelect = function()
local item = {
{item = 'white_xtc', label = ps.getLabel('white_xtc'), color = 'white'},
{item = 'red_xtc', label = ps.getLabel('red_xtc'), color = 'red'},
{item = 'orange_xtc', label = ps.getLabel('orange_xtc'), color = 'orange'},
{item = 'blue_xtc', label = ps.getLabel('blue_xtc'), color = 'blue'},
{item = 'white_xtc', label = Bridge.Inventory.GetItemInfo('white_xtc').label, color = 'white'},
{item = 'red_xtc', label = Bridge.Inventory.GetItemInfo('red_xtc').label, color = 'red'},
{item = 'orange_xtc', label = Bridge.Inventory.GetItemInfo('orange_xtc').label, color = 'orange'},
{item = 'blue_xtc', label = Bridge.Inventory.GetItemInfo('blue_xtc').label, color = 'blue'},
}
local options = {}
for m, d in pairs (item) do
options[#options + 1] = {
icon = ps.getImage(d.item),
icon = Bridge.Inventory.GetItemInfo(d.item).image,
title = d.label,
description = ps.lang('xtc.stamp_desc', d.color),
description = Bridge.Language.Locale('xtc.stamp_desc', d.color),
action = function()
if not minigame() then ps.notify(ps.lang('xtc.fail'), "error") return end
if not ps.progressbar(ps.lang('xtc.stamping', d.label), 4000, 'uncuff') then return end
if not minigame() then return end
if not progressbar(Bridge.Language.Locale('xtc.stamping', d.label)) then return end
TriggerServerEvent("md-drugs:server:stamp", k, d.color)
end,
distance = 2.0
}
end
ps.menu('Stamp Pills', 'Stamp Pills', options)
Bridge.Menu.Open({
id = 'XTC Stamp',
title = 'XTC Stamp',
options = options
})
end,
canInteract = function() return handleGang(v.gang) end
}
})
targets[#targets+1] = 'xtcstamp'..k
end
-27
View File
@@ -1,27 +0,0 @@
function loadFile(filePath)
local resourceName = 'md-drugs'
local fullScript = LoadResourceFile(resourceName, filePath)
if not fullScript then
ps.error("Error: Failed to load module '" .. filePath .. "' from resource '" .. resourceName .. "'.")
return false
end
local chunk, err = load(fullScript, filePath, "t")
if not chunk then
ps.error("Error loading Lua chunk from '" .. filePath .. "': " .. tostring(err))
return false
end
local success, execErr = pcall(chunk)
if not success then
ps.error("Error executing Lua chunk from '" .. filePath .. "': " .. tostring(execErr))
return false
end
return true
end
for scriptName, toggle in pairs(Config.Drugs) do
if not toggle then goto continue end
loadFile('client/' .. scriptName .. '.lua')
::continue::
end
+8 -9
View File
@@ -3,23 +3,22 @@ author "mustache_dom"
description "drugs by mustache dom"
fx_version "cerulean"
game "gta5"
version '4.0.7'
version '4.0.8'
client_scripts {
'client/functions.lua',
'client/plantSpawns.lua',
'clientRun.lua',
'client/**.lua',
}
server_scripts {
'server/functions.lua',
'server/plantSpawns.lua',
'serverRun.lua',
'@oxmysql/lib/MySQL.lua',
'server/functions.lua',
'server/**.lua',
}
shared_scripts {
'@ox_lib/init.lua',
'shared/**.lua',
'@ox_lib/init.lua',
'shared/config.lua',
'shared/DrugData/*.lua',
}
lua54 'yes'
@@ -27,5 +26,5 @@ lua54 'yes'
files {
'client/**.lua',
'server/**.lua',
'locales/**.lua'
'locales/**.json'
}
-267
View File
@@ -1,267 +0,0 @@
Lang = {}
Lang.Catches = {
notIn = 'Yo! You ain’t in the right SPOT, let’s gooooo!',
needItems = 'Whoa! You’re missing the ESSENTIALS, come on!',
notEnoughMoney = 'Uh-oh! Not enough CASH, gotta grind!',
buySuccess = 'BOOM! You copped %s %s for $%s, YEAH!',
itemMissings = 'CHECK IT! You need: %s',
itemNeeded = 'Grab that %s, LET’S GOOOO!',
cooldown = 'Hold up! Chill for a sec, speed racer!',
invalidItem = 'Uh-uh! That ain’t sold HERE, fam!',
onCooldownWarn = '%s tried to run %s but cooldown, BOOM!',
noCops = 'Not enough COPS online, can’t roll out!',
}
Lang.coke = {
targetPick = 'GRAB that coca leaf, LET’S GO!',
picking = 'Snatching those leaves, wooo!',
targetMakePow = 'Turn it into POWDER, party time!',
noleaf = 'Need a leaf first, LET’S HUSTLE!',
makePow = 'Choppin’ leaves into POWER, YA!',
targetCutCoke = 'Slice that cocaine, woohoo!',
targetBagCoke = 'Bag it UP, fam!',
teleIn = 'Step into the LAB, LIGHT IT UP!',
teleOut = 'Exit the lab, keep it moving!',
needBakingSoda = 'Baking soda NEEDED, come on!',
}
Lang.Cornerselling = {
inVeh = 'Yo, stranger alert! Stay safe!',
selling = 'Flippin’ %s for $%s, CASH TIME!',
deny = 'NAH, PASS THAT OFFER!',
wait = 'Hold tight, waiting on the crowd!',
nodrugs = 'No stock? Get back in the game!',
searching = 'Scanning for buyers, keep it HYPE!',
targetTakeBack = 'Grab back the goods, LET’S GO!',
targetSell = 'Sell %s of %s for $%s, PARTY!',
targetDeny = 'Decline that weak offer!',
stopped = 'You ain’t selling? COME ON!',
start = 'GO show your moves, LEGEND!',
gotRobbed = 'Yo, you got JACKED!',
gotBack = 'Reclaimed the goods, YEAH!',
notEnough = 'Not enough stock, HUSTLE UP!',
comDes = 'Sell that heat on the corner, LET’S GO!',
}
Lang.crack = {
targetMake = 'Cook that crack, turn it UP!',
cook = 'Heating it up, PARTY MODE!',
targetBag = 'Bag it tight, woohoo!',
bag = 'Packing it like a BOSS!',
}
Lang.Deliveries = {
targetGetDel = 'Grab a delivery mission, LET’S GO!',
targetOpenShop = 'Open that dealer shop, LIGHT IT UP!',
shopHeader = 'Dealer Shop, TIME TO SHINE!',
targetHandOff = 'Hand off the package, PARTY TIME!',
delivering = 'Delivering to the dealer, let’s get it!',
alreadyDelivering = 'Already moving that package, nonstop!',
slowAf = 'TOO SLOW! PICK IT UP!',
newDealerHelp = {
help = 'Place a dealer, LIGHT IT UP!',
name = 'Dealer name, YO!',
timeMin = 'Min time, stay hyped!',
timeMax = 'Max time, keep moving!',
},
DealerExists = 'Dealer already in the house, BOOM!',
deleteDealer = {
help = 'Remove a dealer, let’s GOO!',
name = 'Dealer name, YEAH!',
},
deleteDealerSuccess = 'Dealer deleted, PARTY ON!',
deleteDealerFail = 'Failed? Try again, NEVER STOP!',
}
Lang.heroin = {
targetPick = 'Grab that heroin, LIGHT IT UP!',
picking = 'Picking heroin, GET IT!',
targetCook = 'Cook it up, TURN IT UP!',
pbCook = 'Cooking that fire, WOO!',
targetPickup = 'Pick up the lab, LET’S GO!',
pbPickup = 'Picking up the lab, HYPE!',
targetClean = 'Clean that lab, SHINE!',
pbClean = 'Cleaning the lab, YEAH!',
targetDry = 'Dry out the plant, KEEP IT MOVIN’!',
pbDry = 'Drying plant, PARTY MODE!',
targetCutHeroin = 'Cut that heroin, BOOM!',
pbCutHeroin = 'Cutting it smooth, YEAH!',
targetBuyKit = 'Buy your lab kit, GET IT!',
pbBuyKit = 'Buying that kit, HYPE!',
tableout = 'Table’s already out, LIGHT IT UP!',
placing = 'Placing table down, WOO!',
targetFill = 'Fill that syringe, LET’S GOOOO!',
pbFill = 'Filling up, HYPE ENERGY!',
hasKitAlready = 'Kit already in play, BOOM!',
notEnoughMoney = 'Need $%s cash, hustle up!',
placedKit = 'Placed your lab kit, PARTY TIME!',
failed = 'Failed? Shake it off, KEEP MOVIN’!',
}
Lang.lean = {
stealFromTruck = 'Snag the truck, GET HYPED!',
startMission = 'Start lean mission, LET’S GO!',
notOnRun = 'Not on a run yet, COME ON!',
alreadyChasing = 'Already chasing a truck, WOO!',
}
Lang.lsd = {
targetHeat = 'Heating LSD, TURN IT UP!',
heating = 'Heating it UP, PARTY TIME!',
targetRefine = 'Refine that acid, LET’S GOOOO!',
refining = 'Refining, keep it lit!',
targetDipping = 'Dip those tabs, HYPE!',
dipping = 'Dipping, WOO WOO!',
targetPickup = 'Pick up the lab kit, LET’S GO!',
packup = 'Packing up, PARTY MODE!',
targetClean = 'Clean the lab kit, LIGHT IT UP!',
needCleaning = 'Need the cleaning kit, COME ON!',
cleaning = 'Cleaning, keep it hype!',
targetLys = 'Steal lysergic acid, BOOM!',
stealLys = 'Stealing, GET IT!',
targetDie = 'Snag diethylamide, PARTY TIME!',
stealDie = 'Stealing that fire, LET’S GOOOO!',
targetBuyTab = 'Buy tab paper, WOO!',
targetBuyKit = 'Buy LSD lab kit, HYPE ENERGY!',
alreadyOwn = 'Already got this, BOOM!',
buyingKit = 'Buying kit, PARTY ON!',
tableout = 'Table out already, LET’S GO!',
placing = 'Placing down, KEEP IT LIT!',
failed = 'Failed? Shake it off, PARTY TIME!',
}
Lang.mesc = {
targetPick = 'Grab that cactus, WOO!',
picking = 'Picking cactus, LET’S GOOOO!',
targetDry = 'Dry the cactus, HYPE!',
dry = 'Drying cactus, PARTY MODE!',
}
Lang.meth = {
alreadyChasing = 'Chasing a truck already, WOO!',
targetStealFromCar = 'Snag the meth car, LIGHT IT UP!',
targetHeist = 'Start meth mission, GET HYPED!',
started = 'Meth’s cooking, BOOM!',
increaseHeat = 'Turn up the heat, PARTY TIME!',
targetBag = 'Bag meth, HYPE ENERGY!',
targetCook = 'Cook meth, LET’S GOOOO!',
targetGrabTray = 'Grab the tray, WOO!',
targetHeat = 'Adjust those dials, KEEP IT LIT!',
targetSmash = 'Smash the tray, BOOM!',
targetStealEPH = 'Steal ephedrine, GET IT!',
stealingEPH = 'Stealing it, PARTY ON!',
targetStealACE = 'Snag acetone, WOO!',
stealingACE = 'Stealing acetone, LET’S GOOOO!',
notOnRun = 'Not on a meth run, COME ON!',
onCooldown = 'Cooldown in effect, CHILL!',
teleIn = 'Step into the lab, HYPE!',
teleOut = 'Exit the lab, PARTY MODE!',
}
Lang.oxy = {
ditchCar = 'Hot van? Leave it, WOO!',
targetHandoff = 'Hand off the package, LET’S GO!',
handingoff = 'Handing it off, HYPE ENERGY!',
emptyHands = 'Not carrying anything, GET MOVING!',
targetPay = 'Rent oxy van, PARTY TIME!',
keys = 'Keys are in the van, BOOM!',
targetGetPackage = 'Grab the package, WOO!',
alreadyCarrying = 'Already got a package, KEEP IT LIT!',
paid = 'Paid $%s, LET’S GOOOO!',
notOn = 'Not on a route, HYPE!',
}
Lang.pharma = {
input = {
header = 'Who’s getting the prescription? LET’S GO!',
title1 = 'Player name, GET HYPED!',
title2 = 'Prescription, PARTY TIME!',
},
write = 'Writing prescription, WOO!',
opening = 'Opening the bottle, LIGHT IT UP!',
targetFill = 'Fill that prescription, HYPE!',
fill = 'Filling up, LET’S GOOOO!',
canceled = 'Canceled? Shake it off, PARTY MODE!',
unbottle = 'Opened the bottle, BOOM!',
}
Lang.shrooms = {
targetPick = 'Pick those shrooms, WOO!',
picking = 'Picking shrooms, LET’S GOOOO!',
eat = 'Eating shrooms, PARTY TIME!',
cancel = 'Decided not to? HYPE!',
took = 'You took some shrooms! LET’S GO!',
}
Lang.weed = {
targetPick = 'Grab that weed, WOO!',
picking = 'Picking weed, PARTY MODE!',
targetDry = 'Dry the weed, LET’S GOOOO!',
noDry = 'Need wet weed first, HYPE ENERGY!',
wait = 'Waiting for it to dry... KEEP IT LIT!',
take = 'Ready to take weed, BOOM!',
targetDryed = 'Pickup that weed, PARTY TIME!',
teleportIn = 'Enter the grow house, HYPE!',
teleportOut = 'Leave the grow house, WOO!',
dabs = 'Doing some dabs, LET’S GOOOO!',
bluntWrap = 'Dipping syrup to make %s, PARTY MODE!',
rollBlunt = 'Rolling a %s, BOOM!',
targetSales = 'Buy from dealer, HYPE!',
buying = 'Buying %s from dealer, WOO!',
itemDoesntExist = 'Item doesn’t exist here, LET’S GO!',
needItem = 'Need a %s for this, PARTY TIME!',
crackBlunt = 'Cracking open a blunt, HYPE ENERGY!',
}
Lang.wholesale = {
alreadyWholesale = 'Already wholesaling, WOO!',
targetBuyer = 'Talk to the buyer, LET’S GOOOO!',
wholesaling = 'Wholesaling drugs, PARTY MODE!',
uhoh = 'Buyer’s getting sketchy, HYPE!',
tooLong = 'Buyer waited too long, WOO!',
notEnoughCops = 'Not enough cops, KEEP IT LIT!',
count = 'Quantity detected: %s, BOOM!',
bonus = 'Quantity bonus: +%s%%, HYPE!',
estimate = 'Estimated payout: $%s - $%s, PARTY TIME!',
no_drugs = 'No drugs to sell, LET’S GOOOO!',
ambush = 'AMBUSH! %s attackers with %s weapons coming! WOO!',
complete = 'Sold %s items for $%s%s, HYPE!',
min_quantity = 'Gotta sell at least %s to wholesale, PARTY MODE!',
deal_failed_cleanup = 'Deal failed? Try again, KEEP IT LIT!',
}
Lang.xtc = {
alreadyOut = 'Press is out already, WOO!',
settingDown = 'Setting down the press, LET’S GO!',
noPressOut = 'No press out? HYPE!',
targetMake = 'Press pills, PARTY TIME!',
making = 'Pressing a %s, BOOM!',
targetPickup = 'Pick up press, HYPE!',
picking = 'Picking up press, LET’S GOOOO!',
targetStealMDP2P = 'Steal MDP2P, PARTY MODE!',
stealingMDP2P = 'Stealing it, WOO!',
fail = 'Damn dude, you suck, KEEP IT LIT!',
targetStealIsosafrole = 'Steal isosafrole, HYPE!',
stealingIsosafrole = 'Stealing it, LET’S GOOOO!',
targetRaw = 'Make raw XTC, PARTY TIME!',
makingRaw = 'Making raw XTC, WOO!',
getPress = 'Get the press, LET’S GOOOO!',
buySingle = 'Buy single press for $%s, HYPE!',
buyp = 'Buying press, BOOM!',
targetStamp = 'Stamp XTC, PARTY MODE!',
stamp_desc = 'Stamp %s pills, WOO!',
stamping = 'Stamping %s pills, LET’S GO!',
noPills = 'No unstamped pills? HYPE!',
}
Lang.merchant = {
targetOpen = 'Open merchant menu, LET’S GOOOO!',
}
Lang.Whippit = {
targetShop = 'Open Whippit Shop, PARTY TIME!',
needBalloon = 'Need a balloon for this, HYPE!',
needCanister = 'Need a canister for this, WOO!',
shopHeader = 'Whippit Shop, LET’S GO!',
}
return Lang
-268
View File
@@ -1,268 +0,0 @@
Lang = {}
Lang.Catches = {
notIn = 'Nejste na správném místě',
needItems = 'Nemáte potřebné předměty',
notEnoughMoney = 'Jste příliš chudí',
buySuccess = 'Koupili jste %s %s za $%s',
itemMissings = 'Potřebujete %s',
itemNeeded = 'Potřebujete %s',
cooldown = 'Zpomalte, rychlíku',
invalidItem = 'Tento předmět zde není k prodeji',
onCooldownWarn = '%s se pokusil spustit událost %s \n během cooldownu',
noCops = 'Není dostatek policistů online',
}
Lang.coke = {
targetPick = 'Sbírat listy koky',
picking = 'Sbírání listů koky',
targetMakePow = 'Vyrobit kokainový prášek',
noleaf = 'Potřebujete list koky',
makePow = 'Drcení listů na prášek',
targetCutCoke = 'Řezat kokain',
targetBagCoke = 'Balicí kokain',
teleIn = 'Vstoupit do laboratoře',
teleOut = 'Opustit laboratoř',
needBakingSoda = 'Potřebujete jedlou sodu pro tuto akci',
}
Lang.Cornerselling = {
inVeh = 'Nebezpečí od cizinců!',
selling = 'Prodávání %s za $%s',
deny = 'Sakra, tohle nabídka ne!',
wait = 'Čekání na zákazníka',
nodrugs = 'Nemáte žádné drogy na prodej',
searching = 'Hledání zákazníků v okolí',
targetTakeBack = 'Vzít zpět drogy',
targetSell = 'Prodat %s z %s za $%s',
targetDeny = 'Odmítnout nabídku',
stopped = 'Vaše líné zadky ani neumí prodávat drogy!',
start = 'Jděte udělat svou mámu pyšnou',
gotRobbed = 'Dostali jste se okradeni, frajere!',
gotBack = 'Dostali jste své věci zpět!',
notEnough = 'Nemáte dostatek tohoto předmětu',
comDes = 'Prodávejte věci na rohu'
}
Lang.crack = {
targetMake = 'Vařit crack',
cook = 'Vaření cracku',
targetBag = 'Balicí crack',
bag = 'Balení cracku',
}
Lang.Deliveries = {
targetGetDel = 'Získat doručovací misi',
targetOpenShop = 'Otevřít obchod dealera',
shopHeader = 'Obchod dealera',
targetHandOff = 'Předat zásilku',
delivering = 'Předávání balíčku drogovému dealerovi',
alreadyDelivering = 'Už doručujete balíček',
slowAf = 'Trvalo vám to příliš dlouho!',
newDealerHelp = {
help = 'Umístit dealera',
name = 'Jméno dealera',
timeMin = 'Minimální čas',
timeMax = 'Maximální čas'
},
DealerExists = 'Dealer již existuje',
deleteDealer = {
help = 'Smazat dealera',
name = 'Jméno dealera',
},
deleteDealerSuccess = 'Dealer smazán',
deleteDealerFail = 'Selhalo smazání dealera',
}
Lang.heroin = {
targetPick = 'Sbírat heroin',
picking = 'Sbírání heroinu',
targetCook = 'Vařit heroin',
pbCook = 'Vaření heroinu',
targetPickup = 'Zvednout laboratoř',
pbPickup = 'Zvedání laboratoře',
targetClean = 'Čistit laboratoř',
pbClean = 'Čištění laboratoře',
targetDry = 'Sušit rostlinu',
pbDry = 'Sušení rostliny',
targetCutHeroin = 'Řezat heroin',
pbCutHeroin = 'Řezání heroinu',
targetBuyKit = 'Koupit heroinovou laboratorní sadu',
pbBuyKit = 'Nákup heroinové laboratorní sady',
tableout = 'Už máte stůl venku',
placing = 'Pokládání stolu',
targetFill = 'Naplňovat stříkačku',
pbFill = 'Plnění stříkačky',
hasKitAlready = 'Už máte heroinovou laboratorní sadu',
notEnoughMoney = 'Potřebujete $%s v hotovosti pro tento nákup',
placedKit = 'Umístili jste svou heroinovou laboratorní sadu',
failed = 'Nepodařilo se vám vyrobit heroin a ztratili jste suroviny',
}
Lang.lean = {
stealFromTruck = 'Krást z náklaďáku',
startMission = 'Spustit misi Lean',
notOnRun = 'Nejste na misi Lean',
alreadyChasing = 'Už pronásledujete náklaďák',
}
Lang.lsd = {
targetHeat = 'Zahřívat LSD',
heating = 'Zahřívání LSD',
targetRefine = 'Rafinovat kyselinu',
refining = 'Rafinace kyseliny',
targetDipping = 'Namáčet tablety',
dipping = 'Namáčení tablet',
targetPickup = 'Zvednout laboratorní sadu',
packup = 'Balení laboratorní sady',
targetClean = 'Čistit laboratorní sadu',
needCleaning = 'Potřebujete čisticí sadu k vyčištění laboratoře',
cleaning = 'Čištění laboratorní sady',
targetLys = 'Krást lysergickou kyselinu',
stealLys = 'Krácení lysergické kyseliny',
targetDie = 'Krást diethylamid',
stealDie = 'Krácení diethylamidu',
targetBuyTab = 'Koupit papír na tablety',
targetBuyKit = 'Koupit LSD laboratorní sadu',
alreadyOwn = 'Tento předmět již vlastníte',
buyingKit = 'Nákup LSD laboratorní sady',
tableout = 'Už máte stůl venku',
placing = 'Pokládání laboratorní sady!',
failed = 'Jste hrozní ve výrobě drog',
}
Lang.mesc = {
targetPick = 'Sbírat kaktus',
picking = 'Sbírání kaktusu',
targetDry = 'Sušit kaktus',
dry = 'Sušení kaktusu',
}
Lang.meth = {
alreadyChasing = 'Už pronásledujete auto',
targetStealFromCar = 'Krást z meth auta',
targetHeist = 'Spustit meth misi',
started = 'Už vaříte meth',
increaseHeat = 'Zvýšili jste teplo',
targetBag = 'Balicí meth',
targetCook = 'Vařit meth',
targetGrabTray = 'Vzít tác methu',
targetHeat = 'Nastavit ovladače',
targetSmash = 'Rozdrtit tác',
targetStealEPH = 'Krást ephedrin',
stealingEPH = 'Krácení ephedrinu',
targetStealACE = 'Krást aceton',
stealingACE = 'Krácení acetonu',
notOnRun = 'Nejste na meth misi',
onCooldown = 'Jste na cooldownu',
teleIn = 'Vstoupit do laboratoře',
teleOut = 'Opustit laboratoř',
}
Lang.oxy = {
ditchCar = 'Dodávka je horká, nechte ji někde',
targetHandoff = 'Předat balíček',
handingoff = 'Předávání balíčku',
emptyHands = 'Nic nenosíte',
targetPay = 'Pronajmout oxy dodávku',
keys = 'Klíče jsou v dodávce',
targetGetPackage = 'Vzít balíček',
alreadyCarrying = 'Už nesete balíček',
paid = 'Zaplatili jste $%s za pronájem dodávky',
notOn = 'Nejste na trase',
}
Lang.pharma = {
input = {
header = 'Komu předepsat lék?',
title1 = 'Jméno hráče',
title2 = 'Předpis',
},
write = 'Psaní předpisu',
opening = 'Otevírání lahvičky s předpisem',
targetFill = 'Vyplnit předpis',
fill = 'Vyplňování předpisu',
canceled = 'Zrušili jste předpis',
unbottle = 'Otevřeli jste lahvičku',
}
Lang.shrooms = {
targetPick = 'Sbírat houby',
picking = 'Sbírání hub',
eat = 'Jídlo hub',
cancel = 'Rozhodli jste se nebrat houby',
took = 'Vzali jste si nějaké houby!'
}
Lang.weed = {
targetPick = 'Sbírat marihuanu',
picking = 'Sbírání marihuany',
targetDry = 'Sušit marihuanu',
noDry = 'Potřebujete mokrou marihuanu pro tuto akci',
wait = 'Čekání, až marihuana uschne...',
take = 'Připraveni vzít marihuanu',
targetDryed = 'Zvednout marihuanu',
teleportIn = 'Vstoupit do pěstírny',
teleportOut = 'Opustit pěstírnu',
dabs = 'Dělání dabů',
bluntWrap = 'Namáčení sirupu pro výrobu %s',
rollBlunt = 'Točení %s',
targetSales = 'Koupit od dealera',
buying = 'Nákup %s od dealera',
itemDoesntExist = 'Tento předmět zde neexistuje',
needItem = 'Potřebujete %s pro tuto akci',
crackBlunt = 'Rozlomení jointu'
}
Lang.wholesale = {
alreadyWholesale = 'Už prodáváte velkoobchodně',
targetBuyer = 'Promluvit si s kupcem',
wholesaling = 'Velkoobchodní prodej drog',
uhoh = 'Kupce začíná být podezřelý',
tooLong = 'Kupce čekal příliš dlouho',
notEnoughCops = 'Není dostatek policistů na službě',
count = 'Zjištěné množství: %s',
bonus = 'Bonus množství: +%s%%',
estimate = 'Odhadovaný výdělek: $%s - $%s',
no_drugs = 'Nemáte žádné z těchto drog na prodej',
ambush = 'Přepadení! %s útočníků s %s zbraněmi se blíží!',
complete = 'Prodáno %s kusů za $%s%s',
min_quantity = 'Musíte prodat alespoň %s kusů pro velkoobchod',
deal_failed_cleanup = 'Obchod selhal – můžete to zkusit znovu'
}
Lang.xtc = {
alreadyOut = 'Už máte lis venku',
settingDown = 'Pokládání lisu',
noPressOut = 'Nemáte žádný lis venku',
targetMake = 'Lisovat pilulky',
making = 'Lisování %s',
targetPickup = 'Zvednout lis',
picking = 'Zvedání lisu',
targetStealMDP2P = 'Krást MDP2P',
stealingMDP2P = 'Krácení MDP2P',
fail = 'Sakra, jste v tom hrozní',
targetStealIsosafrole = 'Krást isosafrol',
stealingIsosafrole = 'Krácení isosafrolu',
targetRaw = 'Vyrobit surové XTC',
makingRaw = 'Výroba surového XTC',
getPress = 'Získat lis',
buySingle = 'Koupit jednotlivý lis za $%s',
buyp = 'Nákup lisu',
targetStamp = 'Razítkovat XTC',
stamp_desc = 'Razítkování %s pilulek',
stamping = 'Razítkování %s pilulek',
noPills = 'Nemáte žádné neoznačené pilulky'
}
Lang.merchant = {
targetOpen = 'Otevřít obchodní nabídku',
}
Lang.Whippit = {
targetShop = 'Otevřít obchod Whippit',
needBalloon = 'Potřebujete balón pro tuto akci',
needCanister = 'Potřebujete kanister pro tuto akci',
shopHeader = 'Obchod Whippit',
}
return Lang
-268
View File
@@ -1,268 +0,0 @@
Lang = {}
Lang.Catches = {
notIn = 'Du bist nicht am richtigen Ort',
needItems = 'Du hast nicht die benötigten Gegenstände',
notEnoughMoney = 'Du bist zu pleite',
buySuccess = 'Du hast %s %s für $%s gekauft',
itemMissings = 'Du brauchst %s',
itemNeeded = 'Du brauchst %s',
cooldown = 'Langsam, Speed Racer',
invalidItem = 'Dieser Artikel wird hier nicht verkauft',
onCooldownWarn = '%s hat versucht, Event %s auszuführen \n während Cooldown',
noCops = 'Nicht genug Polizisten online',
}
Lang.coke = {
targetPick = 'Kokablätter pflücken',
picking = 'Pflücke Kokablätter',
targetMakePow = 'Kokainpulver herstellen',
noleaf = 'Du brauchst ein Kokablatt',
makePow = 'Zerkleinere Blätter zu Pulver',
targetCutCoke = 'Kokain schneiden',
targetBagCoke = 'Kokain verpacken',
teleIn = 'Betrete das Labor',
teleOut = 'Verlasse das Labor',
needBakingSoda = 'Du brauchst Backpulver dafür',
}
Lang.Cornerselling = {
inVeh = 'Fremdengefahr!',
selling = 'Verkaufe %s für $%s',
deny = 'Fick das Angebot',
wait = 'Warte auf Kunden',
nodrugs = 'Du hast keine Drogen zum Verkaufen',
searching = 'Suche nach Kunden in der Nähe',
targetTakeBack = 'Drogen zurücknehmen',
targetSell = 'Verkaufe %s von %s für $%s',
targetDeny = 'Angebot ablehnen',
stopped = 'Dein fauler Arsch kann nicht mal Drogen verkaufen!',
start = 'Mach deine Mama stolz',
gotRobbed = 'Du wurdest ausgeraubt, Nerd!',
gotBack = 'Du hast deine Sachen zurückbekommen!',
notEnough = 'Du hast nicht genug davon',
comDes = 'Verkaufe Sachen an der Ecke'
}
Lang.crack = {
targetMake = 'Crack kochen',
cook = 'Koche Crack',
targetBag = 'Crack verpacken',
bag = 'Verpacke Crack',
}
Lang.Deliveries = {
targetGetDel = 'Liefermission annehmen',
targetOpenShop = 'Dealer-Shop öffnen',
shopHeader = 'Dealer-Shop',
targetHandOff = 'Lieferung übergeben',
delivering = 'Übergebe das Paket an den Dealer',
alreadyDelivering = 'Du lieferst bereits ein Paket aus',
slowAf = 'Du warst zu langsam!',
newDealerHelp = {
help = 'Platziere einen Dealer',
name = 'Dealer-Name',
timeMin = 'Mindestzeit',
timeMax = 'Maximalzeit'
},
DealerExists = 'Dealer existiert bereits',
deleteDealer = {
help = 'Lösche einen Dealer',
name = 'Dealer-Name',
},
deleteDealerSuccess = 'Dealer gelöscht',
deleteDealerFail = 'Fehler beim Löschen des Dealers',
}
Lang.heroin = {
targetPick = 'Heroin sammeln',
picking = 'Sammle Heroin',
targetCook = 'Heroin kochen',
pbCook = 'Koche Heroin',
targetPickup = 'Labor abholen',
pbPickup = 'Hebe Labor auf',
targetClean = 'Labor reinigen',
pbClean = 'Reinige Labor',
targetDry = 'Pflanze trocknen',
pbDry = 'Trockne Pflanze',
targetCutHeroin = 'Heroin schneiden',
pbCutHeroin = 'Schneide Heroin',
targetBuyKit = 'Heroin-Laborkit kaufen',
pbBuyKit = 'Kaufe Heroin-Laborkit',
tableout = 'Du hast bereits einen Tisch draußen',
placing = 'Stelle Tisch auf',
targetFill = 'Spritze füllen',
pbFill = 'Fülle Spritze',
hasKitAlready = 'Du besitzt bereits ein Heroin-Laborkit',
notEnoughMoney = 'Du brauchst $%s Bargeld dafür',
placedKit = 'Du hast dein Heroin-Laborkit aufgestellt',
failed = 'Du hast beim Heroin-Kochen versagt und die Zutaten verloren',
}
Lang.lean = {
stealFromTruck = 'Vom LKW stehlen',
startMission = 'Lean-Mission starten',
notOnRun = 'Du bist nicht auf einer Lean-Mission',
alreadyChasing = 'Du verfolgst bereits einen LKW',
}
Lang.lsd = {
targetHeat = 'LSD erhitzen',
heating = 'Erhitze LSD',
targetRefine = 'Säure raffinieren',
refining = 'Raffiniere die Säure',
targetDipping = 'Tabs eintauchen',
dipping = 'Tauche Tabs ein',
targetPickup = 'Laborkit abholen',
packup = 'Packe Laborkit ein',
targetClean = 'Laborkit reinigen',
needCleaning = 'Du brauchst ein Reinigungsset, um das Labor zu reinigen',
cleaning = 'Reinige Laborkit',
targetLys = 'Lysergsäure stehlen',
stealLys = 'Stehle Lysergsäure',
targetDie = 'Diethylamid stehlen',
stealDie = 'Stehle Diethylamid',
targetBuyTab = 'Tab-Papier kaufen',
targetBuyKit = 'LSD-Laborkit kaufen',
alreadyOwn = 'Du besitzt diesen Gegenstand bereits',
buyingKit = 'Kaufe LSD-Laborkit',
tableout = 'Du hast bereits einen Tisch draußen',
placing = 'Stelle Laborkit auf!',
failed = 'Du bist schlecht im Drogenmachen',
}
Lang.mesc = {
targetPick = 'Kaktus pflücken',
picking = 'Pflücke Kaktus',
targetDry = 'Kaktus trocknen',
dry = 'Trockne Kaktus',
}
Lang.meth = {
alreadyChasing = 'Du verfolgst bereits ein Auto',
targetStealFromCar = 'Vom Meth-Auto stehlen',
targetHeist = 'Meth-Mission starten',
started = 'Du kochst bereits Meth',
increaseHeat = 'Du hast die Hitze erhöht',
targetBag = 'Meth verpacken',
targetCook = 'Meth kochen',
targetGrabTray = 'Meth-Behälter nehmen',
targetHeat = 'Regler einstellen',
targetSmash = 'Behälter zerschlagen',
targetStealEPH = 'Ephedrin stehlen',
stealingEPH = 'Stehle Ephedrin',
targetStealACE = 'Aceton stehlen',
stealingACE = 'Stehle Aceton',
notOnRun = 'Du bist nicht auf einer Meth-Mission',
onCooldown = 'Du bist im Cooldown',
teleIn = 'Betrete das Labor',
teleOut = 'Verlasse das Labor',
}
Lang.oxy = {
ditchCar = 'Der Van ist heiß, lass ihn irgendwo stehen',
targetHandoff = 'Paket übergeben',
handingoff = 'Übergebe das Paket',
emptyHands = 'Du trägst nichts',
targetPay = 'Oxy-Van mieten',
keys = 'Die Schlüssel liegen im Van',
targetGetPackage = 'Paket nehmen',
alreadyCarrying = 'Du trägst bereits ein Paket',
paid = 'Du hast $%s bezahlt, um den Van zu mieten',
notOn = 'Du bist nicht auf einer Route',
}
Lang.pharma = {
input = {
header = 'Wem ein Rezept ausstellen?',
title1 = 'Spielername',
title2 = 'Rezept',
},
write = 'Schreibe Rezept',
opening = 'Öffne Rezeptflasche',
targetFill = 'Rezept einlösen',
fill = 'Löse Rezept ein',
canceled = 'Du hast das Rezept abgebrochen',
unbottle = 'Du hast die Flasche geöffnet',
}
Lang.shrooms = {
targetPick = 'Pilze sammeln',
picking = 'Sammle Pilze',
eat = 'Iss Pilze',
cancel = 'Habe mich entschieden, keine Pilze zu nehmen',
took = 'Du hast Pilze genommen!'
}
Lang.weed = {
targetPick = 'Weed pflücken',
picking = 'Pflücke Weed',
targetDry = 'Weed trocknen',
noDry = 'Du brauchst nasses Weed dafür',
wait = 'Warte, bis das Weed trocknet...',
take = 'Bereit, Weed zu nehmen',
targetDryed = 'Weed aufheben',
teleportIn = 'Betrete das Grow-Haus',
teleportOut = 'Verlasse das Grow-Haus',
dabs = 'Mache Dabs',
bluntWrap = 'Tauche Sirup ein, um %s herzustellen',
rollBlunt = 'Drehe einen %s',
targetSales = 'Vom Dealer kaufen',
buying = 'Kaufe %s vom Dealer',
itemDoesntExist = 'Dieser Gegenstand existiert hier nicht',
needItem = 'Du brauchst einen %s dafür',
crackBlunt = 'Knacke einen Joint auf'
}
Lang.wholesale = {
alreadyWholesale = 'Du verkaufst bereits im Großhandel',
targetBuyer = 'Mit dem Käufer sprechen',
wholesaling = 'Verkaufe Drogen im Großhandel',
uhoh = 'Der Käufer wird misstrauisch',
tooLong = 'Der Käufer hat zu lange gewartet',
notEnoughCops = 'Nicht genug Polizisten im Dienst',
count = 'Erkannte Menge: %s',
bonus = 'Mengenbonus: +%s%%',
estimate = 'Geschätzte Auszahlung: $%s - $%s',
no_drugs = 'Du hast keine dieser Drogen zum Verkauf',
ambush = 'Hinterhalt! %s Angreifer mit %s Waffen nähern sich!',
complete = 'Verkauft %s Artikel für $%s%s',
min_quantity = 'Du musst mindestens %s Artikel verkaufen, um Großhandel zu betreiben',
deal_failed_cleanup = 'Deal fehlgeschlagen – du kannst es erneut versuchen'
}
Lang.xtc = {
alreadyOut = 'Du hast bereits eine Presse draußen',
settingDown = 'Stelle die Presse auf',
noPressOut = 'Du hast keine Presse draußen',
targetMake = 'Pillen pressen',
making = 'Presse eine %s',
targetPickup = 'Presse aufheben',
picking = 'Hebe Presse auf',
targetStealMDP2P = 'MDP2P stehlen',
stealingMDP2P = 'Stehle MDP2P',
fail = 'Verdammt, du bist schlecht darin',
targetStealIsosafrole = 'Isosafrol stehlen',
stealingIsosafrole = 'Stehle Isosafrol',
targetRaw = 'Rohes XTC herstellen',
makingRaw = 'Stelle rohes XTC her',
getPress = 'Presse holen',
buySingle = 'Einzelne Presse für $%s kaufen',
buyp = 'Kaufe Presse',
targetStamp = 'XTC stempeln',
stamp_desc = 'Stemple %s Pillen',
stamping = 'Stemple %s Pillen',
noPills = 'Du hast keine ungestempelten Pillen'
}
Lang.merchant = {
targetOpen = 'Händlermenü öffnen',
}
Lang.Whippit = {
targetShop = 'Whippit Shop öffnen',
needBalloon = 'Du brauchst einen Ballon für diese Aktion',
needCanister = 'Du brauchst einen Kanister für diese Aktion',
shopHeader = 'Whippit Shop',
}
return Lang
-267
View File
@@ -1,267 +0,0 @@
Lang = {}
Lang.Catches = {
notIn = 'Ni los daar do fin nol vokul',
needItems = 'Zu’u fen do los vulon los wah dii',
notEnoughMoney = 'Nii lot kruziik, fin sahvot!',
buySuccess = 'Zu’u krah %s %s do $%s, wahrii!',
itemMissings = 'Zu’u fen do wah: %s',
itemNeeded = 'Zu’u fen do %s',
cooldown = 'Zu’u pahk do, naal vokun',
invalidItem = 'Dii item ni los los hi',
onCooldownWarn = '%s fen zul do run %s \n hi do cooldown',
noCops = 'Nii lot cops online, fin sahvot!'
}
Lang.coke = {
targetPick = 'Tol coca los',
picking = 'Tol coca losing',
targetMakePow = 'Dii cocaine powdr los',
noleaf = 'Zu’u fen do coca los',
makePow = 'Tol leaves do powdr',
targetCutCoke = 'Krah cocaine',
targetBagCoke = 'Bag cocaine',
teleIn = 'Fahdon lab',
teleOut = 'Los lab',
needBakingSoda = 'Zu’u fen do baking soda do hi'
}
Lang.Cornerselling = {
inVeh = 'Zu’u voth stranger!',
selling = 'Krah %s do $%s',
deny = 'Ni! Dii offer!',
wait = 'Lahvu do customer',
nodrugs = 'Zu’u ni los drugs do sell',
searching = 'Fahdon do nearby customer',
targetTakeBack = 'Tol back drugs',
targetSell = 'Sell %s do %s for $%s',
targetDeny = 'Deny offer',
stopped = 'Zu’u lazy ni sell drugs!',
start = 'Frah do mom proud',
gotRobbed = 'Zu’u los robbed!',
gotBack = 'Zu’u los back hi stuff!',
notEnough = 'Zu’u ni los enough do hi item',
comDes = 'Sell things do corner'
}
Lang.crack = {
targetMake = 'Krah crack',
cook = 'Krah crack',
targetBag = 'Bag crack',
bag = 'Tol crack do bag'
}
Lang.Deliveries = {
targetGetDel = 'Tol delivery mission',
targetOpenShop = 'Fahdon dealer shop',
shopHeader = 'Dealer Shop',
targetHandOff = 'Hand off delivery',
delivering = 'Hand package do dealer',
alreadyDelivering = 'Zu’u los already delivering',
slowAf = 'Zu’u los too sahvot!',
newDealerHelp = {
help = 'Place dealer',
name = 'Dealer Name',
timeMin = 'Minimum Time',
timeMax = 'Maximum Time'
},
DealerExists = 'Dealer los exist',
deleteDealer = {
help = 'Delete dealer',
name = 'Dealer Name',
},
deleteDealerSuccess = 'Deleted dealer',
deleteDealerFail = 'Failed delete dealer'
}
Lang.heroin = {
targetPick = 'Tol heroin',
picking = 'Picking heroin',
targetCook = 'Krah heroin',
pbCook = 'Krah up heroin',
targetPickup = 'Tol lab up',
pbPickup = 'Picking up lab',
targetClean = 'Kreh lab',
pbClean = 'Cleaning lab',
targetDry = 'Dry plant',
pbDry = 'Drying plant',
targetCutHeroin = 'Krah heroin',
pbCutHeroin = 'Cutting heroin',
targetBuyKit = 'Buy heroin kit',
pbBuyKit = 'Buying heroin kit',
tableout = 'Zu’u los table out',
placing = 'Placing table',
targetFill = 'Fill syringe',
pbFill = 'Filling syringe',
hasKitAlready = 'Zu’u los heroin kit',
notEnoughMoney = 'Zu’u fen do $%s',
placedKit = 'Placed heroin kit',
failed = 'Zu’u los failed krah heroin'
}
Lang.lean = {
stealFromTruck = 'Stahl from truck',
startMission = 'Start lean mission',
notOnRun = 'Zu’u ni los on lean run',
alreadyChasing = 'Zu’u los chasing truck'
}
Lang.lsd = {
targetHeat = 'Heat LSD',
heating = 'Heating LSD',
targetRefine = 'Refine acid',
refining = 'Refining acid',
targetDipping = 'Dip tabs',
dipping = 'Dipping tabs',
targetPickup = 'Tol lab kit up',
packup = 'Packing up lab kit',
targetClean = 'Clean lab kit',
needCleaning = 'Zu’u fen do cleaning kit',
cleaning = 'Cleaning lab kit',
targetLys = 'Stahl lysergic acid',
stealLys = 'Stealing lysergic acid',
targetDie = 'Stahl diethylamide',
stealDie = 'Stealing diethylamide',
targetBuyTab = 'Buy tab paper',
targetBuyKit = 'Buy LSD lab kit',
alreadyOwn = 'Zu’u los own hi item',
buyingKit = 'Buying LSD lab kit',
tableout = 'Table los out',
placing = 'Placing lab kit',
failed = 'Zu’u los failed make drugs'
}
Lang.mesc = {
targetPick = 'Tol cactus',
picking = 'Picking cactus',
targetDry = 'Dry cactus',
dry = 'Drying cactus'
}
Lang.meth = {
alreadyChasing = 'Zu’u los chasing truck',
targetStealFromCar = 'Stahl meth car',
targetHeist = 'Start meth mission',
started = 'Zu’u los meth cooking',
increaseHeat = 'Zu’u los increase heat',
targetBag = 'Bag meth',
targetCook = 'Cook meth',
targetGrabTray = 'Grab meth tray',
targetHeat = 'Adjust dials',
targetSmash = 'Smash tray',
targetStealEPH = 'Stahl ephedrine',
stealingEPH = 'Stealing ephedrine',
targetStealACE = 'Stahl acetone',
stealingACE = 'Stealing acetone',
notOnRun = 'Zu’u ni los on meth run',
onCooldown = 'Zu’u los on cooldown',
teleIn = 'Fahdon lab',
teleOut = 'Los lab'
}
Lang.oxy = {
ditchCar = 'Van los hot, leave it',
targetHandoff = 'Hand off package',
handingoff = 'Handing off package',
emptyHands = 'Zu’u ni los carry',
targetPay = 'Rent oxy van',
keys = 'Keys los in van',
targetGetPackage = 'Grab package',
alreadyCarrying = 'Zu’u los carry package',
paid = 'Paid $%s',
notOn = 'Zu’u ni los on route'
}
Lang.pharma = {
input = {
header = 'Who to give prescription?',
title1 = 'Player name',
title2 = 'Prescription'
},
write = 'Writing prescription',
opening = 'Opening bottle',
targetFill = 'Fill prescription',
fill = 'Getting prescription filled',
canceled = 'Canceled prescription',
unbottle = 'Opened bottle'
}
Lang.shrooms = {
targetPick = 'Tol shrooms',
picking = 'Picking shrooms',
eat = 'Eating shrooms',
cancel = 'Decided not to',
took = 'Took shrooms'
}
Lang.weed = {
targetPick = 'Tol weed',
picking = 'Picking weed',
targetDry = 'Dry weed',
noDry = 'Need wet weed',
wait = 'Waiting for weed',
take = 'Ready to take weed',
targetDryed = 'Pickup weed',
teleportIn = 'Fahdon grow house',
teleportOut = 'Los grow house',
dabs = 'Doing dabs',
bluntWrap = 'Dipping syrup %s',
rollBlunt = 'Rolling %s',
targetSales = 'Buy from dealer',
buying = 'Buying %s',
itemDoesntExist = 'Item does not exist',
needItem = 'Need %s',
crackBlunt = 'Cracking blunt'
}
Lang.wholesale = {
alreadyWholesale = 'Already wholesaling',
targetBuyer = 'Talk to buyer',
wholesaling = 'Wholesaling drugs',
uhoh = 'Buyer getting sketchy',
tooLong = 'Buyer waited too long',
notEnoughCops = 'Not enough guards',
count = 'Quantity: %s',
bonus = 'Bonus: +%s%%',
estimate = 'Estimated payout: $%s - $%s',
no_drugs = 'No drugs to sell',
ambush = 'AMBUSH! %s attackers coming!',
complete = 'Sold %s for $%s%s',
min_quantity = 'Must sell %s minimum',
deal_failed_cleanup = 'Deal failed, try again'
}
Lang.xtc = {
alreadyOut = 'Press out already',
settingDown = 'Setting press down',
noPressOut = 'No press out',
targetMake = 'Press pills',
making = 'Pressing %s',
targetPickup = 'Pickup press',
picking = 'Picking press',
targetStealMDP2P = 'Stahl MDP2P',
stealingMDP2P = 'Stealing MDP2P',
fail = 'Failed!',
targetStealIsosafrole = 'Stahl isosafrole',
stealingIsosafrole = 'Stealing isosafrole',
targetRaw = 'Make raw XTC',
makingRaw = 'Making raw XTC',
getPress = 'Get press',
buySingle = 'Buy single press $%s',
buyp = 'Buying press',
targetStamp = 'Stamp XTC',
stamp_desc = 'Stamp %s pills',
stamping = 'Stamping %s pills',
noPills = 'No unstamped pills'
}
Lang.merchant = {
targetOpen = 'Open merchant menu'
}
Lang.Whippit = {
targetShop = 'Open Whippit Shop',
needBalloon = 'You Need A Balloon For This',
needCanister = 'You Need A Canister For This',
shopHeader = 'Whippit Shop'
}
return Lang
+359
View File
@@ -0,0 +1,359 @@
{
"Catches": {
"outOfRangeWarn": "Player: %s attempted to exploit Event: '%s' by triggering the event out of range.",
"notEnoughMoney": "Damn You Are A Broke Fuck",
"itemMissings": "You Need %s",
"onCooldownWarn": "Player: %s Attempted To Run Event %s \n while on cooldown",
"missedTable": "Player: %s attempted to exploit Event: '%s' by triggering the event without being in a server table",
"YouNeedMoreCops": "You Need %s More Police To Do This"
},
"coke": {
"targetPick": "Pick Coca Leaf",
"picking": "Picking Coca Leaf",
"targetMakePow": "Make Cocaine Powder",
"targetMakePowIcon": "fa-solid fa-seedling",
"makePow": "Chopping Leaves into Powder",
"targetCutCoke": "Cut Cocaine",
"targetCutCokeIcon": "fa-solid fa-mortal-pestle",
"targetBagCoke": "Bag Cocaine",
"targetBagCokeIcon": "fa-solid fa-sack-xmark",
"teleIn": "Enter the Lab",
"teleInIcon": "fa-solid fa-door-closed",
"teleOutIcon":"fa-solid fa-door-open",
"teleOut": "Exit the Lab",
"cutCokeAgain": "Cutting Cocaine With Baking Soda",
"pickIcon": "fa-solid fa-seedling"
},
"Cornerselling": {
"inVeh": "Stranger Danger!",
"selling": "Selling %s for $%s",
"deny": "Fuck That Offer",
"wait": "Waiting For Customer",
"nodrugs": "You Do Not Have Any Drugs To Sell",
"searching": "Searching For Nearby Customers",
"targetTakeBack": "Take Back Drugs",
"targetTakeBackIcon": "fa-solid fa-hand-back-fist",
"targetSell": "Sell %s Of %s For $%s",
"targetSellIcon": "fa-solid fa-money-bill",
"targetDeny": "Deny Offer",
"targetDenyIcon": "fa-solid fa-person-harassing",
"stopped": "Your Lazy Ass Cant Even Sell Drugs!",
"start": "Go Make Your Mom Proud",
"gotRobbed": "You Got Robbed Nerd!",
"gotBack": "You Got Your Stuff Back!",
"notEnough": "You Dont Have Enough Of This Item",
"comDes": "Sell Things On The Corner",
"notEnoughCops": "You Need %s More Police To Do This"
},
"crack": {
"targetMake": "Cook Some Crack",
"makeIcon": "fa-solid fa-temperature-high",
"cook": "Cooking Crack",
"targetBag": "Bag Crack",
"bagIcon": "fa-solid fa-weight-scale",
"bag": "Bagging Crack",
"breakdown": "Breaking Down Crack Even Further"
},
"Deliveries": {
"targetGetDel": "Get Delivery Mission",
"targetGetDelIcon": "fas fa-user-secret",
"targetOpenShop": "Open Dealer Shop",
"targetOpenShopIcon": "fas fa-store",
"shopHeader": "Dealer Shop",
"targetHandOff": "Hand Off Delivery",
"targetHandOffIcon": "fa-solid fa-box-open",
"delivering": "Handing The Package To Drug Dealer",
"itemDoesntExist": "Player: %s attempted to exploit the deliveries shop event by trying to purchase an item that does not exist in the deliveries shop: %s",
"alreadyDelivering": "You Are Already Delivering A Package",
"slowAf": "You Took To Long And Now The Customer Cancelled You Fucking Turtle!",
"deliveryFailed": "Dude, You Didnt Even Bring The Drugs I Asked For!",
"delivery_success": "You Successfully Delivered The Package!"
},
"heroin": {
"targetPick": "Pick Heroin",
"picking": "Picking Heroin",
"targetCook": "Cook Heroin",
"pbCook": "Cooking Up Heroin",
"cookIcon": "fa-solid fa-temperature-high",
"targetPickup": "Pick Up Lab",
"targetPickupIcon": "fa-solid fa-box-circle-check",
"pbPickup": "Picking Up Lab",
"targetClean": "Clean Lab",
"targetCleanIcon": "fa-solid fa-broom",
"pbClean": "Cleaning Lab",
"targetDry": "Dry Out Plant",
"dryIcon": "fa-solid fa-temperature-high",
"pbDry": "Drying Out Plant",
"targetCutHeroin": "Cut Heroin",
"pbCutHeroin": "Cutting Heroin",
"cutIcon": "fa-solid fa-mortal-pestle",
"targetBuyKit": "Buy Heroin Lab Kit",
"buyIcon": "fa-solid fa-box-open",
"fillNeedleIcon": "fa-solid fa-syringe",
"pbBuyKit": "Buying Heroin Lab Kit",
"tableout": "You Already Have A Table Out",
"placing": "Placing Down Table",
"targetFill": "Fill Syringe",
"pbFill": "Filling Syringe",
"hasKitAlready": "You Already Have A Heroin Lab Kit",
"hasKitAlreadyPlaced": "You Already Have A Heroin Lab Kit Placed",
"notEnoughMoney": "You Need $%s In Cash For This",
"placedKit": "You Placed Down Your Heroin Lab Kit",
"failed": "You Failed To Make Heroin And Lost Your Ingredients",
"pickIcon": "fa-brands fa-pagelines"
},
"lean": {
"stealFromTruck": "Steal From Truck",
"startMission": "Start Lean Mission",
"alreadyChasing": "You Are Already Chasing A Truck",
"carIcon": "fa-solid fa-truck-fast",
"startMissionIcon": "fa-solid fa-hand-holding-medical",
"makingLean": "Making Lean",
"makeLeanMenuTitle": "Lean Creation",
"makeLeanMenuDesc": "Choose Your Ingredients",
"vehDoesntExist": "Player: %s attempted to exploit the lean event by triggering the event when the vehicle does not exist.",
"wrongVehModel": "Player: %s attempted to exploit the lean event by triggering the event in the wrong vehicle model.",
"maxTaken": "You Have Taken The Maximum Amount Of Lean From This Run"
},
"lsd": {
"targetHeat": "Heating LSD",
"targetHeatIcon": "fa-solid fa-temperature-high",
"heating": "Heating Up LSD",
"targetRefine": "Refine The Acid",
"targetRefineIcon": "fa-solid fa-vial",
"refining": "Refining The Acid",
"targetDipping": "Dip Tabs",
"targetDippingIcon": "fa-solid fa-droplet",
"dipping": "Dipping Tabs",
"targetPickup": "Pick Up Lab Kit",
"targetPickupIcon": "fas fa-box-circle-check",
"packup": "Packing Up Lab Kit",
"targetClean": "Clean Lab Kit",
"targetCleanIcon": "fa-solid fa-hand-sparkles",
"cleaning": "Cleaning Lab Kit",
"targetLys": "Steal Lysergic Acid",
"targetLysIcon": "fa-solid fa-vial",
"stealLys": "Stealing Lysergic Acid",
"targetDie": "Steal Diethylamide",
"targetDieIcon": "fa-solid fa-vial",
"stealDie": "Stealing Diethylamide",
"targetBuyTab": "Buy Tab Paper",
"targetBuyTabIcon": "fa-solid fa-hand-holding-dollar",
"targetBuyKit": "Buy LSD Lab Kit",
"targetBuyKitIcon": "fa-solid fa-hand-holding-dollar",
"alreadyOwn": "You Already Own An LSD Lab Kit",
"buyingKit": "Buying LSD Lab Kit",
"tableout": "You Already Have A Table Out",
"placing": "Placing Lab Kit Down!",
"failed": "You Suck At Making Drugs"
},
"mesc": {
"targetPick": "Pick Cactus",
"picking": "Picking Cactus",
"targetDry": "Dry Cactus",
"dry": "Drying Cactus",
"eat": "Taking Mescaline",
"pickIcon": "fa-solid fa-holly-berry"
},
"meth": {
"alreadyChasing": "You Already Are Chasing A Truck",
"targetStealFromCar": "Steal From Meth Car",
"targetStealFromCarIcon": "fa-solid fa-truck-fast",
"targetHeist": "Start Meth Mission",
"targetHeistIcon": "fa-solid fa-user-secret",
"started": "You Already Have Meth Cooking",
"increaseHeat": "You Increased The Heat",
"targetBag": "Bag Meth",
"targetBagIcon": "fa-solid fa-sack-xmark",
"targetCook": "Cook Meth",
"targetCookIcon": "fa-solid fa-temperature-high",
"targetGrabTray": "Grab Meth Tray",
"targetGrabTrayIcon": "fas fa-sign-in-alt",
"targetHeat": "Adjust The Dials",
"targetHeatIcon": "fa-solid fa-temperature-three-quarters",
"targetSmash": "Smash The Tray",
"targetSmashIcon": "fa-solid fa-hammer",
"targetStealEPH": "Steal Ephedrine",
"targetStealEPHIcon": "fa-solid fa-vial",
"stealingEPH": "Stealing Ephedrine",
"targetStealACE": "Steal Acetone",
"targetStealACEIcon": "fa-solid fa-vial",
"stealingACE": "Stealing Acetone",
"teleIn": "Enter the Lab",
"teleInIcon": "fa-solid fa-door-open",
"teleOutIcon":"fa-solid fa-door-closed",
"teleOut": "Exit the Lab",
"wrongVehModel": "Player: %s Passed A Vehicle Model: %s for Meth Van but The Proper Vehicle Model is: %s ",
"notOnRun": "Player: %s attempted to exploit the meth run event by triggering the event when not on a meth run.",
"finishedRun": "You Have Finished Your Meth Run"
},
"oxy": {
"ditchCar": "The Van Is Hot, Leave It Somewhere",
"targetHandoff": "Hand Off The Package",
"targetHandOffIcon": "fa-solid fa-box-open",
"handingoff": "Handing Off The Package",
"emptyHands": "You Are Not Carrying Anything",
"targetPay": "Rent Oxy Van",
"targetPayIcon": "fa-solid fa-hand-holding-dollar",
"keys": "The Keys Are In The Van",
"targetGetPackage": "Grab Package",
"targetGetPackageIcon": "fa-solid fa-box-open",
"alreadyCarrying": "You Are Already Carrying A Package",
"notOn": "You Are Not On A Route",
"notOnOxyRun": "Player: %s attempted to exploit the oxy run event by triggering the give event when not on an oxy run.",
"mismatchOxyVan": "Player: %s Passed Vehicle: %s for Oxy Van "
},
"pharma": {
"input": {
"header": "Who To Give A Prescription To?",
"title1": "Player Name",
"title2": "Prescription"
},
"write": "Writing Prescription",
"opening": "Opening Prescription Bottle",
"targetFill": "Fill Prescription",
"fill": "Getting Prescription Filled",
"canceled": "You Canceled The Prescription",
"unbottle": "You Opened The Bottle",
"fillIcon": "fa-solid fa-prescription-bottle-medical"
},
"shrooms": {
"targetPick": "Pick Shrooms",
"picking": "Picking Shrooms",
"eat": "Eating Shrooms",
"cancel": "Decided To Not Do Shrooms",
"took": "You Took Some Shrooms!",
"pickIcon": "fa-solid fa-mushroom"
},
"weed": {
"targetPick": "Pick Weed",
"targetDryIcon": "fa-solid fa-temperature-high",
"picking": "Picking Weed",
"targetDry": "Dry Weed",
"noDry": "You Need Wet Weed For This",
"wait": "Waiting For Weed To Dry...",
"take": "Ready To Take Weed",
"targetDryed": "Pickup Weed",
"teleportIn": "Enter The Grow House",
"teleportOut": "Leave The Grow House",
"dabs": "Doing Some Dabs",
"bluntWrap": "Dipping Syrup To Make %s",
"targetSales": "Buy From Dealer",
"salessHeader": "Weed Salesman",
"salesIcon": "fa-solid fa-handshake",
"salesHeader": "Amount To Buy",
"salesDesc": "how Many Do You Wish To Buy?",
"buying": "Buying %s From Dealer",
"needItem": "You Need A %s For This",
"crackBlunt": "Cracking Open A Blunt",
"pickIcon": "fa-solid fa-cannabis",
"teleportInIcon": "fa-solid fa-door-open",
"teleportOutIcon":"fa-solid fa-door-closed",
"cannabisIcon": "fa-solid fa-cannabis",
"itemDoesntExistWarn": "Player: %s attempted to exploit the weed salesman event by trying to purchase an item that does not exist in the weed salesman: %s",
"invalidTableWarn": "Player: %s attempted to exploit the weed event by triggering the event with an invalid recipe table butter/oil.",
"recipeDoesntExistWarn": "Player: %s attempted to exploit the weed event by triggering the event with a non existent recipe name: %s.",
"targetMakeButter": "Make Edible Products",
"targetMakeOil": "Make Oil",
"making": "Making %s ",
"rolling": "Rolling %s"
},
"wholesale": {
"go_location": "Your Meeting Spot Has Been Marked On Your GPS",
"sell_drugs": "Hand Over Product",
"sell_drugs_icon": "fa-solid fa-handshake",
"selling_drugs": "Handing Over The Product",
"not_enough_police": "Not Enough Police Online To Start A Wholesale Deal",
"not_enough_drugs": "Wholesale Is Meant For Large Amounts Of Drugs",
"ambush_fail_warn": "Player: %s attempted to exploit the wholesale Sale event by triggering the event when they should be ambushed."
},
"xtc": {
"alreadyOut": "You Have A Press Out Already",
"settingDown": "Setting Down The Press",
"targetMake": "Press Pills",
"pressIcon": "fa-solid fa-pills",
"making": "Pressing A %s",
"targetPickup": "Pick Up Press",
"targetPickupIcon": "fa-solid fa-hand-holding",
"picking": "Picking Up Press",
"targetStealMDP2P": "Steal MDP2P",
"mdp2pIcon": "fa-solid fa-vial",
"stealingMDP2P": "Stealing MDP2P",
"targetStealIsosafrole": "Steal Isosafrole",
"isosafroleIcon": "fa-solid fa-vial",
"stealingIsosafrole": "Stealing Isosafrole",
"targetRaw": "Make Raw XTC",
"rawIcon": "fa-solid fa-hand-scissors",
"makingRaw": "Making Raw XTC",
"getPress": "Get Press",
"buySingle": "Buy Single Press For $%s",
"buyp": "Buying Press",
"targetStamp": "Stamp XTC",
"stampIcon": "fa-solid fa-stamp",
"stamp_desc": "Stamp %s Pills",
"stamping": "Stamping %s Pills",
"noPills": "You Dont Have Any Unstamped Pills",
"noActivePress": "Player: %s attempted to exploit the xtc event by trying to stamp pills without having an active press."
},
"merchant": {
"targetOpen": "Open Merchant Menu",
"targetIcon": "fa-solid fa-shop",
"menuTitle": "Travelling Merchant",
"itemDoesntExist": "Player: %s attempted to exploit the merchant event by trying to purchase an item that does not exist in the merchant: %s"
},
"Whippit": {
"targetShop": "Open Whippit Shop",
"needBalloon": "You Need A Balloon For This",
"needCanister": "You Need A Canister For This",
"shopHeader": "Whippit Shop",
"whippitIcon": "fa-solid fa-cart-shopping",
"invalidItemWarn": "Player: %s attempted to exploit the whippit shop event by trying to purchase an item that does not exist in the whippit shop: %s"
},
"Dispatch": {
"header": "Drug Activity",
"code": "4-2-0",
"icon": "fas fa-exclamation-triangle"
},
"DrugRep": {
"header": "Drug Reputation",
"increased": "Your Current Drug Reputation Stats",
"coke": {
"icon": "fa-solid fa-face-flushed",
"title": "Cocaine: %s"
},
"heroin": {
"icon": "fa-solid fa-syringe",
"title": "Heroin: %s"
},
"lsd": {
"icon": "fa-solid fa-vial",
"title": "LSD: %s"
},
"dealerrep": {
"icon": "fa-solid fa-plug",
"title": "Dealer: %s"
},
"cornerselling": {
"icon": "fa-solid fa-money-bill",
"title": "Corner Selling: %s",
"description": "Rank: %s"
}
}
}
-270
View File
@@ -1,270 +0,0 @@
Lang = {}
Lang.Catches = {
notIn = 'You Are Not In The Correct Location',
needItems = 'You Do Not Have The Required Items',
notEnoughMoney = 'Youre To Broke',
buySuccess = 'You Bought %s %s For $%s',
itemMissings = 'You Need %s',
itemNeeded = 'You Need %s',
cooldown = 'Slow Down Speed Racer',
invalidItem = 'This Item Is Not Sold Here',
onCooldownWarn = '%s Attempted To Run Event %s \n while on cooldown',
noCops = 'Not Enough Police Online',
}
Lang.coke = {
targetPick = 'Pick Coca Leaf',
picking = 'Picking Coca Leaf',
targetMakePow = 'Make Cocaine Powder',
noleaf = 'You Need A Coke Leaf',
makePow = 'Chopping Leaves into Powder',
targetCutCoke = 'Cut Cocaine',
targetBagCoke = 'Bag Cocaine',
teleIn = 'Enter the Lab',
teleOut = 'Exit the Lab',
needBakingSoda = 'You Need Baking Soda For This',
}
Lang.Cornerselling = {
inVeh = 'Stranger Danger!',
selling = 'Selling %s for $%s',
deny = 'Fuck That Offer',
wait = 'Waiting For Customer',
nodrugs = 'You Do Not Have Any Drugs To Sell',
searching = 'Searching For Nearby Customers',
targetTakeBack = 'Take Back Drugs',
targetSell = 'Sell %s Of %s For $%s',
targetDeny = 'Deny Offer',
stopped = 'Your Lazy Ass Cant Even Sell Drugs!',
start = 'Go Make Your Mom Proud',
gotRobbed = 'You Got Robbed Nerd!',
gotBack = 'You Got Your Stuff Back!',
notEnough = 'You Dont Have Enough Of This Item',
comDes = 'Sell Things On The Corner'
}
Lang.crack = {
targetMake = 'Cook Some Crack',
cook = 'Cooking Crack',
targetBag = 'Bag Crack',
bag = 'Bagging Crack',
}
Lang.Deliveries = {
targetGetDel = 'Get Delivery Mission',
targetOpenShop = 'Open Dealer Shop',
shopHeader = 'Dealer Shop',
targetHandOff = 'Hand Off Delivery',
delivering = 'Handing The Package To Drug Dealer',
alreadyDelivering = 'You Are Already Delivering A Package',
slowAf = 'You Took To Long!',
newDealerHelp = {
help = 'Place A Dealer',
name = 'Dealer Name',
timeMin = 'Minimum Time',
timeMax = 'Maximum Time'
},
DealerExists = 'Dealer Already Exists',
deleteDealer = {
help = 'Delete A Dealer',
name = 'Dealer Name',
},
deleteDealerSuccess = 'Deleted Dealer',
deleteDealerFail = 'Failed To Delete Dealer',
}
Lang.heroin = {
targetPick = 'Pick Heroin',
picking = 'Picking Heroin',
targetCook = 'Cook Heroin',
pbCook = 'Cooking Up Heroin',
targetPickup = 'Pick Up Lab',
pbPickup = 'Picking Up Lab',
targetClean = 'Clean Lab',
pbClean = 'Cleaning Lab',
targetDry = 'Dry Out Plant',
pbDry = 'Drying Out Plant',
targetCutHeroin = 'Cut Heroin',
pbCutHeroin = 'Cutting Heroin',
targetBuyKit = 'Buy Heroin Lab Kit',
pbBuyKit = 'Buying Heroin Lab Kit',
tableout = 'You Already Have A Table Out',
placing = 'Placing Down Table',
targetFill = 'Fill Syringe',
pbFill = 'Filling Syringe',
hasKitAlready = 'You Already Have A Heroin Lab Kit',
notEnoughMoney = 'You Need $%s In Cash For This',
placedKit = 'You Placed Down Your Heroin Lab Kit',
failed = 'You Failed To Make Heroin And Lost Your Ingredients',
}
Lang.lean = {
stealFromTruck = 'Steal From Truck',
startMission = 'Start Lean Mission',
notOnRun = 'You Are Not On A Lean Run',
alreadyChasing = 'You Are Already Chasing A Truck',
}
Lang.lsd = {
targetHeat = 'Heating LSD',
heating = 'Heating Up LSD',
targetRefine = 'Refine The Acid',
refining = 'Refining The Acid',
targetDipping = 'Dip Tabs',
dipping = 'Dipping Tabs',
targetPickup = 'Pick Up Lab Kit',
packup = 'Packing Up Lab Kit',
targetClean = 'Clean Lab Kit',
needCleaning = 'You Need A Cleaning Kit To Clean The Lab',
cleaning = 'Cleaning Lab Kit',
targetLys = 'Steal Lysergic Acid',
stealLys = 'Stealing Lysergic Acid',
targetDie = 'Steal Diethylamide',
stealDie = 'Stealing Diethylamide',
targetBuyTab = 'Buy Tab Paper',
targetBuyKit = 'Buy LSD Lab Kit',
alreadyOwn = 'You Already Own This Item',
buyingKit = 'Buying LSD Lab Kit',
tableout = 'You Already Have A Table Out',
placing = 'Placing Lab Kit Down!',
failed = 'You Suck At Making Drugs',
}
Lang.mesc = {
targetPick = 'Pick Cactus',
picking = 'Picking Cactus',
targetDry = 'Dry Cactus',
dry = 'Drying Cactus',
}
Lang.meth = {
alreadyChasing = 'You Already Are Chasing A Truck',
targetStealFromCar = 'Steal From Meth Car',
targetHeist = 'Start Meth Mission',
started = 'You Already Have Meth Cooking',
increaseHeat = 'You Increased The Heat',
targetBag = 'Bag Meth',
targetCook = 'Cook Meth',
targetGrabTray = 'Grab Meth Tray',
targetHeat = 'Adjust The Dials',
targetSmash = 'Smash The Tray',
targetStealEPH = 'Steal Ephedrine',
stealingEPH = 'Stealing Ephedrine',
targetStealACE = 'Steal Acetone',
stealingACE = 'Stealing Acetone',
notOnRun = 'You Are Not On A Meth Run',
onCooldown = 'You Are On A Cooldown',
teleIn = 'Enter the Lab',
teleOut = 'Exit the Lab',
}
Lang.oxy = {
ditchCar = 'The Van Is Hot, Leave It Somewhere',
targetHandoff = 'Hand Off The Package',
handingoff = 'Handing Off The Package',
emptyHands = 'You Are Not Carrying Anything',
targetPay = 'Rent Oxy Van',
keys = 'The Keys Are In The Van',
targetGetPackage = 'Grab Package',
alreadyCarrying = 'You Are Already Carrying A Package',
paid = 'You Paid $%s To Rent The Van',
notOn = 'You Are Not On A Route',
}
Lang.pharma = {
input = {
header = 'Who To Give A Prescription To?',
title1 = 'Player Name',
title2 = 'Prescription',
},
write = 'Writing Prescription',
opening = 'Opening Prescription Bottle',
targetFill = 'Fill Prescription',
fill = 'Getting Prescription Filled',
canceled = 'You Canceled The Prescription',
unbottle = 'You Opened The Bottle',
}
Lang.shrooms = {
targetPick = 'Pick Shrooms',
picking = 'Picking Shrooms',
eat = 'Eating Shrooms',
cancel = 'Decided To Not Do Shrooms',
took = 'You Took Some Shrooms!'
}
Lang.weed = {
targetPick = 'Pick Weed',
picking = 'Picking Weed',
targetDry = 'Dry Weed',
noDry = 'You Need Wet Weed For This',
wait = 'Waiting For Weed To Dry...',
take = 'Ready To Take Weed',
targetDryed = 'Pickup Weed',
teleportIn = 'Enter The Grow House',
teleportOut = 'Leave The Grow House',
dabs = 'Doing Some Dabs',
bluntWrap = 'Dipping Syrup To Make %s',
rollBlunt = 'Rolling A %s',
targetSales = 'Buy From Dealer',
buying = 'Buying %s From Dealer',
itemDoesntExist = 'This Item Does Not Exist Here',
needItem = 'You Need A %s For This',
crackBlunt = 'Cracking Open A Blunt'
}
Lang.wholesale = {
alreadyWholesale = 'Already Wholesaling',
targetBuyer = 'Talk To The Buyer',
wholesaling = 'Wholesaling Drugs',
uhoh = 'The Buyer Is Getting Sketchy',
tooLong = 'The Buyer Waited Too Long',
notEnoughCops = 'Not Enough Cops On Duty',
count = 'Quantity detected: %s',
bonus = 'Quantity bonus: +%s%%',
estimate = 'Estimated payout: $%s - $%s',
no_drugs = 'You do not have any of this drug to sell',
ambush = 'Ambush! %s attackers with %s weapons are approaching!',
complete = 'Sold %s items for $%s%s',
min_quantity = 'You must sell at least %s items to wholesale',
deal_failed_cleanup = 'Deal failed - you can try again'
}
Lang.xtc = {
alreadyOut = 'You Have A Press Out Already',
settingDown = 'Setting Down The Press',
noPressOut = 'You Do Not Have A Press Out',
targetMake = 'Press Pills',
making = 'Pressing A %s',
targetPickup = 'Pick Up Press',
picking = 'Picking Up Press',
targetStealMDP2P = 'Steal MDP2P',
stealingMDP2P = 'Stealing MDP2P',
fail = 'Damn Dude You Suck',
targetStealIsosafrole = 'Steal Isosafrole',
stealingIsosafrole = 'Stealing Isosafrole',
targetRaw = 'Make Raw XTC',
makingRaw = 'Making Raw XTC',
getPress = 'Get Press',
buySingle = 'Buy Single Press For $%s',
buyp = 'Buying Press',
targetStamp = 'Stamp XTC',
stamp_desc = 'Stamp %s Pills',
stamping = 'Stamping %s Pills',
noPills = 'You Dont Have Any Unstamped Pills'
}
Lang.merchant = {
targetOpen = 'Open Merchant Menu',
}
Lang.Whippit = {
targetShop = 'Open Whippit Shop',
needBalloon = 'You Need A Balloon For This',
needCanister = 'You Need A Canister For This',
shopHeader = 'Whippit Shop',
}
return Lang
-270
View File
@@ -1,270 +0,0 @@
Lang = {}
Lang.Catches = {
notIn = 'No estás en la ubicación correcta',
needItems = 'No tienes los objetos requeridos',
notEnoughMoney = 'Estás demasiado pobre',
buySuccess = 'Compraste %s %s por $%s',
itemMissings = 'Necesitas %s',
itemNeeded = 'Necesitas %s',
cooldown = 'Despacio, Speed Racer',
invalidItem = 'Este artículo no se vende aquí',
onCooldownWarn = '%s intentó ejecutar el evento %s \n mientras estaba en cooldown',
noCops = 'No hay suficientes policías en línea',
}
Lang.coke = {
targetPick = 'Recoger hojas de coca',
picking = 'Recogiendo hojas de coca',
targetMakePow = 'Hacer polvo de cocaína',
noleaf = 'Necesitas una hoja de coca',
makePow = 'Triturando hojas en polvo',
targetCutCoke = 'Cortar cocaína',
targetBagCoke = 'Empaquetar cocaína',
teleIn = 'Entrar al laboratorio',
teleOut = 'Salir del laboratorio',
needBakingSoda = 'Necesitas bicarbonato de sodio para esto',
}
Lang.Cornerselling = {
inVeh = '¡Peligro de desconocidos!',
selling = 'Vendiendo %s por $%s',
deny = 'A la mierda esa oferta',
wait = 'Esperando cliente',
nodrugs = 'No tienes drogas para vender',
searching = 'Buscando clientes cercanos',
targetTakeBack = 'Recuperar drogas',
targetSell = 'Vender %s de %s por $%s',
targetDeny = 'Rechazar oferta',
stopped = '¡Tu perezoso trasero ni siquiera puede vender drogas!',
start = 'Ve a hacer sentir orgullosa a tu mamá',
gotRobbed = '¡Te robaron, nerd!',
gotBack = '¡Recuperaste tus cosas!',
notEnough = 'No tienes suficiente de este artículo',
comDes = 'Vende cosas en la esquina'
}
Lang.crack = {
targetMake = 'Cocinar crack',
cook = 'Cocinando crack',
targetBag = 'Empaquetar crack',
bag = 'Empaquetando crack',
}
Lang.Deliveries = {
targetGetDel = 'Obtener misión de entrega',
targetOpenShop = 'Abrir tienda de dealer',
shopHeader = 'Tienda de Dealer',
targetHandOff = 'Entregar paquete',
delivering = 'Entregando el paquete al dealer',
alreadyDelivering = 'Ya estás entregando un paquete',
slowAf = '¡Te tomó demasiado tiempo!',
newDealerHelp = {
help = 'Colocar un dealer',
name = 'Nombre del dealer',
timeMin = 'Tiempo mínimo',
timeMax = 'Tiempo máximo'
},
DealerExists = 'El dealer ya existe',
deleteDealer = {
help = 'Eliminar un dealer',
name = 'Nombre del dealer',
},
deleteDealerSuccess = 'Dealer eliminado',
deleteDealerFail = 'Error al eliminar dealer',
}
Lang.heroin = {
targetPick = 'Recoger heroína',
picking = 'Recogiendo heroína',
targetCook = 'Cocinar heroína',
pbCook = 'Cocinando heroína',
targetPickup = 'Recoger laboratorio',
pbPickup = 'Recogiendo laboratorio',
targetClean = 'Limpiar laboratorio',
pbClean = 'Limpiando laboratorio',
targetDry = 'Secar planta',
pbDry = 'Secando planta',
targetCutHeroin = 'Cortar heroína',
pbCutHeroin = 'Cortando heroína',
targetBuyKit = 'Comprar kit de laboratorio de heroína',
pbBuyKit = 'Comprando kit de laboratorio de heroína',
tableout = 'Ya tienes una mesa colocada',
placing = 'Colocando mesa',
targetFill = 'Llenar jeringa',
pbFill = 'Llenando jeringa',
hasKitAlready = 'Ya tienes un kit de laboratorio de heroína',
notEnoughMoney = 'Necesitas $%s en efectivo para esto',
placedKit = 'Colocaste tu kit de laboratorio de heroína',
failed = 'Fallaste al hacer heroína y perdiste los ingredientes',
}
Lang.lean = {
stealFromTruck = 'Robar del camión',
startMission = 'Iniciar misión de Lean',
notOnRun = 'No estás en una misión de Lean',
alreadyChasing = 'Ya estás persiguiendo un camión',
}
Lang.lsd = {
targetHeat = 'Calentar LSD',
heating = 'Calentando LSD',
targetRefine = 'Refinar el ácido',
refining = 'Refinando el ácido',
targetDipping = 'Sumergir pastillas',
dipping = 'Sumergiendo pastillas',
targetPickup = 'Recoger kit de laboratorio',
packup = 'Empacando kit de laboratorio',
targetClean = 'Limpiar kit de laboratorio',
needCleaning = 'Necesitas un kit de limpieza para limpiar el laboratorio',
cleaning = 'Limpiando kit de laboratorio',
targetLys = 'Robar ácido lisérgico',
stealLys = 'Robando ácido lisérgico',
targetDie = 'Robar dietilamida',
stealDie = 'Robando dietilamida',
targetBuyTab = 'Comprar papel para pastillas',
targetBuyKit = 'Comprar kit de laboratorio de LSD',
alreadyOwn = 'Ya posees este artículo',
buyingKit = 'Comprando kit de laboratorio de LSD',
tableout = 'Ya tienes una mesa colocada',
placing = '¡Colocando kit de laboratorio!',
failed = 'Eres pésimo haciendo drogas',
}
Lang.mesc = {
targetPick = 'Recoger cactus',
picking = 'Recogiendo cactus',
targetDry = 'Secar cactus',
dry = 'Secando cactus',
}
Lang.meth = {
alreadyChasing = 'Ya estás persiguiendo un auto',
targetStealFromCar = 'Robar del auto de metanfetamina',
targetHeist = 'Iniciar misión de metanfetamina',
started = 'Ya tienes metanfetamina cocinándose',
increaseHeat = 'Aumentaste el calor',
targetBag = 'Empaquetar metanfetamina',
targetCook = 'Cocinar metanfetamina',
targetGrabTray = 'Agarrar bandeja de metanfetamina',
targetHeat = 'Ajustar las perillas',
targetSmash = 'Romper la bandeja',
targetStealEPH = 'Robar efedrina',
stealingEPH = 'Robando efedrina',
targetStealACE = 'Robar acetona',
stealingACE = 'Robando acetona',
notOnRun = 'No estás en una misión de metanfetamina',
onCooldown = 'Estás en cooldown',
teleIn = 'Entrar al laboratorio',
teleOut = 'Salir del laboratorio',
}
Lang.oxy = {
ditchCar = 'La camioneta está caliente, déjala en algún lugar',
targetHandoff = 'Entregar el paquete',
handingoff = 'Entregando el paquete',
emptyHands = 'No estás cargando nada',
targetPay = 'Alquilar camioneta de Oxy',
keys = 'Las llaves están en la camioneta',
targetGetPackage = 'Agarrar paquete',
alreadyCarrying = 'Ya estás cargando un paquete',
paid = 'Pagaste $%s para alquilar la camioneta',
notOn = 'No estás en una ruta',
}
Lang.pharma = {
input = {
header = '¿A quién recetar?',
title1 = 'Nombre del jugador',
title2 = 'Receta',
},
write = 'Escribiendo receta',
opening = 'Abriendo frasco de receta',
targetFill = 'Llenar receta',
fill = 'Llenando receta',
canceled = 'Cancelaste la receta',
unbottle = 'Abriste el frasco',
}
Lang.shrooms = {
targetPick = 'Recoger hongos',
picking = 'Recogiendo hongos',
eat = 'Comiendo hongos',
cancel = 'Decidiste no tomar hongos',
took = '¡Tomaste algunos hongos!'
}
Lang.weed = {
targetPick = 'Recoger hierba',
picking = 'Recogiendo hierba',
targetDry = 'Secar hierba',
noDry = 'Necesitas hierba mojada para esto',
wait = 'Esperando a que la hierba se seque...',
take = 'Listo para tomar la hierba',
targetDryed = 'Recoger hierba',
teleportIn = 'Entrar a la casa de cultivo',
teleportOut = 'Salir de la casa de cultivo',
dabs = 'Haciendo dabs',
bluntWrap = 'Mojando jarabe para hacer %s',
rollBlunt = 'Armando un %s',
targetSales = 'Comprar del dealer',
buying = 'Comprando %s del dealer',
itemDoesntExist = 'Este artículo no existe aquí',
needItem = 'Necesitas un %s para esto',
crackBlunt = 'Rompiendo un porro'
}
Lang.wholesale = {
alreadyWholesale = 'Ya estás vendiendo al por mayor',
targetBuyer = 'Hablar con el comprador',
wholesaling = 'Vendiendo drogas al por mayor',
uhoh = 'El comprador se está poniendo sospechoso',
tooLong = 'El comprador esperó demasiado',
notEnoughCops = 'No hay suficientes policías de servicio',
count = 'Cantidad detectada: %s',
bonus = 'Bono de cantidad: +%s%%',
estimate = 'Pago estimado: $%s - $%s',
no_drugs = 'No tienes ninguna de estas drogas para vender',
ambush = '¡Emboscada! ¡%s atacantes con %s armas se acercan!',
complete = 'Vendiste %s artículos por $%s%s',
min_quantity = 'Debes vender al menos %s artículos para vender al por mayor',
deal_failed_cleanup = 'El trato falló: puedes intentarlo de nuevo'
}
Lang.xtc = {
alreadyOut = 'Ya tienes una prensa colocada',
settingDown = 'Colocando la prensa',
noPressOut = 'No tienes una prensa colocada',
targetMake = 'Prensar pastillas',
making = 'Prensando una %s',
targetPickup = 'Recoger prensa',
picking = 'Recogiendo prensa',
targetStealMDP2P = 'Robar MDP2P',
stealingMDP2P = 'Robando MDP2P',
fail = 'Maldita sea, eres pésimo en esto',
targetStealIsosafrole = 'Robar isosafrol',
stealingIsosafrole = 'Robando isosafrol',
targetRaw = 'Hacer XTC crudo',
makingRaw = 'Haciendo XTC crudo',
getPress = 'Obtener prensa',
buySingle = 'Comprar prensa individual por $%s',
buyp = 'Comprando prensa',
targetStamp = 'Estampar XTC',
stamp_desc = 'Estampar %s pastillas',
stamping = 'Estampando %s pastillas',
noPills = 'No tienes pastillas sin estampar'
}
Lang.merchant = {
targetOpen = 'Abrir menú de comerciante',
}
Lang.Whippit = {
targetShop = 'Abrir tienda Whippit',
needBalloon = 'Necesitas un globo para esto',
needCanister = 'Necesitas un bote para esto',
shopHeader = 'Tienda Whippit',
}
return Lang
-269
View File
@@ -1,269 +0,0 @@
Lang = {}
Lang.Catches = {
notIn = 'Vous n’êtes pas au bon endroit',
needItems = 'Vous n’avez pas les objets requis',
notEnoughMoney = 'Vous êtes trop fauché',
buySuccess = 'Vous avez acheté %s %s pour $%s',
itemMissings = 'Vous avez besoin de %s',
itemNeeded = 'Vous avez besoin de %s',
cooldown = 'Ralentissez, Speed Racer',
invalidItem = 'Cet objet n’est pas vendu ici',
onCooldownWarn = '%s a tenté de lancer l’événement %s \n pendant le cooldown',
noCops = 'Pas assez de policiers en ligne',
}
Lang.coke = {
targetPick = 'Ramasser des feuilles de coca',
picking = 'Ramassage de feuilles de coca',
targetMakePow = 'Fabriquer de la poudre de cocaïne',
noleaf = 'Vous avez besoin d’une feuille de coca',
makePow = 'Hachage des feuilles en poudre',
targetCutCoke = 'Couper la cocaïne',
targetBagCoke = 'Mettre la cocaïne en sachets',
teleIn = 'Entrer dans le labo',
teleOut = 'Sortir du labo',
needBakingSoda = 'Vous avez besoin de bicarbonate de soude pour ça',
}
Lang.Cornerselling = {
inVeh = 'Danger inconnu !',
selling = 'Vente de %s pour $%s',
deny = 'Va te faire foutre, cette offre',
wait = 'En attente de client',
nodrugs = 'Vous n’avez aucune drogue à vendre',
searching = 'Recherche de clients à proximité',
targetTakeBack = 'Récupérer les drogues',
targetSell = 'Vendre %s de %s pour $%s',
targetDeny = 'Refuser l’offre',
stopped = 'Votre cul paresseux ne peut même pas vendre de la drogue !',
start = 'Allez rendre fière votre mère',
gotRobbed = 'Vous vous êtes fait braquer, bouffon !',
gotBack = 'Vous avez récupéré vos affaires !',
notEnough = 'Vous n’en avez pas assez de cet objet',
comDes = 'Vendez des trucs dans la rue'
}
Lang.crack = {
targetMake = 'Cuire du crack',
cook = 'Cuisson du crack',
targetBag = 'Mettre le crack en sachets',
bag = 'Mise en sachets du crack',
}
Lang.Deliveries = {
targetGetDel = 'Prendre une mission de livraison',
targetOpenShop = 'Ouvrir la boutique du dealer',
shopHeader = 'Boutique du Dealer',
targetHandOff = 'Remettre la livraison',
delivering = 'Remise du paquet au dealer',
alreadyDelivering = 'Vous êtes déjà en train de livrer un paquet',
slowAf = 'Vous avez mis trop de temps !',
newDealerHelp = {
help = 'Placer un dealer',
name = 'Nom du dealer',
timeMin = 'Temps minimum',
timeMax = 'Temps maximum'
},
DealerExists = 'Le dealer existe déjà',
deleteDealer = {
help = 'Supprimer un dealer',
name = 'Nom du dealer',
},
deleteDealerSuccess = 'Dealer supprimé',
deleteDealerFail = 'Échec de la suppression du dealer',
}
Lang.heroin = {
targetPick = 'Ramasser de l’héroïne',
picking = 'Ramassage d’héroïne',
targetCook = 'Cuire de l’héroïne',
pbCook = 'Cuisson d’héroïne',
targetPickup = 'Récupérer le labo',
pbPickup = 'Récupération du labo',
targetClean = 'Nettoyer le labo',
pbClean = 'Nettoyage du labo',
targetDry = 'Sécher la plante',
pbDry = 'Séchage de la plante',
targetCutHeroin = 'Couper l’héroïne',
pbCutHeroin = 'Découpage de l’héroïne',
targetBuyKit = 'Acheter un kit de labo d’héroïne',
pbBuyKit = 'Achat du kit de labo d’héroïne',
tableout = 'Vous avez déjà une table installée',
placing = 'Installation de la table',
targetFill = 'Remplir la seringue',
pbFill = 'Remplissage de la seringue',
hasKitAlready = 'Vous possédez déjà un kit de labo d’héroïne',
notEnoughMoney = 'Vous avez besoin de $%s en liquide pour ça',
placedKit = 'Vous avez installé votre kit de labo d’héroïne',
failed = 'Vous avez échoué à fabriquer de l’héroïne et perdu vos ingrédients',
}
Lang.lean = {
stealFromTruck = 'Voler du camion',
startMission = 'Démarrer la mission Lean',
notOnRun = 'Vous n’êtes pas en mission Lean',
alreadyChasing = 'Vous poursuivez déjà un camion',
}
Lang.lsd = {
targetHeat = 'Chauffer le LSD',
heating = 'Chauffage du LSD',
targetRefine = 'Raffiner l’acide',
refining = 'Raffinage de l’acide',
targetDipping = 'Tremper les comprimés',
dipping = 'Trempage des comprimés',
targetPickup = 'Récupérer le kit de labo',
packup = 'Rangement du kit de labo',
targetClean = 'Nettoyer le kit de labo',
needCleaning = 'Vous avez besoin d’un kit de nettoyage pour nettoyer le labo',
cleaning = 'Nettoyage du kit de labo',
targetLys = 'Vol de l’acide lysergique',
stealLys = 'Vol d’acide lysergique',
targetDie = 'Vol de diéthylamide',
stealDie = 'Vol de diéthylamide',
targetBuyTab = 'Acheter du papier pour comprimés',
targetBuyKit = 'Acheter un kit de labo LSD',
alreadyOwn = 'Vous possédez déjà cet objet',
buyingKit = 'Achat du kit de labo LSD',
tableout = 'Vous avez déjà une table installée',
placing = 'Installation du kit de labo !',
failed = 'Vous êtes nul pour fabriquer des drogues',
}
Lang.mesc = {
targetPick = 'Ramasser un cactus',
picking = 'Ramassage de cactus',
targetDry = 'Sécher le cactus',
dry = 'Séchage du cactus',
}
Lang.meth = {
alreadyChasing = 'Vous poursuivez déjà une voiture',
targetStealFromCar = 'Vol de la voiture de méth',
targetHeist = 'Démarrer la mission méth',
started = 'Vous êtes déjà en train de cuire de la méth',
increaseHeat = 'Vous avez augmenté la chaleur',
targetBag = 'Mettre la méth en sachets',
targetCook = 'Cuire de la méth',
targetGrabTray = 'Prendre le plateau de méth',
targetHeat = 'Ajuster les boutons',
targetSmash = 'Écraser le plateau',
targetStealEPH = 'Vol d’éphédrine',
stealingEPH = 'Vol d’éphédrine',
targetStealACE = 'Vol d’acétone',
stealingACE = 'Vol d’acétone',
notOnRun = 'Vous n’êtes pas en mission méth',
onCooldown = 'Vous êtes en cooldown',
teleIn = 'Entrer dans le labo',
teleOut = 'Sortir du labo',
}
Lang.oxy = {
ditchCar = 'Le van est brûlant, laissez-le quelque part',
targetHandoff = 'Remettre le paquet',
handingoff = 'Remise du paquet',
emptyHands = 'Vous ne portez rien',
targetPay = 'Louer le van Oxy',
keys = 'Les clés sont dans le van',
targetGetPackage = 'Prendre le paquet',
alreadyCarrying = 'Vous portez déjà un paquet',
paid = 'Vous avez payé $%s pour louer le van',
notOn = 'Vous n’êtes pas sur un trajet',
}
Lang.pharma = {
input = {
header = 'À qui prescrire ?',
title1 = 'Nom du joueur',
title2 = 'Ordonnance',
},
write = 'Rédaction de l’ordonnance',
opening = 'Ouverture du flacon d’ordonnance',
targetFill = 'Faire exécuter l’ordonnance',
fill = 'Exécution de l’ordonnance',
canceled = 'Vous avez annulé l’ordonnance',
unbottle = 'Vous avez ouvert le flacon',
}
Lang.shrooms = {
targetPick = 'Ramasser des champignons',
picking = 'Ramassage de champignons',
eat = 'Manger des champignons',
cancel = 'Vous avez décidé de ne pas prendre de champignons',
took = 'Vous avez pris des champignons !'
}
Lang.weed = {
targetPick = 'Ramasser de l’herbe',
picking = 'Ramassage d’herbe',
targetDry = 'Sécher l’herbe',
noDry = 'Vous avez besoin d’herbe humide pour ça',
wait = 'Attente du séchage de l’herbe...',
take = 'Prêt à prendre l’herbe',
targetDryed = 'Ramasser l’herbe',
teleportIn = 'Entrer dans la serre',
teleportOut = 'Sortir de la serre',
dabs = 'Faire des dabs',
bluntWrap = 'Tremper du sirop pour faire %s',
rollBlunt = 'Rouler un %s',
targetSales = 'Acheter au dealer',
buying = 'Achat de %s auprès du dealer',
itemDoesntExist = 'Cet objet n’existe pas ici',
needItem = 'Vous avez besoin d’un %s pour ça',
crackBlunt = 'Casser un joint'
}
Lang.wholesale = {
alreadyWholesale = 'Vous vendez déjà en gros',
targetBuyer = 'Parler à l’acheteur',
wholesaling = 'Vente de drogues en gros',
uhoh = 'L’acheteur devient méfiant',
tooLong = 'L’acheteur a trop attendu',
notEnoughCops = 'Pas assez de flics en service',
count = 'Quantité détectée : %s',
bonus = 'Bonus de quantité : +%s%%',
estimate = 'Paiement estimé : $%s - $%s',
no_drugs = 'Vous n’avez aucune de ces drogues à vendre',
ambush = 'Embush ! %s attaquants avec %s armes approchent !',
complete = 'Vendu %s articles pour $%s%s',
min_quantity = 'Vous devez vendre au moins %s articles pour vendre en gros',
deal_failed_cleanup = 'Échec de la transaction — vous pouvez réessayer'
}
Lang.xtc = {
alreadyOut = 'Vous avez déjà une presse installée',
settingDown = 'Installation de la presse',
noPressOut = 'Vous n’avez pas de presse installée',
targetMake = 'Presser des pilules',
making = 'Pressage d’une %s',
targetPickup = 'Récupérer la presse',
picking = 'Récupération de la presse',
targetStealMDP2P = 'Vol de MDP2P',
stealingMDP2P = 'Vol de MDP2P',
fail = 'Putain, vous êtes nul',
targetStealIsosafrole = 'Vol d’isosafrole',
stealingIsosafrole = 'Vol d’isosafrole',
targetRaw = 'Fabriquer du XTC brut',
makingRaw = 'Fabrication de XTC brut',
getPress = 'Obtenir une presse',
buySingle = 'Acheter une presse individuelle pour $%s',
buyp = 'Achat de la presse',
targetStamp = 'Estamper le XTC',
stamp_desc = 'Estampage de %s pilules',
stamping = 'Estampage de %s pilules',
noPills = 'Vous n’avez pas de pilules non estampées'
}
Lang.merchant = {
targetOpen = 'Ouvrir le menu du marchand',
}
Lang.Whippit = {
targetShop = 'Ouvrir la boutique Whippit',
needBalloon = 'Vous avez besoin d’un ballon pour ça',
needCanister = 'Vous avez besoin d’un bidon pour ça',
shopHeader = 'Boutique Whippit',
}
return Lang
-269
View File
@@ -1,269 +0,0 @@
Lang = {}
Lang.Catches = {
notIn = 'Yousa not bein in da right place-o!',
needItems = 'Yousa no havin da tings needed!',
notEnoughMoney = 'Yousa too broke, mooey mooey!',
buySuccess = 'Yousa buyin %s %s for %s credits!',
itemMissings = 'Yousa needin dis stuff: %s',
itemNeeded = 'Yousa needin %s',
cooldown = 'Ooooh, slow down speeda racer!',
invalidItem = 'Dis item not bein sold here, okeeday?',
onCooldownWarn = '%s tryin to do da event %s \n while still on da cooldown!',
noCops = 'Nosa! Not enough cops online, okeeday!',
}
Lang.coke = {
targetPick = 'Pickin coca leafies, okeeday',
picking = 'Meesa pickin coca leaf',
targetMakePow = 'Makin da powdery stuff',
noleaf = 'Yousa needin a coca leaf!',
makePow = 'Choppin leafies into da powder',
targetCutCoke = 'Cutty-cut da cocaine',
targetBagCoke = 'Baggin da cocaine',
teleIn = 'Meesa goin inside da lab',
teleOut = 'Meesa leavin da lab',
needBakingSoda = 'Yousa needin bakin soda for dis, okeeday',
}
Lang.Cornerselling = {
inVeh = 'Stranger danger, stay outta da speeder!',
selling = 'Meesa sellin %s for %s credits',
deny = 'Nosa, meesa no likin dat offer!',
wait = 'Waitin for da customer to come',
nodrugs = 'Yousa not havin no tings to sell',
searching = 'Meesa lookin for customers, okeeday',
targetTakeBack = 'Takin back da stuff',
targetSell = 'Sellin %s of %s for %s credits',
targetDeny = 'Sayin nosa to da offer',
stopped = 'Yousa too lazy, can’t even sell nuttin!',
start = 'Go make yo mama proud, okeeday!',
gotRobbed = 'Yousa got robbed, mooey mooey!',
gotBack = 'Yousa gots yo tings back!',
notEnough = 'Yousa no havin enough of dis item',
comDes = 'Sellin da tings on da corner',
}
Lang.crack = {
targetMake = 'Cookin da cracky-crack',
cook = 'Meesa cookin crack',
targetBag = 'Baggin da crack',
bag = 'Meesa baggin crack',
}
Lang.Deliveries = {
targetGetDel = 'Gettin da deliver mission',
targetOpenShop = 'Openin da dealer shop',
shopHeader = 'Dealer shop, okeeday',
targetHandOff = 'Handin da package to da dealer',
delivering = 'Meesa givin da package to da drug dealer',
alreadyDelivering = 'Yousa already doin a delivery, okeeday',
slowAf = 'Yousa too slow, oh no!',
newDealerHelp = {
help = 'Placina dealer',
name = 'Dealer name',
timeMin = 'Da minimum time',
timeMax = 'Da maximum time',
},
DealerExists = 'Dis dealer already existin!',
deleteDealer = {
help = 'Deletin a dealer',
name = 'Dealer name',
},
deleteDealerSuccess = 'Meesa deletin da dealer!',
deleteDealerFail = 'Nosa! Failed deletin da dealer!',
}
Lang.heroin = {
targetPick = 'Pickin da heroin plant',
picking = 'Meesa pickin da heroin',
targetCook = 'Cookin da heroin',
pbCook = 'Meesa cookin heroin up',
targetPickup = 'Pickin up da lab',
pbPickup = 'Meesa pickin up lab',
targetClean = 'Cleanin da lab',
pbClean = 'Meesa cleanin da lab',
targetDry = 'Dryin da plant',
pbDry = 'Meesa dryin out plant',
targetCutHeroin = 'Cuttin heroin',
pbCutHeroin = 'Meesa cuttin heroin',
targetBuyKit = 'Buyin da heroin kit',
pbBuyKit = 'Meesa buyin da heroin kit',
tableout = 'Yousa already havin a table out!',
placing = 'Placin down table',
targetFill = 'Fillin syringe',
pbFill = 'Meesa fillin syringe',
hasKitAlready = 'Yousa already havin a kit',
notEnoughMoney = 'Yousa needin %s credits for dis',
placedKit = 'Yousa placed down da kit',
failed = 'Oh no! Yousa fail makin heroin, lost all da stuff!',
}
Lang.lean = {
stealFromTruck = 'Stealin from da truck',
startMission = 'Startin lean mission',
notOnRun = 'Yousa not on no lean run',
alreadyChasing = 'Yousa already chasin a truck!',
}
Lang.lsd = {
targetHeat = 'Heat up da LSD',
heating = 'Meesa heating da LSD',
targetRefine = 'Refine da acid',
refining = 'Refinin da acid',
targetDipping = 'Dippin tabs',
dipping = 'Meesa dippin tabs',
targetPickup = 'Pickin up da lab kit',
packup = 'Packin da lab kit',
targetClean = 'Cleanin da lab kit',
needCleaning = 'Yousa needin a cleanin kit',
cleaning = 'Meesa cleanin lab kit',
targetLys = 'Stealin lysergic acid',
stealLys = 'Meesa stealin da acid',
targetDie = 'Stealin diethylamide',
stealDie = 'Meesa stealin da diethylamide',
targetBuyTab = 'Buyin da tab paper',
targetBuyKit = 'Buyin da LSD kit',
alreadyOwn = 'Yousa already havin dis ting',
buyingKit = 'Meesa buyin da LSD kit',
tableout = 'Yousa already havin table out!',
placing = 'Placin da kit down!',
failed = 'Yousa suck makin da drugs, okeeday',
}
Lang.mesc = {
targetPick = 'Pickin cactus',
picking = 'Meesa pickin cactus',
targetDry = 'Dryin cactus',
dry = 'Meesa dryin cactus',
}
Lang.meth = {
alreadyChasing = 'Yousa already chasin da truck',
targetStealFromCar = 'Stealin from meth car',
targetHeist = 'Startin meth mission',
started = 'Yousa already cookin meth',
increaseHeat = 'Yousa increasin da heat',
targetBag = 'Baggin meth',
targetCook = 'Cookin meth',
targetGrabTray = 'Grabbin da tray',
targetHeat = 'Adjustin da dials',
targetSmash = 'Smashin da tray',
targetStealEPH = 'Stealin ephedrine',
stealingEPH = 'Meesa stealin ephedrine',
targetStealACE = 'Stealin acetone',
stealingACE = 'Meesa stealin acetone',
notOnRun = 'Yousa not on no meth run',
onCooldown = 'Yousa bein on cooldown!',
teleIn = 'Enterin da lab',
teleOut = 'Leavin da lab',
}
Lang.oxy = {
ditchCar = 'Dis van hot! Yousa leave it somewhere',
targetHandoff = 'Handin da package',
handingoff = 'Meesa handin off da package',
emptyHands = 'Yousa no carryin nuttin',
targetPay = 'Rentin oxy van',
keys = 'Da keys in da van',
targetGetPackage = 'Grabbin da package',
alreadyCarrying = 'Yousa already carryin package',
paid = 'Yousa payin %s credits to rent van',
notOn = 'Yousa not on no route',
}
Lang.pharma = {
input = {
header = 'Who meesa givin da prescription to?',
title1 = 'Da player name',
title2 = 'Prescription',
},
write = 'Meesa writin prescription',
opening = 'Openin da bottle',
targetFill = 'Fillin prescription',
fill = 'Meesa fillin prescription',
canceled = 'Yousa cancel da prescription',
unbottle = 'Meesa openin da bottle',
}
Lang.shrooms = {
targetPick = 'Pickin shroomies',
picking = 'Meesa pickin shrooms',
eat = 'Meesa eatin shrooms',
cancel = 'Nosa, no doin da shrooms',
took = 'Yousa takin da shrooms!',
}
Lang.weed = {
targetPick = 'Pickin da weed',
picking = 'Meesa pickin weed',
targetDry = 'Dryin da weed',
noDry = 'Yousa needin da wet weed',
wait = 'Waitin for da weed to dry, okeeday',
take = 'Ready to take weed!',
targetDryed = 'Pickin up da dry weed',
teleportIn = 'Meesa goin in da grow house',
teleportOut = 'Meesa leavin da grow house',
dabs = 'Meesa doin da dabs',
bluntWrap = 'Dippin syrup makin %s',
rollBlunt = 'Rollin a %s',
targetSales = 'Buyin from da dealer',
buying = 'Meesa buyin %s from dealer',
itemDoesntExist = 'Nosa, dis ting no exist here',
needItem = 'Yousa needin %s for dis',
crackBlunt = 'Crackin open da blunt',
}
Lang.wholesale = {
alreadyWholesale = 'Yousa already wholesalin!',
targetBuyer = 'Talkin to da buyer',
wholesaling = 'Meesa wholesalin da drugs',
uhoh = 'Buyer gettin all sketchy, uh oh!',
tooLong = 'Buyer waitin too long!',
notEnoughCops = 'Nosa! Not enough cops here',
count = 'Quantity detected: %s',
bonus = 'Quantity bonus: +%s%%',
estimate = 'Estimated payout: %s - %s credits',
no_drugs = 'Yousa not havin dis ting to sell',
ambush = 'Ambush! %s attackers wit %s weapons comin!',
complete = 'Sold %s items for %s credits%s',
min_quantity = 'Yousa must be sellin at least %s',
deal_failed_cleanup = 'Deal failed, yousa tryin again',
}
Lang.xtc = {
alreadyOut = 'Yousa already havin da press out',
settingDown = 'Placin down da press',
noPressOut = 'Yousa no havin no press out',
targetMake = 'Pressin da pills',
making = 'Pressin a %s pill',
targetPickup = 'Pickin up da press',
picking = 'Meesa pickin up da press',
targetStealMDP2P = 'Stealin MDP2P',
stealingMDP2P = 'Meesa stealin MDP2P',
fail = 'Nosa! Yousa fail dis ting!',
targetStealIsosafrole = 'Stealin isosafrole',
stealingIsosafrole = 'Meesa stealin isosafrole',
targetRaw = 'Makin raw XTC',
makingRaw = 'Meesa makin raw XTC',
getPress = 'Gettin da press',
buySingle = 'Buyin one press for %s credits',
buyp = 'Meesa buyin press',
targetStamp = 'Stampin da XTC',
stamp_desc = 'Stampin %s pills',
stamping = 'Stampin %s pills',
noPills = 'Yousa not havin no pills to stamp',
}
Lang.merchant = {
targetOpen = 'Openin da merchant menu',
}
Lang.Whippit = {
targetShop = 'Open Whippit Shop',
needBalloon = 'Yousa needin a balloon for dis',
needCanister = 'Yousa needin a canister for dis',
shopHeader = 'Whippit Shop',
}
return Lang
-268
View File
@@ -1,268 +0,0 @@
Lang = {}
Lang.Catches = {
notIn = 'bIvumtaHbe’ Daq lughDaq',
needItems = 'Dochmey lugh DaHutlh',
notEnoughMoney = 'HuchlIj machqu’',
buySuccess = 'DaSuqta’ %s %s chenmoHmeH $%s',
itemMissings = 'DaHutlh Dochmey %s',
itemNeeded = 'DaHutlh %s',
cooldown = 'yIyep! nomqu’ bIvum',
invalidItem = 'Dochvam naDbe’ SuvwI’',
onCooldownWarn = '%s tay’mo’ nIDta’ %s ghu’vamDaq (cooldown)',
noCops = 'Nii lot cops online, fin sahvot!'
}
Lang.coke = {
targetPick = 'coca tI’ jon',
picking = 'coca tI’ lupung',
targetMakePow = 'cocaine hach',
noleaf = 'coca tI’ DaHutlh',
makePow = 'tI’ QorwI’powDaq rurchu’',
targetCutCoke = 'cocaine polHa’',
targetBagCoke = 'cocaine pochHa’',
teleIn = 'labDaq yI’el',
teleOut = 'labvo’ yImej',
needBakingSoda = 'DochvamvaD baking soda DaHutlh'
}
Lang.Cornerselling = {
inVeh = 'nov vIQoy!',
selling = '%s DajonmeH $%s',
deny = 'Qo’! bIDoH',
wait = 'lojmItDaq lojmIt',
nodrugs = 'Dochmey Hutlh',
searching = 'nuvmey SamtaH',
targetTakeBack = 'DochmeylIj cheghmoH',
targetSell = '%s Doch %s jonmeH $%s',
targetDeny = 'Qoch',
stopped = 'bIQongmo’ bIjonlaHbe’',
start = 'SoSlI’ quvmoH!',
gotRobbed = 'DochmeylIj jonlu’!',
gotBack = 'DochmeylIj Daja’chu’ta’',
notEnough = 'Dochvam machqu’ Daghaj',
comDes = 'lojmItDaq Dochmey jon'
}
Lang.crack = {
targetMake = 'crack vuv',
cook = 'crack vuvtaH',
targetBag = 'crack pochHa’',
bag = 'crack pochHa’taH'
}
Lang.Deliveries = {
targetGetDel = 'ngoq Qu’ Hev',
targetOpenShop = 'dealer mIch poSmoH',
shopHeader = 'dealer mIch',
targetHandOff = 'paket nob',
delivering = 'paket nobtaH',
alreadyDelivering = 'paket naQ DInobtaH',
slowAf = 'tughqu’ bIvum!',
newDealerHelp = {
help = 'dealer ghoS',
name = 'dealer pong',
timeMin = 'poHHom puS',
timeMax = 'poHHom nI’'
},
DealerExists = 'dealer tu’lu already',
deleteDealer = {
help = 'dealer qIl',
name = 'dealer pong',
},
deleteDealerSuccess = 'dealer qIlta’',
deleteDealerFail = 'dealer qIlHa’'
}
Lang.heroin = {
targetPick = 'heroin tI’ jon',
picking = 'heroin tI’ lupung',
targetCook = 'heroin vuv',
pbCook = 'heroin vuvtaH',
targetPickup = 'lab lupung',
pbPickup = 'lab lupungtaH',
targetClean = 'lab Say’moH',
pbClean = 'lab Say’moHtaH',
targetDry = 'tI’ mach puv',
pbDry = 'tI’ mach puvtaH',
targetCutHeroin = 'heroin polHa’',
pbCutHeroin = 'heroin polHa’taH',
targetBuyKit = 'heroin lab jan je’',
pbBuyKit = 'heroin lab jan je’taH',
tableout = 'raS SoHtaH already',
placing = 'raS lanlu’taH',
targetFill = 'syringe teblI’',
pbFill = 'syringe teblI’taH',
hasKitAlready = 'lab jan DaHutlh already',
notEnoughMoney = 'DochvamvaD $%s Huch DaHutlh',
placedKit = 'lab jan Dalanpu’',
failed = 'heroin QapHa’pu’, DochmeylIj lujpu’'
}
Lang.lean = {
stealFromTruck = 'rutlhDaq Doch jon',
startMission = 'lean Qu’ tagh',
notOnRun = 'lean Qu’ Daghajbe’',
alreadyChasing = 'rutlh Daq DajachtaH already'
}
Lang.lsd = {
targetHeat = 'LSD tujmoH',
heating = 'LSD tujtaH',
targetRefine = 'acid tetlh',
refining = 'acid tetlhtaH',
targetDipping = 'tabDaq tlhap',
dipping = 'tabDaq tlhaptaH',
targetPickup = 'lab jan lupung',
packup = 'lab jan nItebHa’moH',
targetClean = 'lab jan Say’moH',
needCleaning = 'Say’meH jan DaHutlh',
cleaning = 'lab jan Say’moHtaH',
targetLys = 'lysergic acid jon',
stealLys = 'lysergic acid jonlu’taH',
targetDie = 'diethylamide jon',
stealDie = 'diethylamide jonlu’taH',
targetBuyTab = 'tab nav je’',
targetBuyKit = 'LSD lab jan je’',
alreadyOwn = 'Dochvam Daghaj already',
buyingKit = 'lab jan je’taH',
tableout = 'raS SoHtaH already',
placing = 'lab jan lanlu’taH',
failed = 'bIQapbe’! bIjonHa’pu’'
}
Lang.mesc = {
targetPick = 'cactus jon',
picking = 'cactus jonlu’taH',
targetDry = 'cactus puv',
dry = 'cactus puvtaH'
}
Lang.meth = {
alreadyChasing = 'rutlh Daq DajachtaH already',
targetStealFromCar = 'meth car jon',
targetHeist = 'meth Qu’ tagh',
started = 'meth vuvtaH already',
increaseHeat = 'tuj nIbtaH',
targetBag = 'meth pochHa’',
targetCook = 'meth vuv',
targetGrabTray = 'meth tray lupung',
targetHeat = 'Dial tu’Qom',
targetSmash = 'tray Qop',
targetStealEPH = 'ephedrine jon',
stealingEPH = 'ephedrine jonlu’taH',
targetStealACE = 'acetone jon',
stealingACE = 'acetone jonlu’taH',
notOnRun = 'meth Qu’ Daghajbe’',
onCooldown = 'DaH bIQutlh',
teleIn = 'labDaq yI’el',
teleOut = 'labvo’ yImej'
}
Lang.oxy = {
ditchCar = 'rutlh QIHmoH, pa’ lan',
targetHandoff = 'paket nob',
handingoff = 'paket nobtaH',
emptyHands = 'Doch Daghajbe’',
targetPay = 'oxy rutlh rent',
keys = 'rutlh QI’meyDaq chaHtaH',
targetGetPackage = 'paket lupung',
alreadyCarrying = 'paket Daghaj already',
paid = 'DaSuqta’ $%s rutlh rentmeH',
notOn = 'rutlh Heghajbe’'
}
Lang.pharma = {
input = {
header = 'SoHvaD prescription noblu’ ’Iv?',
title1 = 'nuv pong',
title2 = 'prescription',
},
write = 'prescription ghItlh',
opening = 'bottle poSmoH',
targetFill = 'prescription teblI’',
fill = 'prescription teblI’taH',
canceled = 'prescription DaqIlHa’',
unbottle = 'bottle DaPoSmoHta’'
}
Lang.shrooms = {
targetPick = 'mushroom jon',
picking = 'mushroom jonlu’taH',
eat = 'mushroom Sop',
cancel = 'mushroom Sopbe’',
took = 'mushroom Daje’pu’'
}
Lang.weed = {
targetPick = 'weed jon',
picking = 'weed jonlu’taH',
targetDry = 'weed puv',
noDry = 'weed bIQ puv DaHutlh',
wait = 'weed puv lurgh',
take = 'weed lupunglaH',
targetDryed = 'weed lupung',
teleportIn = 'grow house yI’el',
teleportOut = 'grow house yImej',
dabs = 'dab Qap',
bluntWrap = '%s chenmoHmeH syrup Dap',
rollBlunt = '%s QorwI’ roll',
targetSales = 'dealervo’ je’',
buying = '%s dealervo’ DaSuq',
itemDoesntExist = 'Dochvam tu’lu’be’',
needItem = 'DochvamvaD %s DaHutlh',
crackBlunt = 'blunt Qop'
}
Lang.wholesale = {
alreadyWholesale = 'wholesale naQ already',
targetBuyer = 'buyer tlhoch',
wholesaling = 'wholesale Qap',
uhoh = 'buyer vItlhutlh',
tooLong = 'buyer loS nI’qu’',
notEnoughCops = 'cop puSqu’',
count = 'Dochmey mI’: %s',
bonus = 'mI’ bonus: +%s%%',
estimate = 'payout SeH: $%s - $%s',
no_drugs = 'Dochvam Daghajbe’',
ambush = 'jonlu’! %s jagh %s nuH lulo’taH',
complete = '%s Dochmey jonlu’ $%s%s',
min_quantity = 'Dochmey %s puS naQ jonlaH',
deal_failed_cleanup = 'jonHa’pu’ – wa’logh nIDlaH'
}
Lang.xtc = {
alreadyOut = 'press SoHtaH already',
settingDown = 'press lanlu’taH',
noPressOut = 'press Daghajbe’',
targetMake = 'pill QorwI’',
making = '%s QorwI’taH',
targetPickup = 'press lupung',
picking = 'press lupungtaH',
targetStealMDP2P = 'MDP2P jon',
stealingMDP2P = 'MDP2P jonlu’taH',
fail = 'QapHa’pu’! bIjatlhHa’',
targetStealIsosafrole = 'isosafrole jon',
stealingIsosafrole = 'isosafrole jonlu’taH',
targetRaw = 'XTC raw chenmoH',
makingRaw = 'XTC raw chenmoHtaH',
getPress = 'press Suq',
buySingle = 'wa’ press je’ $%s',
buyp = 'press je’taH',
targetStamp = 'XTC maq',
stamp_desc = '%s pill maq',
stamping = '%s pill maqtaH',
noPills = 'pill unstamped Daghajbe’'
}
Lang.merchant = {
targetOpen = 'merchant mIch poSmoH',
}
Lang.Whippit = {
targetShop = 'Whippit Shop poSmoH',
needBalloon = 'DochvamvaD balloon DaHutlh',
needCanister = 'DochvamvaD canister DaHutlh',
shopHeader = 'Whippit Shop',
}
return Lang
-269
View File
@@ -1,269 +0,0 @@
Lang = {}
Lang.Catches = {
notIn = 'Oi, you ain’t in the damn right spot',
needItems = 'You don’t even have the shit you need',
notEnoughMoney = 'You’re too broke, loser',
buySuccess = 'Finally bought %s %s for $%s, smartass',
itemMissings = 'You need this crap: %s',
itemNeeded = 'Get your hands on %s, idiot',
cooldown = 'Slow your ass down, speed freak',
invalidItem = 'This crap ain’t sold here, dumbfuck',
onCooldownWarn = '%s tried to run %s while on cooldown, lol',
noCops = 'Nosa! Not enough cops online, okeeday!',
}
Lang.coke = {
targetPick = 'Grab that coke leaf, lazy ass',
picking = 'Picking the damn leaf',
targetMakePow = 'Whip up some cocaine powder',
noleaf = 'No leaf? Can’t make shit, genius',
makePow = 'Chop those leaves into powder, dumbass',
targetCutCoke = 'Cut the damn cocaine',
targetBagCoke = 'Bag that shit up',
teleIn = 'Step into the lab, dipshit',
teleOut = 'Get out of the lab, moron',
needBakingSoda = 'You need baking soda for this, noob',
}
Lang.Cornerselling = {
inVeh = 'Get out, stranger danger!',
selling = 'Selling %s for $%s, cha-ching',
deny = 'Hell no, fuck that offer',
wait = 'Stand around waiting for a sucker',
nodrugs = 'You got no drugs to sell, dumbfuck',
searching = 'Scoping for nearby marks',
targetTakeBack = 'Take back that crap',
targetSell = 'Sell %s of %s for $%s, duh',
targetDeny = 'Reject the pathetic offer',
stopped = 'Lazy piece of shit can’t sell for shit!',
start = 'Go make your mom proud, loser',
gotRobbed = 'You got jacked, nerd!',
gotBack = 'You got your shit back, finally',
notEnough = 'You don’t have enough of this crap',
comDes = 'Sell stuff on the corner, dumbass'
}
Lang.crack = {
targetMake = 'Cook some crack, shithead',
cook = 'Cooking that crack, duh',
targetBag = 'Bag up that crap',
bag = 'Bagging the crack, moron',
}
Lang.Deliveries = {
targetGetDel = 'Grab a delivery, lazy bastard',
targetOpenShop = 'Open dealer shop, finally',
shopHeader = 'Dealer shop, not your playground',
targetHandOff = 'Hand over the package, asshole',
delivering = 'Handing package to dealer, hurry up',
alreadyDelivering = 'You’re already doing a delivery, dipshit',
slowAf = 'You took too damn long!',
newDealerHelp = {
help = 'Place a dealer, lazy fuck',
name = 'Dealer name, dumbass',
timeMin = 'Min time, asshole',
timeMax = 'Max time, moron'
},
DealerExists = 'Dealer already exists, genius',
deleteDealer = {
help = 'Delete a dealer, loser',
name = 'Dealer name, duh',
},
deleteDealerSuccess = 'Dealer deleted, finally',
deleteDealerFail = 'Failed to delete dealer, lol',
}
Lang.heroin = {
targetPick = 'Pick heroin, idiot',
picking = 'Picking heroin, duh',
targetCook = 'Cook heroin, shithead',
pbCook = 'Cooking up heroin, finally',
targetPickup = 'Pick up lab, dipshit',
pbPickup = 'Picking up lab, moron',
targetClean = 'Clean the lab, lazy ass',
pbClean = 'Cleaning lab, you useless fuck',
targetDry = 'Dry out the plant, dumbass',
pbDry = 'Drying out the damn plant',
targetCutHeroin = 'Cut the heroin, fucker',
pbCutHeroin = 'Cutting the heroin, finally',
targetBuyKit = 'Buy heroin lab kit, moron',
pbBuyKit = 'Buying that kit, dumbass',
tableout = 'You already have a table out, loser',
placing = 'Placing the damn table down',
targetFill = 'Fill the syringe, idiot',
pbFill = 'Filling that syringe, moron',
hasKitAlready = 'You already have a heroin lab kit, fucker',
notEnoughMoney = 'You need $%s cash for this, brokeass',
placedKit = 'Placed your heroin kit, finally',
failed = 'Failed to make heroin, you fuckup',
}
Lang.lean = {
stealFromTruck = 'Steal from truck, dumbfuck',
startMission = 'Start lean mission, asshole',
notOnRun = 'You aren’t on a lean run, moron',
alreadyChasing = 'Already chasing a truck, lazy ass',
}
Lang.lsd = {
targetHeat = 'Heating LSD, dipshit',
heating = 'Heating up LSD, moron',
targetRefine = 'Refine the acid, shithead',
refining = 'Refining acid, lazy bastard',
targetDipping = 'Dip tabs, idiot',
dipping = 'Dipping tabs, dumbass',
targetPickup = 'Pick up lab kit, loser',
packup = 'Packing up lab kit, finally',
targetClean = 'Clean lab kit, moron',
needCleaning = 'You need cleaning kit, dumbfuck',
cleaning = 'Cleaning lab kit, dipshit',
targetLys = 'Steal lysergic acid, asshole',
stealLys = 'Stealing lysergic acid, moron',
targetDie = 'Steal diethylamide, fucker',
stealDie = 'Stealing diethylamide, idiot',
targetBuyTab = 'Buy tab paper, lazy ass',
targetBuyKit = 'Buy LSD lab kit, dumbfuck',
alreadyOwn = 'You already own this crap, loser',
buyingKit = 'Buying LSD lab kit, finally',
tableout = 'You already have a table out, shithead',
placing = 'Placing lab kit down, idiot',
failed = 'You suck at making drugs, moron',
}
Lang.mesc = {
targetPick = 'Pick cactus, dumbass',
picking = 'Picking cactus, idiot',
targetDry = 'Dry cactus, lazy fuck',
dry = 'Drying cactus, shithead',
}
Lang.meth = {
alreadyChasing = 'Already chasing a truck, asshole',
targetStealFromCar = 'Steal from meth car, moron',
targetHeist = 'Start meth mission, dipshit',
started = 'Already have meth cooking, dumbfuck',
increaseHeat = 'You increased the heat, shithead',
targetBag = 'Bag meth, lazy ass',
targetCook = 'Cook meth, idiot',
targetGrabTray = 'Grab meth tray, loser',
targetHeat = 'Adjust the dials, fucker',
targetSmash = 'Smash the tray, moron',
targetStealEPH = 'Steal ephedrine, dumbass',
stealingEPH = 'Stealing ephedrine, idiot',
targetStealACE = 'Steal acetone, shithead',
stealingACE = 'Stealing acetone, dipshit',
notOnRun = 'Not on a meth run, moron',
onCooldown = 'You’re on cooldown, loser',
teleIn = 'Enter the lab, dumbfuck',
teleOut = 'Exit the lab, idiot',
}
Lang.oxy = {
ditchCar = 'Van is hot, leave it somewhere, fucker',
targetHandoff = 'Hand off the package, dipshit',
handingoff = 'Handing off package, moron',
emptyHands = 'You’re not carrying shit, idiot',
targetPay = 'Rent oxy van, lazy ass',
keys = 'Keys are in the van, dumbfuck',
targetGetPackage = 'Grab the package, shithead',
alreadyCarrying = 'Already carrying a package, loser',
paid = 'Paid $%s to rent van, finally',
notOn = 'Not on a route, moron',
}
Lang.pharma = {
input = {
header = 'Who the fuck gets this prescription?',
title1 = 'Player name, asshole',
title2 = 'Prescription, dumbfuck',
},
write = 'Writing prescription, shithead',
opening = 'Opening prescription bottle, moron',
targetFill = 'Fill prescription, idiot',
fill = 'Getting prescription filled, dipshit',
canceled = 'You canceled the prescription, loser',
unbottle = 'Opened the bottle, fucker',
}
Lang.shrooms = {
targetPick = 'Pick shrooms, dumbass',
picking = 'Picking shrooms, idiot',
eat = 'Eating shrooms, shithead',
cancel = 'Decided not to do shrooms, loser',
took = 'Took some shrooms, fucker!',
}
Lang.weed = {
targetPick = 'Pick weed, dumbfuck',
picking = 'Picking weed, idiot',
targetDry = 'Dry weed, shithead',
noDry = 'Need wet weed for this, loser',
wait = 'Waiting for weed to dry, dipshit...',
take = 'Ready to take weed, moron',
targetDryed = 'Pick up weed, fucker',
teleportIn = 'Enter grow house, asshole',
teleportOut = 'Leave grow house, idiot',
dabs = 'Doing some dabs, dumbfuck',
bluntWrap = 'Dipping syrup to make %s, loser',
rollBlunt = 'Rolling a %s, shithead',
targetSales = 'Buy from dealer, dipshit',
buying = 'Buying %s from dealer, moron',
itemDoesntExist = 'Item does not exist here, dumbass',
needItem = 'Need a %s for this, fucker',
crackBlunt = 'Cracking open a blunt, loser',
}
Lang.wholesale = {
alreadyWholesale = 'Already wholesaling, asshole',
targetBuyer = 'Talk to the buyer, shithead',
wholesaling = 'Wholesaling drugs, moron',
uhoh = 'Buyer’s getting sketchy, dipshit',
tooLong = 'Buyer waited too long, dumbfuck',
notEnoughCops = 'Not enough cops on duty, loser',
count = 'Quantity detected: %s, fucker',
bonus = 'Quantity bonus: +%s%%, shithead',
estimate = 'Estimated payout: $%s - $%s, moron',
no_drugs = 'You don’t have any of this drug, dumbass',
ambush = 'Ambush! %s attackers with %s weapons approaching, fucker!',
complete = 'Sold %s items for $%s%s, idiot',
min_quantity = 'Must sell at least %s items, loser',
deal_failed_cleanup = 'Deal failed, try again, dumbfuck',
}
Lang.xtc = {
alreadyOut = 'You have a press out already, shithead',
settingDown = 'Setting down the press, moron',
noPressOut = 'No press out, dumbass',
targetMake = 'Press pills, loser',
making = 'Pressing a %s, fucker',
targetPickup = 'Pick up press, idiot',
picking = 'Picking up press, dipshit',
targetStealMDP2P = 'Steal MDP2P, asshole',
stealingMDP2P = 'Stealing MDP2P, moron',
fail = 'Damn dude, you suck, shithead',
targetStealIsosafrole = 'Steal isosafrole, dumbfuck',
stealingIsosafrole = 'Stealing isosafrole, loser',
targetRaw = 'Make raw XTC, fucker',
makingRaw = 'Making raw XTC, idiot',
getPress = 'Get press, moron',
buySingle = 'Buy single press for $%s, shithead',
buyp = 'Buying press, dumbass',
targetStamp = 'Stamp XTC, loser',
stamp_desc = 'Stamp %s pills, fucker',
stamping = 'Stamping %s pills, idiot',
noPills = 'No unstamped pills, shithead',
}
Lang.merchant = {
targetOpen = 'Open merchant menu, asshole',
}
Lang.Whippit = {
targetShop = 'Open Whippit Shop',
needBalloon = 'You need a balloon for this, dumbass',
needCanister = 'You need a canister for this, moron',
shopHeader = 'Whippit Shop',
}
return Lang
-269
View File
@@ -1,269 +0,0 @@
Lang = {}
Lang.Catches = {
notIn = 'Je bent niet op de juiste locatie',
needItems = 'Je hebt de benodigde items niet',
notEnoughMoney = 'Je bent te arm',
buySuccess = 'Je hebt %s %s gekocht voor $%s',
itemMissings = 'Je hebt nodig: %s',
itemNeeded = 'Je hebt %s nodig',
cooldown = 'Rustig aan, Speed Racer',
invalidItem = 'Dit item wordt hier niet verkocht',
onCooldownWarn = '%s probeerde event %s uit te voeren \n terwijl hij/zij in cooldown zat',
noCops = 'Niet genoeg politie online',
}
Lang.coke = {
targetPick = 'Cocabladeren plukken',
picking = 'Cocabladeren aan het plukken',
targetMakePow = 'Cocaïnepoeder maken',
noleaf = 'Je hebt een cocablad nodig',
makePow = 'Bladeren aan het malen tot poeder',
targetCutCoke = 'Cocaïne snijden',
targetBagCoke = 'Cocaïne verpakken',
teleIn = 'Betreed het lab',
teleOut = 'Verlaat het lab',
needBakingSoda = 'Je hebt zuiveringszout nodig voor dit proces',
}
Lang.Cornerselling = {
inVeh = 'Vreemdelingengevaar!',
selling = 'Verkopen van %s voor $%s',
deny = 'Deze deal kan me niks schelen',
wait = 'Wachten op klant',
nodrugs = 'Je hebt geen drugs om te verkopen',
searching = 'Zoeken naar klanten in de buurt',
targetTakeBack = 'Drugs terugnemen',
targetSell = 'Verkoop %s van %s voor $%s',
targetDeny = 'Bod weigeren',
stopped = 'Je luie reet kan niet eens drugs verkopen!',
start = 'Ga je moeder trots maken',
gotRobbed = 'Je bent beroofd, sukkel!',
gotBack = 'Je hebt je spullen teruggekregen!',
notEnough = 'Je hebt hier niet genoeg van',
comDes = 'Verkoop spullen op straat'
}
Lang.crack = {
targetMake = 'Crack koken',
cook = 'Crack aan het koken',
targetBag = 'Crack verpakken',
bag = 'Crack aan het verpakken',
}
Lang.Deliveries = {
targetGetDel = 'Bezorgmissie ophalen',
targetOpenShop = 'Dealerwinkel openen',
shopHeader = 'Dealerwinkel',
targetHandOff = 'Pakket afleveren',
delivering = 'Pakket aan dealer aan het overhandigen',
alreadyDelivering = 'Je bent al een pakket aan het bezorgen',
slowAf = 'Je deed er veel te lang over!',
newDealerHelp = {
help = 'Plaats een dealer',
name = 'Dealer Naam',
timeMin = 'Minimum tijd',
timeMax = 'Maximum tijd'
},
DealerExists = 'Dealer bestaat al',
deleteDealer = {
help = 'Verwijder een dealer',
name = 'Dealer Naam',
},
deleteDealerSuccess = 'Dealer verwijderd',
deleteDealerFail = 'Kon dealer niet verwijderen',
}
Lang.heroin = {
targetPick = 'Heroïne plukken',
picking = 'Heroïne aan het plukken',
targetCook = 'Heroïne koken',
pbCook = 'Heroïne aan het koken',
targetPickup = 'Labo ophalen',
pbPickup = 'Labo aan het ophalen',
targetClean = 'Labo schoonmaken',
pbClean = 'Labo aan het schoonmaken',
targetDry = 'Plant drogen',
pbDry = 'Plant aan het drogen',
targetCutHeroin = 'Heroïne snijden',
pbCutHeroin = 'Heroïne aan het snijden',
targetBuyKit = 'Heroïne labokit kopen',
pbBuyKit = 'Heroïne labokit aan het kopen',
tableout = 'Je hebt al een tafel neergezet',
placing = 'Tafel aan het neerzetten',
targetFill = 'Spuits vullen',
pbFill = 'Spuits aan het vullen',
hasKitAlready = 'Je hebt al een heroïne labokit',
notEnoughMoney = 'Je hebt $%s contant nodig voor dit item',
placedKit = 'Je hebt je heroïne labokit neergezet',
failed = 'Je bent gefaald bij het maken van heroïne en bent je ingrediënten kwijtgeraakt',
}
Lang.lean = {
stealFromTruck = 'Van de vrachtwagen stelen',
startMission = 'Lean-missie starten',
notOnRun = 'Je bent niet bezig met een Lean-run',
alreadyChasing = 'Je bent al een vrachtwagen aan het achtervolgen',
}
Lang.lsd = {
targetHeat = 'LSD verwarmen',
heating = 'LSD aan het verwarmen',
targetRefine = 'Zuur zuiveren',
refining = 'Zuur aan het zuiveren',
targetDipping = 'Tabletten dopen',
dipping = 'Tabletten aan het dopen',
targetPickup = 'Labokit ophalen',
packup = 'Labokit aan het inpakken',
targetClean = 'Labokit schoonmaken',
needCleaning = 'Je hebt een schoonmaakkit nodig om het labo schoon te maken',
cleaning = 'Labokit aan het schoonmaken',
targetLys = 'Lysergeenzuur stelen',
stealLys = 'Lysergeenzuur aan het stelen',
targetDie = 'Diethylamide stelen',
stealDie = 'Diethylamide aan het stelen',
targetBuyTab = 'Tabletpapier kopen',
targetBuyKit = 'LSD labokit kopen',
alreadyOwn = 'Je bezit dit item al',
buyingKit = 'LSD labokit aan het kopen',
tableout = 'Je hebt al een tafel neergezet',
placing = 'Labokit aan het neerzetten!',
failed = 'Je bent slecht in het maken van drugs',
}
Lang.mesc = {
targetPick = 'Cactus plukken',
picking = 'Cactus aan het plukken',
targetDry = 'Cactus drogen',
dry = 'Cactus aan het drogen',
}
Lang.meth = {
alreadyChasing = 'Je bent al een auto aan het achtervolgen',
targetStealFromCar = 'Van de methauto stelen',
targetHeist = 'Meth-missie starten',
started = 'Je hebt al meth aan het koken',
increaseHeat = 'Je hebt de hitte verhoogd',
targetBag = 'Meth verpakken',
targetCook = 'Meth koken',
targetGrabTray = 'Meth-lade pakken',
targetHeat = 'Knoppen aanpassen',
targetSmash = 'Lade kapotslaan',
targetStealEPH = 'Efedrine stelen',
stealingEPH = 'Efedrine aan het stelen',
targetStealACE = 'Aceton stelen',
stealingACE = 'Aceton aan het stelen',
notOnRun = 'Je bent niet op een meth-run',
onCooldown = 'Je zit in cooldown',
teleIn = 'Betreed het lab',
teleOut = 'Verlaat het lab',
}
Lang.oxy = {
ditchCar = 'De bus is te heet, laat hem ergens achter',
targetHandoff = 'Pakket overhandigen',
handingoff = 'Pakket aan het overhandigen',
emptyHands = 'Je draagt niets',
targetPay = 'Oxy-bus huren',
keys = 'De sleutels zitten in de bus',
targetGetPackage = 'Pakket pakken',
alreadyCarrying = 'Je draagt al een pakket',
paid = 'Je hebt $%s betaald om de bus te huren',
notOn = 'Je bent niet op een route',
}
Lang.pharma = {
input = {
header = 'Aan wie een recept geven?',
title1 = 'Spelernaam',
title2 = 'Recept',
},
write = 'Recept aan het schrijven',
opening = 'Receptflesje aan het openen',
targetFill = 'Recept invullen',
fill = 'Recept aan het invullen',
canceled = 'Je hebt het recept geannuleerd',
unbottle = 'Je hebt het flesje geopend',
}
Lang.shrooms = {
targetPick = 'Paddestoelen plukken',
picking = 'Paddestoelen aan het plukken',
eat = 'Paddestoelen aan het eten',
cancel = 'Besloten om geen paddestoelen te nemen',
took = 'Je hebt wat paddestoelen genomen!'
}
Lang.weed = {
targetPick = 'Wiet plukken',
picking = 'Wiet aan het plukken',
targetDry = 'Wiet drogen',
noDry = 'Je hebt natte wiet nodig voor dit proces',
wait = 'Wachten tot de wiet droog is...',
take = 'Klaar om wiet te nemen',
targetDryed = 'Wiet oppakken',
teleportIn = 'Betreed de kweekruimte',
teleportOut = 'Verlaat de kweekruimte',
dabs = 'Dabs aan het doen',
bluntWrap = 'Siroop aan het dopen om %s te maken',
rollBlunt = 'Een %s aan het rollen',
targetSales = 'Kopen van de dealer',
buying = 'Aan het kopen van %s bij de dealer',
itemDoesntExist = 'Dit item bestaat hier niet',
needItem = 'Je hebt een %s nodig voor dit proces',
crackBlunt = 'Een joint openbreken'
}
Lang.wholesale = {
alreadyWholesale = 'Je bent al groothandelend',
targetBuyer = 'Praat met de koper',
wholesaling = 'Drugs groothandelend',
uhoh = 'De koper wordt nerveus',
tooLong = 'De koper heeft te lang gewacht',
notEnoughCops = 'Niet genoeg politieagenten op dienst',
count = 'Gedetecteerde hoeveelheid: %s',
bonus = 'Hoeveelheidsbonus: +%s%%',
estimate = 'Geschatte uitbetaling: $%s - $%s',
no_drugs = 'Je hebt geen van deze drugs om te verkopen',
ambush = 'Overval! %s aanvallers met %s wapens naderen!',
complete = '%s items verkocht voor $%s%s',
min_quantity = 'Je moet minstens %s items verkopen om groothandel te doen',
deal_failed_cleanup = 'Deal mislukt — je kunt het opnieuw proberen'
}
Lang.xtc = {
alreadyOut = 'Je hebt al een pers neergezet',
settingDown = 'Pers aan het neerzetten',
noPressOut = 'Je hebt geen pers neergezet',
targetMake = 'Pillen persen',
making = 'Een %s aan het persen',
targetPickup = 'Pers oppakken',
picking = 'Pers aan het oppakken',
targetStealMDP2P = 'MDP2P stelen',
stealingMDP2P = 'MDP2P aan het stelen',
fail = 'Verdomme, je bent hier slecht in',
targetStealIsosafrole = 'Isosafrol stelen',
stealingIsosafrole = 'Isosafrol aan het stelen',
targetRaw = 'Ruwe XTC maken',
makingRaw = 'Ruwe XTC aan het maken',
getPress = 'Pers ophalen',
buySingle = 'Enkele pers kopen voor $%s',
buyp = 'Pers aan het kopen',
targetStamp = 'XTC stempelen',
stamp_desc = '%s pillen aan het stempelen',
stamping = '%s pillen aan het stempelen',
noPills = 'Je hebt geen ongestempelde pillen'
}
Lang.merchant = {
targetOpen = 'Handelaarsmenu openen',
}
Lang.Whippit = {
targetShop = 'Whippit-winkel openen',
needBalloon = 'Je hebt een ballon nodig voor dit proces',
needCanister = 'Je hebt een kanister nodig voor dit proces',
shopHeader = 'Whippit-winkel',
}
return Lang
-269
View File
@@ -1,269 +0,0 @@
Lang = {}
Lang.Catches = {
notIn = 'ouYay Areyay otnay Inyay Ethay Orrectcay Ocationlay',
needItems = 'ouYay Oday Otnay Avehay Ethay Equiredray Itemsyay',
notEnoughMoney = 'ouYay Ereyay Otay Okebray',
buySuccess = 'ouYay Oughtbay %s %s Orfay $%s',
itemMissings = 'ouYay Eednay %s',
itemNeeded = 'ouYay Eednay %s',
cooldown = 'owSlay OwnDay Eedspay AcerRay',
invalidItem = 'isThay Itemyay Isyay Otnay Oldsay EreHay',
onCooldownWarn = '%s Attemptedyay Otay Unray Eventyay %s \n ilewhay onyay ooldowncay',
noCops = 'Nosa! Not enough cops online, okeeday!'
}
Lang.coke = {
targetPick = 'ickPay Ocacay Eaflay',
picking = 'ickingPay Ocacay Eaflay',
targetMakePow = 'akeMay Ocacaineyay Owderpay',
noleaf = 'ouYay Eednay Ayay Okecay Eaflay',
makePow = 'oppingChay Eaveslay intoyay Owderpay',
targetCutCoke = 'utCay Ocacaineyay',
targetBagCoke = 'agBay Ocacaineyay',
teleIn = 'Enteryay ethay Ablay',
teleOut = 'Exityay ethay Ablay',
needBakingSoda = 'ouYay Eednay Akingbay Odasay Orfay isThay',
}
Lang.Cornerselling = {
inVeh = 'angerStray angerDay!',
selling = 'ellingSay %s orfay $%s',
deny = 'uckFay AtThay Offeray',
wait = 'aitingWay Orfay Ustomercay',
nodrugs = 'ouYay Oday Otnay Avehay Anyyay Ugsdray Otay EllSay',
searching = 'earchingSay Orfay Earbynay Ustomerscay',
targetTakeBack = 'akeTay AckBay Ugsdray',
targetSell = 'ellSay %s Ofyay %s Orfay $%s',
targetDeny = 'enyDay Offeray',
stopped = 'ourYay Azylay Assyay AntCay Evenyay EllSay Ugsdray!',
start = 'oGay AkeMay ourYay OmMay OudPray',
gotRobbed = 'ouYay OtGay ObbedRay ErdNay!',
gotBack = 'ouYay OtGay ourYay UffStay AckBay!',
notEnough = 'ouYay OntDay Avehay Enoughyay Ofyay isThay Itemyay',
comDes = 'ellSay ingsThay Onyay Ethay OrnerCay'
}
Lang.crack = {
targetMake = 'ookCay OmeSay AckCray',
cook = 'ookingCay AckCray',
targetBag = 'agBay AckCray',
bag = 'aggingBay AckCray',
}
Lang.Deliveries = {
targetGetDel = 'etGay EliveryDay IssionMay',
targetOpenShop = 'Openyay EalerDay OpShay',
shopHeader = 'EalerDay OpShay',
targetHandOff = 'andHay Offyay EliveryDay',
delivering = 'andingHay Ethay AckagePay Otay Ugdray EalerDay',
alreadyDelivering = 'ouYay Areyay Alreadyyay EliveringDay Ayay AckagePay',
slowAf = 'ouYay OokTay Otay OngLay!',
newDealerHelp = {
help = 'acePlay Ayay EalerDay',
name = 'EalerDay Amenay',
timeMin = 'inimumMay ImeTay',
timeMax = 'aximumMay ImeTay'
},
DealerExists = 'EalerDay Alreadyyay Existsyay',
deleteDealer = {
help = 'eleteDay Ayay EalerDay',
name = 'EalerDay Amenay',
},
deleteDealerSuccess = 'eletedDay EalerDay',
deleteDealerFail = 'ailedFay Otay eleteDay EalerDay',
}
Lang.heroin = {
targetPick = 'ickPay EroinHay',
picking = 'ickingPay EroinHay',
targetCook = 'ookCay EroinHay',
pbCook = 'ookingCay Upyay EroinHay',
targetPickup = 'ickPay Upyay Ablay',
pbPickup = 'ickingPay Upyay Ablay',
targetClean = 'eanClay Ablay',
pbClean = 'eaningClay Ablay',
targetDry = 'yDray Outyay AntPlay',
pbDry = 'ryingDay Outyay AntPlay',
targetCutHeroin = 'utCay EroinHay',
pbCutHeroin = 'uttingCay EroinHay',
targetBuyKit = 'uyBay EroinHay Ablay ItKay',
pbBuyKit = 'uyingBay EroinHay Ablay ItKay',
tableout = 'ouYay Alreadyyay Avehay Ayay AbleTay Outyay',
placing = 'acingPlay OwnDay AbleTay',
targetFill = 'illFay Yringesay',
pbFill = 'illingFay Yringesay',
hasKitAlready = 'ouYay Alreadyyay Avehay Ayay EroinHay Ablay ItKay',
notEnoughMoney = 'ouYay Eednay $%s Inyay AshCay Orfay isThay',
placedKit = 'ouYay AcedPlay OwnDay ourYay EroinHay Ablay ItKay',
failed = 'ouYay ailedFay Otay AkeMay EroinHay Andyay OstLay ourYay Ingredientsyay',
}
Lang.lean = {
stealFromTruck = 'ealStay Omfray UckTray',
startMission = 'artStay EanLay IssionMay',
notOnRun = 'ouYay Areyay Otnay Onyay Ayay EanLay UnRay',
alreadyChasing = 'ouYay Areyay Alreadyyay AsingChay Ayay UckTray',
}
Lang.lsd = {
targetHeat = 'eatingHay LSD',
heating = 'eatingHay Upyay LSD',
targetRefine = 'efineRay Ethay Acidyay',
refining = 'efiningRay Ethay Acidyay',
targetDipping = 'ipDay AbsTay',
dipping = 'ippingDay AbsTay',
targetPickup = 'ickPay Upyay Ablay ItKay',
packup = 'ackingPay Upyay Ablay ItKay',
targetClean = 'eanClay Ablay ItKay',
needCleaning = 'ouYay Eednay Ayay EaningClay ItKay Otay EanClay Ethay Ablay',
cleaning = 'eaningClay Ablay ItKay',
targetLys = 'ealStay YsergicLay Acidyay',
stealLys = 'ealingStay YsergicLay Acidyay',
targetDie = 'ealStay iethylamideDay',
stealDie = 'ealingStay iethylamideDay',
targetBuyTab = 'uyBay AbTay AperPay',
targetBuyKit = 'uyBay LSD Ablay ItKay',
alreadyOwn = 'ouYay Alreadyyay Ownyay isThay Itemyay',
buyingKit = 'uyingBay LSD Ablay ItKay',
tableout = 'ouYay Alreadyyay Avehay Ayay AbleTay Outyay',
placing = 'acingPlay Ablay ItKay OwnDay!',
failed = 'ouYay UcksSay Atyay AkingMay UgsDray',
}
Lang.mesc = {
targetPick = 'ickPay ActusCay',
picking = 'ickingPay ActusCay',
targetDry = 'yDray ActusCay',
dry = 'ryingDay ActusCay',
}
Lang.meth = {
alreadyChasing = 'ouYay Alreadyyay Areyay AsingChay Ayay UckTray',
targetStealFromCar = 'ealStay Omfray EthMay ArCay',
targetHeist = 'artStay EthMay IssionMay',
started = 'ouYay Alreadyyay Avehay EthMay OokingCay',
increaseHeat = 'ouYay Increasedyay Ethay EatHay',
targetBag = 'agBay EthMay',
targetCook = 'ookCay EthMay',
targetGrabTray = 'abGray EthMay AyTray',
targetHeat = 'adjustyay Ethay IalsDay',
targetSmash = 'ashSmay Ethay AyTray',
targetStealEPH = 'ealStay Ephedrineyay',
stealingEPH = 'ealingStay Ephedrineyay',
targetStealACE = 'ealStay Acetoneyay',
stealingACE = 'ealingStay Acetoneyay',
notOnRun = 'ouYay Areyay Otnay Onyay Ayay EthMay UnRay',
onCooldown = 'ouYay Areyay Onyay Ayay OoldownCay',
teleIn = 'Enteryay Ethay Ablay',
teleOut = 'Exityay Ethay Ablay',
}
Lang.oxy = {
ditchCar = 'Ethay AnVay Isyay OtHay, Eavelay Ityay Omewheresay',
targetHandoff = 'andHay Offyay Ethay AckagePay',
handingoff = 'andingHay Offyay Ethay AckagePay',
emptyHands = 'ouYay Areyay Otnay ArryingCay Anythingyay',
targetPay = 'entRay Oxyyay AnVay',
keys = 'Ethay Eyskay Areyay Inyay Ethay AnVay',
targetGetPackage = 'abGray AckagePay',
alreadyCarrying = 'ouYay Areyay Alreadyyay ArryingCay Ayay AckagePay',
paid = 'ouYay AidPay $%s Otay EntRay Ethay AnVay',
notOn = 'ouYay Areyay Otnay Onyay Ayay OuteRay',
}
Lang.pharma = {
input = {
header = 'oWhay Otay IveGay Ayay EscriptionPray Otyay?',
title1 = 'ayerPlay Amenay',
title2 = 'escriptionPray',
},
write = 'itingWray EscriptionPray',
opening = 'openingyay EscriptionPray OttleBay',
targetFill = 'illFay EscriptionPray',
fill = 'ettingGay EscriptionPray IlledFay',
canceled = 'ouYay AnceledCay Ethay EscriptionPray',
unbottle = 'ouYay Openedyay Ethay OttleBay',
}
Lang.shrooms = {
targetPick = 'ickPay RoomsShay',
picking = 'ickingPay RoomsShay',
eat = 'eatingyay RoomsShay',
cancel = 'ecidedDay Otay Otnay Oday RoomsShay',
took = 'ouYay OokTay Omesay RoomsShay!',
}
Lang.weed = {
targetPick = 'ickPay EedWay',
picking = 'ickingPay EedWay',
targetDry = 'yDray EedWay',
noDry = 'ouYay Eednay EtWay EedWay Orfay isThay',
wait = 'aitingWay Orfay EedWay Otay yDray...',
take = 'eadyRay Otay AkeTay EedWay',
targetDryed = 'ickupPay EedWay',
teleportIn = 'Enteryay Ethay OwGray OuseHay',
teleportOut = 'eaveLay Ethay OwGray OuseHay',
dabs = 'oingDay Omesay AbsDay',
bluntWrap = 'ippingDay YrupSay Otay AkeMay %s',
rollBlunt = 'ollingRay Ayay %s',
targetSales = 'uyBay Omfray EalerDay',
buying = 'uyingBay %s Omfray EalerDay',
itemDoesntExist = 'isThay Itemyay OesDay Otnay Existyay EreHay',
needItem = 'ouYay Eednay Ayay %s Orfay isThay',
crackBlunt = 'ackingCray Openyay Ayay UntBlay'
}
Lang.wholesale = {
alreadyWholesale = 'Alreadyyay OlesalingWhay',
targetBuyer = 'alkTay Otay Ethay UyerBay',
wholesaling = 'olesalingWhay UgsDray',
uhoh = 'Ethay UyerBay Isyay EttingGay EtchySkay',
tooLong = 'Ethay UyerBay AitedWay Otay OngLay',
notEnoughCops = 'Otnay Enoughyay OpsCay Onyay UtyDay',
count = 'antityQuay EtectedDay: %s',
bonus = 'antityQuay OnusBay: +%s%%',
estimate = 'Estimatedyay AyoutPay: $%s - $%s',
no_drugs = 'ouYay Oday Otnay Avehay Anyyay Ofyay isthay UgDray Otay EllSay',
ambush = 'Ambushyay! %s attackersyay ithway %s eaponsway areyay approachingyay!',
complete = 'oldSay %s itemsyay orfay $%s%s',
min_quantity = 'ouYay Ustmay EllSay Atlay Eastyay %s itemsyay Otay OlesaleWhay',
deal_failed_cleanup = 'EalDay ailedFay - ouyay ancay ytray againyay'
}
Lang.xtc = {
alreadyOut = 'ouYay Avehay Ayay EssPray Outyay Alreadyyay',
settingDown = 'ettingSay OwnDay Ethay EssPray',
noPressOut = 'ouYay Oday Otnay Avehay Ayay EssPray Outyay',
targetMake = 'essPray IllsPay',
making = 'essingPray Ayay %s',
targetPickup = 'ickPay Upyay EssPray',
picking = 'ickingPay Upyay EssPray',
targetStealMDP2P = 'ealStay MDP2Pyay',
stealingMDP2P = 'ealingStay MDP2Pyay',
fail = 'amnDay UdeDay ouYay UcksSay',
targetStealIsosafrole = 'ealStay Isosafroleyay',
stealingIsosafrole = 'ealingStay Isosafroleyay',
targetRaw = 'akeMay AwRay XTCyay',
makingRaw = 'akingMay AwRay XTCyay',
getPress = 'etGay EssPray',
buySingle = 'uyBay IngleSay EssPray Orfay $%s',
buyp = 'uyingBay EssPray',
targetStamp = 'ampStay XTCyay',
stamp_desc = 'ampStay %s IllsPay',
stamping = 'ampingStay %s IllsPay',
noPills = 'ouYay OntDay Avehay Anyyay Unstampedyay IllsPay'
}
Lang.merchant = {
targetOpen = 'Openyay ErchantMay EnuMay',
}
Lang.Whippit = {
targetShop = 'Openyay HippitWay OpShay',
needBalloon = 'ouYay Eednay Ayay AlloonBay Orfay isThay',
needCanister = 'ouYay Eednay Ayay AnisterCay Orfay isThay',
shopHeader = 'HippitWay OpShay',
}
return Lang
-269
View File
@@ -1,269 +0,0 @@
Lang = {}
Lang.Catches = {
notIn = 'Ye be not in the right port, matey!',
needItems = 'Ye be lackin’ the proper booty',
notEnoughMoney = 'Ye pockets be emptier than Davey Jones’ locker',
buySuccess = 'Ye plundered %s %s fer $%s',
itemMissings = 'Ye be needin’ %s',
itemNeeded = 'Ye be needin’ %s',
cooldown = 'Avast! Slow yer sails, sailor!',
invalidItem = 'This booty ain’t sold on these seas',
onCooldownWarn = '%s tried to run the voyage %s \n while the crew be restin’',
noCops = 'Not enough watchmen on duty, yarrr!'
}
Lang.coke = {
targetPick = 'Pluck the coca leaf',
picking = 'Plunderin’ coca leaves',
targetMakePow = 'Grind the white powder',
noleaf = 'Ye need a coca leaf, swabbie!',
makePow = 'Choppin’ leaves inta powder',
targetCutCoke = 'Carve up the cocaine',
targetBagCoke = 'Stash cocaine in sacks',
teleIn = 'Sneak inta the secret hold',
teleOut = 'Slip outta the secret hold',
needBakingSoda = 'Ye be needin’ bakin’ soda fer this, yarrr'
}
Lang.Cornerselling = {
inVeh = 'Stranger danger, ye scallywag!',
selling = 'Hawk’n %s fer $%s',
deny = 'Blimey, shove that deal!',
wait = 'Waitin’ fer a matey with coin',
nodrugs = 'Ye hold no contraband, landlubber',
searching = 'Scoutin’ fer passin’ sailors',
targetTakeBack = 'Snatch back the goods',
targetSell = 'Trade %s o’ %s fer $%s',
targetDeny = 'Turn down the offer',
stopped = 'Ye lazy bilge rat, can’t even peddle the wares!',
start = 'Go make yer mum proud, lad',
gotRobbed = 'Ye been plundered, ye sorry dog!',
gotBack = 'Ye reclaimed yer booty!',
notEnough = 'Ye don’t hold enough o’ this booty',
comDes = 'Sellin’ goods on the street corner, yarrr'
}
Lang.crack = {
targetMake = 'Cook some crack in the galley',
cook = 'Brewin’ crack on the stove',
targetBag = 'Stash the crack',
bag = 'Stashin’ the crack, yarrr',
}
Lang.Deliveries = {
targetGetDel = 'Snag a smuggler’s run',
targetOpenShop = 'Open the dealer’s chest',
shopHeader = 'Dealer’s Market',
targetHandOff = 'Hand off the cargo',
delivering = 'Passin’ the package to a shady sailor',
alreadyDelivering = 'Ye already got a run, bucko',
slowAf = 'Too slow, ye barnacle brain!',
newDealerHelp = {
help = 'Drop anchor a dealer',
name = 'Dealer’s Name',
timeMin = 'Shortest tide',
timeMax = 'Longest tide'
},
DealerExists = 'That dealer’s already sailin’',
deleteDealer = {
help = 'Scuttle a dealer',
name = 'Dealer’s Name',
},
deleteDealerSuccess = 'Dealer scuttled to the depths',
deleteDealerFail = 'The dealer lives yet, yarrr',
}
Lang.heroin = {
targetPick = 'Pick the poppy treasure',
picking = 'Harvestin’ heroin booty',
targetCook = 'Brew the heroin stew',
pbCook = 'Cookin’ up heroin grog',
targetPickup = 'Snatch the lab chest',
pbPickup = 'Packin’ up the lab',
targetClean = 'Swab the lab deck',
pbClean = 'Swabbin’ down the lab',
targetDry = 'Dry out the devil’s weed',
pbDry = 'Hangin’ plants to dry',
targetCutHeroin = 'Slice the heroin',
pbCutHeroin = 'Cuttin’ heroin',
targetBuyKit = 'Buy a heroin galley kit',
pbBuyKit = 'Buyin’ the galley kit',
tableout = 'Ye already got a table out, matey',
placing = 'Droppin’ the galley table',
targetFill = 'Fill a syringe',
pbFill = 'Filling the syringe',
hasKitAlready = 'Ye already got a heroin galley kit',
notEnoughMoney = 'Ye need $%s in coin fer this',
placedKit = 'Ye set yer galley kit down',
failed = 'Ye bungled the brew an’ lost yer stash',
}
Lang.lean = {
stealFromTruck = 'Plunder the cargo wagon',
startMission = 'Set sail on a lean run',
notOnRun = 'Ye be not on a lean voyage',
alreadyChasing = 'Ye be already tailin’ a wagon',
}
Lang.lsd = {
targetHeat = 'Heat the acid grog',
heating = 'Stokin’ the acid fire',
targetRefine = 'Refine the devil’s brew',
refining = 'Refinin’ the acid',
targetDipping = 'Dip the cursed tabs',
dipping = 'Dippin’ tabs',
targetPickup = 'Snatch the lab kit',
packup = 'Stashin’ the lab kit',
targetClean = 'Scrub the lab kit',
needCleaning = 'Ye need a scrub kit to swab this lab',
cleaning = 'Swabbin’ the lab kit',
targetLys = 'Steal lysergic acid booty',
stealLys = 'Snatchin’ lysergic acid',
targetDie = 'Steal diethylamide loot',
stealDie = 'Snatchin’ diethylamide',
targetBuyTab = 'Buy tab parchment',
targetBuyKit = 'Buy LSD lab kit',
alreadyOwn = 'Ye already hold this booty',
buyingKit = 'Buyin’ LSD galley kit',
tableout = 'Ye already got a table out',
placing = 'Plantin’ the lab kit',
failed = 'Ye botched the brew, yarrr',
}
Lang.mesc = {
targetPick = 'Harvest the cactus booty',
picking = 'Pluckin’ cactus',
targetDry = 'Dry the cactus flesh',
dry = 'Dryin’ cactus',
}
Lang.meth = {
alreadyChasing = 'Ye already be chasin’ a wagon',
targetStealFromCar = 'Plunder the meth cart',
targetHeist = 'Set sail on a meth run',
started = 'Ye already be brewin’ meth, matey',
increaseHeat = 'Ye stoked the fire hotter',
targetBag = 'Bag the meth booty',
targetCook = 'Cook the meth stew',
targetGrabTray = 'Snatch the meth tray',
targetHeat = 'Twist the dials',
targetSmash = 'Smash the tray',
targetStealEPH = 'Steal ephedrine booty',
stealingEPH = 'Snatchin’ ephedrine',
targetStealACE = 'Steal acetone booty',
stealingACE = 'Snatchin’ acetone',
notOnRun = 'Ye be not on a meth run',
onCooldown = 'Ye be coolin’ yer heels, yarrr',
teleIn = 'Sneak into the meth galley',
teleOut = 'Slip outta the meth galley',
}
Lang.oxy = {
ditchCar = 'The wagon be too hot, stash it away',
targetHandoff = 'Hand off the cursed cargo',
handingoff = 'Passin’ the package',
emptyHands = 'Ye be carryin’ nothin’, bilge rat',
targetPay = 'Rent an oxy wagon',
keys = 'The keys be in the wagon, matey',
targetGetPackage = 'Snatch a parcel',
alreadyCarrying = 'Ye already be carryin’ a parcel',
paid = 'Ye paid $%s to rent the wagon',
notOn = 'Ye be not on a smuggler’s route',
}
Lang.pharma = {
input = {
header = 'Who gets this magic scroll?',
title1 = 'Sailor’s Name',
title2 = 'Prescription',
},
write = 'Scrawlin’ a prescription',
opening = 'Poppin’ open the medicine chest',
targetFill = 'Fill the prescription',
fill = 'Fetchin’ the potion',
canceled = 'Ye canceled the scroll',
unbottle = 'Ye popped open the potion flask',
}
Lang.shrooms = {
targetPick = 'Harvest the magic shrooms',
picking = 'Pluckin’ shrooms',
eat = 'Munchin’ shrooms, yarrr',
cancel = 'Changed yer mind on the shrooms',
took = 'Ye ate the shrooms, matey!',
}
Lang.weed = {
targetPick = 'Harvest the devil’s lettuce',
picking = 'Pluckin’ weed',
targetDry = 'Dry the weed booty',
noDry = 'Ye need wet weed fer this, swabbie',
wait = 'Waitin’ fer the weed to dry...',
take = 'Time to snatch the weed',
targetDryed = 'Pick up the weed stash',
teleportIn = 'Sneak into the grow cabin',
teleportOut = 'Slip outta the grow cabin',
dabs = 'Dabbin’ the wax, yarrr',
bluntWrap = 'Dippin’ syrup to make %s',
rollBlunt = 'Rollin’ a %s',
targetSales = 'Buy off a shady dealer',
buying = 'Buyin’ %s from a dealer',
itemDoesntExist = 'This booty be not here',
needItem = 'Ye need a %s fer this',
crackBlunt = 'Crackin’ open a blunt',
}
Lang.wholesale = {
alreadyWholesale = 'Ye already be tradin’ in bulk',
targetBuyer = 'Speak to the buyer',
wholesaling = 'Sellin’ contraband by the chest',
uhoh = 'The buyer looks shifty, yarrr',
tooLong = 'The buyer grew weary o’ waitin’',
notEnoughCops = 'Not enough watchmen on duty',
count = 'Booty counted: %s',
bonus = 'Bonus fer quantity: +%s%%',
estimate = 'Ye may get $%s - $%s',
no_drugs = 'Ye hold none o’ this contraband',
ambush = 'An ambush! %s rogues with %s weapons approach!',
complete = 'Sold %s booty fer $%s%s',
min_quantity = 'Ye must sell at least %s to wholesale',
deal_failed_cleanup = 'The trade sank – try again later',
}
Lang.xtc = {
alreadyOut = 'Ye already got a press out, matey',
settingDown = 'Droppin’ the press',
noPressOut = 'Ye got no press, bilge rat',
targetMake = 'Press the pills',
making = 'Pressin’ a %s',
targetPickup = 'Snatch up the press',
picking = 'Grabbin’ the press',
targetStealMDP2P = 'Snatch the MDP2P booty',
stealingMDP2P = 'Stealin’ MDP2P',
fail = 'By thunder, ye be useless!',
targetStealIsosafrole = 'Snatch isosafrole booty',
stealingIsosafrole = 'Stealin’ isosafrole',
targetRaw = 'Cook raw XTC grog',
makingRaw = 'Brewin’ raw XTC',
getPress = 'Fetch a press',
buySingle = 'Buy a single press fer $%s',
buyp = 'Buyin’ the press',
targetStamp = 'Stamp the XTC',
stamp_desc = 'Stamp %s pills',
stamping = 'Stampin’ %s pills',
noPills = 'Ye got no naked pills to stamp',
}
Lang.merchant = {
targetOpen = 'Open the trader’s menu',
}
Lang.Whippit = {
targetShop = 'Open Whippit Shop',
needBalloon = 'Ye need a balloon fer this, matey',
needCanister = 'Ye need a canister fer this, swabbie',
shopHeader = 'Whippit Shop',
}
return Lang
-268
View File
@@ -1,268 +0,0 @@
Lang = {}
Lang.Catches = {
notIn = 'Você não está no local correto',
needItems = 'Você não tem os itens necessários',
notEnoughMoney = 'Você tá muito liso',
buySuccess = 'Você comprou %s %s por $%s',
itemMissings = 'Você precisa de %s',
itemNeeded = 'Você precisa de %s',
cooldown = 'Calma, Speed Racer',
invalidItem = 'Este item não é vendido aqui',
onCooldownWarn = '%s tentou executar o evento %s \n enquanto estava em cooldown',
noCops = 'Poucos policiais online',
}
Lang.coke = {
targetPick = 'Colher folhas de coca',
picking = 'Colhendo folhas de coca',
targetMakePow = 'Fazer pó de cocaína',
noleaf = 'Você precisa de uma folha de coca',
makePow = 'Moendo folhas em pó',
targetCutCoke = 'Cortar cocaína',
targetBagCoke = 'Ensacar cocaína',
teleIn = 'Entrar no laboratório',
teleOut = 'Sair do laboratório',
needBakingSoda = 'Você precisa de bicarbonato de sódio para isso',
}
Lang.Cornerselling = {
inVeh = 'Perigo de desconhecido!',
selling = 'Vendendo %s por $%s',
deny = 'Foda-se essa oferta',
wait = 'Esperando por cliente',
nodrugs = 'Você não tem drogas para vender',
searching = 'Procurando por clientes próximos',
targetTakeBack = 'Recuperar drogas',
targetSell = 'Vender %s de %s por $%s',
targetDeny = 'Recusar oferta',
stopped = 'Seu bunda mole nem consegue vender droga!',
start = 'Vai fazer sua mãe se orgulhar',
gotRobbed = 'Você foi roubado, otário!',
gotBack = 'Você recuperou suas coisas!',
notEnough = 'Você não tem o suficiente desse item',
comDes = 'Venda coisas na esquina'
}
Lang.crack = {
targetMake = 'Cozinhar crack',
cook = 'Cozinhando crack',
targetBag = 'Ensacar crack',
bag = 'Ensacando crack',
}
Lang.Deliveries = {
targetGetDel = 'Pegar missão de entrega',
targetOpenShop = 'Abrir loja do traficante',
shopHeader = 'Loja do Traficante',
targetHandOff = 'Entregar encomenda',
delivering = 'Entregando o pacote ao traficante',
alreadyDelivering = 'Você já está entregando um pacote',
slowAf = 'Você demorou demais!',
newDealerHelp = {
help = 'Colocar um traficante',
name = 'Nome do traficante',
timeMin = 'Tempo mínimo',
timeMax = 'Tempo máximo'
},
DealerExists = 'Traficante já existe',
deleteDealer = {
help = 'Deletar um traficante',
name = 'Nome do traficante',
},
deleteDealerSuccess = 'Traficante deletado',
deleteDealerFail = 'Falha ao deletar traficante',
}
Lang.heroin = {
targetPick = 'Colher heroína',
picking = 'Colhendo heroína',
targetCook = 'Cozinhar heroína',
pbCook = 'Cozinhando heroína',
targetPickup = 'Recuperar laboratório',
pbPickup = 'Recuperando laboratório',
targetClean = 'Limpar laboratório',
pbClean = 'Limpando laboratório',
targetDry = 'Secar planta',
pbDry = 'Secando planta',
targetCutHeroin = 'Cortar heroína',
pbCutHeroin = 'Cortando heroína',
targetBuyKit = 'Comprar kit de laboratório de heroína',
pbBuyKit = 'Comprando kit de laboratório de heroína',
tableout = 'Você já tem uma mesa montada',
placing = 'Montando mesa',
targetFill = 'Encher seringa',
pbFill = 'Enchendo seringa',
hasKitAlready = 'Você já tem um kit de laboratório de heroína',
notEnoughMoney = 'Você precisa de $%s em dinheiro para isso',
placedKit = 'Você montou seu kit de laboratório de heroína',
failed = 'Você falhou em fazer heroína e perdeu os ingredientes',
}
Lang.lean = {
stealFromTruck = 'Roubar do caminhão',
startMission = 'Iniciar missão de Lean',
notOnRun = 'Você não está em uma missão de Lean',
alreadyChasing = 'Você já está perseguindo um caminhão',
}
Lang.lsd = {
targetHeat = 'Aquecer LSD',
heating = 'Aquecendo LSD',
targetRefine = 'Refinar o ácido',
refining = 'Refinando o ácido',
targetDipping = 'Mergulhar comprimidos',
dipping = 'Mergulhando comprimidos',
targetPickup = 'Recuperar kit de laboratório',
packup = 'Guardando kit de laboratório',
targetClean = 'Limpar kit de laboratório',
needCleaning = 'Você precisa de um kit de limpeza para limpar o laboratório',
cleaning = 'Limpando kit de laboratório',
targetLys = 'Roubar ácido lisérgico',
stealLys = 'Roubando ácido lisérgico',
targetDie = 'Roubar dietilamida',
stealDie = 'Roubando dietilamida',
targetBuyTab = 'Comprar papel para comprimidos',
targetBuyKit = 'Comprar kit de laboratório de LSD',
alreadyOwn = 'Você já possui este item',
buyingKit = 'Comprando kit de laboratório de LSD',
tableout = 'Você já tem uma mesa montada',
placing = 'Montando kit de laboratório!',
failed = 'Você é péssimo em fazer drogas',
}
Lang.mesc = {
targetPick = 'Colher cacto',
picking = 'Colhendo cacto',
targetDry = 'Secar cacto',
dry = 'Secando cacto',
}
Lang.meth = {
alreadyChasing = 'Você já está perseguindo um carro',
targetStealFromCar = 'Roubar do carro de metanfetamina',
targetHeist = 'Iniciar missão de metanfetamina',
started = 'Você já tem metanfetamina cozinhando',
increaseHeat = 'Você aumentou o calor',
targetBag = 'Ensacar metanfetamina',
targetCook = 'Cozinhar metanfetamina',
targetGrabTray = 'Pegar bandeja de metanfetamina',
targetHeat = 'Ajustar os controles',
targetSmash = 'Esmagar a bandeja',
targetStealEPH = 'Roubar efedrina',
stealingEPH = 'Roubando efedrina',
targetStealACE = 'Roubar acetona',
stealingACE = 'Roubando acetona',
notOnRun = 'Você não está em uma missão de metanfetamina',
onCooldown = 'Você está em cooldown',
teleIn = 'Entrar no laboratório',
teleOut = 'Sair do laboratório',
}
Lang.oxy = {
ditchCar = 'A van tá quente, deixe ela em algum lugar',
targetHandoff = 'Entregar o pacote',
handingoff = 'Entregando o pacote',
emptyHands = 'Você não está carregando nada',
targetPay = 'Alugar van de Oxy',
keys = 'As chaves estão dentro da van',
targetGetPackage = 'Pegar pacote',
alreadyCarrying = 'Você já está carregando um pacote',
paid = 'Você pagou $%s para alugar a van',
notOn = 'Você não está em uma rota',
}
Lang.pharma = {
input = {
header = 'Para quem passar a receita?',
title1 = 'Nome do jogador',
title2 = 'Receita',
},
write = 'Escrevendo receita',
opening = 'Abrindo frasco da receita',
targetFill = 'Preencher receita',
fill = 'Preenchendo receita',
canceled = 'Você cancelou a receita',
unbottle = 'Você abriu o frasco',
}
Lang.shrooms = {
targetPick = 'Colher cogumelos',
picking = 'Colhendo cogumelos',
eat = 'Comendo cogumelos',
cancel = 'Decidiu não usar cogumelos',
took = 'Você usou alguns cogumelos!'
}
Lang.weed = {
targetPick = 'Colher maconha',
picking = 'Colhendo maconha',
targetDry = 'Secar maconha',
noDry = 'Você precisa de maconha úmida para isso',
wait = 'Esperando a maconha secar...',
take = 'Pronto para pegar a maconha',
targetDryed = 'Pegar maconha seca',
teleportIn = 'Entrar na estufa',
teleportOut = 'Sair da estufa',
dabs = 'Fazendo dabs',
bluntWrap = 'Molhando xarope para fazer %s',
rollBlunt = 'Enrolando um %s',
targetSales = 'Comprar do traficante',
buying = 'Comprando %s do traficante',
itemDoesntExist = 'Este item não existe aqui',
needItem = 'Você precisa de um %s para isso',
crackBlunt = 'Quebrando um baseado'
}
Lang.wholesale = {
alreadyWholesale = 'Você já está vendendo no atacado',
targetBuyer = 'Falar com o comprador',
wholesaling = 'Vendendo drogas no atacado',
uhoh = 'O comprador está ficando desconfiado',
tooLong = 'O comprador esperou demais',
notEnoughCops = 'Policiais insuficientes de plantão',
count = 'Quantidade detectada: %s',
bonus = 'Bônus de quantidade: +%s%%',
estimate = 'Pagamento estimado: $%s - $%s',
no_drugs = 'Você não tem nenhuma dessas drogas para vender',
ambush = 'Emboscada! %s atacantes com %s armas se aproximam!',
complete = 'Vendidos %s itens por $%s%s',
min_quantity = 'Você precisa vender pelo menos %s itens para vender no atacado',
deal_failed_cleanup = 'Negócio falhou — você pode tentar novamente'
}
Lang.xtc = {
alreadyOut = 'Você já tem uma prensa montada',
settingDown = 'Montando a prensa',
noPressOut = 'Você não tem uma prensa montada',
targetMake = 'Prensar pílulas',
making = 'Prensando uma %s',
targetPickup = 'Recuperar prensa',
picking = 'Recuperando prensa',
targetStealMDP2P = 'Roubar MDP2P',
stealingMDP2P = 'Roubando MDP2P',
fail = 'Porra, você é ruim nisso',
targetStealIsosafrole = 'Roubar isosafrol',
stealingIsosafrole = 'Roubando isosafrol',
targetRaw = 'Fazer XTC cru',
makingRaw = 'Fazendo XTC cru',
getPress = 'Pegar prensa',
buySingle = 'Comprar prensa individual por $%s',
buyp = 'Comprando prensa',
targetStamp = 'Carimbar XTC',
stamp_desc = 'Carimbando %s pílulas',
stamping = 'Carimbando %s pílulas',
noPills = 'Você não tem pílulas sem carimbo'
}
Lang.merchant = {
targetOpen = 'Abrir menu do comerciante',
}
Lang.Whippit = {
targetShop = 'Abrir loja Whippit',
needBalloon = 'Você precisa de um balão para isso',
needCanister = 'Você precisa de um recipiente para isso',
shopHeader = 'Loja Whippit',
}
return Lang
-269
View File
@@ -1,269 +0,0 @@
Lang = {}
Lang.Catches = {
notIn = 'Doğru konumda değilsiniz',
needItems = 'Gerekli eşyalara sahip değilsiniz',
notEnoughMoney = 'Çok fakirsin',
buySuccess = '%s adet %s satın aldınız, ücret: $%s',
itemMissings = 'Şunlara ihtiyacınız var: %s',
itemNeeded = '%s gerekli',
cooldown = 'Yavaşla, Speed Racer',
invalidItem = 'Bu ürün burada satılmıyor',
onCooldownWarn = '%s, %s olayını cooldown süresinde çalıştırmaya çalıştı \n',
noCops = 'Yeterli polis çevrimiçi değil',
}
Lang.coke = {
targetPick = 'Koka yaprağı topla',
picking = 'Koka yaprağı toplanıyor',
targetMakePow = 'Kokain tozu yap',
noleaf = 'Bir koka yaprağına ihtiyacın var',
makePow = 'Yapraklar toza dönüştürülüyor',
targetCutCoke = 'Kokaini kes',
targetBagCoke = 'Kokaini paketle',
teleIn = 'Laboratuvara gir',
teleOut = 'Laboratuvardan çık',
needBakingSoda = 'Bunun için kabartma tozu gerekli',
}
Lang.Cornerselling = {
inVeh = 'Yabancı tehlikesi!',
selling = '%s satılıyor, fiyat: $%s',
deny = 'Bu teklifi geç',
wait = 'Müşteri bekleniyor',
nodrugs = 'Satılacak uyuşturucun yok',
searching = 'Yakınlarda müşteri aranıyor',
targetTakeBack = 'Uyuşturucuları geri al',
targetSell = '%s adet %s sat, fiyat: $%s',
targetDeny = 'Teklifi reddet',
stopped = 'Tembel götün uyuşturucu bile satamıyor!',
start = 'Git anneni gururlandır',
gotRobbed = 'Soyuldun, salak!',
gotBack = 'Eşyalarını geri aldın!',
notEnough = 'Bu eşyadan yeterince yok',
comDes = 'Sokakta şeyler sat'
}
Lang.crack = {
targetMake = 'Crack pişir',
cook = 'Crack pişiriliyor',
targetBag = 'Crack paketle',
bag = 'Crack paketleniyor',
}
Lang.Deliveries = {
targetGetDel = 'Teslimat görevi al',
targetOpenShop = 'Bayi dükkanını aç',
shopHeader = 'Bayi Dükkanı',
targetHandOff = 'Paketi teslim et',
delivering = 'Paketi bayiye teslim ediyorsun',
alreadyDelivering = 'Zaten bir paket teslim ediyorsun',
slowAf = 'Çok fazla vakit harcadın!',
newDealerHelp = {
help = 'Bir bayi yerleştir',
name = 'Bayi Adı',
timeMin = 'Minimum süre',
timeMax = 'Maksimum süre'
},
DealerExists = 'Bayi zaten mevcut',
deleteDealer = {
help = 'Bir bayiyi sil',
name = 'Bayi Adı',
},
deleteDealerSuccess = 'Bayi silindi',
deleteDealerFail = 'Bayi silinemedi',
}
Lang.heroin = {
targetPick = 'Heroin topla',
picking = 'Heroin toplanıyor',
targetCook = 'Heroin pişir',
pbCook = 'Heroin pişiriliyor',
targetPickup = 'Laboratuvarı topla',
pbPickup = 'Laboratuvar toplanıyor',
targetClean = 'Laboratuvarı temizle',
pbClean = 'Laboratuvar temizleniyor',
targetDry = 'Bitkiyi kurut',
pbDry = 'Bitki kurutuluyor',
targetCutHeroin = 'Heroini kes',
pbCutHeroin = 'Heroin kesiliyor',
targetBuyKit = 'Heroin laboratuvar kiti satın al',
pbBuyKit = 'Heroin laboratuvar kiti satın alınıyor',
tableout = 'Zaten bir masa çıkarttın',
placing = 'Masa yerleştiriliyor',
targetFill = 'Şırıngayı doldur',
pbFill = 'Şırınga dolduruluyor',
hasKitAlready = 'Zaten bir heroin laboratuvar kiti sahibisin',
notEnoughMoney = 'Bunun için $%s nakit gerekli',
placedKit = 'Heroin laboratuvar kitini yerleştirdin',
failed = 'Heroin yapımında başarısız oldun ve malzemelerini kaybettin',
}
Lang.lean = {
stealFromTruck = 'Kamyonetten çal',
startMission = 'Lean görevini başlat',
notOnRun = 'Lean görevinde değilsin',
alreadyChasing = 'Zaten bir kamyoneti kovalıyorsun',
}
Lang.lsd = {
targetHeat = 'LSD’yi ısıt',
heating = 'LSD ısıtılıyor',
targetRefine = 'Asidi rafine et',
refining = 'Asit rafine ediliyor',
targetDipping = 'Tabletleri daldır',
dipping = 'Tabletler daldırılıyor',
targetPickup = 'Laboratuvar kiti topla',
packup = 'Laboratuvar kiti paketleniyor',
targetClean = 'Laboratuvar kiti temizle',
needCleaning = 'Laboratuvarı temizlemek için temizlik kiti gerekli',
cleaning = 'Laboratuvar kiti temizleniyor',
targetLys = 'Liserjik asit çal',
stealLys = 'Liserjik asit çalınıyor',
targetDie = 'Dietilamid çal',
stealDie = 'Dietilamid çalınıyor',
targetBuyTab = 'Tablet kağıdı satın al',
targetBuyKit = 'LSD laboratuvar kiti satın al',
alreadyOwn = 'Bu eşyaya zaten sahipsin',
buyingKit = 'LSD laboratuvar kiti satın alınıyor',
tableout = 'Zaten bir masa çıkarttın',
placing = 'Laboratuvar kiti yerleştiriliyor!',
failed = 'Uyuşturucu yapmada berbatsın',
}
Lang.mesc = {
targetPick = 'Kaktüs topla',
picking = 'Kaktüs toplanıyor',
targetDry = 'Kaktüsü kurut',
dry = 'Kaktüs kurutuluyor',
}
Lang.meth = {
alreadyChasing = 'Zaten bir aracı kovalıyorsun',
targetStealFromCar = 'Meth arabasından çal',
targetHeist = 'Meth görevini başlat',
started = 'Zaten meth pişiriyorsun',
increaseHeat = 'Isıyı artırdın',
targetBag = 'Meth paketle',
targetCook = 'Meth pişir',
targetGrabTray = 'Meth tepsisini al',
targetHeat = 'Kontrolleri ayarla',
targetSmash = 'Tepsinin üzerine vur',
targetStealEPH = 'Efedrin çal',
stealingEPH = 'Efedrin çalınıyor',
targetStealACE = 'Aseton çal',
stealingACE = 'Aseton çalınıyor',
notOnRun = 'Meth görevinde değilsin',
onCooldown = 'Cooldown süresindesin',
teleIn = 'Laboratuvara gir',
teleOut = 'Laboratuvardan çık',
}
Lang.oxy = {
ditchCar = 'Araba sıcak, bir yere bırak',
targetHandoff = 'Paketi teslim et',
handingoff = 'Paketi teslim ediyorsun',
emptyHands = 'Hiçbir şey taşıyorsun',
targetPay = 'Oxy minibüsünü kirala',
keys = 'Anahtarlar minibüsün içinde',
targetGetPackage = 'Paketi al',
alreadyCarrying = 'Zaten bir paket taşıyorsun',
paid = 'Minibüsü kiralamak için $%s ödedin',
notOn = 'Bir rotada değilsin',
}
Lang.pharma = {
input = {
header = 'Kime reçete yazmak istiyorsun?',
title1 = 'Oyuncu Adı',
title2 = 'Reçete',
},
write = 'Reçete yazılıyor',
opening = 'Reçete şişesi açılıyor',
targetFill = 'Reçeteyi doldur',
fill = 'Reçete dolduruluyor',
canceled = 'Reçeteyi iptal ettin',
unbottle = 'Şişeyi açtın',
}
Lang.shrooms = {
targetPick = 'Mantar topla',
picking = 'Mantar toplanıyor',
eat = 'Mantar yiyorsun',
cancel = 'Mantar almaktan vazgeçtin',
took = 'Biraz mantar aldın!'
}
Lang.weed = {
targetPick = 'Ot topla',
picking = 'Ot toplanıyor',
targetDry = 'Otu kurut',
noDry = 'Bunun için ıslak ota ihtiyacın var',
wait = 'Otların kuruması bekleniyor...',
take = 'Otu almaya hazır',
targetDryed = 'Kurutulmuş otu al',
teleportIn = 'Yetiştirme evine gir',
teleportOut = 'Yetiştirme evinden çık',
dabs = 'Dab çekiyorsun',
bluntWrap = '%s yapmak için şurup daldırılıyor',
rollBlunt = 'Bir %s sarılıyor',
targetSales = 'Bayiden satın al',
buying = 'Bayiden %s alınıyor',
itemDoesntExist = 'Bu eşya burada mevcut değil',
needItem = 'Bunun için bir %s gerekli',
crackBlunt = 'Sarılı jointi aç'
}
Lang.wholesale = {
alreadyWholesale = 'Zaten toptan satış yapıyorsun',
targetBuyer = 'Alıcıyla konuş',
wholesaling = 'Uyuşturucular toptan satılıyor',
uhoh = 'Alıcı şüphelenmeye başladı',
tooLong = 'Alıcı çok fazla bekledi',
notEnoughCops = 'Yeterli polis nöbette değil',
count = 'Tespit edilen miktar: %s',
bonus = 'Miktar bonusu: +%s%%',
estimate = 'Tahmini ödeme: $%s - $%s',
no_drugs = 'Bu uyuşturucudan satılacak hiçbiri yok',
ambush = 'Pusula! %s saldırgan, %s silahlı yaklaşıyor!',
complete = '%s adet ürün $%s%s karşılığında satıldı',
min_quantity = 'Toptan satış yapmak için en az %s adet satmalısın',
deal_failed_cleanup = 'Anlaşma başarısız — tekrar deneyebilirsin'
}
Lang.xtc = {
alreadyOut = 'Zaten bir pres yerleştirdin',
settingDown = 'Pres yerleştiriliyor',
noPressOut = 'Hiçbir pres yerleştirilmemiş',
targetMake = 'Hapları presle',
making = 'Bir %s presleniyor',
targetPickup = 'Presi topla',
picking = 'Pres toplanıyor',
targetStealMDP2P = 'MDP2P çal',
stealingMDP2P = 'MDP2P çalınıyor',
fail = 'Amına koyayım, bunda çok kötüsün',
targetStealIsosafrole = 'Isosafrol çal',
stealingIsosafrole = 'Isosafrol çalınıyor',
targetRaw = 'Ham XTC yap',
makingRaw = 'Ham XTC yapılıyor',
getPress = 'Pres al',
buySingle = 'Tekli presi $%s karşılığında satın al',
buyp = 'Pres satın alınıyor',
targetStamp = 'XTC’yi damgala',
stamp_desc = '%s adet hap damgalanıyor',
stamping = '%s adet hap damgalanıyor',
noPills = 'Damgasız hapların yok'
}
Lang.merchant = {
targetOpen = 'Tüccar menüsünü aç',
}
Lang.Whippit = {
targetShop = 'Whippit Dükkanını Aç',
needBalloon = 'Bunun için bir balona ihtiyacın var',
needCanister = 'Bunun için bir bidona ihtiyacın var',
shopHeader = 'Whippit Dükkanı',
}
return Lang
-267
View File
@@ -1,267 +0,0 @@
Lang = {}
Lang.Catches = {
notIn = 'Nya~ You\'re not in the right spot! >_<',
needItems = 'Aww... you don’t have all da items I need... 😢',
notEnoughMoney = 'Oof, you’re too broke, sweetie 💸',
buySuccess = 'Yay! You bought %s %s for $%s! 💖',
itemMissings = 'You need:%s',
itemNeeded = 'You need %s... plz go get it! 🥺',
cooldown = 'Silly baka, slow down! ⏳',
invalidItem = 'Eh? This item isn’t sold here, silly! 🙃',
onCooldownWarn = '%s tried to run %s but is on cooldown, oopsie! ❄️',
noCops = 'Nosa! Not enough cops online, okeeday!',
}
Lang.coke = {
targetPick = 'Pick a coca leef (so fresh! 🌿)',
picking = 'Picking leefs... so crunchy~ 💚',
targetMakePow = 'Make pow-pow from leefs 💨',
noleaf = 'Nooo leef? No pow! 😿',
makePow = 'Choppin’ leefs into fine pow~ ✂️✨',
targetCutCoke = 'Cut da coke, cut it real good ✂️💎',
targetBagCoke = 'Bag it up, pretty lil’ bags! 🎀',
teleIn = 'Enter the secret lab~ 🔐',
teleOut = 'Leave the lab... for now... 👋',
needBakingSoda = 'You need bakie soda, silly! 🧂',
}
Lang.Cornerselling = {
inVeh = 'No sellin’ from da car, weirdo! 🚗❌',
selling = 'Selling %s for $%s... cha-ching! 💵',
deny = 'NOPE! I don’t like dis offer! 🙅‍♀️',
wait = 'Waiting for a cutie customer... 👀',
nodrugs = 'You got no drugs to sell... 😔',
searching = 'Looking for lil’ customers nearby... 🔍',
targetTakeBack = 'Take back my stuff! 🫵',
targetSell = 'Sell %s of %s for $%s 💼',
targetDeny = 'Say no to dumb offers! 🚫',
stopped = 'You gave up?? Booo! 😤',
start = 'Go make mama proud, cutie! 💪',
gotRobbed = 'Owie... you got robbed... 💔',
gotBack = 'Yay! You got your stuff back! 🎉',
notEnough = 'You don’t have enough, silly! 🥺',
comDes = 'Sell drugs on da corner, hustler~ 🕶️',
}
Lang.crack = {
targetMake = 'Cook some crack, bby 💣',
cook = 'Cookin’ crack... smoky smoky~ 💨',
targetBag = 'Bag da crack, make it purrty~ 🎀',
bag = 'Baggin’ crack like a pro! 💼',
}
Lang.Deliveries = {
targetGetDel = 'Get a delivery mission, go go! 🚚',
targetOpenShop = 'Open your lil’ shop! 🏪',
shopHeader = 'Deally Dealer Shop 💊',
targetHandOff = 'Hand off da package, quick! 📦',
delivering = 'Givin’ da package to da dealer... 💌',
alreadyDelivering = 'You’re already deliverin’, silly! 🐢',
slowAf = 'Tooo slow! Mission failed... 😵',
newDealerHelp = {
help = 'Place a new dealer friend! 🤝',
name = 'What’s their name?',
timeMin = 'Min time (mins)',
timeMax = 'Max time (mins)',
},
DealerExists = 'Oopsie! Dealer already here! 🙈',
deleteDealer = {
help = 'Delete a dealer... bye bye~ 👋',
name = 'Dealer name to delete?',
},
deleteDealerSuccess = 'Dealer deleted! Peace out! ✌️',
deleteDealerFail = 'Couldn’t delete... maybe they ran? 🏃‍♂️',
}
Lang.heroin = {
targetPick = 'Pick up da plant, bby~ 🌱',
picking = 'Picking plant... so fresh! 💚',
targetCook = 'Cook da heroin, make it strong 💪',
pbCook = 'Cookin’ up some strong stuff... 🔥',
targetPickup = 'Pick up lab table~ 🧪',
pbPickup = 'Picking up da lil’ lab... 🧫',
targetClean = 'Clean da lab, make it sparkly ✨',
pbClean = 'Wiping down da table... 🧼',
targetDry = 'Dry da plant, make it cruncky~ 💤',
pbDry = 'Drying da plant... patience, bby~ ⏳',
targetCutHeroin = 'Cut da heroin, make it pretty ✂️',
pbCutHeroin = 'Cutting like a pro chef! 👩‍🍳',
targetBuyKit = 'Buy a heroin lab kit? 💰',
pbBuyKit = 'Buying da kit... now you’re official! 🎉',
tableout = 'You already got a table out, silly! 🙃',
placing = 'Placing da table... science time! 🔬',
targetFill = 'Fill da syringe... be careful! 💉',
pbFill = 'Filling da needle... drip drip~ 💧',
hasKitAlready = 'You already got a kit, silly! 🤪',
notEnoughMoney = 'You need $%s in cash, cutie 💸',
placedKit = 'You placed your lab kit! Science go! 🧪✨',
failed = 'Oof... you failed and lost it all... 😭',
}
Lang.lean = {
stealFromTruck = 'Steal from da truck, shhh~ 🤫',
startMission = 'Start da lean mission! 🍬',
notOnRun = 'You’re not on a run, silly! 🙅‍♂️',
}
Lang.lsd = {
targetHeat = 'Heat da LSD, make it bubble~ 🔥',
heating = 'Heating up... don’t burn it! 😳',
targetRefine = 'Refine da acid, make it pure 💎',
refining = 'Purifying da tabs... so shiny~ ✨',
targetDipping = 'Dip da tabs, make em glow 💫',
dipping = 'Dipping tabs like a cookie~ 🍪',
targetPickup = 'Pick up da lab kit~ 🎒',
packup = 'Packing up da lab... bye bye~ 👋',
targetClean = 'Clean da lab, make it sparkly ✨',
needCleaning = 'You need a cleaning kit, silly! 🧽',
cleaning = 'Cleaning da lab... so tidy~ 🧹',
targetLys = 'Steal lysergic acid... shhh~ 🤫',
stealLys = 'Snatching da acid... so sneaky~ 🦝',
targetDie = 'Steal diethylamide... risky! 😈',
stealDie = 'Grabbin’ da chems... ooooh~ 🔬',
targetBuyTab = 'Buy tab paper, make it pretty~ 📄',
targetBuyKit = 'Buy LSD lab kit? 💖',
alreadyOwn = 'You already got it, silly! 🙃',
buyingKit = 'Buying da kit... artist in da making! 🎨',
tableout = 'Table already out, no space! 🙈',
placing = 'Placing da lab down! Science time~ 🔬',
failed = 'You suck at making drugs... lol 😂',
}
Lang.mesc = {
targetPick = 'Pick da cactus, ouchie~ 🌵',
picking = 'Picking cactus... careful of spikes! 😬',
targetDry = 'Dry da cactus, make it powdery~ 💨',
dry = 'Drying slowly... patience, bby~ ⏳',
}
Lang.meth = {
alreadyChasing = 'You’re already chasin’ a truck, silly! 🚛',
targetStealFromCar = 'Steal from da meth car~ 🚗',
targetHeist = 'Start da meth mission! 💥',
started = 'Meth already cookin’, chill! 🧊',
increaseHeat = 'You turned up da heat... 🔥',
targetBag = 'Bag da meth, make it pretty~ 🎀',
targetCook = 'Cook da meth, make it strong 💪',
targetGrabTray = 'Grab da meth tray~ 🍽️',
targetHeat = 'Adjust da dials... science! 🔬',
targetSmash = 'Smash da tray, big baddie~ 💣',
targetStealEPH = 'Steal ephedrine... shhh~ 🤫',
stealingEPH = 'Snatching da ephedrine... 🧪',
targetStealACE = 'Steal acetone... 💨',
stealingACE = 'Grabbin’ da acetone... 🧫',
notOnRun = 'You’re not on a run, silly! 🙅‍♂️',
onCooldown = 'You’re on cooldown, take a nap~ 😴',
teleIn = 'Enter da lab... secretly~ 🔐',
teleOut = 'Leave da lab... for now~ 👋',
}
Lang.oxy = {
ditchCar = 'Da van is hot! Ditch it quick! 🚨',
targetHandoff = 'Hand off da package, fast! 📦',
handingoff = 'Givin’ da package... done! ✅',
emptyHands = 'Your hands are empty, silly! 🙃',
targetPay = 'Rent da oxy van? 💰',
keys = 'Keys are in da van... shhh~ 🔑',
targetGetPackage = 'Grab da package~ 📦',
alreadyCarrying = 'You already got a package! 🤸‍♂️',
paid = 'You paid $%s for da van! 💸',
notOn = 'You’re not on a route, silly! 🗺️',
}
Lang.pharma = {
input = {
header = 'Who gets da prescription, bby?',
title1 = 'Player name?',
title2 = 'What medicine?',
},
write = 'Writing da prescription... 📝',
opening = 'Opening da bottle... pop! 💊',
targetFill = 'Fill da prescription~ 💊',
fill = 'Getting it filled... almost! 💉',
canceled = 'You canceled... no meds for you! 😢',
unbottle = 'You opened da bottle! Yay! 🎉',
}
Lang.shrooms = {
targetPick = 'Pick da shrooms, little fun-gi~ 🍄',
picking = 'Picking shrooms... so cute! 💚',
eat = 'Eating shrooms... trip time! 🌈',
cancel = 'Changed your mind? No tripping! 😌',
took = 'You took some shrooms! Wheee~ 🌀',
}
Lang.weed = {
targetPick = 'Pick da weed, so green~ 🌿',
picking = 'Picking weed... sticky icky~ ✂️',
targetDry = 'Dry da weed, make it crisp~ 💨',
noDry = 'You need wet weed, silly! 🌱',
wait = 'Waiting for it to dry... patience~ ⏳',
take = 'It’s ready! Take it now! 🎉',
targetDryed = 'Pick up da dry weed~ 🌿',
teleportIn = 'Enter da grow house~ 🏡',
teleportOut = 'Leave da grow house~ 👋',
dabs = 'Doing some dabs... strong stuff~ 💨',
bluntWrap = 'Dipping syrup to make %s... 🍯',
rollBlunt = 'Rolling a %s... puffer puffer~ 🚬',
targetSales = 'Buy from da dealer~ 💵',
buying = 'Buying %s from dealer... 🛒',
itemDoesntExist = 'That item doesn’t exist here... 🤷‍♂️',
needItem = 'You need a %s for this, silly! 🙃',
crackBlunt = 'Cracking open a blunt... 🚬💥',
}
Lang.wholesale = {
alreadyWholesale = 'Already wholesaling, chill! 😌',
targetBuyer = 'Talk to da buyer, make a deal~ 💼',
wholesaling = 'Wholesaling drugs... big moves~ 💰',
uhoh = 'The buyer looks sketchy... 👀',
tooLong = 'Buyer got impatient... bye bye~ 👋',
notEnoughCops = 'Not enough cops on duty... safe! 🚔',
count = 'Found %s itemies~',
bonus = 'Bonus: +%s%% mowe sparkwes~ ✨',
estimate = 'You get $%s - $%s monies~ 💖',
no_drugs = 'No dwugies to seww, sadge~',
ambush = 'AMBUSCH! %s bad guys wif %s bang-bangs~ 💥',
complete = 'Sowd %s itemies fow $%s%s~ 🎉',
min_quantity = 'Need to seww %s itemies min~',
deal_failed_cleanup = 'Deaw faiwed... twy again? 💔'
}
Lang.xtc = {
alreadyOut = 'You already got a press out! 🙃',
settingDown = 'Setting down da press... 💤',
noPressOut = 'No press out... where it go? 🤔',
targetMake = 'Press pills, make em pop~ 💊',
making = 'Pressing a %s... so satisfying~ ✨',
targetPickup = 'Pick up da press~ 🧰',
picking = 'Picking up da press... bye bye~ 👋',
targetStealMDP2P = 'Steal MDP2P... shhh~ 🤫',
stealingMDP2P = 'Snatching da MDP2P... 🧪',
fail = 'Damn dude... you really suck... 😅',
targetStealIsosafrole = 'Steal isosafrole~ 💨',
stealingIsosafrole = 'Grabbin’ da chems... 🧫',
targetRaw = 'Make raw XTC, yikes~ 💣',
makingRaw = 'Making raw XTC... risky! 🔥',
getPress = 'Get press, make pills~ 🖨️',
buySingle = 'Buy single press for $%s? 💰',
buyp = 'Buying press... factory time! 🏭',
targetStamp = 'Stamp XTC, make it pretty~ ✨',
stamp_desc = 'Stamp %s pills with design~ 🖋️',
stamping = 'Stamping %s pills... so clean~ ✨',
noPills = 'You got no unstamped pills... 🫙',
}
Lang.merchant = {
targetOpen = 'Open Wopen Store',
}
Lang.Whippit = {
targetShop = 'Open Whippit Shop',
needBalloon = 'You need a balloon for this, cutie! 🎈',
needCanister = 'You need a canister for this, bby! 🛢️',
shopHeader = 'Whippit Shop 🥳',
}
return Lang
-267
View File
@@ -1,267 +0,0 @@
Lang = {}
Lang.Catches = {
notIn = 'Rraaarrrr!',
needItems = 'Hnnngh oogar!',
notEnoughMoney = 'Whroooaah mmgra!',
buySuccess = 'Raaar %s %s whrrr $%s!',
itemMissings = 'Oogar:%s',
itemNeeded = 'Rraa %s!',
cooldown = 'Whhrrroooaannn!',
invalidItem = 'Khhrrrnnngh!',
onCooldownWarn = '%s RRRRAAAAAAAAUGGGGHHH %s \n WHHHRRROOOAAANNN!',
noCops = 'WROAH RaW RRRRRRA!'
}
Lang.coke = {
targetPick = 'Rraaarr whrroo!',
picking = 'Whrrroo hnnngh!',
targetMakePow = 'Rraa pow!',
noleaf = 'Oogar whrroo!',
makePow = 'Rraa powwhrrr!',
targetCutCoke = 'Khhrrr pow!',
targetBagCoke = 'Blarrg sack!',
teleIn = 'Vrroo hnnn!',
teleOut = 'Vrroo nngh!',
needBakingSoda = 'Rraa baka soda!',
}
Lang.Cornerselling = {
inVeh = 'Rraa whrrroo!',
selling = 'Skreee %s whrrr $%s!',
deny = 'Grrrnnn!',
wait = 'Oogar oogar!',
nodrugs = 'Hnnngh oogar!',
searching = 'Whhrrroooaannn skreee!',
targetTakeBack = 'Rraa back!',
targetSell = 'Skreee %s ra %s whrrr $%s!',
targetDeny = 'Grrrnnn!',
stopped = 'Whhrrroooaannn oogar!',
start = 'Rraa oogar!',
gotRobbed = 'Rraa blarrg!',
gotBack = 'Rraa back oogar!',
notEnough = 'Hnnngh ra %s!',
comDes = 'Skreee oogar!',
}
Lang.crack = {
targetMake = 'Rraa crack!',
cook = 'Crack rraa!',
targetBag = 'Blarrg crack!',
bag = 'Crack sack!',
}
Lang.Deliveries = {
targetGetDel = 'Rraa del!',
targetOpenShop = 'Oogar shop!',
shopHeader = 'Oogar Shop',
targetHandOff = 'Rraa package!',
delivering = 'Package rraa!',
alreadyDelivering = 'Rraa del oogar!',
slowAf = 'Whhrrroooaannn grrr!',
newDealerHelp = {
help = 'Rraa dealer!',
name = 'Dealer rraa?',
timeMin = 'Rraa min?',
timeMax = 'Rraa max?',
},
DealerExists = 'Dealer oogar!',
deleteDealer = {
help = 'Rraa delete!',
name = 'Dealer rraa?',
},
deleteDealerSuccess = 'Dealer rraa gone!',
deleteDealerFail = 'Dealer rraa no gone!',
}
Lang.heroin = {
targetPick = 'Rraa plant!',
picking = 'Plant rraa!',
targetCook = 'Rraa heroin!',
pbCook = 'Heroin rraa!',
targetPickup = 'Rraa lab!',
pbPickup = 'Lab rraa!',
targetClean = 'Rraa clean!',
pbClean = 'Clean lab!',
targetDry = 'Rraa dry!',
pbDry = 'Dry plant!',
targetCutHeroin = 'Rraa cut!',
pbCutHeroin = 'Cut heroin!',
targetBuyKit = 'Rraa kit!',
pbBuyKit = 'Buy kit rraa!',
tableout = 'Rraa table oogar!',
placing = 'Table rraa!',
targetFill = 'Rraa syringe!',
pbFill = 'Fill rraa!',
hasKitAlready = 'Kit oogar!',
notEnoughMoney = 'Rraa $%s!',
placedKit = 'Kit rraa placed!',
failed = 'Rraa fail oogar!',
}
Lang.lean = {
stealFromTruck = 'Rraa truck!',
startMission = 'Rraa mission!',
notOnRun = 'Run no oogar!',
}
Lang.lsd = {
targetHeat = 'Rraa heat!',
heating = 'Heat rraa!',
targetRefine = 'Rraa refine!',
refining = 'Refine rraa!',
targetDipping = 'Rraa dip!',
dipping = 'Dip rraa!',
targetPickup = 'Rraa labkit!',
packup = 'Labkit rraa!',
targetClean = 'Rraa clean!',
needCleaning = 'Clean kit rraa!',
cleaning = 'Clean rraa!',
targetLys = 'Rraa lys!',
stealLys = 'Lys rraa!',
targetDie = 'Rraa die!',
stealingDie = 'Die rraa!',
targetBuyTab = 'Rraa tab!',
targetBuyKit = 'Rraa kit!',
alreadyOwn = 'Kit oogar!',
buyingKit = 'Buy kit rraa!',
tableout = 'Table oogar!',
placing = 'Place rraa!',
failed = 'Rraa fail oogar!',
}
Lang.mesc = {
targetPick = 'Rraa cactus!',
picking = 'Cactus rraa!',
targetDry = 'Rraa dry!',
dry = 'Dry cactus!',
}
Lang.meth = {
alreadyChasing = 'Chase oogar!',
targetStealFromCar = 'Rraa car!',
targetHeist = 'Rraa mission!',
started = 'Meth rraa!',
increaseHeat = 'Rraa heat up!',
targetBag = 'Rraa bag!',
targetCook = 'Rraa cook!',
targetGrabTray = 'Rraa tray!',
targetHeat = 'Rraa dial!',
targetSmash = 'Rraa smash!',
targetStealEPH = 'Rraa eph!',
stealingEPH = 'Eph rraa!',
targetStealACE = 'Rraa ace!',
stealingACE = 'Ace rraa!',
notOnRun = 'Run no oogar!',
onCooldown = 'Rraa cool!',
teleIn = 'SSSNNNAAARRR!!',
teleOut = 'WRRROOOOWW!!',
}
Lang.oxy = {
ditchCar = 'Rraa van!',
targetHandoff = 'Rraa hand!',
handingoff = 'Hand rraa!',
emptyHands = 'Hands oogar!',
targetPay = 'Rraa pay!',
keys = 'Keys rraa!',
targetGetPackage = 'Rraa grab!',
alreadyCarrying = 'Carry oogar!',
paid = 'Paid $%s rraa!',
notOn = 'On no oogar!',
}
Lang.pharma = {
input = {
header = 'Rraa who?',
title1 = 'Player rraa?',
title2 = 'Prescription rraa?',
},
write = 'Rraa write!',
opening = 'Rraa open!',
targetFill = 'Rraa fill!',
fill = 'Fill rraa!',
canceled = 'Rraa cancel!',
unbottle = 'Rraa open!',
}
Lang.shrooms = {
targetPick = 'Rraa shroom!',
picking = 'Shroom rraa!',
eat = 'Eat rraa!',
cancel = 'No rraa!',
took = 'Rraa took!',
}
Lang.weed = {
targetPick = 'Rraa weed!',
picking = 'Weed rraa!',
targetDry = 'Rraa dry!',
noDry = 'Wet rraa!',
wait = 'Wait rraa!',
take = 'Take rraa!',
targetDryed = 'Rraa dry!',
teleportIn = 'Rraa house!',
teleportOut = 'Rraa leave!',
dabs = 'Rraa dab!',
bluntWrap = 'Rraa wrap %s!',
rollBlunt = 'Rraa roll %s!',
targetSales = 'Rraa buy!',
buying = 'Buy %s rraa!',
itemDoesntExist = 'No rraa!',
needItem = 'Rraa %s!',
crackBlunt = 'Rraa crack!',
}
Lang.wholesale = {
alreadyWholesale = 'Rraa whole!',
targetBuyer = 'Rraa buyer!',
wholesaling = 'Whole rraa!',
uhoh = 'Buyer rraa!',
tooLong = 'Time rraa!',
notEnoughCops = 'Cops no oogar!',
count = '%s RRRAAAUGH!!',
bonus = ' +%s%% — GRRROWL!!',
estimate = '$%s - $%s — BWAAAAARRGH!!',
no_drugs = ' NNAARRGH!!',
ambush = ' %s WRAAAAAGH!! %s!!',
complete = ' %s — $%s%s — RRROWWR!!',
min_quantity = ' %s — BWAAAAH!!',
deal_failed_cleanup = ' MMMRRR...',
}
Lang.xtc = {
alreadyOut = 'Press oogar!',
settingDown = 'Press rraa!',
noPressOut = 'No press!',
targetMake = 'Rraa press!',
making = 'Press %s rraa!',
targetPickup = 'Rraa pick!',
picking = 'Pick rraa!',
targetStealMDP2P = 'Rraa mdp!',
stealingMDP2P = 'Mdp rraa!',
targetStealIsosafrole = 'Rraa iso!',
stealingIsosafrole = 'Iso rraa!',
targetRaw = 'Rraa raw!',
makingRaw = 'Raw rraa!',
getPress = 'Rraa press!',
buySingle = 'Buy press $%s!',
buyp = 'Buy rraa!',
targetStamp = 'Rraa stamp!',
stamp_desc = 'Stamp %s rraa!',
stamping = 'Stamp %s rraa!',
noPills = 'Pills no oogar!',
}
Lang.merchant = {
targetOpen = 'Rraa raw!',
}
Lang.Whippit = {
targetShop = 'Rraa Whippit!',
needBalloon = 'Rraa balloon!',
needCanister = 'Rraa canister!',
shopHeader = 'Whippit Rraa!',
}
return Lang
+12 -4
View File
@@ -1,11 +1,19 @@
DROP TABLE IF EXISTS `dealers`;
CREATE TABLE `dealers` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`coords` text DEFAULT NULL,
`createdby` varchar(50) NOT NULL DEFAULT '0',
`model` text DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE IF NOT EXISTS `deliveriesdealer` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cid` varchar(50) NOT NULL,
`itemdata` varchar(50) NOT NULL,
`timestart` varchar(50) NOT NULL,
`timestop` varchar(50) DEFAULT NULL,
`maxtime` varchar(50) NOT NULL,
`maxtime` int(11) NOT NULL DEFAULT 0,
`location` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
@@ -16,4 +24,4 @@ CREATE TABLE IF NOT EXISTS `drugrep` (
`drugrep` varchar(255) DEFAULT NULL,
`name` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
+88 -140
View File
@@ -1,169 +1,117 @@
# 🌿 MD-Drugs – Advanced Drug System for FiveM
A fully customizable, immersive drug system for FiveM servers.
> ✨ A fully customizable, immersive, and performance-optimized drug system built for serious FiveM roleplay servers.
<div align="center">
<a href="https://discord.gg/sAMzrB4DDx">
<img src="https://i.imgur.com/t65G9Z0.png" width="200" alt="Mustache Scripts Logo">
</a>
<br>
<a href="https://discord.gg/sAMzrB4DDx"><strong>Join Mustache Scripts Discord</strong></a>
<a href="https://discord.gg/sAMzrB4DDx" >
<img style="width:200px;", src="https://i.imgur.com/t65G9Z0.png"></img>
</a>
**[Join Mustache Scripts Discord](https://discord.gg/sAMzrB4DDx)**
</div>
---
## 📦 Dependencies
> ⚠️ **Important:** Ensure all dependencies are installed, started **before** `md-drugs`, and kept up to date.
| Dependency | Requirement | Link |
|-----------|-------------|------|
| `Community_bridge` | Required | [GitHub](https://github.com/TheOrderFivem/community_bridge) |
| `Read` | Required | [Documentation](https://letters.hookedonphonics.com/us/read-guaranteed-G14.html) |
| **Game Build** | **2944 or later** | - |
---
## 🙏 Credits
A huge thank you to everyone who made this possible:
| Contributor | Contribution | Link |
|------------|--------------|------|
| **Samuel's Development** | Christmas script global states & prop spawning | [Visit](https://fivem.samueldev.shop/) |
| **STACHY225** | Meth network animations | [Visit](https://babiczind.tebex.io/category/2103836) |
| **Bostra** | Free scripts, sanity checks & mushrooms | [Discord](https://discord.gg/5ncbwMNq) |
| **Feisty** | Stunning visuals & effects | - |
| **Athena** | Balloon props | [Discord](https://discord.gg/mam8Nmg49d) |
| **Kamaryn** | Installation guide video | [Watch](https://youtu.be/zvuYnUfrqaA?si=FGJuBO5krZMC14Nd) |
| **1of1 Servers** | Hosting & support | [Website](https://1of1servers.com/) \| [Discord](https://discord.gg/1of1servers) |
| **Beta Testers** | Invaluable feedback & testing | - |
---
## 🎬 Preview
<div align="center">
[![Watch Full Preview](https://img.youtube.com/vi/I_x7_oz_SAU/maxresdefault.jpg)](https://www.youtube.com/watch?v=I_x7_oz_SAU)
**[📺 Watch Full Preview Video](https://www.youtube.com/watch?v=I_x7_oz_SAU)**
</div>
---
- **[Samuel's Development](https://fivem.samueldev.shop/ ):** Used their Christmas script global states and prop spawning (with permission).
- **[STACHY225](https://babiczind.tebex.io/category/2103836 ):** Meth network animations.
- **[Bostra](https://discord.gg/5ncbwMNq ):** Free scripts, sanity checks, and those cute mushrooms!
- **[Feisty]():** Stunning visuals that make everything look amazing.
- **Beta Testers:** Your invaluable feedback made this possible.
- **[1of1 Servers](https://1of1servers.com/ ):** Top-notch hosting and support. Join their [Discord](https://discord.gg/1of1servers ).
- **[Kamaryn](https://discord.gg/KPRmZqFS ):** For the [installation guide video](https://youtu.be/zvuYnUfrqaA?si=FGJuBO5krZMC14Nd).
- **[Athena](https://discord.gg/mam8Nmg49d):** For the Balloon props :)
## 🎬 Preview
🎥 **[Watch Full Preview Video](https://www.youtube.com/watch?v=I_x7_oz_SAU)**
---
## 📦 Dependencies
| Dependency | Link |
|----------|------|
| `ps_lib` | [GitHub - Project-Sloth/ps_lib](https://github.com/Project-Sloth/ps_lib) |
| `Read` | [Read Docs](https://letters.hookedonphonics.com/us/read-guaranteed-G14.html) |
| Game Build | **2944 or later** required |
> ⚠️ Ensure all dependencies are installed and up to date before proceeding.
---
## 🛠️ Installation
### Step 1: Inventory Integration
#### For QBCore (`qb-inventory`)
1. Copy items from `md-drugs/items_install/qb-inventory` into `qb-core/shared/items.lua`.
2. Add item images from `md-drugs/items_install/images` to `qb-inventory/html/images`.
#### 📦 For QBCore (`qb-inventory`)
#### For OX_Inventory
1. Copy items from `md-drugs/items_install/ox_inventory` into `ox_inventory/data/items.lua`.
2. Add item images to `ox_inventory/web/images`.
1. **Copy Items:**
- Copy items from `md-drugs/items_install/qb-inventory` into `qb-core/shared/items.lua`
2. **Add Images:**
- Add item images from `md-drugs/items_install/images` to `qb-inventory/html/images`
#### 📦 For OX_Inventory
1. **Copy Items:**
- Copy items from `md-drugs/items_install/ox_inventory` into `ox_inventory/data/items.lua`
2. **Add Images:**
- Add item images to `ox_inventory/web/images`
---
### Step 2: Configure Drug Locations & Recipes
- All **processing locations and recipes** are located in their respective drug type files:
- `cocaine.lua`,
- `meth.lua`,
- `weed.lua`,
- etc.
- **Plant spawns** are managed in `server/plantSpawns.lua`.
All drug data is now organized in: `shared/DrugData/{drugname}.lua`
> ✏️ Modify these files to customize spawn points, yields, and processing times.
> ✏️ **Tip:** Modify these files to customize:
> - Spawn points
> - Yields
> - Processing times
> - And more!
*Note: Some data is also located in the server files.*
---
### STEP 3
- Head to your emote script search for **uncuff** if it's missing add it
- if rpemotes do this
- go to client/animationListCustom.lua
- add these to the CustomDP.Emotes = {}
```lua
["uncuff"] = {"mp_arresting","a_uncuff","Uncuff", AnimationOptions = { EmoteLoop = true, EmoteMoving = true } },
["edible"] = { "mp_player_inteat@burger", "mp_player_int_eat_burger", "edible", AnimationOptions = { EmoteLoop = false, EmoteMoving = true }},
```
- Add This to CustomDP.PropEmotes = {}
```lua
["shootup"] = { "rcmpaparazzo1ig_4", "miranda_shooting_up", "Shoot Up", AnimationOptions = {EmoteLoop = true,EmoteMoving = true,Prop = 'prop_syringe_01', PansexualPropBone = 18905,PropPlacement = {0.11, 0.03, 0.0, -124.0, 0.0, 0.0},}}
```
- elseif dpemotes add this to client/AnimationList.lua
- add these to DP.Emotes = {}
```lua
["uncuff"] = {"mp_arresting","a_uncuff","Uncuff", AnimationOptions = { EmoteLoop = true, EmoteMoving = true } },
["edible"] = { "mp_player_inteat@burger", "mp_player_int_eat_burger", "edible", AnimationOptions = { EmoteLoop = false, EmoteMoving = true }},
```
- add these to DP.PropEmotes = {}
```lua
["shootup"] = { "rcmpaparazzo1ig_4", "miranda_shooting_up", "Shoot Up", AnimationOptions = {EmoteLoop = true,EmoteMoving = true,Prop = 'prop_syringe_01', PansexualPropBone = 18905,PropPlacement = {0.11, 0.03, 0.0, -124.0, 0.0, 0.0},}}
```
- elseif scullyemotes then
- add this to emotes.lua
```lua
{
Label = 'Uncuff',
Command = 'uncuff',
Animation = 'a_uncuff',
Dictionary = 'mp_arresting',
Options = {
Flags = {
Loop = true,
Move = true,
},
}
},
{
Label = 'Edibles',
Command = 'edible',
Animation = 'mp_player_int_eat_burger',
Dictionary = 'mp_player_inteat@burger',
Options = {
Flags = {
Loop = true,
Move = true,
},
}
},
```
- then in prop emotes do
```lua
{
Label = 'Shoot Up',
Command = 'shootup',
Animation = "miranda_shooting_up",
Dictionary = "rcmpaparazzo1ig_4",
Options = {
Flags = {
Loop = true,
},
Props = {
{
Bone = 18905,
Name = 'prop_syringe_01',
Placement = {
vector3(0.11, 0.03, 0.0),
vector3( -124.0, 0.0, 0.0),
},
},
},
},
},
```
### Step 3: QBCore Users Only! ⚠️
### STEP 4 (IF QBCore)
- check `qb-smallresources/config.lua` and if this exists, delete it
- look for this code
```lua
[2] = { --Coke Processing Enter/Exit
[1] = {
poly = { coords = vector3(909.49, -1589.22, 30.51), heading = 92.24, length = 2, width = 2 },
allowVeh = false,
label = '[E] Enter Coke Processing'
},
[2] = {
poly = { coords = vector3(1088.81, -3187.57, -38.99), heading = 181.7, length = 2, width = 2 },
allowVeh = false,
label = '[E] Leave'
}
}
```
### STEP 5
If you're using QBCore, check `qb-smallresources/config.lua`:
1. Look for this code block:
```lua
[2] = { --Coke Processing Enter/Exit
[1] = {
poly = { coords = vector3(909.49, -1589.22, 30.51), heading = 92.24, length = 2, width = 2 },
allowVeh = false,
label = '[E] Enter Coke Processing'
},
[2] = {
poly = { coords = vector3(1088.81, -3187.57, -38.99), heading = 181.7, length = 2, width = 2 },
allowVeh = false,
label = '[E] Leave'
}
}
```
### STEP 4
- Run SQL
- if you dont know how, click this image below
- [![YouTube Video](https://img.youtube.com/vi/8QpFOluK_xo/hqdefault.jpg)](https://www.youtube.com/watch?v=8QpFOluK_xo)
### STEP 6
- If you want whippits, take the folder `ate_balloon` and place that folder into the standalone folder like it was another script :) (or a [props] if you got it)
### STEP 5
- If you want whippits, take the folder `ate_balloon` and place that folder into the standalone folder like it was another script :)
+10 -48
View File
@@ -1,62 +1,24 @@
if not Config.Drugs['TravellingMerchant'] then return end
local loc = Config.Merchant.Locations.Travellingmerchant[math.random(1, #Config.Merchant.Locations.Travellingmerchant)]
local Target = {
Travellingmerchant = {
vector4(-119.66, -977.43, 304.25, 88.21),
vector4(-1522.93, 1476.01, 111.45, 41.25),
vector4(-3278.98, 973.38, 5.35, 101.53),
},
}
local loc = Target.Travellingmerchant[math.random(1, #Target.Travellingmerchant)]
local stores = {
travel = {
tab_paper = 50,
bakingsoda = 25,
isosafrole = 25,
mdp2p = 25,
lysergic_acid = 25,
diethylamide = 25,
lockpick = 2,
emptyvial = 2,
needle = 2,
cokeburner = 25,
crackburner = 2,
lsdburner = 2,
heroinburner = 2,
mdlean = 50,
weedgrinder = 25,
mdbutter = 25,
flour = 25,
chocolate = 25,
butane = 25,
butanetorch = 2,
dabrig = 2,
mdwoods = 2,
leancup = 25,
xtcburner = 25,
},
}
ps.registerCallback('md-drugs:server:GetMerchant', function(source)
return {loc = loc, items = stores.travel}
Bridge.Callback.Register('md-drugs:server:GetMerchant', function(source)
return {loc = loc, items = Config.Merchant.stores}
end)
RegisterServerEvent("md-drugs:server:purchaseGoods", function(item)
local src = source
if not ps.checkDistance(src, loc, 10) then
ps.notify(src, ps.lang('Catches.notIn'), "error")
if not checkDistance(src, loc, 10, 'md-drugs:server:purchaseGoods') then
return
end
if not stores.travel[item] then
ps.notify(src, ps.lang('Catches.invalidItem'), "error")
if not Config.Merchant.stores[item] then
Bridge.Prints.Warn(Bridge.Language.Locale('merchant.itemDoesntExist', Bridge.Framework.GetPlayerIdentifier(src), item))
return
end
if ps.removeMoney(src, 'cash', stores.travel[item]) then
ps.addItem(src, item, 1)
if Bridge.Framework.RemoveAccountBalance(src, 'cash', Config.Merchant.stores[item]) then
Bridge.Inventory.AddItem(src, item, 1)
else
ps.notify(src, ps.lang('Catches.notEnoughMoney'), "error")
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Catches.notEnoughMoney'), "error")
end
end)
+86 -106
View File
@@ -1,139 +1,119 @@
if not Config.Drugs['cocaine'] then return end
local Locations = Config.Cocaine.Locations
local Recipes = Config.Cocaine.Recipes
local cocaineRecipes = {
cokepowder = {
tier1 = {take = {coca_leaf = 1}, give = {coke = 1}},
tier2 = {take = {coca_leaf = 1}, give = {cokestagetwo = 1}},
tier3 = {take = {coca_leaf = 1}, give = {cokestagethree = 1}},
},
cutcoke = {
tier1 = {take = {coke = 1, bakingsoda = 1}, give = {loosecoke = 1}},
tier2 = {take = {cokestagetwo = 1, bakingsoda = 1}, give = {loosecokestagetwo = 1}},
tier3 = {take = {cokestagethree = 1, bakingsoda = 1}, give = {loosecokestagethree = 1}},
},
bagcoke = {
tier1 = {take = {loosecoke = 1, empty_weed_bag = 1}, give = {cokebaggy = 1}},
tier2 = {take = {loosecokestagetwo = 1, empty_weed_bag = 1}, give = {cokebaggystagetwo = 1}},
tier3 = {take = {loosecokestagethree = 1, empty_weed_bag = 1}, give = {cokebaggystagethree = 1}},
}
}
local cocaineLocations = {
MakePowder = {
{loc = vector3(1086.20, -3195.30, -39.20), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
CuttingCoke = {
{loc = vector3(1095.61, -3195.62, -39.13), l = 1.0, w = 1.0, rot = 45.0, offset = vec3(-1.782227, 0.445068, -0.502701), rotation = vector3(0,0,0), gang = ""},
--{loc = vector3(1092.74, -3196.68, -38.99), l = 1.0, w = 1.0, rot = 45.0, offset = vec3(1.983398, 0.407959, -0.642696), rotation = vector3(0,0,180.0), gang = ""},
},
BaggingCoke = {
{loc = vector3(1093.16, -3195.78, -39.19), l = 1.0, w = 1.0, rot = 45.0,offset = vec3(4.515137, 2.542969, -0.814194), rotation = vector3(0,0,180.0), gang = ""},
--{loc = vector3(1090.17, -3196.59, -38.99), l = 1.0, w = 1.0, rot = 45.0, offset = vec3(-5.207642, -1.666504, -1.014198), rotation = vector3(0,0, 0.0), gang = ""},
},
cokeTele = {
{inside = vector3(1088.81, -3187.57, -38.99), outside = vector3(198.16, -1276.92, 29.33), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
}
}
ps.registerCallback('md-drugs:server:GetCokeLocations', function()
return cocaineLocations
end)
local function getTier(source)
if not Config.TierSystem then
return 'tier1'
end
local rep = tonumber(getRep(source, 'coke'))
if not rep then
return
end
if rep < Config.Tier1 then
return 'tier1'
end
if rep >= Config.Tier1 and rep <= Config.Tier2 then
return 'tier2'
end
if rep >= Config.Tier2 then
return 'tier3'
end
return nil
end
RegisterServerEvent('md-drugs:server:makepowder', function(num)
local src = source
if timeOut(src, 'md-drugs:server:makepowder') then return end
if not ps.checkDistance(src, cocaineLocations.MakePowder[num].loc, 3.5) then
ps.warn(ps.lang('Catches.notIn', ps.getPlayerName(src)), 'md-drugs:server:makepowder')
if not checkDistance(src, Locations.MakePowder[num].loc, 3.5, 'md-drugs:server:makepowder') then
return
end
local tier = 'tier1'
if Config.TierSystem then
local coke = tonumber(getRep(src, 'coke'))
if coke > Config.Tier1 and coke <= Config.Tier2 then
tier = 'tier2'
elseif coke > Config.Tier2 then
tier = 'tier3'
end
local tier = getTier(src)
if not tier then
return
end
if not ps.craftItem(src, cocaineRecipes['cokepowder'][tier]) then
verifyHas(src, cocaineRecipes['cokepowder'][tier].take)
if not craft(src, Recipes.cokepowder[tier]) then
return
end
end)
RegisterServerEvent('md-drugs:server:cutcokeone', function(num)
local src = source
local tier = 'tier1'
if timeOut(src, 'md-drugs:server:cutcokeone') then return end
if not ps.checkDistance(src, cocaineLocations.CuttingCoke[num].loc, 2.5) then
ps.notify(src, ps.lang('Catches.notIn'), 'error')
if not checkDistance(src, Locations.CuttingCoke[num].loc, 2.5, 'md-drugs:server:cutcokeone') then
return
end
if Config.TierSystem then
local cokeTiers = {
{item = 'coke', tier = 'tier1', log = ' Cut Coke'},
{item = 'cokestagetwo', tier = 'tier2', log = ' Cut Coke tier 2'},
{item = 'cokestagethree', tier = 'tier3', log = ' Cut Coke tier 3'}
}
for _, v in ipairs(cokeTiers) do
if ps.hasItem(src, v.item) then
tier = v.tier
break
end
local tier = 'tier1'
local itemCheck = {
{check = Bridge.Inventory.HasItem(src,'loosecoke'), tier = 'tier1'},
{check = Bridge.Inventory.HasItem(src, 'loosecokestagetwo'), tier = 'tier2'},
{check = Bridge.Inventory.HasItem(src, 'loosecokestagethree'), tier = 'tier3'},
}
for i = 1, #itemCheck do
if itemCheck[i].check then
tier = itemCheck[i].tier
break
end
end
if not ps.craftItem(src, cocaineRecipes['cutcoke'][tier]) then
verifyHas(src, cocaineRecipes['cutcoke'][tier].take)
if not craft(src, Recipes.cutcoke[tier]) then
return
end
end)
RegisterServerEvent('md-drugs:server:bagcoke', function(num)
local src = source
local tier = 'tier1'
if timeOut(src, 'md-drugs:server:bagcoke') then return end
if not ps.checkDistance(src, cocaineLocations.BaggingCoke[num].loc, 2.5) then
ps.notify(src, ps.lang('Catches.notIn'), 'error')
if not checkDistance(src, Locations.BaggingCoke[num].loc, 2.5, 'md-drugs:server:bagcoke') then
return
end
if Config.TierSystem then
local cokeTiers = {
{item = 'loosecoke', tier = 'tier1', log = ' Bagged Coke'},
{item = 'loosecokestagetwo', tier = 'tier2', log = ' Bagged Coke tier 2'},
{item = 'loosecokestagethree', tier = 'tier3', log = ' Bagged Coke tier 3'}
}
for _, v in ipairs(cokeTiers) do
if ps.hasItem(src, v.item) then
tier = v.tier
local tier = 'tier1'
local itemCheck = {
{check = Bridge.Inventory.HasItem(src,'coke'), tier = 'tier1'},
{check = Bridge.Inventory.HasItem(src, 'cokestagetwo'), tier = 'tier2'},
{check = Bridge.Inventory.HasItem(src, 'cokestagethree'), tier = 'tier3'},
}
for i = 1, #itemCheck do
if itemCheck[i].check then
tier = itemCheck[i].tier
break
end
end
if not craft(src, Recipes.bagcoke[tier]) then
return
end
AddRep(src, 'coke', 1)
end)
local cokecut = {
loosecokestagetwo = {give = {loosecoke =2}, take = {loosecokestagetwo = 1, bakingsoda = 1}},
loosecokestagethree = {give = {loosecokestagetwo = 3}, take = {loosecokestagethree = 1, bakingsoda = 1}},
}
for k, v in pairs (cokecut) do
Bridge.Framework.RegisterUsableItem(k, function(source, item)
local src = source
local can = true
for k, v in pairs (v.take) do
local count = Bridge.Inventory.GetItemCount(src, k)
if count < v then
can = false
break
end
end
if not ps.craftItem(src, cocaineRecipes['bagcoke'][tier]) then
verifyHas(src, cocaineRecipes['bagcoke'][tier].take)
return
if not can then
return craft(src, v)
end
AddRep(src, 'coke')
else
if not ps.craftItem(src, cocaineRecipes['bagcoke'][tier]) then
verifyHas(src, cocaineRecipes['bagcoke'][tier].take)
return
end
end
end)
local cokecut = {loosecokestagetwo = 2, loosecokestagethree = 3}
for k, v in pairs (cokecut) do
ps.createUseable(k, function(source, item)
local src = source
if not ps.hasItem(src, 'bakingsoda') then
ps.notify(src, ps.lang('coke.needBakingSoda'), 'error')
return
end
if ps.hasItem(src,item.name) then
local check = ps.callback('md-drugs:client:uncuff', src, 'Cutting It Further')
if not check then return end
if ps.removeItem(src, k, 1) and ps.removeItem(src, 'bakingsoda', 1) then
ps.addItem(src, 'loosecoke', v)
end
end
local progress = Bridge.Callback.Trigger("md-drugs:client:uncuff", src, Bridge.Language.Locale('coke.cutCokeAgain'))
if not progress then return end
craft(src, v)
end)
end
end
+10 -160
View File
@@ -1,172 +1,22 @@
--[[
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 Consume = {
-- meth
methbags = { time = 4000, effect = 'meth', anim = "smoke", progressbartext = "Injesting",
add = {health = -20, stress = -10, speed = 40, strength = 10, thirst = -30}},
cokebaggy = { anim = 'smell', time = 1000, effect = 'coke', add = { stress = -10 }},
cokebaggystagetwo = { anim = 'smell', time = 1000, effect = 'coke', add = { stress = -10 }},
cokebaggystagethree = { anim = 'smell', time = 1000, effect = 'coke', add = { stress = -10 }},
-- heroin
heroin_ready = { anim = 'shootup', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
heroin_readystagetwo = { anim = 'shootup', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
heroin_readystagethree = { anim = 'shootup', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
-- crack
baggedcracked = { anim = 'smell', time = 1000, effect = 'coke', add = { stress = -10 }},
baggedcrackedstagetwo = { anim = 'smell', time = 1000, effect = 'coke', add = { stress = -10 }},
baggedcrackedstagethree = { anim = 'smell', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
-- xtc
white_playboys = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_playboys2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_playboys3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_playboys4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_playboys = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_playboys2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_playboys3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_playboys4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_playboys = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10, hunger = 10 }},
red_playboys2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_playboys3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_playboys4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_playboys = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_playboy2s = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_playboys3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_playboys4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_aliens = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_aliens2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_aliens3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_aliens4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_aliens = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_aliens2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_aliens3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_aliens4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_aliens = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_aliens3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_aliens2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_aliens4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_aliens = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_aliens2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_aliens3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_aliens4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_pl = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_pl2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_pl3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_pl4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_pl = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_pl2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_pl3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_pl4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_pl = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_pl2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_pl3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_pl4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_pl = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_pl2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_pl3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_pl4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_trolls = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_trolls2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_trolls3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_trolls4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_trolls = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_trolls2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_trolls3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_trolls4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_trolls = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_trolls2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_trolls3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_trolls4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_trolls = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_trolls2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_trolls3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_trolls4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_cats2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_cats3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_cats4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
white_cats = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_cats = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_cats3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_cats2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
blue_cats4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_cats = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_cats2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_cats3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
red_cats4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_cats = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_cats2 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_cats3 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
orange_cats4 = { anim = 'edible', time = 1000, effect = 'ecstacy', add = { stress = -10 }},
-- weed
specialbrownie = { anim = 'edible', effect = 'alien', add = { hunger = 10, stress = -10 }},
specialcookie = { anim = 'edible', effect = 'alien', add = { hunger = 10, stress = -10 }},
specialchocolate = { anim = 'edible', effect = 'alien', add = { hunger = 10, stress = -10 }},
specialmuffin = { anim = 'edible', effect = 'alien', add = { hunger = 10, stress = -10 }},
blunt = { anim = 'smokeweed', effect = 'alien', add = { stress = -10 }},
dextroblunts = { anim = 'smokeweed', effect = 'alien', add = { stress = -10 }},
leanblunts = { anim = 'smokeweed', effect = 'alien', add = { stress = -10 }},
chewyblunt = { anim = 'smokeweed', effect = 'alien', add = { stress = -10 }},
-- lean
cupofdextro = { anim = 'cup', effect = 'alien', add = { stress = -10 }},
cupoflean = { anim = 'cup', effect = 'alien', add = { stress = -10 }},
-- lsd
smiley_tabs = { anim = 'edible', effect = 'trevor', add = { stress = -10 }},
wildcherry_tabs = { anim = 'edible', effect = 'trevor', add = { stress = -10 }},
yinyang_tabs = { anim = 'edible', effect = 'trevor', add = { stress = -10 }},
pineapple_tabs = { anim = 'edible', effect = 'trevor', add = { stress = -10 }},
bart_tabs = { anim = 'edible', effect = 'trevor', add = { stress = -10 }},
gratefuldead_tabs = { anim = 'edible', effect = 'trevor', add = { stress = -10 }},
-- pharma
vicodin = { anim = 'pill', effect = 'none', add = { health = 20 }},
adderal = { anim = 'pill', effect = 'none', add = { stress = -20 }},
morphine = { anim = 'pill', effect = 'none', add = { health = 40 }},
xanax = { anim = 'pill', effect = 'none', add = { stress = -40 }},
}
for k, v in pairs(Consume) do
ps.createUseable(k, function(source, item)
if not ps.hasItem(source, k, 1) then return end
local time = v.time or Consumables.defaulttime
if not Config.Drugs['consumables'] then return end
for k, v in pairs(Config.Consumables.Consume) do
Bridge.Framework.RegisterUsableItem(k, function(source, item)
if not Bridge.Inventory.HasItem(source, k, 1) then return end
local time = v.time or Config.Consumables.Defaults.time
local effect = v.effect or 0
local anim = v.anim or Consumables.defaultanim
local progressbartext = v.progressbartext or Consumables.defaultprogresstext
local anim = v.anim or Config.Consumables.Defaults.defaultAnim
local progressbartext = v.progressbartext or Config.Consumables.Defaults.defaultText
local add = v.add or {hunger = 0}
local done = ps.callback('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
ps.removeItem(source, k, 1)
Bridge.Inventory.RemoveItem(source, k, 1)
end
end)
end
RegisterNetEvent('md-drugs:server:updatestatus', function(stat, statval)
local src = source
local Player = ps.getPlayer(src)
local Player = Bridge.Framework.GetPlayer(src)
if GetResourceState('es_extended') == 'started' then return end
local hunger, thirst = Player.PlayerData.metadata.hunger, Player.PlayerData.metadata.thirst
if stat == "thirst" then
+97 -184
View File
@@ -1,187 +1,80 @@
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 = {}
for k, v in pairs(Drugs) do
local soldPeds = {}
for k, v in pairs(Config.Cornerselling.Drugs) do
table.insert(drugsNames, k)
end
GlobalState.DrugNames = drugsNames
GlobalState.MDDrugsLocations = Locations
local RobbedDrugs = {}
local cornsellConfig = {
MarkedBills = false, -- if you want to use qb markedbills for selling set to true, if you want to use a custom item or cash set to false
CustomItem = '', -- If you want to use a custom item for selling, put the item name here, if not leave it blank ''
--- if MarkedBills is false and CustomItem is blank it will pay cash
policeRequired = 0, -- if you want cops to be required to sell set this to a number above 0
robChance = 1, -- Chance To Be Robbed 1 = 1%
}
local function beingRobbed(source, item, amount, ped)
local src = source
ps.removeItem(src, item, amount)
ps.notify(src, ps.lang('Cornerselling.gotRobbed'), 'error')
RobbedDrugs[ps.getIdentifier(source)] = {item = item, amount = amount, ped = ped}
Bridge.Inventory.RemoveItem(src, item, amount)
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Cornerselling.gotRobbed'), 'error')
RobbedDrugs[src] = {item = item, amount = amount, ped = ped}
return true
end
local function getDrugBack(source, item, amount)
local src = source
if RobbedDrugs[ps.getIdentifier(source)] then
if RobbedDrugs[ps.getIdentifier(source)].item == item and RobbedDrugs[ps.getIdentifier(source)].amount == amount then
ps.addItem(src, item, amount)
ps.notify(src, ps.lang('Cornerselling.gotBack'), 'success')
RobbedDrugs[ps.getIdentifier(source)] = nil
if RobbedDrugs[src] then
if RobbedDrugs[src].item == item and RobbedDrugs[src].amount == amount then
Bridge.Inventory.AddItem(src, item, amount)
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Cornerselling.gotBack'), 'success')
RobbedDrugs[src] = nil
return true
end
end
end
ps.registerCallback('md-drugs:server:cornerselling:getAvailableDrugs', function(source, ped)
local Player = ps.getPlayer(source)
Bridge.Callback.Register('md-drugs:server:cornerselling:getAvailableDrugs', function(source, ped)
local src = source
local rep = getRep(source, 'cornerselling')
local priceAdjust = json.decode(rep).price
if not Player then return nil end
for k, v in pairs(Drugs) do
local item = ps.getItemCount(source, k) or 0
if item >= 1 then
local priceAdjust = rep.price
local ped = NetworkGetEntityFromNetworkId(ped)
if not checkDistance(src, GetEntityCoords(ped), 5.0, 'md-drugs:server:cornerselling:getAvailableDrugs') then
return false
end
if soldPeds[src] == nil then
soldPeds[src] = {}
end
if soldPeds[src][ped] then
return false
end
for k, v in pairs(Config.Cornerselling.Drugs) do
local count = Bridge.Inventory.GetItemCount(src, k)
if count >= 1 then
local maths = math.random(1,100)
if maths <= cornsellConfig.robChance then
beingRobbed(source, k, item, ped)
if maths <= Config.Cornerselling.config.robChance then
beingRobbed(source, k, count, ped)
soldPeds[src][ped] = {item = k, amount = count}
return 'robbed'
else
if item > 15 then item = 15 end
local amount = math.random(1, item)
local price = (math.random(Drugs[k]['min'], Drugs[k]['max']) * amount) * priceAdjust
DrugDeals[ps.getIdentifier(source)] = {item = k, amount = amount, price = math.floor(price), ped = ped}
return DrugDeals[ps.getIdentifier(source)]
if count > 15 then count = 15 end
local amount = math.random(1, count)
local price = (math.random(Config.Cornerselling.Drugs[k]['min'], Config.Cornerselling.Drugs[k]['max']) * amount) * priceAdjust
DrugDeals[src] = {item = k, amount = amount, price = math.floor(price), ped = ped}
soldPeds[src][ped] = DrugDeals[src]
return DrugDeals[src]
end
end
end
return false
end)
ps.registerCallback('md-drugs:server:hasDrugs', function(source)
for k, v in pairs(Drugs) do
if ps.hasItem(source, k, 1) then
Bridge.Callback.Register('md-drugs:server:hasDrugs', function(source)
for k, v in pairs(Config.Cornerselling.Drugs) do
if Bridge.Inventory.HasItem(source, k) then
return true
end
end
@@ -190,65 +83,85 @@ end)
local function csCheck(src, item, amount, price)
local isIn = false
for k, v in pairs (Drugs) do
for k, v in pairs (Config.Cornerselling.Drugs) do
if item == k then
isIn = true
end
end
if not isIn then return false end
if DrugDeals[ps.getIdentifier(src)] then
if DrugDeals[ps.getIdentifier(src)].item == item and DrugDeals[ps.getIdentifier(src)].amount == amount and DrugDeals[ps.getIdentifier(src)].price == price then
if DrugDeals[src] then
if DrugDeals[src].item == item and DrugDeals[src].amount == amount and DrugDeals[src].price == price then
return true
end
end
return false
end
RegisterNetEvent('md-drugs:server:sellCornerDrugs', function(item, amount, price)
RegisterNetEvent('md-drugs:server:sellCornerDrugs', function(item, amount, price, peds)
local src = source
if not csCheck(src, item, amount, price) then return end
if not ps.removeItem(src, item, amount) then
ps.notify(src, ps.lang('Cornerselling.notEnough'), 'error')
DrugDeals[ps.getIdentifier(src)] = nil
if not csCheck(src, item, amount, price) then
return
end
AddRep(src, 'cornerselling', Drugs[item].rep * amount)
DrugDeals[ps.getIdentifier(src)] = nil
if cornsellConfig.MarkedBills then
ps.addItem(src, 'markedbills', price, {worth = price})
local ped = NetworkGetEntityFromNetworkId(peds)
if not checkDistance(src, GetEntityCoords(ped), 5.0, 'md-drugs:server:sellCornerDrugs') then
return
end
if cornsellConfig.CustomItem ~= '' then
ps.addItem(src, cornsellConfig.CustomItem, price)
if not soldPeds[src] or not soldPeds[src][ped] then
return
end
ps.addMoney(src, 'cash', price)
if not Bridge.Inventory.RemoveItem(src, item, amount) then
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Cornerselling.notEnough'), 'error')
DrugDeals[src] = nil
return
end
AddRep(src, 'cornerselling', Config.Cornerselling.Drugs[item].rep * amount)
DrugDeals[src] = nil
if Config.Cornerselling.config.MarkedBills then
Bridge.Inventory.AddItem(src, 'markedbills', price, nil, {worth = price})
return
end
if Config.Cornerselling.config.CustomItem ~= '' then
Bridge.Inventory.AddItem(src, Config.Cornerselling.config.CustomItem, price)
return
end
Bridge.Framework.AddAccountBalance(src, 'cash', price)
end)
RegisterNetEvent('md-drugs:server:getBackRobbed', function()
local tabl = RobbedDrugs[ps.getIdentifier(source)]
RegisterNetEvent('md-drugs:server:getBackRobbed', function(peds)
local src = source
local tabl = RobbedDrugs[src]
if tabl == nil then return end
getDrugBack(source, tabl.item, tabl.amount)
RobbedDrugs[ps.getIdentifier(source)] = nil
local ped = NetworkGetEntityFromNetworkId(peds)
if ped ~= tabl.ped then return end
if not checkDistance(src, GetEntityCoords(ped), 5.0, 'md-drugs:server:getBackRobbed') then
return
end
getDrugBack(src, tabl.item, tabl.amount)
RobbedDrugs[src] = nil
end)
ps.registerCommand('cornersell', {
help = ps.lang('Cornerselling.comDes'),
params = {
},
}, function(source, args, raw)
RegisterCommand('cornersell', function(source, args, raw)
local src = source
local jobCount = ps.getJobTypeCount('leo')
if jobCount < cornsellConfig.policeRequired then
ps.notify(src, ps.lang('Catches.noCops'), 'error')
if #Bridge.Framework.GetPlayersByJob('police') < Config.Cornerselling.config.policeRequired then
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Cornerselling.notEnoughCops', Config.Cornerselling.config.policeRequired - #Bridge.Framework.GetPlayersByJob('police')), 'error')
return
end
TriggerClientEvent('md-drugs:client:cornerselling', src)
end)
end, false)
TriggerClientEvent('chat:addSuggestion', -1, '/cornersell', Bridge.Language.Locale('Cornerselling.comDes'))
RegisterServerEvent('md-drugs:server:cornerselling:stop', function()
local src = source
if DrugDeals[ps.getIdentifier(src)] then
DrugDeals[ps.getIdentifier(src)] = nil
if DrugDeals[src] then
DrugDeals[src] = nil
end
end)
+40 -57
View File
@@ -1,39 +1,14 @@
local crackRecipe = {
cookcrack = {
tier1 = {take = {loosecoke = 1, bakingsoda = 1}, give = {crackrock = 1}},
tier2 = {take = {loosecokestagetwo = 1, bakingsoda = 1}, give = {crackrockstagetwo = 1}},
tier3 = {take = {loosecokestagethree = 1,bakingsoda = 1}, give = {crackrockstagethree = 1}},
},
bagcrack = {
tier1 = {take = {crackrock = 1, empty_weed_bag = 1}, give = {baggedcracked = 1}},
tier2 = {take = {crackrockstagetwo = 1, empty_weed_bag = 1}, give = {baggedcrackedstagetwo = 1}},
tier3 = {take = {crackrockstagethree = 1, empty_weed_bag = 1}, give = {baggedcrackedstagethree = 1}},
}
}
local CrackLocations = {
makecrack = { -- make crack with baking soda with cut coke 1-3
{loc = vector3(2433.47, 4970.02, 42.18), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
bagcrack = { --- bag crack 1-3 stages
{loc = vector3(2436.55, 4964.96, 42.18), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
}
ps.registerCallback('md-drugs:server:GetCrackLocations', function()
return CrackLocations
end)
if not Config.Drugs['crack'] then return end
RegisterServerEvent('md-drugs:server:makecrackone', function(num)
local src = source
local tier = 'tier1'
if timeOut(src, 'md-drugs:server:makecrackone') then return end
if not ps.checkDistance(src, CrackLocations.makecrack[num].loc, 2.0) then
ps.notify(src, ps.lang('Catches.notIn'), 'error')
if not checkDistance(src, Config.Crack.Locations.makecrack[num].loc, 2.0, 'md-drugs:server:makecrackone') then
return
end
local tier = 'tier1'
if Config.TierSystem then
local crackTiers = {
{item = 'loosecoke', tier = 'tier1'},
@@ -41,14 +16,13 @@ RegisterServerEvent('md-drugs:server:makecrackone', function(num)
{item = 'loosecokestagethree', tier = 'tier3'}
}
for _, v in ipairs(crackTiers) do
if ps.hasItem(src, v.item) then
if Bridge.Inventory.HasItem(src, v.item) then
tier = v.tier
break
end
end
end
if not ps.craftItem(src, crackRecipe['cookcrack'][tier]) then
verifyHas(src, crackRecipe['cookcrack'][tier].take)
if not craft(src, Config.Crack.Recipes.cookcrack[tier]) then
return
end
end)
@@ -56,60 +30,69 @@ end)
RegisterServerEvent('md-drugs:server:bagcrack', function(num)
local src = source
local tier = 'tier1'
if timeOut(src, 'md-drugs:server:bagcrack') then return end
if not ps.checkDistance(src, CrackLocations.bagcrack[num].loc, 2.0) then
ps.notify(src, ps.lang('Catches.notIn'), 'error')
if not checkDistance(src, Config.Crack.Locations.bagcrack[num].loc, 2.0, 'md-drugs:server:bagcrack') then
return
end
local tier = 'tier1'
if Config.TierSystem then
local crackTiers = {
{item = 'crackrock', tier = 'tier1'},
{item = 'crackrockstagetwo', tier = 'tier2'},
{item = 'crackrock', tier = 'tier1'},
{item = 'crackrockstagetwo', tier = 'tier2'},
{item = 'crackrockstagethree', tier = 'tier3'}
}
for _, v in ipairs(crackTiers) do
if ps.hasItem(src, v.item) then
if Bridge.Inventory.HasItem(src, v.item) then
tier = v.tier
break
end
end
end
if not ps.craftItem(src, crackRecipe['bagcrack'][tier]) then
verifyHas(src, crackRecipe['bagcrack'][tier].take)
if not craft(src, Config.Crack.Recipes.bagcrack[tier]) then
return
end
end)
local cokecut = {crackrockstagetwo = 2, crackrockstagethree = 3}
local cokecut = {
crackrockstagetwo = {give = {crackrock = 2}, take = {crackrockstagetwo = 1, bakingsoda = 1}},
crackrockstagethree = { give = {crackrock = 3}, take = {crackrockstagethree = 1, bakingsoda = 1}},
}
for k, v in pairs (cokecut) do
ps.createUseable(k, function(source, item)
Bridge.Framework.RegisterUsableItem(k, function(source, item)
local src = source
if ps.hasItem(src, item.name) then
if not ps.hasItem(src, 'bakingsoda', 1) then return end
local check = ps.callback('md-drugs:client:uncuff', src, 'Cutting Crack Rock Further')
if not check then return end
if ps.removeItem(src, k, 1) and ps.removeItem(src, 'bakingsoda', 1) then
ps.addItem(src, 'crackrock', v)
local can = true
for k, v in pairs (v.take) do
local count = Bridge.Inventory.GetItemCount(src, k)
if count < v then
can = false
break
end
end
end
if not can then
return craft(src, v)
end
local progress = Bridge.Callback.Trigger("md-drugs:client:uncuff", src, Bridge.Language.Locale('crack.breakdown'))
if not progress then return end
craft(src, v)
end)
end
RegisterNetEvent("md-drugs:server:failcrackone", function(num)
local src = source
if not ps.checkDistance(src, CrackLocations.makecrack[num].loc, 2.0) then
ps.notify(src, ps.lang('Catches.notIn'), 'error')
if not checkDistance(src, Config.Crack.Locations.makecrack[num].loc, 2.0, 'md-drugs:server:failcrackone') then
return
end
local items = {
loosecoke = 1,
loosecokestagetwo = 1,
loosecokestagethree = 1
'loosecoke',
'loosecokestagetwo',
'loosecokestagethree',
}
for k,v in pairs(items) do
if ps.hasItem(src, k, v) then
ps.removeItem(src, k, v)
if Bridge.Inventory.HasItem(src, v) then
Bridge.Inventory.RemoveItem(src, v, 1)
return
end
end
+126 -239
View File
@@ -1,256 +1,143 @@
if not Config.Drugs['deliveries'] then return end
local dloc = {
{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)},
}
local Products = {
{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},
local drugDeliveryItem = {
{item = 'coke_brick', amount = 1},
{item = 'weed_brick', amount = 1},
}
local Dealers = {}
ps.registerCallback('md-drugs:server:dealerList', function()
return Products
end)
ps.registerCallback('md-drugs:server:getDealers', function(source)
local check = MySQL.query.await('SELECT * FROM dealers', {})
local loc = json.encode({x = 899.98, y = -2603.24, z = 6.11, h = 176.12 })
if not check[1] then
MySQL.insert('INSERT INTO dealers SET name = ?, coords = ?, time = ?, createdby = ?', {'MD', loc, 'any', 'code Newb'})
Wait(2000)
local check2 = MySQL.query.await('SELECT * FROM dealers', {})
return check2
CreateThread(function()
local dealers = MySQL.query.await('SELECT * FROM dealers', {})
if #dealers > 0 then
for i = 1, #dealers do
local coords = json.decode(dealers[i].coords)
Dealers[#Dealers + 1] = {
coords = vector4(coords.x, coords.y, coords.z, coords.w or 180.0),
model = dealers[i].model or 'a_m_m_skater_01',
}
end
GlobalState.MDDrugDealers = Dealers
else
return check
MySQL.insert('INSERT INTO dealers (model, coords, createdby) VALUES (?, ?, ?)', {'a_m_m_skater_01', json.encode(vector4(1915.68, 154.22, 155.41, 6.88)), 'default'})
Dealers[#Dealers + 1] = {
coords = vector4(1915.68, 154.22, 155.41, 6.88),
model = 'a_m_m_skater_01',
}
GlobalState.MDDrugDealers = Dealers
end
end)
local DeliveryItems = {
{ item = "weed_brick", minrep = 0, payout = {min = 10, max = 50}},
{ item = "coke_brick", minrep = 0, payout = {min = 10, max = 50}},
}
ps.registerCallback('md-drugs:server:GetDeliveryItem', function(source, data)
RegisterCommand('newdealer', function(source, args, rawCommand)
local src = source
local Player = ps.getPlayer(src)
local itemnum = math.random(1, #DeliveryItems)
local item = DeliveryItems[itemnum].item
local amount = math.random(1,4)
local check = MySQL.query.await('SELECT * FROM deliveriesdealer WHERE cid = ?', {ps.getIdentifier(src)})
local locnum = math.random(1, #dloc)
local coord = json.encode({
x = dloc[locnum].coords.x,
y = dloc[locnum].coords.y,
z = dloc[locnum].coords.z ,
w = dloc[locnum].coords.w
if not IsPlayerAceAllowed(src, "command") then
return
end
local model = args[1] or 'a_m_m_skater_01'
local coords, heading = GetEntityCoords(GetPlayerPed(src)), GetEntityHeading(GetPlayerPed(src))
local vec = vector4(coords.x, coords.y, coords.z, heading)
MySQL.query.await('INSERT INTO dealers (model, coords, createdby) VALUES (?, ?, ?)', {model, json.encode(vec), Bridge.Framework.GetPlayerIdentifier(src)})
Dealers[#Dealers + 1] = {
coords = vec,
model = model,
}
GlobalState.MDDrugDealers = Dealers
Wait(1000)
TriggerClientEvent('md-drugs:client:RefreshDealers', -1)
end, false)
TriggerClientEvent('chat:addSuggestion', -1, '/newdealer', 'Spawns a new delivery dealer at your location.', {
{ name="model", help="Ped model to use (optional)." }
})
RegisterNetEvent('md-drugs:server:buyItemDealer', function(item, dealerId)
local src = source
if not Dealers[dealerId] then return end
if not checkDistance(src, Dealers[dealerId].coords, 5.0, 'md-drugs:server:buyItemDealer') then
return
end
local itemExists = Config.Deliveries.Recipes[item]
if not itemExists then
Bridge.Prints.Warn(Bridge.Language.Locale('Deliveries.itemDoesntExist', Bridge.Framework.GetPlayerIdentifier(src), item))
return
end
if Bridge.Framework.RemoveAccountBalance(src, 'cash', itemExists.price) then
Bridge.Inventory.AddItem(src, itemExists.name, 1)
else
Bridge.Notify.Error(src, Bridge.Language.Locale('Deliveries.purchase_fail_funds'))
end
end)
local active = {}
CreateThread(function()
local deliveries = MySQL.query.await('SELECT * FROM deliveriesdealer', {})
if deliveries and #deliveries > 0 then
for i = 1, #deliveries do
local itemdata = json.decode(deliveries[i].itemdata)
local location = json.decode(deliveries[i].location)
active[deliveries[i].cid] = {
coords = vector4(location.x, location.y, location.z, location.w or 180.0),
item = itemdata.item,
amount = itemdata.amount,
timestop = deliveries[i].maxtime,
}
end
end
end)
RegisterNetEvent('md-drugs:server:requestDelivery', function(dealerId)
local src = source
if not Dealers[dealerId] then return end
if not checkDistance(src, Dealers[dealerId].coords, 5.0, 'md-drugs:server:requestDelivery') then
return
end
local id = Bridge.Framework.GetPlayerIdentifier(src)
if active[id] then
local currentTime = os.time()
if currentTime > active[id].timestop then
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Deliveries.slowAf'), 'error')
active[id] = nil
return
end
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Deliveries.alreadyDelivering'), 'error')
TriggerClientEvent('md-drugs:client:setLocation', src, active[id])
return
end
local deliveryLoc = Config.Deliveries.Locations.dropOff[math.random(1, #Config.Deliveries.Locations.dropOff)]
local item = drugDeliveryItem[math.random(1, #drugDeliveryItem)]
active[id] = {
coords = deliveryLoc.coords,
item = item.item,
amount = item.amount,
timestop = os.time() + (15 * 60),
}
MySQL.query.await('INSERT INTO deliveriesdealer (cid, itemdata, maxtime, location) VALUES (?, ?, ?, ?)', {
id,
json.encode({item = item.item, amount = item.amount}),
active[id].timestop,
json.encode({x = deliveryLoc.coords.x, y = deliveryLoc.coords.y, z = deliveryLoc.coords.z, w = deliveryLoc.coords.w or 180.0}),
})
if not check[1] then
MySQL.insert('INSERT INTO deliveriesdealer SET cid = ?, itemdata = ?, timestart = ?, maxtime = ?, location = ?',
{ps.getIdentifier(src), json.encode({item = item, amount = amount}), os.time(), os.time() + (15 * 60), coord })
ps.addItem(src, item, amount)
local tab = {
bool = true,
item = item,
amount = amount,
coords = coord
}
return tab
else
local time = os.time()
local timeout = math.floor(os.difftime(time, check[1].maxtime) / 60)
if timeout > 15 then
MySQL.query.await('DELETE FROM deliveriesdealer WHERE cid = ?', {ps.getIdentifier(src)})
ps.notify(src, ps.lang('Deliveries.slowAf'), 'error' )
return {bool = false}
end
ps.notify(src,ps.lang('Deliveries.alreadyDelivering'), 'error' )
local tab = {
bool = false,
item = item,
amount = amount,
coords = coord
}
return tab
end
Bridge.Inventory.AddItem(src, item.item, item.amount)
TriggerClientEvent('md-drugs:client:setLocation', src, active[id])
end)
RegisterNetEvent('md-drugs:server:giveDeliveryItems', function(item, amount)
RegisterNetEvent('md-drugs:server:giveDeliveryItems', function(pedID)
local src = source
local Player = ps.getPlayer(src)
local check = MySQL.query.await('SELECT * FROM deliveriesdealer WHERE cid = ?', {ps.getIdentifier(src)})
if not check[1] then return end
local time = os.time()
local timeout = math.floor(os.difftime(time, check[1].maxtime) / 60)
local itemData = json.decode(check[1].itemdata)
if timeout >= 15 then
MySQL.query.await('DELETE FROM deliveriesdealer WHERE cid = ?', {ps.getIdentifier(src)})
ps.notify(src, ps.lang('Deliveries.slowAf'), 'error' )
local id = Bridge.Framework.GetPlayerIdentifier(src)
if not active[id] then
return
end
if item ~= itemData.item then return end
if amount ~= itemData.amount then return end
if ps.removeItem(src, item, amount) then
for k, v in pairs (DeliveryItems) do
if v.item == item then
local income = math.random(v.payout.min, v.payout.max)
ps.addMoney(src, 'cash', income)
AddRep(src, 'dealerrep')
end
end
MySQL.query.await('DELETE FROM deliveriesdealer WHERE cid = ?', {ps.getIdentifier(src)})
end
end)
ps.registerCommand("newdealer", {
help = ps.lang('Deliveries.newDealerHelp.help'),
description = {
{ name = "name", help = ps.lang('Deliveries.newDealerHelp.name'), type = "string" },
{ name = "min", help = ps.lang('Deliveries.newDealerHelp.timeMin'), type = "number" },
{ name = "max", help = ps.lang('Deliveries.newDealerHelp.timeMax'), type = "number" }
},
admin = true,
}, function(source, args)
local ped = GetPlayerPed(source)
local coords = GetEntityCoords(ped)
local Player = ps.getPlayer(source)
if not Player then return end
local dealerName = args[1]
local pos = json.encode({x = coords.x, y = coords.y, z = coords.z})
local result = MySQL.scalar.await('SELECT name FROM dealers WHERE name = ?', { dealerName })
if result then
return ps.notify(source,ps.lang('Deliveries.DealerExists'), "error")
end
MySQL.insert('INSERT INTO dealers (name, coords, time, createdby) VALUES (?, ?, ?, ?)', {
dealerName, pos, 'nil', ps.getIdentifier(source)
}, function()
QBConfig.Dealers[dealerName] = {
name = dealerName,
coords = {
x = coords.x,
y = coords.y,
z = coords.z,
h = GetEntityHeading(ped)
},
}
TriggerClientEvent('md-drugs:client:RefreshDealers', -1, QBConfig.Dealers)
end)
end)
ps.registerCommand("deletedealer", {
help = ps.lang('Deliveries.deleteDealerHelp.help'),
description = {
{ name = "name", help = ps.lang('Deliveries.deleteDealerHelp.name'), type = "string" }
},
admin = true
}, function(source, args)
local dealerName = args.name
local result = MySQL.scalar.await('SELECT * FROM dealers WHERE name = ?', { dealerName })
if result and result[1] then
MySQL.query('DELETE FROM dealers WHERE name = ?', { dealerName })
QBConfig.Dealers[dealerName] = nil
TriggerClientEvent('md-drugs:client:RefreshDealers', -1, QBConfig.Dealers)
ps.notify(source, ps.lang('Deliveries.deleteDealerSuccess'), "success")
else
ps.notify(source, ps.lang('Deliveries.deleteDealerFail'), "error")
end
end)
RegisterNetEvent('md-drugs:server:buyItemDealer', function(num)
local src = source
local itemData = Products[num]
if not itemData then return end
local Player = ps.getPlayer(src)
if not Player then return end
if not ps.removeMoney(src, 'cash', itemData.price) or not ps.removeMoney(src,'bank', itemData.price) then
ps.notify(src, ps.lang('Catches.notEnoughMoney'), 'error')
if not checkDistance(src, active[id].coords, 5.0, 'md-drugs:server:giveDeliveryItems') then
return
end
ps.addItem(src, itemData.name, 1)
ps.notify(src, string.format(ps.lang('Deliveries.buyItemSuccess'), 1, ps.getLabel(itemData.name), itemData.price), 'success')
if not Bridge.Inventory.RemoveItem(src, active[id].item, active[id].amount) then
Bridge.Notify.Error(src, Bridge.Language.Locale('Deliveries.deliveryFailed'))
return
end
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Deliveries.delivery_success'), 'success')
AddRep(src, 'dealerrep', 1)
active[id] = nil
MySQL.query.await('DELETE FROM deliveriesdealer WHERE cid = ?', {id})
end)
+119 -66
View File
@@ -1,111 +1,164 @@
local timeOutPlayers = {}
local playerRep = {}
local playerWarnings = {}
local trollExploiters = true
local function trollPlayer(src)
if not trollExploiters then return end
CreateThread(function()
local playerPed = GetPlayerPed(src)
SetEntityCoords(playerPed, -3432.36, -6000.42, -2.0, false, false, false, true)
Wait(30000)
SetEntityCoords(playerPed, -1392.98, -2599.29, 2419.18, false, false, false, true)
Wait(40000)
DropPlayer(src, 'You have been caught trying to exploit md-drugs, get rekted.')
end)
end
RegisterCommand('testTroll', function(source, args, rawCommand)
local src = source
trollPlayer(src)
end, false)
function checkDistance(src, coords, dist, event)
local pcoords = GetEntityCoords(GetPlayerPed(src))
coords = vector3(coords.x, coords.y, coords.z)
if #(pcoords - coords) > dist then
Bridge.Prints.Warn(Bridge.Language.Locale('Catches.outOfRangeWarn', Bridge.Framework.GetPlayerIdentifier(src), event))
playerWarnings[src] = (playerWarnings[src] or 0) + 1
if playerWarnings[src] >= 5 then
trollPlayer(src)
end
return false
end
return true
end
local function timeOutThread(src)
src = tonumber(src)
CreateThread(function()
timeOutPlayers[ps.getIdentifier(src)] = true
timeOutPlayers[src] = true
Wait(3000)
timeOutPlayers[ps.getIdentifier(src)] = nil
timeOutPlayers[src] = nil
end)
end
function timeOut(src, event)
if timeOutPlayers[ps.getIdentifier(src)] then
ps.warn(ps.lang('Catches.onCooldownWarn', ps.getPlayerName(src), event))
if timeOutPlayers[src] then
Bridge.Prints.Warn(Bridge.Language.Locale('Catches.onCooldownWarn', Bridge.Framework.GetPlayerIdentifier(src), event))
playerWarnings[src] = (playerWarnings[src] or 0) + 1
if playerWarnings[src] >= 5 then
trollPlayer(src)
end
return true
end
timeOutThread(src)
return false
end
function verifyHas(source, items)
local need = 0
local have = 0
local missingList = {}
for k, v in pairs(items) do
function craft(source, recipe)
local need, have, oops = 0,0,{}
for item, amount in pairs (recipe.take) do
need = need + 1
if ps.hasItem(source, k, v) then
local count = Bridge.Inventory.GetItemCount(source, item)
if count >= amount then
have = have + 1
else
local label = ps.getItemLabel(k) or k
table.insert(missingList, v .. " " .. label)
table.insert(oops, 'You Need ' .. amount .. ' X ' .. Bridge.Inventory.GetItemInfo(item).label)
end
end
if need == have then
return true
if have ~= need then
for index, text in pairs (oops) do
Bridge.Notify.SendNotify(source, text, 'error')
end
return false
end
local message = ps.lang('Catches.itemMissings') .. table.concat(missingList, "\n")
ps.notify(source, message, 'error')
return false
for item, amount in pairs (recipe.take) do
if not Bridge.Inventory.RemoveItem(source, item, amount) then
return false
end
end
for item, amount in pairs (recipe.give) do
Bridge.Inventory.AddItem(source, item, amount)
end
return true
end
local function handleFresh(source)
local table = json.encode({
coke = 0,lsd = 0,heroin = 0,dealerrep = 0,
cornerselling = { price = QBConfig.SellLevel[1].price,rep = 0,label = QBConfig.SellLevel[1].label,level = 1}
})
MySQL.insert('INSERT INTO drugrep SET cid = ?, drugrep = ?, name = ?', {ps.getIdentifier(source), table, ps.getPlayerName(source)})
return json.decode(table)
local id = Bridge.Framework.GetPlayerIdentifier(source)
local player = {
coke = 0,
lsd = 0,
heroin = 0,
dealerrep = 0,
cornerselling = {
price = Config.Cornerselling.CornerSellLevel[1].price,
rep = 0,
label = Config.Cornerselling.CornerSellLevel[1].label,
level = 1
}
}
playerRep[id] = player
local first, last = Bridge.Framework.GetPlayerName(source)
MySQL.insert('INSERT INTO drugrep SET cid = ?, drugrep = ?, name = ?', {id, json.encode(player), first .. ' ' .. last})
end
local function loadRep(source)
local id = Bridge.Framework.GetPlayerIdentifier(source)
local hasRep = MySQL.query.await('SELECT * FROM drugrep WHERE cid = ?', {id})
if hasRep and not hasRep[1] then
handleFresh(source)
end
if hasRep and hasRep[1] then
playerRep[id] = json.decode(hasRep[1].drugrep)
end
end
function getRep(source, type)
local sql = MySQL.query.await('SELECT JSON_UNQUOTE(JSON_EXTRACT(drugrep, ?)) AS rep FROM drugrep WHERE cid = ?', {'$.' .. type, ps.getIdentifier(source)})
if not sql[1] then
local new = handleFresh(source)
return new[type]
else
return sql[1].rep
local id = Bridge.Framework.GetPlayerIdentifier(source)
if not playerRep[id] then
loadRep(source)
end
return playerRep[id][type]
end
function GetAllRep(source)
local sql = MySQL.query.await('SELECT * FROM drugrep WHERE cid = ?', {ps.getIdentifier(source)})
if not sql[1] then
local new = handleFresh(source)
return new
else
local rep = json.decode(sql[1].drugrep)
if rep.coke == nil then return rep[1] end
return rep
local id = Bridge.Framework.GetPlayerIdentifier(source)
if not playerRep[id] then
loadRep(source)
end
return playerRep[id]
end
function AddRep(source, type, amount)
if not Config.TierSystem then return false end
if not amount then amount = 1 end
local sql = MySQL.query.await('SELECT * FROM drugrep WHERE cid = ?', {ps.getIdentifier(source)})
local reps = json.decode(sql[1].drugrep)
local update
local rep = ''
if reps.coke == nil then rep = reps[1] else rep = reps end
if type == 'cornerselling' then
for k, v in pairs (QBConfig.SellLevel) do
if rep.cornerselling.level == k then
if rep.cornerselling.rep + amount >= v.maxrep then
update = json.encode({coke = rep.coke, heroin = rep.heroin, lsd = rep.lsd, dealerrep = rep.dealerrep, cornerselling = {label = v.label, price = v.price, rep = rep.cornerselling.rep + amount, level = k + 1}})
else
update = json.encode({coke = rep.coke, heroin = rep.heroin, lsd = rep.lsd, dealerrep = rep.dealerrep, cornerselling = {label = v.label, price = v.price, rep = rep.cornerselling.rep + amount, level = k}})
end
end
end
if update == '' then return false end
MySQL.update('UPDATE drugrep SET drugrep = ? WHERE cid = ?', {update, ps.getIdentifier(source)})
return true
else
rep[type] = rep[type] + amount
MySQL.update('UPDATE drugrep SET drugrep = ? WHERE cid = ?', {json.encode(rep), ps.getIdentifier(source)})
return true
local id = Bridge.Framework.GetPlayerIdentifier(source)
if not playerRep[id] then
loadRep(source)
end
if type == 'cornerselling' then
local rep = playerRep[id].cornerselling
local cornerData = Config.Cornerselling.CornerSellLevel[rep.level]
if rep.rep + amount >= cornerData.maxrep then
rep.level = rep.level + 1
rep.label = Config.CornerSellLevel[rep.level].label
rep.price = Config.CornerSellLevel[rep.level].price
end
rep.rep = rep.rep + amount
else
playerRep[id][type] = playerRep[id][type] + amount
end
MySQL.query.await('UPDATE drugrep SET drugrep = ? WHERE cid = ?', {json.encode(playerRep[id]), id})
end
ps.registerCallback('md-drugs:server:GetCoppers', function(source, cb, args)
return ps.getJobTypeCount('leo')
Bridge.Callback.Register('md-drugs:server:GetCoppers', function(source, cb, args)
return #Bridge.Framework.GetPlayersByJob('police')
end)
ps.registerCallback('md-drugs:server:GetRep', function(source, cb, args)
Bridge.Callback.Register('md-drugs:server:GetRep', function(source, cb, args)
local rep = GetAllRep(source)
return rep
end)
ps.versionCheck('md-drugs', 'https://raw.githubusercontent.com/Mustachedom/md-drugs/refs/heads/main/version.txt', 'https://github.com/Mustachedom/md-drugs/')
--TODO: fix versioncheck
Bridge.Version.VersionChecker('Mustachedom/md-drugs', false)
+117 -165
View File
@@ -1,83 +1,39 @@
if not Config.Drugs['heroin'] then return end
local heroinLabKits = {}
local heroinRecipes = {
dryheroin = {
tier1 = {take = {poppyresin = 1}, give = {heroin = 1}},
tier2 = {take = {poppyresin = 1}, give = {heroinstagetwo = 1}},
tier3 = {take = {poppyresin = 1}, give = {heroinstagethree = 1}},
},
cutheroin = {
tier1 = {take = {heroin = 1, bakingsoda = 1}, give = {heroincut = 1}},
tier2 = {take = {heroinstagetwo = 1, bakingsoda = 1}, give = {heroincutstagetwo = 1}},
tier3 = {take = {heroinstagethree = 1, bakingsoda = 1}, give = {heroincutstagethree = 1}},
},
fillvial = {
tier1 = {take = {heroincut = 1, emptyvial = 1}, give = {heroinvial = 1}},
tier2 = {take = {heroincutstagetwo = 1, emptyvial = 1}, give = {heroinvialstagetwo = 1}},
tier3 = {take = {heroincutstagethree = 1, emptyvial = 1}, give = {heroinvialstagethree = 1}},
},
fillneedle = {
tier1 = {take = {heroinvial = 1, needle = 1}, give = {heroin_ready = 1}},
tier2 = {take = {heroinvialstagetwo = 1, needle = 1}, give = {heroin_readystagetwo = 1}},
tier3 = {take = {heroinvialstagethree = 1, needle = 1}, give = {heroin_readystagethree = 1}},
}
}
local heroinLocations = {
dryplant = { -- turn resin into powder
{loc = vector3(-1353.77, -335.58, 43.92), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
cutheroinone = { -- cut heroin stage 1-3 with baking soda
{loc = vector3(-1360.14, -337.03, 43.92), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
fillneedle = { -- fill needles with heroin
{loc = vector3(-1366.32, -334.40, 44.44), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
buyKit = {
{ped = 'a_m_m_farmer_01',loc = vector4(-1366.32, -334.40, 44.44,180.0), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
}
}
local prices = {
heroinlabkitprice = 10000
}
ps.registerCallback('md-drugs:server:GetHeroinLocations', function(source)
return heroinLocations
end)
ps.registerCallback('removeCleaningkit', function(source)
for k, v in pairs(heroinLabKits) do
if v.ownerid == ps.getIdentifier(source) then
ps.removeItem(source, 'cleaningkit', 1)
return true
end
Bridge.Callback.Register('md-drugs:server:removeCleaningKitHeroin', function(source)
if heroinLabKits[source] then
return Bridge.Inventory.RemoveItem(source, 'cleaningkit', 1)
end
return false
end)
local function getTier(source)
if not Config.TierSystem then
return 'tier1'
end
local heroin = tonumber(getRep(source, 'heroin'))
if heroin <= Config.Tier1 then
return 'tier1'
elseif heroin >= Config.Tier1 and heroin <= Config.Tier2 then
return'tier2'
else
return 'tier3'
end
end
RegisterServerEvent('md-drugs:server:dryplant', function(num)
local src = source
if timeOut(src, 'md-drugs:server:dryplant') then return end
if not ps.checkDistance(src, heroinLocations.dryplant[num].loc, 3.0) then
ps.notify(src, ps.lang('Catches.notIn'), 'error')
if not checkDistance(src, Config.Heroin.Locations.dryplant[num].loc, 3.0, 'md-drugs:server:dryplant') then
return
end
local tier = 'tier1'
if Config.TierSystem then
local heroin = tonumber(getRep(src, 'heroin'))
if heroin <= Config.Tier1 then
tier = 'tier1'
elseif heroin >= Config.Tier1 and heroin <= Config.Tier2 then
tier = 'tier2'
else
tier = 'tier3'
end
end
if not ps.craftItem(src, heroinRecipes['dryheroin'][tier]) then
verifyHas(src, heroinRecipes['dryheroin'][tier].take)
local tier = getTier(src)
if not craft(src, Config.Heroin.Recipes.dryheroin[tier]) then
return
end
end)
@@ -87,85 +43,90 @@ RegisterServerEvent('md-drugs:server:cutheroin', function(num)
if timeOut(src, 'md-drugs:server:cutheroin') then return end
if not ps.checkDistance(src, heroinLocations.cutheroinone[num].loc, 3.0) then
ps.notify(src, ps.lang('Catches.notIn'), 'error')
if not checkDistance(src, Config.Heroin.Locations.cutheroinone[num].loc, 3.0, 'md-drugs:server:cutheroin') then
return
end
local tier = 'tier1'
if Config.TierSystem then
local itemList = {
heroin = 'tier1',
heroinstagetwo = 'tier2',
heroinstagethree = 'tier3'
}
for k, v in pairs(itemList) do
local cuth = ps.hasItem(src, k)
if cuth then
if not ps.craftItem(src, heroinRecipes['cutheroin'][v]) then
verifyHas(src, heroinRecipes['cutheroin'][v].take)
return
end
AddRep(src, 'heroin')
return
for item, tiers in pairs (itemList) do
if Bridge.Inventory.HasItem(src, item) then
tier = tiers
break
end
end
else
if not ps.craftItem(src, heroinRecipes['cutheroin']['tier1']) then
verifyHas(src, heroinRecipes['cutheroin']['tier1'].take)
return
end
end
if not craft(src, Config.Heroin.Recipes.cutheroin[tier]) then
return
end
end)
RegisterServerEvent('md-drugs:server:getheroinlabkit', function(num)
local src = source
if timeOut(src, 'md-drugs:server:getheroinlabkit') then return end
if not ps.checkDistance(src, heroinLocations.buyKit[num].loc, 3.0) then
ps.notify(src, ps.lang('Catches.notIn'), 'error')
if not checkDistance(src, Config.Heroin.Locations.buyKit[num].loc, 3.0, 'md-drugs:server:getheroinlabkit') then
return
end
local has = ps.hasItem(src, 'heroinlabkit')
if has then ps.notify(src, ps.lang('heroin.hasKitAlready'), 'error') return end
if ps.removeMoney(src, 'cash', prices.heroinlabkitprice) then
ps.addItem(src, 'heroinlabkit', 1)
local has = Bridge.Inventory.HasItem(src, 'heroinlabkit')
if has then
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('heroin.hasKitAlready'), 'error')
return
end
if Bridge.Framework.RemoveAccountBalance(src, 'cash', Config.Heroin.prices.heroinlabkitprice) then
Bridge.Inventory.AddItem(src, 'heroinlabkit', 1)
else
ps.notify(src, ps.lang('heroin.notEnoughMoney', prices.heroinlabkitprice), 'error')
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('heroin.notEnoughMoney', Config.Heroin.prices.heroinlabkitprice), 'error')
end
end)
local function hasHKit(src)
for k, v in pairs(heroinLabKits) do
if v.ownerid == ps.getIdentifier(src) then
return true
end
end
return false
end
RegisterServerEvent('md-drugs:server:getheroinlabkitback', function()
local src = source
if not hasHKit(src) then return end
for k, v in pairs (heroinLabKits) do
if v.ownerid == ps.getIdentifier(src) then
table.remove(heroinLabKits, k)
ps.addItem(src, 'heroinlabkit', 1)
end
if not heroinLabKits[src] then
return
end
local loc = vector3(heroinLabKits[src].coords.x, heroinLabKits[src].coords.y, heroinLabKits[src].coords.z)
if not checkDistance(src, loc, 5.0, 'md-drugs:server:getheroinlabkitback') then
return
end
heroinLabKits[src] = nil
Bridge.Inventory.AddItem(src, 'heroinlabkit', 1)
end)
ps.createUseable('heroinlabkit', function(source, item)
Bridge.Framework.RegisterUsableItem('heroinlabkit', function(source, item)
local src = source
if not ps.hasItem(src, 'heroinlabkit', 1) then return end
local placed, loc = ps.callback('md-drugs:client:setheroinlabkit', src)
if not Bridge.Inventory.HasItem(src, 'heroinlabkit', 1) then
return
end
if heroinLabKits[src] then
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('heroin.hasKitAlreadyPlaced'), "error")
return
end
local placed, loc = Bridge.Callback.Trigger('md-drugs:client:setheroinlabkit', src)
if placed then
if ps.removeItem(src, 'heroinlabkit', 1) then
table.insert(heroinLabKits, {
if Bridge.Inventory.RemoveItem(src, 'heroinlabkit', 1) then
heroinLabKits[src] = {
src = src,
ownerid = ps.getIdentifier(src),
coords = loc,
name = ps.getPlayerName(src)
})
ps.notify(src, ps.lang('heroin.placedKit'), "success")
}
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('heroin.placedKit'), "success")
end
end
end)
@@ -175,9 +136,16 @@ RegisterServerEvent('md-drugs:server:heatliquidheroin', function()
if timeOut(src, 'md-drugs:server:heatliquidheroin') then return end
if not hasHKit(src) then return end
if not ps.hasItem(src, 'emptyvial', 1) then return end
if not heroinLabKits[src] then
Bridge.Prints.Warn(src, Bridge.Language.Locale('Catches.missedTable', Bridge.Framework.GetPlayerIdentifier(src), 'md-drugs:server:heatliquidheroin'), 'error')
return
end
if not checkDistance(src, heroinLabKits[src].coords, 3.0, 'md-drugs:server:heatliquidheroin') then
return
end
local tier = 'tier1'
if Config.TierSystem then
local itemList = {
heroincut = 'tier1',
@@ -185,37 +153,33 @@ RegisterServerEvent('md-drugs:server:heatliquidheroin', function()
heroincutstagethree = 'tier3'
}
for k, v in pairs(itemList) do
local cuth = ps.hasItem(src, k)
if cuth then
if not ps.craftItem(src, heroinRecipes['fillvial'][v]) then
verifyHas(src, heroinRecipes['fillvial'][v].take)
return
end
AddRep(src, 'heroin')
return
if Bridge.Inventory.HasItem(src, k) then
tier = v
break
end
end
else
if not ps.craftItem(src, heroinRecipes['fillvial']['tier1']) then
verifyHas(src, heroinRecipes['fillvial']['tier1'].take)
return
end
end
if not craft(src, Config.Heroin.Recipes.fillvial[tier]) then
return
end
end)
RegisterServerEvent('md-drugs:server:failheatingheroin', function()
local src = source
if not hasHKit(src) then return end
if not heroinLabKits[src] then
Bridge.Prints.Warn(src, Bridge.Language.Locale('Catches.missedTable', Bridge.Framework.GetPlayerIdentifier(src), 'md-drugs:server:failheatingheroin'), 'error')
end
local itemList = {
heroincut = 1,
heroincutstagetwo = 1,
heroincutstagethree = 1
}
for k, v in pairs(itemList) do
local cuth = ps.hasItem(src, k)
if cuth then
ps.removeItem(src, k, v)
ps.notify(src, ps.lang('heroin.failed'), "error")
if Bridge.Inventory.RemoveItem(src, k, v) then
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('heroin.failed'), "error")
return
end
end
@@ -224,33 +188,26 @@ end)
RegisterServerEvent('md-drugs:server:fillneedle', function(num)
local src = source
if timeOut(src, 'md-drugs:server:fillneedle') then return end
if not ps.checkDistance(src, heroinLocations.fillneedle[num].loc, 3.0) then
ps.notify(src, ps.lang('Catches.notIn'), 'error')
if not checkDistance(src, Config.Heroin.Locations.fillneedle[num].loc, 3.0, 'md-drugs:server:fillneedle') then
return
end
if not ps.hasItem(src, 'needle', 1) then return end
local tier = 'tier1'
if Config.TierSystem then
local itemList = {
{item = 'heroinvial', tier = 'tier1', log = ' Filled Heroin Needle'},
{item = 'heroinvialstagetwo', tier = 'tier2', log = ' Filled Heroin Needle tier 2'},
{item = 'heroinvialstagethree', tier = 'tier3', log = ' Filled Heroin Needle tier 3'}
}
for k, v in pairs(itemList) do
local vh = ps.hasItem(src, v.item)
if vh then
if not ps.craftItem(src, heroinRecipes['fillneedle'][v.tier]) then
verifyHas(src, heroinRecipes['fillneedle'][v.tier].take)
return
end
AddRep(src, 'heroin')
return
heroinvial = 'tier1',
heroinvialstagetwo = 'tier2',
heroinvialstagethree = 'tier3'
}
for item, tiers in pairs (itemList) do
if Bridge.Inventory.HasItem(src, item) then
tier = tiers
break
end
end
else
if not ps.craftItem(src, heroinRecipes['fillneedle']['tier1']) then
verifyHas(src, heroinRecipes['fillneedle']['tier1'].take)
return
end
end
if not craft(src, Config.Heroin.Recipes.fillneedle[tier]) then
return
end
end)
@@ -263,25 +220,20 @@ RegisterServerEvent('md-drugs:server:failheroin', function()
heroinvialstagethree = 1
}
for k, v in pairs (itemList) do
local cuth = ps.hasItem(src, k)
if cuth then
ps.removeItem(src, k, v)
ps.notify(src, ps.lang('Heroin.failneedle'), "error")
if Bridge.Inventory.RemoveItem(src, k, v) then
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Heroin.failneedle'), "error")
return
end
end
else
ps.removeItem(src, 'heroinvial', 1)
Bridge.Inventory.RemoveItem(src, 'heroinvial', 1)
end
end)
AddEventHandler('playerDropped', function()
local src = source
for k, v in pairs(heroinLabKits) do
if v.src == src then
table.remove(heroinLabKits, k)
ps.addItem(src, 'heroinlabkit', 1)
end
if heroinLabKits[src] then
heroinLabKits[src] = nil
Bridge.Inventory.AddItem(src, 'heroinlabkit', 1)
end
end)
+70 -72
View File
@@ -1,30 +1,5 @@
if not Config.Drugs['lean'] then return end
local onRun = {}
local leanLocs = {
MakeLean = {
{
loc = vector3(2635.81, 4240.57, 45.32),
checks = { -- these can be arrays like {'police', 'ambulance'} or just a single string like 'police'
--gang = {},
--item = {},
--job = {},
--citizenid = {}
}
},
},
SyrupVendor = {
{ped = 'a_m_m_farmer_01', loc = vector4(365.21, -578.77, 39.30, 347.23), l = 1.0, w = 1.0, rot = 347.23, gang = ""},
},
StartLoc = { -- where truck spawns for lean and meth missions
vector3(-2307.22, 434.77, 174.47),
vector3(614.75, 1786.26, 199.39),
vector3(-224.89, 6388.32, 31.59)
},
}
ps.registerCallback('md-drugs:server:GetLeanLocs', function(source)
return leanLocs
end)
local function setTimeout(identifier)
if onRun[identifier] then
@@ -34,60 +9,83 @@ local function setTimeout(identifier)
end)
end
end
RegisterServerEvent('md-drugs:server:givelean', function()
local src = source
local amount = math.random(1,5)
if not onRun[ps.getIdentifier(src)] then return ps.notify(src, ps.lang('lean.notOnRun'), "error") end
onRun[ps.getIdentifier(src)] = onRun[ps.getIdentifier(src)] + 1
if math.random(1,100) <= 50 then
ps.addItem(src, "mdlean", amount)
else
ps.addItem(src, "mdreddextro", amount)
if not onRun[src] then
return
end
if onRun[ps.getIdentifier(src)] >= 4 then
onRun[ps.getIdentifier(src)] = nil
local veh = onRun[src].vehicle
if not veh or veh == 0 then
Bridge.Prints.Warn(src, Bridge.Language.Locale('lean.vehDoesntExist', Bridge.Framework.GetPlayerIdentifier(src)), 'error')
return
end
if GetEntityModel(veh) ~= GetHashKey('pounder') then
Bridge.Prints.Warn(src, Bridge.Language.Locale('lean.wrongVehModel', Bridge.Framework.GetPlayerIdentifier(src)), 'error')
return
end
local pcoords, vcoords = GetEntityCoords(GetPlayerPed(src)), GetEntityCoords(veh)
if not checkDistance(src, vcoords, 5.0, 'md-drugs:server:givelean') then
return
end
onRun[src].taken = onRun[src].taken + 1
local item, amount = math.random(1,2) == 1 and 'mdlean' or 'mdreddextro', math.random(1,3)
Bridge.Inventory.AddItem(src, item, amount)
if onRun[src].taken >= 5 then
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('lean.maxTaken'), 'error')
DeleteEntity(veh)
onRun[src] = nil
return
end
end)
exports.ps_lib:registerCrafter({
loc = leanLocs.MakeLean,
recipes = {
cupoflean = {
amount = 1,
time = 5000,
anim = 'uncuff',
recipe = {
leancup = 1,
mdlean = 1,
sprunk = 1
}
},
cupofdextro = {
amount = 1,
time = 5000,
anim = 'uncuff',
recipe = {
leancup = 1,
mdreddextro = 1,
sprunk = 1
}
}
},
targetData = {
size = {height = 1.0, width = 1.0, length = 1.0, rotation = 180.0},
label = 'Make Lean',
icon = 'fa-solid fa-mug-saucer',
},
})
ps.registerCallback('md-drugs:server:RegisterLean', function(source)
local identifier = ps.getIdentifier(source)
if not identifier then return false end
if onRun[identifier] then
Bridge.Callback.Register('md-drugs:server:registerLean', function(source, loc, vehicleNetId)
local src = source
if onRun[src] then
return false
else
onRun[identifier] = 0
setTimeout(identifier)
if not checkDistance(src, Config.Lean.Locations.SyrupVendor[loc].loc, 5.0, 'md-drugs:server:registerLean') then
return false
end
if not vehicleNetId then
Bridge.Prints.Warn(src, Bridge.Language.Locale('lean.vehDoesntExist', Bridge.Framework.GetPlayerIdentifier(src)), 'error')
return false
end
local veh = NetworkGetEntityFromNetworkId(vehicleNetId)
if not veh or veh == 0 or GetEntityModel(veh) ~= GetHashKey('pounder') then
Bridge.Prints.Warn(src, Bridge.Language.Locale('lean.wrongVehModel', Bridge.Framework.GetPlayerIdentifier(src)), 'error')
return false
end
onRun[src] = {
taken = 0,
vehicle = veh,
}
setTimeout(src)
return true
end
end)
Bridge.Framework.RegisterUsableItem('leancup', function(source, item)
local src = source
if not item then return end
TriggerClientEvent('md-drugs:client:makeLean', src)
end)
RegisterNetEvent('md-drugs:server:makeLean', function(recipe)
local src = source
if not Config.Lean.Recipes[recipe] then
return
end
local rec = Config.Lean.Recipes[recipe]
for k, v in pairs (rec.ingredients) do
if not Bridge.Inventory.HasItem(src, v.item, v.amount) then
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('lean.missingIngredients'), 'error')
return
end
end
for k, v in pairs (rec.ingredients) do
Bridge.Inventory.RemoveItem(src, v.item, v.amount)
end
Bridge.Inventory.AddItem(src, rec.item, rec.amount)
end)
+122 -130
View File
@@ -1,215 +1,209 @@
local prices = {
tabcost = 100, -- price per piece of tab paper event does 10 at a time
lsdlabkitcost = 10000 -- price of the lsd lab kit
}
local lsdRecipes = {
vial = {
heat = {take = {lysergic_acid = 1, diethylamide = 1,}, give = {lsd_one_vial = 1}}
},
}
local lsdLocations = {
lysergicacid = { -- get lysergic acid
{loc = vector3(-1381.21, -327.75, 39.85), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
{loc = vector3(2405.53, 5008.39, 46.02), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
diethylamide = { -- get diethylamide
{loc = vector3(-1371.71, -316.02, 39.53), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
{loc = vector3(2408.38, 5011.18, 46.08), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
gettabs = { -- buy tab paper
{loc = vector3(-1370.77, -314.51, 39.58), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
{loc = vector3(2409.59, 5012.45, 46.09), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
buyLSDkit = {
{ped = 'g_f_y_families_01', loc = vector4(2598.47, 5033.06, 105.86, 283.51), l = 1.0, w = 1.0, rot = 283.51, gang = ""},
},
}
ps.registerCallback('md-drugs:server:GetLSDLocations', function(source)
return lsdLocations
end)
if not Config.Drugs['lsd'] then return end
local lsdTables = {}
RegisterServerEvent('md-drugs:server:getlysergic', function(num)
local src = source
if timeOut(src, 'md-drugs:server:getlysergic') then return end
if not ps.checkDistance(src, lsdLocations.lysergicacid[num].loc, 2.0) then
ps.notify(src, ps.lang('Catches.notIn'), "error")
if not checkDistance(src, Config.LSD.Locations.lysergicacid[num].loc, 2.0, 'md-drugs:server:getlysergic') then
return
end
ps.addItem(src, 'lysergic_acid', 2)
Bridge.Inventory.AddItem(src, 'lysergic_acid', 2)
end)
RegisterServerEvent('md-drugs:server:getdiethylamide', function(num)
local src = source
if timeOut(src, 'md-drugs:server:getdiethylamide') then return end
if not ps.checkDistance(src, lsdLocations.diethylamide[num].loc, 2.0) then
ps.notify(src, ps.lang('Catches.notIn'), "error")
if not checkDistance(src, Config.LSD.Locations.diethylamide[num].loc, 2.0, 'md-drugs:server:getdiethylamide') then
return
end
ps.addItem(src, 'diethylamide', 2)
Bridge.Inventory.AddItem(src, 'diethylamide', 2)
end)
ps.createUseable('lsdlabkit', function(source, item)
Bridge.Framework.RegisterUsableItem('lsdlabkit', function(source, item)
local src = source
local placed, loc = ps.callback('md-drugs:client:setlsdlabkit', src)
local placed, loc = Bridge.Callback.Trigger('md-drugs:client:setlsdlabkit', src)
if placed then
if ps.removeItem(src, 'lsdlabkit', 1) then
table.insert(lsdTables, {
owner = ps.getPlayerName(src),
ownerid = ps.getIdentifier(src),
if Bridge.Inventory.RemoveItem(src, 'lsdlabkit', 1) then
lsdTables[src] = {
src = src,
loc = loc
})
}
end
end
end)
local function hasLabKit(source)
local src = source
for k, v in pairs (lsdTables) do
if v.ownerid == ps.getIdentifier(src) then
return true
end
end
end
ps.registerCallback('md-drugs:server:removecleaningkit', function(source)
Bridge.Callback.Register('md-drugs:server:removecleaningkit', function(source)
local src = source
return ps.removeItem(src, "cleaningkit", 1)
if not lsdTables[src] then return false end
if not checkDistance(src, lsdTables[src].loc, 3.0, 'md-drugs:server:removecleaningkit') then
return false
end
return Bridge.Inventory.RemoveItem(src, "cleaningkit", 1)
end)
RegisterServerEvent('md-drugs:server:getlabkitback', function()
local src = source
for k, v in pairs (lsdTables) do
if v.ownerid == ps.getIdentifier(src) then
table.remove(lsdTables, k)
ps.addItem(src, 'lsdlabkit', 1)
end
if timeOut(src, 'md-drugs:server:getlabkitback') then return end
if lsdTables[src] then
lsdTables[src] = nil
Bridge.Inventory.AddItem(src, 'lsdlabkit', 1)
end
end)
RegisterServerEvent('md-drugs:server:heatliquid', function()
local src = source
if not hasLabKit(src) then return end
if not lsdTables[src] then return end
if timeOut(src, 'md-drugs:server:heatliquid') then return end
if not ps.craftItem(src, lsdRecipes['vial']['heat']) then
verifyHas(src, lsdRecipes['vial']['heat'].take)
if not checkDistance(src, lsdTables[src].loc, 3.0, 'md-drugs:server:heatliquid') then
return
end
if not craft(src, Config.LSD.Recipes.vial.heat) then
return
end
end)
RegisterServerEvent('md-drugs:server:failheating', function()
local src = source
if not hasLabKit(src) then return end
ps.removeItem(src, 'lysergic_acid', 1)
ps.removeItem(src, 'diethylamide', 1)
ps.notify(src, ps.lang('lsd.failed'), "error")
if not lsdTables[src] then return end
if not checkDistance(src, lsdTables[src].loc, 3.0, 'md-drugs:server:failheating') then
return
end
Bridge.Inventory.RemoveItem(src, 'lysergic_acid', 1)
Bridge.Inventory.RemoveItem(src, 'diethylamide', 1)
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('lsd.failed'), "error")
end)
RegisterServerEvent('md-drugs:server:refinequalityacid', function()
local src = source
if not hasLabKit(src) then return end
if timeOut(src, 'md-drugs:server:refinequalityacid') then return end
if not ps.hasItem(src, 'lsd_one_vial', 1) then return end
if not lsdTables[src] then
return
end
if not checkDistance(src, lsdTables[src].loc, 3.0, 'md-drugs:server:refinequalityacid') then
return
end
if timeOut(src, 'md-drugs:server:refinequalityacid') then
return
end
local removed = Bridge.Inventory.RemoveItem(src, 'lsd_one_vial', 1)
if not removed then
return
end
if Config.TierSystem then
local lsd = tonumber(getRep(src, 'lsd'))
if ps.removeItem(src, 'lsd_one_vial', 1) then
if lsd <= 30 then
ps.addItem(src,'lsd_vial_two', 1)
elseif lsd >= 31 and lsd <= 60 then
ps.addItem(src,'lsd_vial_three', 1)
elseif lsd >= 61 and lsd <= 90 then
ps.addItem(src,'lsd_vial_four', 1)
elseif lsd >= 91 and lsd <= 120 then
ps.addItem(src,'lsd_vial_five', 1)
else
ps.addItem(src,'lsd_vial_six', 1)
end
AddRep(src,'lsd')
if lsd <= 30 then
Bridge.Inventory.AddItem(src,'lsd_vial_two', 1)
elseif lsd >= 31 and lsd <= 60 then
Bridge.Inventory.AddItem(src,'lsd_vial_three', 1)
elseif lsd >= 61 and lsd <= 90 then
Bridge.Inventory.AddItem(src,'lsd_vial_four', 1)
elseif lsd >= 91 and lsd <= 120 then
Bridge.Inventory.AddItem(src,'lsd_vial_five', 1)
else
Bridge.Inventory.AddItem(src,'lsd_vial_six', 1)
end
AddRep(src,'lsd')
else
local randomchance = math.random(1,100)
if ps.removeItem(src,'lsd_one_vial', 1) then
if randomchance <= 60 then
ps.addItem(src,'lsd_vial_two', 1)
elseif randomchance >= 61 and randomchance <= 75 then
ps.addItem(src,'lsd_vial_three', 1)
elseif randomchance >= 76 and randomchance <= 85 then
ps.addItem(src,'lsd_vial_four', 1)
elseif randomchance >= 86 and randomchance <= 93 then
ps.addItem(src,'lsd_vial_five', 1)
else
ps.addItem(src,'lsd_vial_six', 1)
end
if randomchance <= 60 then
Bridge.Inventory.AddItem(src,'lsd_vial_two', 1)
elseif randomchance >= 61 and randomchance <= 75 then
Bridge.Inventory.AddItem(src,'lsd_vial_three', 1)
elseif randomchance >= 76 and randomchance <= 85 then
Bridge.Inventory.AddItem(src,'lsd_vial_four', 1)
elseif randomchance >= 86 and randomchance <= 93 then
Bridge.Inventory.AddItem(src,'lsd_vial_five', 1)
else
Bridge.Inventory.AddItem(src,'lsd_vial_six', 1)
end
end
end)
RegisterServerEvent('md-drugs:server:failrefinequality', function()
local src = source
if not hasLabKit(src) then return end
ps.removeItem(src,'lsd_one_vial', 1)
if not lsdTables[src] then return end
if not checkDistance(src, lsdTables[src].loc, 3.0, 'md-drugs:server:failrefinequality') then
return
end
Bridge.Inventory.RemoveItem(src,'lsd_one_vial', 1)
end)
RegisterServerEvent('md-drugs:server:gettabpaper', function(num)
local src = source
if timeOut(src, 'md-drugs:server:gettabpaper') then return end
if not ps.checkDistance(src, lsdLocations.gettabs[num].loc, 3.0) then
ps.notify(src, ps.lang('Catches.notIn'), "error")
if not checkDistance(src, Config.LSD.Locations.gettabs[num].loc, 3.0, 'md-drugs:server:gettabpaper') then
return
end
if ps.removeMoney(src, 'cash', prices.tabcost * 10) then
ps.addItem(src,'tab_paper', 10)
if Bridge.Framework.RemoveAccountBalance(src, 'cash', Config.LSD.prices.tabcost * 10) then
Bridge.Inventory.AddItem(src,'tab_paper', 10)
else
ps.notify(src, ps.lang('Catches.notEnoughMoney'), "error")
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Catches.notEnoughMoney'), "error")
end
end)
RegisterServerEvent('md-drugs:server:getlabkit', function(num)
local src = source
if timeOut(src, 'md-drugs:server:getlabkit') then return end
if ps.hasItem(src,'lsdlabkit', 1) then
if Bridge.Inventory.HasItem(src,'lsdlabkit', 1) then
return
end
if not ps.checkDistance(src, lsdLocations.buyLSDkit[num].loc, 3.0) then
ps.notify(src, ps.lang('Catches.notIn'), "error")
if not checkDistance(src, Config.LSD.Locations.buyLSDkit[num].loc, 3.0, 'md-drugs:server:getlabkit') then
return
end
if ps.removeMoney(src, 'cash', prices.lsdlabkitcost) then
ps.addItem(src,'lsdlabkit', 1)
if Bridge.Framework.RemoveAccountBalance(src, 'cash', Config.LSD.prices.lsdlabkitcost) then
Bridge.Inventory.AddItem(src,'lsdlabkit', 1)
else
ps.notify(src, ps.lang('Catches.notEnoughMoney'), "error")
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Catches.notEnoughMoney'), "error")
end
end)
RegisterServerEvent('md-drugs:server:maketabpaper', function()
local src = source
if timeOut(src, 'md-drugs:server:maketabpaper') then return end
if not hasLabKit(src) then return end
if not ps.hasItem(src,'tab_paper', 1) then return end
if not lsdTables[src] then return end
if not checkDistance(src, lsdTables[src].loc, 3.0, 'md-drugs:server:maketabpaper') then
return
end
local vialdata = {
{vial = 'lsd_one_vial', sheet = 'smileyfacesheet', log = 'Made A Smiley Face Sheet'},
{vial = 'lsd_vial_two', sheet = 'wildcherrysheet', log = 'Made A Wild Cherry Sheet'},
{vial = 'lsd_vial_three', sheet = 'yinyangsheet', log = 'Made A Yin Yang Sheet'},
{vial = 'lsd_vial_four', sheet = 'pineapplesheet', log = 'Made A Pine Apple Sheet'},
{vial = 'lsd_vial_five', sheet = 'bartsheet', log = 'Made A Cluckin Bell Sheet'},
{vial = 'lsd_vial_six', sheet = 'gratefuldeadsheet', log = 'Made A Maze Sheet'}
{vial = 'lsd_one_vial', give = {smileyfacesheet = 1}, take = {lsd_one_vial = 1, tab_paper = 1}},
{vial = 'lsd_vial_two', give = {wildcherrysheet = 1}, take = {lsd_vial_two = 1, tab_paper = 1}},
{vial = 'lsd_vial_three', give = {yinyangsheet = 1}, take = {lsd_vial_three = 1, tab_paper = 1}},
{vial = 'lsd_vial_four', give = {pineapplesheet = 1}, take = {lsd_vial_four = 1, tab_paper = 1}},
{vial = 'lsd_vial_five', give = {bartsheet = 1}, take = {lsd_vial_five = 1, tab_paper = 1}},
{vial = 'lsd_vial_six', give = {gratefuldeadsheet = 1}, take = {lsd_vial_six = 1, tab_paper = 1}}
}
local vial = 1
for k, v in ipairs (vialdata) do
local check = ps.hasItem(src, v.vial) and ps.hasItem(src, 'tab_paper')
local check = Bridge.Inventory.HasItem(src, v.vial)
if check then
if ps.removeItem(src, v.vial, 1) and ps.removeItem(src, 'tab_paper', 1) then
ps.addItem(src, v.sheet, 1)
end
vial = k
break
end
end
if not craft(src, vialdata[vial]) then
return
end
end)
local sheets = {
@@ -222,21 +216,19 @@ local sheets = {
}
for k, v in pairs (sheets) do
ps.createUseable(v.item, function(source)
Bridge.Framework.RegisterUsableItem(v.item, function(source)
local src = source
local math = math.random(1,10)
if ps.removeItem(src, v.item, 1) then
ps.addItem(src, v.recieve, math)
if Bridge.Inventory.RemoveItem(src, v.item, 1) then
Bridge.Inventory.AddItem(src, v.recieve, math)
end
end)
end
AddEventHandler('playerDropped', function()
local src = source
for k, v in pairs (lsdTables) do
if v.ownerid == ps.getPlayerCitizenId(src) then
table.remove(lsdTables, k)
ps.addItem(src, 'lsdlabkit', 1)
end
if lsdTables[src] then
lsdTables[src] = nil
Bridge.Inventory.AddItem(src, 'lsdlabkit', 1)
end
end)
+7 -22
View File
@@ -1,36 +1,21 @@
local mescalineLocation = {
DryOutMescaline = { -- where to dry out your mescaline
{loc = vector3(1850.12, 2595.23, 45.67), l = 1.0, w = 1.0, rot = 0.0, gang = ""},
},
}
local mescalineRecipes = {
mescaline = {
dry = {
dried = {take = {cactusbulb = 1}, give = {driedmescaline = 1} }
}
},
}
ps.registerCallback('md-drugs:server:GetMescalineLocs', function(source)
return mescalineLocation
end)
if not Config.Drugs['mescaline'] then return end
RegisterNetEvent("md-drugs:server:drymescaline", function(num)
local src = source
if timeOut(src, 'md-drugs:server:drymescaline') then return end
if not ps.checkDistance(src, mescalineLocation.DryOutMescaline[num].loc, 3.0) then
ps.notify(src, ps.lang('Catches.notIn'), "error")
if not checkDistance(src, Config.Mescaline.Locations.DryOutMescaline[num].loc, 3.0, 'md-drugs:server:drymescaline') then
return
end
if not ps.craftItem(src, mescalineRecipes.mescaline.dry.dried) then
verifyHas(src, mescalineRecipes.mescaline.dry.dried.take)
if not craft(src, Config.Mescaline.Recipes.dry.dried) then
return
end
end)
ps.createUseable("driedmescaline", function(source, item)
Bridge.Framework.RegisterUsableItem("driedmescaline", function(source, item)
local src = source
if ps.removeItem(src, "driedmescaline", 1) then
if Bridge.Inventory.RemoveItem(src, "driedmescaline", 1) then
TriggerClientEvent("md-drugs:client:takemescaline", src)
end
end)
+60 -96
View File
@@ -1,145 +1,109 @@
if not Config.Drugs['meth'] then return end
local onRun = {}
local cool = {}
local vehicles = {}
local methLocs = {
CookMeth = {
{loc = vector3(1006.09, -3200.59, -38.52), l = 1.0, w = 1.0, rot = 45.0, offset = vec3(4.79, 2.13, -0.41), rotation = vector3(0,0,0.0), gang = ""},
},
MethDials = {
{loc = vector3(1007.89, -3201.17, -38.99),l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
MethSmash = {
{loc = vector3(1012.04, -3194.96, -38.99), bucket = vector4(1012.86, -3194.13, -39.20, 90.00), l = 1.0, w = 1.0, rot = 45.0, offset = vec3(-3.143311, -1.666748, -1.010128), rotation = vector3(0,0,0.0), gang = ""},
},
BagMeth = {
{loc = vector3(1014.25, -3194.93, -38.99), l = 1.0, w = 1.0, rot = 45.0, offset = vec3(-4.9, -1.70, -1.01), rotation = vector3(0,0,0.0), gang = ""},
},
MethEph = { -- get ephedrine
{loc = vector3(3559.86, 3673.9, 28.13), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
MethAce = { -- get acetone
{loc = vector3(3535.41, 3661.05, 28.12), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
MethHeist = {
{loc = vector4(-1520.84, 827.72, 181.66, 184.13), ped = 'a_m_m_farmer_01', gang = ""},
},
StartLoc = { -- where truck spawns for lean and meth missions
vector3(-2307.22, 434.77, 174.47),
vector3(614.75, 1786.26, 199.39),
vector3(-224.89, 6388.32, 31.59)
},
MethTele = {
{inside = vector3(996.91, -3200.83, -36.39), outside = vector3(-2222.04, 303.99, 174.6), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
}
}
local methRecipes = {
cook = {
heat = {take = {ephedrine = 1, acetone = 1}, give = {}} --Missing item
},
bag = {
bags = {take = {empty_weed_bag = 5}, give = {methbags = 5} }
}
}
ps.registerCallback('md-drugs:server:GetMethLocs', function(source)
return methLocs
end)
local function setTimeout(identifier)
if onRun[identifier] then
local function setTimeout(src)
if onRun[src] then
CreateThread(function()
Wait(10 * 60 * 1000)
onRun[identifier] = nil
onRun[src] = nil
end)
end
end
local function coolDown(identifier)
if cool[identifier] then
return false
else
cool[identifier] = true
CreateThread(function()
Wait(3500)
cool[identifier] = nil
end)
return true
end
end
RegisterServerEvent('md-drugs:server:givemethingridients', function()
RegisterServerEvent('md-drugs:server:givemethingridients', function(veh)
local src = source
local amount = math.random(1,5)
if not onRun[ps.getIdentifier(src)] then return ps.notify(src, ps.lang('meth.notOnRun'), "error") end
onRun[ps.getIdentifier(src)] = onRun[ps.getIdentifier(src)] + 1
if math.random(1,100) <= 50 then
ps.addItem(src, "ephedrine", amount)
else
ps.addItem(src, "acetone", amount)
local vehicle = NetworkGetEntityFromNetworkId(veh)
if vehicles[src] ~= vehicle then
Bridge.Prints.Warn(Bridge.Language.Locale('meth.noVehicle', Bridge.Framework.GetPlayerIdentifier(src), vehicle, vehicles[src]))
return
end
if onRun[ps.getIdentifier(src)] >= 4 then
onRun[ps.getIdentifier(src)] = nil
if not DoesEntityExist(vehicle) and GetEntityModel(vehicle) == GetHashKey('journey') then
Bridge.Prints.Warn(Bridge.Language.Locale('meth.wrongVehModel', Bridge.Framework.GetPlayerIdentifier(src), GetEntityModel(vehicle), 'journey'))
return
end
if timeOut(src, 'md-drugs:server:givemethingridients') then return end
if not onRun[src] then
Bridge.Prints.Warn(Bridge.Language.Locale('meth.notOnRun', Bridge.Framework.GetPlayerIdentifier(src)))
return
end
onRun[src] = onRun[src] + 1
local chance = math.random(1,2) == 1 and 'ephedrine' or 'acetone'
if onRun[src] == 5 then
DeleteEntity(vehicle)
onRun[src] = nil
vehicles[src] = nil
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('meth.finishedRun'), "success")
end
Bridge.Inventory.AddItem(src, chance, amount)
end)
RegisterServerEvent('md-drugs:server:getmeth', function(num)
local src = source
if timeOut(src, 'md-drugs:server:getmeth') then return end
if not ps.checkDistance(src, methLocs.BagMeth[num].loc, 2.5) then
ps.notify(src, ps.lang('Catches.notIn'), "error")
if not checkDistance(src, Config.Meth.Locations.BagMeth[num].loc, 2.5, 'md-drugs:server:getmeth') then
return
end
if not ps.craftItem(src, methRecipes.bag.bags) then
verifyHas(src, methRecipes.bag.bags.take)
if not craft(src, Config.Meth.recipes.bag.bags) then
return
end
end)
RegisterServerEvent('md-drugs:server:geteph', function(num)
local src = source
if not ps.checkDistance(src, methLocs.MethEph[num].loc, 2.5) then
ps.notify(src, ps.lang('Catches.notIn'), "error")
if timeOut(src, 'md-drugs:server:geteph') then return end
if not checkDistance(src, Config.Meth.Locations.MethEph[num].loc, 2.5, 'md-drugs:server:geteph') then
return
end
if timeOut(src, 'md-drugs:server:geteph') then return end
ps.addItem(src, 'ephedrine', 1)
Bridge.Inventory.AddItem(src, 'ephedrine', 1)
end)
RegisterServerEvent('md-drugs:server:getace', function(num)
local src = source
if not ps.checkDistance(src, methLocs.MethAce[num].loc, 2.5) then
ps.notify(src, ps.lang('Catches.notIn'), "error")
if timeOut(src, 'md-drugs:server:getace') then return end
if not checkDistance(src, Config.Meth.MethAce[num].loc, 2.5, 'md-drugs:server:getace') then
return
end
if timeOut(src, 'md-drugs:server:getace') then return end
ps.addItem(src, 'acetone', 1)
Bridge.Inventory.AddItem(src, 'acetone', 1)
end)
ps.registerCallback('md-drugs:server:startcook', function(source, num)
Bridge.Callback.Register('md-drugs:server:startcook', function(source, num)
local src = source
if not ps.checkDistance(src, methLocs.CookMeth[num].loc, 2.5) then
ps.notify(src, ps.lang('Catches.notIn'), "error")
if not checkDistance(src, Config.Meth.Locations.CookMeth[num].loc, 2.5, 'md-drugs:server:startcook') then
return false
end
local recipe = ps.craftItem(src, methRecipes.cook.heat)
if not recipe then
verifyHas(src, methRecipes.cook.heat.take)
if not craft(src, Config.Meth.recipes.cook.heat) then
return false
end
return true
end)
ps.registerCallback('md-drugs:server:registerMeth', function(source)
local identifier = ps.getIdentifier(source)
if not identifier then return false end
if onRun[identifier] then
Bridge.Callback.Register('md-drugs:server:registerMeth', function(source, loc, vehNetId)
local src = source
if onRun[source] then
return false
else
onRun[identifier] = 0
setTimeout(identifier)
if checkDistance(src, Config.Meth.Locations.MethHeist[loc].loc, 10.0, 'md-drugs:server:registerMeth') then
local vehicle = NetworkGetEntityFromNetworkId(vehNetId)
if DoesEntityExist(vehicle) and GetEntityModel(vehicle) == GetHashKey('journey') then
vehicles[src] = vehicle
else
return false
end
else
return false
end
onRun[source] = 0
setTimeout(source)
return true
end
end)
+47 -51
View File
@@ -1,44 +1,27 @@
local prices = {
payfortruck = 500,
hotchance = 30,
itemChance = 20,
}
if not Config.Drugs['oxyruns'] then return end
local onRoute = {}
local vehicles = {}
local oxyLocs = {
OxyPayForTruck = {
{loc = vector3(1437.64, -1491.91, 63.62), truckSpawn = vector4(1450.87, -1482.13, 63.22, 69.95), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
oxylocations = {
vector4(-2352.32, 266.78, 165.3, 23.46),
vector4(-1467.49, 874.01, 183.59, 298.45),
vector4(-856.71, 874.26, 202.85, 205.3),
vector4(950.58, -128.49, 74.42, 205.3),
vector4(1152.71, -328.43, 69.21, 205.3),
vector4(112.66, -1955.67, 20.75, 37.94),
vector4(-544.4, -1684.8, 19.89, 252.07),
vector4(-1185.02, -1805.4, 3.91, 184.83),
vector4(-1641.4, -981.99, 7.58, 35.38),
vector4(-1827.93, 782.36, 138.29, 219.99),
vector4(-320.84, 2818.73, 59.45, 337.22),
vector4(474.88, 2609.56, 44.48, 357.0),
}
}
ps.registerCallback('md-drugs:server:GetOxyLocs', function(source)
return oxyLocs
end)
ps.registerCallback('md-drugs:server:payfortruck', function(source)
Bridge.Callback.Register('md-drugs:server:payfortruck', function(source, loc)
local src = source
if ps.removeMoney(src, 'cash', prices.payfortruck) or ps.removeMoney(src, 'bank', prices.payfortruck) then
onRoute[src] = true
ps.notify(src, ps.lang('oxy.paid', prices.payfortruck), "success")
return true
else
ps.notify(src, ps.lang('Catches.notEnoughMoney'), "error")
if timeOut(src, 'md-drugs:server:payfortruck') then return false end
if onRoute[src] then
return false
end
if not checkDistance(src, Config.Oxy.Locations.OxyPayForTruck[loc].loc, 2.0, 'md-drugs:server:payfortruck') then
return false
end
if not Bridge.Framework.RemoveAccountBalance(src, 'cash', Config.Oxy.prices.payfortruck) then
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('oxy.notEnoughCash'), "error")
return false
end
onRoute[src] = {
amount = math.random(1, #Config.Oxy.Locations.oxylocations),
current = 0
}
return true
end)
@@ -46,37 +29,50 @@ RegisterServerEvent('md-drugs:server:giveoxybox', function()
local src = source
if timeOut(src, 'md-drugs:server:giveoxybox') then return end
if not onRoute[src] then
ps.notify(src, ps.lang('oxy.notOn'), "error")
Bridge.Prints.Warn(Bridge.Language.Locale('oxy.notOnOxyRun', Bridge.Framework.GetPlayerIdentifier(src)))
return
end
if not ps.checkDistance(src, oxyLocs.oxylocations[onRoute[src]], 3.5) then
ps.notify(src, ps.lang('Catches.notIn'), "error")
if not checkDistance(src, Config.Oxy.Locations.oxylocations[onRoute[src].current], 3.5, 'md-drugs:server:giveoxybox') then
return
end
local vehicle = vehicles[src]
if not vehicle or GetEntityModel(vehicle) ~= GetHashKey("burrito3") then
Bridge.Prints.Warn(Bridge.Language.Locale('oxy.mismatchOxyVan', Bridge.Framework.GetPlayerIdentifier(src), vehicle))
return
end
if not checkDistance(src, GetEntityCoords(vehicle), 35.0, 'md-drugs:server:giveoxybox') then
return
end
local cash = math.random(50, 200)
local itemchance = math.random(1,100)
local itemList = {
{item = 'oxy', amount = 2},
{item = 'houselockpick', amount = 1},
}
local item = itemList[math.random(1, #itemList)]
ps.addMoney(src,"cash", cash)
if itemchance <= prices.itemChance then
ps.addItem(src, item.item, item.amount)
local item = Config.Oxy.itemList[math.random(1, #Config.Oxy.itemList)]
Bridge.Framework.AddAccountBalance(src, 'cash', cash)
if itemchance <= Config.Oxy.prices.itemChance then
Bridge.Inventory.AddItem(src, item.item, item.amount)
end
end)
ps.registerCallback('md-drugs:server:getRoute', function(source)
Bridge.Callback.Register('md-drugs:server:getRoute', function(source)
if not onRoute[source] then return false end
local giveLocation = math.random(1, 10)
if giveLocation >= 8 then
if onRoute[source].amount == 0 then
onRoute[source] = nil
vehicles[source] = nil
return false
else
onRoute[source] = math.random(1, #oxyLocs.oxylocations)
return oxyLocs.oxylocations[onRoute[source]]
end
onRoute[source].current = math.random(1, #Config.Oxy.Locations.oxylocations)
onRoute[source].amount = onRoute[source].amount - 1
return onRoute[source].current
end)
RegisterNetEvent('md-drugs:server:startOxyRun', function(netId)
local src = source
if not onRoute[src] then return end
local veh = NetworkGetEntityFromNetworkId(netId)
if not veh or GetEntityModel(veh) ~= GetHashKey("burrito3") then return end
vehicles[src] = veh
end)
+37 -29
View File
@@ -1,40 +1,47 @@
local pharmaLocations = {
FillPrescription = { -- where to fill out your prescription
{loc = vector3(2855.62, 4446.73, 48.53), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
}
ps.registerCallback('md-drugs:server:GetPharmaLocs', function()
return pharmaLocations
end)
if not Config.Drugs['deliveries'] then return end
local function GetJob(source)
local src = source
return ps.getJobType(src) == 'ems'
local jobName = Bridge.Framework.GetPlayerJob(src)
return jobName == 'ambulance'
end
ps.createUseable('prescription_pad', function(source, item)
local function getNearby(src, distance)
local players = Bridge.Framework.GetPlayers()
local nearPlayers = {}
for index, sources in pairs(players) do
local target = GetEntityCoords(GetPlayerPed(sources))
local you = GetEntityCoords(GetPlayerPed(src))
local distanceBetween = #(you - target)
if distanceBetween <= distance then
table.insert(nearPlayers, {label = Bridge.Framework.GetPlayerName(sources), value = sources})
end
end
return nearPlayers
end
Bridge.Framework.RegisterUsableItem('prescription_pad', function(source, item)
local src = source
local near = {}
if GetJob(src) then
near = ps.getNearbyPlayers(src, 5.0)
near = getNearby(src, 5.0)
local options = {
{label = ps.getItemLabel('vicodin_prescription'), value = 'vicodin_prescription'},
{label = ps.getItemLabel('adderal_prescription'), value = 'adderal_prescription'},
{label = ps.getItemLabel('morphine_prescription'), value = 'morphine_prescription'},
{label = ps.getItemLabel('xanax_prescription'), value = 'xanax_prescription'}
{label = Bridge.Inventory.GetItemInfo('vicodin_prescription').label, value = 'vicodin_prescription'},
{label = Bridge.Inventory.GetItemInfo('adderal_prescription').label, value = 'adderal_prescription'},
{label = Bridge.Inventory.GetItemInfo('morphine_prescription').label, value = 'morphine_prescription'},
{label = Bridge.Inventory.GetItemInfo('xanax_prescription').label, value = 'xanax_prescription'}
}
local data = ps.callback('md-drugs:client:prescriptionpad', src, near, options)
if not data then return ps.notify(src, ps.lang('pharma.canceled'), "error") end
ps.addItem(ps.getSource(data.who), data.what, 1)
local data = Bridge.Callback.Trigger('md-drugs:client:prescriptionpad', src, near, options)
if not data then return Bridge.Notify.SendNotify(src, Bridge.Language.Locale('pharma.canceled'), "error") end
Bridge.Inventory.AddItem(data.who, data.what, 1)
end
end)
local pharmabottle = {'vicodinbottle', 'adderalbottle','morphinebottle','xanaxbottle'}
for m, d in pairs (pharmabottle) do
ps.createUseable(d, function(source, item)
Bridge.Framework.RegisterUsableItem(d, function(source, item)
local src = source
local check = ps.callback("md-drugs:client:unbottle", src)
local check = Bridge.Callback.Trigger("md-drugs:client:unbottle", src)
if check then
local get = {
['vicodinbottle'] = 'vicodin',
@@ -44,9 +51,9 @@ for m, d in pairs (pharmabottle) do
}
for k, v in pairs (get) do
if d == k then
if ps.removeItem(src, d, 1) then
ps.addItem(src, v, math.random(10,30))
ps.notify(src,ps.lang('pharma.unbottle'), "success")
if Bridge.Inventory.RemoveItem(src, d, 1) then
Bridge.Inventory.AddItem(src, v, math.random(10,30))
Bridge.Notify.SendNotify(src,Bridge.Language.Locale('pharma.unbottle'), "success")
end
end
end
@@ -56,9 +63,10 @@ end
RegisterServerEvent('md-drugs:server:fillprescription', function(num)
local src = source
if timeOut(src, 'md-drugs:server:fillprescription') then return end
if not ps.checkDistance(src, pharmaLocations.FillPrescription[num].loc, 3.5) then
return ps.notify(src, ps.lang('Catches.notIn'), "error")
if not checkDistance(src, Config.Pharma.Locations.FillPrescription[num].loc, 3.5, 'md-drugs:server:fillprescription') then
return
end
local pres = {
vicodin_prescription = 'vicodinbottle',
@@ -67,9 +75,9 @@ RegisterServerEvent('md-drugs:server:fillprescription', function(num)
xanax_prescription = 'xanaxbottle'
}
for k, v in pairs (pres) do
if ps.hasItem(src, k, 1) then
ps.removeItem(src, k, 1)
ps.addItem(src, v, 1)
if Bridge.Inventory.HasItem(src, k, 1) then
Bridge.Inventory.RemoveItem(src, k, 1)
Bridge.Inventory.AddItem(src, v, 1)
break
end
end
+6 -9
View File
@@ -123,7 +123,7 @@ local plantData = {
GlobalState.CocaPlant = plants.cocaine
end,
itemGive = function(src)
ps.addItem(src, 'coca_leaf', 1)
Bridge.Inventory.AddItem(src, 'coca_leaf', 1)
end,
coolDown = function(loc)
CreateThread(function()
@@ -142,7 +142,7 @@ local plantData = {
GlobalState.PoppyPlants = plants.heroin
end,
itemGive = function(src)
ps.addItem(src, 'poppyresin', 1)
Bridge.Inventory.AddItem(src, 'poppyresin', 1)
end,
coolDown = function(loc)
CreateThread(function()
@@ -161,7 +161,7 @@ local plantData = {
GlobalState.Mescaline = plants.mescaline
end,
itemGive = function(src)
ps.addItem(src, 'cactusbulb', 1)
Bridge.Inventory.AddItem(src, 'cactusbulb', 1)
end,
coolDown = function(loc)
CreateThread(function()
@@ -180,7 +180,7 @@ local plantData = {
GlobalState.shrooms = plants.shrooms
end,
itemGive = function(src)
ps.addItem(src, 'shrooms', 1)
Bridge.Inventory.AddItem(src, 'shrooms', 1)
end,
coolDown = function(loc)
CreateThread(function()
@@ -199,7 +199,7 @@ local plantData = {
GlobalState.WeedPlant = plants.weed
end,
itemGive = function(src)
ps.addItem(src, 'wetcannabis', 1)
Bridge.Inventory.AddItem(src, 'wetcannabis', 1)
end,
coolDown = function(loc)
CreateThread(function()
@@ -219,7 +219,7 @@ for k, v in pairs (plantData) do
RegisterNetEvent(v.label ..":pickupCane", function(loc)
local src = source
if timeOut(src, v.label .. ":pickupCane") then return end
if ps.checkDistance(src, v.plants[loc].location, 5.0) then
if checkDistance(src, v.plants[loc].location, 5.0) then
if not v.plants[loc].taken then
v.plants[loc].taken = true
v.globalState()
@@ -227,9 +227,6 @@ for k, v in pairs (plantData) do
v.coolDown(loc)
v.itemGive(src)
end
else
ps.notify(src, ps.lang('Catches.notIn'), 'error')
return
end
end)
::continue::
+6 -6
View File
@@ -1,11 +1,11 @@
ps.createUseable('shrooms', function(source, item)
if not Config.Drugs['shrooms'] then return end
Bridge.Framework.RegisterUsableItem('shrooms', function(source, item)
local src = source
if not ps.callback("md-drugs:client:shrooms", src) then
ps.notify(src, ps.lang('shrooms.cancel'), "error")
if not Bridge.Callback.Trigger("md-drugs:client:shrooms", src) then
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('shrooms.cancel'), "error")
return
end
ps.removeItem(src, 'shrooms', 1)
ps.notify(src, ps.lang('shrooms.took'), 'success')
Bridge.Inventory.RemoveItem(src, 'shrooms', 1)
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('shrooms.took'), 'success')
end)
+71 -161
View File
@@ -1,208 +1,118 @@
local weedLocs = {
WeedTele = { -- where you tele out of weed
{inside = vector3(1066.31, -3183.36, -39.16), outside = vector3(244.74, 374.54, 105.74), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
MakeButter = {
{loc = 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),},
{loc = vector3(1041.0, -3191.59, -38.39),},
{loc = vector3(1045.0, -3191.59, -38.39),},
{loc = vector3(1039.0, -3191.59, -38.39),},
},
WeedSalesman = {
{loc = vector4(1030.77, -3203.18, -38.2, 262.37), ped = 'a_m_m_farmer_01', gang = ""},
},
}
local weedStore = {
weedgrinder =25,
mdbutter =25,
flour =25,
chocolate =25,
butane =25,
butanetorch =2,
dabrig =2,
mdwoods =2,
}
local 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}},
}
}
ps.registerCallback('md-drugs:server:GetWeedRecipe', function(source, tableName)
if not source then return false end
return weed[tableName]
end)
ps.registerCallback('md-drugs:server:GetWeedLocs', function(source)
return weedLocs
end)
ps.registerCallback('md-drugs:server:getWeedItems', function(source)
return weedStore
end)
if not Config.Drugs['weed'] then return end
RegisterNetEvent('md-drugs:server:buyWeedItem', function(loc, name, amount)
local src = source
if not ps.checkDistance(src, weedLocs.WeedSalesman[loc].loc, 3.5) then
ps.notify(src, ps.lang('Checks.notIn'), "error")
if not checkDistance(src, Config.Weed.Locations.WeedSalesman[loc].loc, 3.5, 'md-drugs:server:buyWeedItem') then
return
end
if not weedStore[name] then
ps.notify(src, ps.lang('weed.itemDoesntExist'), "error")
if not Config.Weed.Recipes.weedStore[name] then
Bridge.Prints.Warn(Bridge.Language.Locale('weed.itemDoesntExistWarn', Bridge.Framework.GetPlayerIdentifier(src), name))
return
end
if ps.removeMoney(src, 'cash', weedStore[name] * amount) or ps.removeMoney(src, 'bank', weedStore[name] * amount) then
ps.addItem(src, name, amount)
if Bridge.Framework.RemoveAccountBalance(src, 'cash', Config.Weed.Recipes.weedStore[name] * amount) or Bridge.Framework.RemoveAccountBalance(src, 'bank', Config.Weed.Recipes.weedStore[name] * amount) then
Bridge.Inventory.AddItem(src, name, amount)
else
ps.notify(src, ps.lang('Catches.notEnoughMoney'), "error")
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Catches.notEnoughMoney'), "error")
end
end)
RegisterServerEvent('md-drugs:server:dryoutweed', function()
RegisterServerEvent('md-drugs:server:dryoutweed', function(loc)
local src = source
if timeOut(src, 'md-drugs:server:dryoutweed') then return end
if ps.removeItem(src,"wetcannabis", 1) then
ps.addItem(src,"drycannabis", 1)
if not checkDistance(src, Config.Weed.Locations.WeedDry[loc].loc, 5.0, 'md-drugs:server:dryoutweed') then
return
end
if Bridge.Inventory.RemoveItem(src,"wetcannabis", 1) then
Bridge.Inventory.AddItem(src,"drycannabis", 1)
else
ps.notify(src, ps.lang('weed.noDry'), "error")
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('weed.noDry'), "error")
end
end)
local bluntwrap = {'mdreddextro','mdlean'}
for k, v in pairs (bluntwrap) do
ps.createUseable(v, function(source, item) TriggerClientEvent('md-drugs:client:makeBluntWrap', source) end)
Bridge.Framework.RegisterUsableItem(v, function(source, item) TriggerClientEvent('md-drugs:client:makeBluntWrap', source) end)
end
local bluntwraps = {'leanbluntwrap', 'dextrobluntwrap', 'bluntwrap'}
for k, v in pairs (bluntwraps) do
ps.createUseable(v, function(source, item) TriggerClientEvent('md-drugs:client:rollBlunt', source) end)
Bridge.Framework.RegisterUsableItem(v, function(source, item) TriggerClientEvent('md-drugs:client:rollBlunt', source) end)
end
RegisterServerEvent('md-drugs:server:MakeWeedItems', function(data)
RegisterServerEvent('md-drugs:server:MakeWeedItems', function(tabl, item, loc)
local src = source
if timeOut(src, 'md-drugs:server:MakeWeedItems') then return end
if not ps.craftItem(src, weed[data.table][data.item]) then
verifyHas(src, weed[data.table][data.item].take)
return
end
local locs = tabl == 'makeButter' and 'MakeButter' or tabl == 'makeOil' and 'MakeOil' or nil
if not locs then
Bridge.Prints.Warn(Bridge.Language.Locale('weed.invalidTableWarn', Bridge.Framework.GetPlayerIdentifier(src), tabl))
return
end
if not checkDistance(src, Config.Weed.Locations[locs][loc].loc, 5.0, 'md-drugs:server:MakeWeedItems') then
return
end
local recipe = Config.Weed.Recipes[tabl][item]
if not recipe then
Bridge.Prints.Warn(Bridge.Language.Locale('weed.recipeDoesntExistWarn', Bridge.Framework.GetPlayerIdentifier(src), item))
return
end
for k, v in pairs (recipe.recipe) do
if not Bridge.Inventory.HasItem(src, k, v) then
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('weed.missingItem', Bridge.Inventory.GetItemInfo(k).label), "error")
return
end
end
for k, v in pairs (recipe.recipe) do
if not Bridge.Inventory.RemoveItem(src, k, v) then
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('weed.missingItem', Bridge.Inventory.GetItemInfo(k).label), "error")
return
end
end
Bridge.Inventory.AddItem(src, item, recipe.amount)
end)
ps.createUseable("dabrig", function(source, item)
RegisterNetEvent('md-drugs:server:RollBlunt', function(tabl, item)
local src = source
if ps.hasItem(src, "butanetorch") then
if ps.removeItem(src, "shatter", 1) then
if timeOut(src, 'md-drugs:server:RollBlunt') then return end
local recipe = Config.Weed.Recipes[tabl][item]
if not recipe then
Bridge.Prints.Warn(Bridge.Language.Locale('weed.recipeDoesntExistWarn', Bridge.Framework.GetPlayerIdentifier(src), item))
return
end
if not craft(src, recipe) then return end
end)
Bridge.Framework.RegisterUsableItem("dabrig", function(source, item)
local src = source
if Bridge.Inventory.HasItem(src, "butanetorch") then
if Bridge.Inventory.RemoveItem(src, "shatter", 1) then
TriggerClientEvent("md-drugs:client:dodabs", src)
end
else
ps.notify(src, ps.lang('weed.needItem', ps.getItemLabel("butanetorch")), 'error')
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('weed.needItem', Bridge.Inventory.GetItemInfo("butanetorch").label), 'error')
end
end)
ps.createUseable("weedgrinder", function(source, item)
Bridge.Framework.RegisterUsableItem("weedgrinder", function(source, item)
local src = source
if not ps.hasItem(src, "drycannabis") then ps.notify(src, ps.lang('weed.needItem', ps.getItemLabel("drycannabis")), 'error') return end
local check = ps.callback('md-drugs:client:uncuff', src, 'Grinding Weed')
if not Bridge.Inventory.HasItem(src, "drycannabis") then
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('weed.needItem', Bridge.Inventory.GetItemInfo("drycannabis").label), 'error')
return
end
local check = Bridge.Callback.Trigger('md-drugs:client:uncuff', src, 'Grinding Weed')
if not check then return end
if ps.removeItem(src, "drycannabis",1 ) then
ps.addItem(src, "grindedweed", 1)
if Bridge.Inventory.RemoveItem(src, "drycannabis",1 ) then
Bridge.Inventory.AddItem(src, "grindedweed", 1)
end
end)
ps.createUseable("mdwoods", function(source, item)
Bridge.Framework.RegisterUsableItem("mdwoods", function(source, item)
local src = source
local check = ps.callback('md-drugs:client:uncuff', src, ps.lang('weed.crackBlunt'))
local check = Bridge.Callback.Trigger('md-drugs:client:uncuff', src, Bridge.Language.Locale('weed.crackBlunt'))
if not check then return end
if ps.removeItem(src, "mdwoods",1 ) then
ps.addItem(src, "bluntwrap", 5)
ps.addItem(src, "tobacco", 5)
if Bridge.Inventory.RemoveItem(src, "mdwoods",1 ) then
Bridge.Inventory.AddItem(src, "bluntwrap", 5)
Bridge.Inventory.AddItem(src, "tobacco", 5)
end
end)
exports['ps_lib']:registerCrafter({
loc = weedLocs.MakeButter,
recipes = {
cannabutter = {
amount = 1,
time = 4000,
anim = 'uncuff',
recipe = {
mdbutter = 1,
grindedweed = 1
}
},
specialbrownie = {
amount = 1,
time = 4000,
anim = 'uncuff',
recipe = {
cannabutter = 1,
flour = 1,
chocolate = 1
}
},
specialcookie = {
amount = 1,
time = 4000,
anim = 'uncuff',
recipe = {
cannabutter = 1,
flour = 1
}
},
specialchocolate = {
amount = 1,
time = 4000,
anim = 'uncuff',
recipe = {
cannabutter = 1,
chocolate = 1
}
},
specialmuffin = {
amount = 1,
time = 4000,
anim = 'uncuff',
recipe = {
cannabutter = 1,
flour = 1
}
}
}
})
exports['ps_lib']:registerCrafter({
loc = weedLocs.MakeOil,
recipes = {
shatter = {
amount = 1,
time = 4000,
anim = 'uncuff',
recipe = {
butane = 1,
grindedweed = 1
}
}
}
})
+27 -50
View File
@@ -1,69 +1,46 @@
local itemCraft = {
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'}
}
}
local store = {
{loc =vector4(1695.47, 4872.98, 42.16, 288.86), ped = 'ig_priest' },
}
ps.registerCallback('md-drugs:server:getWhippitLocations', function(source)
return store
end)
local itemShop = {
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
}
ps.registerCallback('md-drugs:server:getwhippitShop', function(source)
return itemShop
end)
if not Config.Drugs['whippit'] then return end
RegisterServerEvent('md-drugs:server:buyWhippitItem', function(loc, item,amount)
local src = source
if not ps.checkDistance(src, store[loc].loc, 3.0) then return end
if not itemShop[item] then return end
local price = itemShop[item] * amount
if not ps.removeMoney(src, 'cash', price, 'whippit-shop') then
return ps.notify(src, ps.lang('Whippit.notEnoughMoney', price), 'error')
if timeOut(src, 'md-drugs:server:buyWhippitItem') then return end
if not checkDistance(src, Config.Whippit.Locations.Whippit[loc].loc, 3.0, 'md-drugs:server:buyWhippitItem') then
return
end
ps.addItem(src, item, amount)
if not Config.Whippit.Recipes.shop[item] then
Bridge.Prints.Warn(Bridge.Language.Locale('Whippit.invalidItemWarn', Bridge.Framework.GetPlayerIdentifier(src), item))
return
end
local price = Config.Whippit.Recipes.shop[item] * amount
if not Bridge.Framework.RemoveAccountBalance(src, 'cash', price, 'whippit-shop') then
return Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Whippit.notEnoughMoney', price), 'error')
end
Bridge.Inventory.AddItem(src, item, amount)
end)
ps.createUseable('cracker', function(source)
Bridge.Framework.RegisterUsableItem('cracker', function(source)
local src = source
if not ps.hasItem(src, 'cracker', 1) then return end
if not ps.hasItem(src, 'whipped_cream_cannister', 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
local balloonItem, balloonColor = nil, nil
for _, balloon in pairs(itemCraft['cracker']) do
if ps.hasItem(src, balloon.item, 1) then
for _, balloon in pairs(Config.Whippit.Recipes.cracker) do
if Bridge.Inventory.HasItem(src, balloon.item, 1) then
balloonItem = balloon.item
balloonColor = 'ate_balloon_' .. balloon.color
break
end
end
if not balloonItem then
return ps.notify(src, ps.lang('Whippit.needBalloon'), 'error')
return Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Whippit.needBalloon'), 'error')
end
if not ps.removeItem(src, 'whipped_cream_cannister', 1) then
return ps.notify(src, ps.lang('Whippit.needCanister'), 'error')
if not Bridge.Inventory.RemoveItem(src, 'whipped_cream_cannister', 1) then
return Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Whippit.needCanister'), 'error')
end
if not ps.removeItem(src, balloonItem, 1) then
return ps.warn(src, 'Failed to remove balloon', 'error')
if not Bridge.Inventory.RemoveItem(src, balloonItem, 1) then
return
end
ps.callback('md-drugs:client:useWhippit', src, balloonColor)
Bridge.Callback.Trigger('md-drugs:client:useWhippit', src, balloonColor)
end)
+79 -163
View File
@@ -1,4 +1,4 @@
if not Config.Drugs['wholesale'] then return end
local burners = {
cokeburner = { "cokebaggy", "cokebaggystagethree", "cokebaggystagetwo"},
crackburner = {"baggedcracked", "baggedcrackedstagetwo", "baggedcrackedstagethree"},
@@ -8,190 +8,106 @@ local burners = {
methburner = {'methbaggy'},
}
local active = {}
local settings = {}
settings.WholesaleQuantityBonus = 0.05 -- 5% bonus per 10 units sold (up to 20%)
settings.WholesaleMaxBonus = 0.20 -- Maximum 20% bonus
settings.WholesaleMinQuantity = 1 -- 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.WholesaleWeaponTiers = true -- Scale weapon difficulty based on drug quantity
settings.WholesaleWeaponsTier1 = { -- Basic weapons (default)
"WEAPON_PISTOL",
"WEAPON_BAT",
"WEAPON_KNIFE",
"WEAPON_MACHETE"
}
settings.WholesaleWeaponsTier2 = { -- Medium weapons (10+ drugs)
"WEAPON_COMBATPISTOL",
"WEAPON_MICROSMG",
"WEAPON_SAWNOFFSHOTGUN",
"WEAPON_CROWBAR"
}
settings.WholesaleWeaponsTier3 = { -- Advanced weapons (20+ drugs)
"WEAPON_APPISTOL",
"WEAPON_SMG",
"WEAPON_PUMPSHOTGUN",
"WEAPON_CARBINERIFLE"
}
settings.WholesaleWeaponsTier4 = { -- Elite weapons (30+ drugs)
"WEAPON_HEAVYPISTOL",
"WEAPON_ASSAULTSMG",
"WEAPON_ASSAULTSHOTGUN",
"WEAPON_SPECIALCARBINE"
}
settings.WholesaleShowEstimates = true -- Show estimated value before deal
settings.WholesaleFailPoliceAlert = 75 -- Chance to alert police on failed deals (0-100)
settings.WholesaleResetOnTimeout = true -- Reset wholesale flag when buyer times out
settings.SuccessfulChance = 90 --- this is the chance of a Success wholesale 1-100
settings.AlertPoliceWholesale = 90 -- 1-100 of how often it will alert police
settings.WholesaleTimeout = 600 -- time in seconds to get to the location
settings.PoliceCount = 0
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
}
}
local 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),
}
ps.registerCallback('md-drugs:server:GetWSsettings', function(source)
return settings
end)
function getRandW(source)
local rand = math.random(1, #locs)
return locs[rand]
end
for k, v in pairs (burners) do
ps.createUseable(k, function(source, item)
if active[ps.getIdentifier(source)] then
TriggerClientEvent("md-drugs:client:GetLocation", active[ps.getIdentifier(source)].src, active[ps.getIdentifier(source)])
Bridge.Framework.RegisterUsableItem(k, function(source, item)
local src = source
if active[source] then
TriggerClientEvent("md-drugs:client:MarkLocation", src, active[source].location)
return
end
if ps.getJobTypeCount('leo') < settings.PoliceCount then return ps.notify(source, ps.lang('wholesale.notEnoughCops'), 'error') end
if ps.removeItem(source, k, 1) then
local drugs, count = {}, 0
for m, d in pairs (v) do
local amt = ps.getItemCount(source, d) or 0
if amt > 0 then
drugs[d] = (drugs[d] or 0) + amt
count = count + amt
end
if #Bridge.Framework.GetPlayersByJob('police') < Config.Wholesale.settings.PoliceCount then
return Bridge.Notify.SendNotify(source, Bridge.Language.Locale('wholesale.not_enough_police'), 'error')
end
local itemCount, itemList = 0, {}
for m, d in pairs (v) do
local amt = Bridge.Inventory.GetItemCount(source, d) or 0
if amt > 0 then
itemCount = itemCount + amt
itemList[d] = amt
end
if count < settings.WholesaleMinQuantity then
ps.addItem(source, k, 1)
ps.notify(source, ps.lang('wholesale.not_enough_drugs') or 'Not enough drugs for wholesale deal', 'error')
return
end
active[ps.getIdentifier(source)] = {
src = source,
item = k,
location = getRandW(source),
price = Price[k],
count = count,
drugs = drugs
end
if itemCount < Config.Wholesale.settings.WholesaleMinQuantity then
return Bridge.Notify.SendNotify(source, Bridge.Language.Locale('wholesale.not_enough_drugs'), 'error')
end
if Bridge.Inventory.RemoveItem(src, k, 1) then
active[src] = {
count = itemCount,
itemList = itemList,
location = Config.Wholesale.Locs[math.random(1, #Config.Wholesale.Locs)],
price = math.random(Config.Wholesale.Price[k].min, Config.Wholesale.Price[k].max),
drugType = k,
ambush = math.random(1, 100) <= Config.Wholesale.settings.FailChance and true or false,
}
TriggerClientEvent("md-drugs:client:GetLocation", active[ps.getIdentifier(source)].src, active[ps.getIdentifier(source)])
if active[src].ambush and Config.Wholesale.settings.WholesaleAmbushEnabled then
active[src].attackerCount = Config.Wholesale.settings.WholesaleAmbushBase
if Config.Wholesale.settings.WholesaleAmbushScale then
if active[src].count > Config.Wholesale.settings.WholesaleAmbushTier1 then
active[src].attackerCount = active[src].attackerCount + 1
end
if active[src].count > Config.Wholesale.settings.WholesaleAmbushTier2 then
active[src].attackerCount = active[src].attackerCount + 1
end
if active[src].count > Config.Wholesale.settings.WholesaleAmbushTier3 then
active[src].attackerCount = active[src].attackerCount + 1
end
end
else
active[src].attackerCount = 0
end
TriggerClientEvent("md-drugs:client:GetLocation", src, active[src])
end
end)
end
local function getBonus(quantity)
local bonus = math.floor(quantity / 10) * settings.WholesaleQuantityBonus
if bonus > settings.WholesaleMaxBonus then
bonus = settings.WholesaleMaxBonus
end
return bonus
end
RegisterNetEvent('md-drugs:server:SuccessSale', function()
RegisterNetEvent('md-drugs:server:SuccessSale', function(entity)
local src = source
local id = ps.getIdentifier(source)
if not active[id] then
if not active[src] then
return
end
local deal = active[id]
if deal.count < settings.WholesaleMinQuantity then
ps.notify(src, 'Not enough drugs for wholesale deal', 'error')
active[id] = nil
if active[src].ambush then
Bridge.Prints.Warn(Bridge.Language.Locale('wholesale.ambush_fail_warn', Bridge.Framework.GetPlayerIdentifier(src)))
return
end
local basePrice = math.floor(((deal.price.min + deal.price.max) / 2) * deal.count)
local bonus = getBonus(deal.count)
local finalPrice = math.floor(basePrice + (basePrice * bonus))
local need, have = 0,0
for k, v in pairs (deal.drugs) do
need = need + 1
if ps.hasItem(src, k, v) then
have = have + 1
if not checkDistance(src, active[src].location, 5.0, 'md-drugs:server:SuccessSale') then
return
end
local basePrice = active[src].price * active[src].count
local bonusMultiplier = math.min(math.floor(active[src].count / 10) * Config.Wholesale.settings.WholesaleQuantityBonus, Config.Wholesale.settings.WholesaleMaxBonus)
local totalPrice = math.floor(basePrice * (1 + bonusMultiplier))
for k, v in pairs (active[src].itemList) do
local has = Bridge.Inventory.GetItemCount(src, k) or 0
if has < v then
return
end
end
if need ~= have then
ps.notify(src, 'You are missing some drugs for the deal', 'error')
active[id] = nil
return
for k, v in pairs (active[src].itemList) do
if not Bridge.Inventory.RemoveItem(src, k, v) then
return
end
end
local removed = true
for k, v in pairs (deal.drugs) do
if not ps.removeItem(src, k, v) then
removed = false
break
end
end
if not removed then
ps.notify(src,'Failed to remove drugs for the deal', 'error')
active[id] = nil
return
end
ps.addMoney(src, 'cash', finalPrice, 'Wholesale sale successful' .. ' $' .. finalPrice)
ps.notify(src, 'Wholesale sale successful' .. ' $' .. finalPrice, 'success')
active[id] = nil
Bridge.Framework.AddAccountBalance(src, 'cash', totalPrice)
end)
RegisterNetEvent('md-drugs:server:CleanupWholesale', function()
local src = source
local id = ps.getIdentifier(source)
if active[id] then
active[id] = nil
if active[src] then
active[src] = nil
end
end)
RegisterNetEvent('md-drugs:server:getkilledFuckingNoob', function()
local src = source
if not active[src] then
return
end
for k, v in pairs (active[src].itemList) do
local has = Bridge.Inventory.GetItemCount(src, k) or 0
if has > 0 then
Bridge.Inventory.RemoveItem(src, k, has)
end
end
active[src] = nil
end)
+46 -112
View File
@@ -1,103 +1,42 @@
-------------------- stealing ingridients
local RecipeList = {
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 = {cash = 10000},
dualpress = {give = {dualpress = 1}, take = {white_xtc = 20, blue_xtc = 20, red_xtc = 20, orange_xtc = 20, singlepress = 1}},
triplepress = {give = {triplepress = 1}, take = {white_xtc2 = 50, blue_xtc2 = 50, red_xtc2 = 50, orange_xtc2 = 50, dualpress = 1}},
quadpress = {give = {quadpress = 1}, take = {white_xtc3 = 50, blue_xtc3 = 50, red_xtc3 = 50, orange_xtc3 = 50, triplepress = 1}},
}
}
local xtcLocations = {
isosafrole = { -- where to steal isosafrole
{loc = vector3(844.39, -902.92, 25.42), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
mdp2p = { -- where to steal mdp2p
{loc = vector3(844.4, -898.79, 25.23), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
rawxtcloc = { -- where to combine the 2 ingridents to make raw xtc
{loc = vector3(844.71, -910.33, 25.37), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
xtcpress = {
{ped = 'g_f_y_families_01',loc = vector4(845.82, -884.79, 25.18, 180.0), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
stamp = { -- where to stamp pills
{loc = vector3(844.71, -900.56, 25.43), l = 1.0, w = 1.0, rot = 45.0, gang = ""},
},
}
ps.registerCallback('md-drugs:server:GetXtcLocs', function(source)
return xtcLocations
end)
if not Config.Drugs['xtc'] then return end
local activePresses = {}
RegisterServerEvent('md-drugs:server:stealisosafrole', function(num)
local src = source
if not ps.checkDistance(src, xtcLocations.isosafrole[num].loc, 3.0) then
ps.notify(src, ps.lang('Checks.notIn'), "error")
if not checkDistance(src, Config.XTC.Locations.isosafrole[num].loc, 3.0,'md-drugs:server:stealisosafrole') then
return
end
if timeOut(src, 'md-drugs:server:stealisosafrole') then return end
ps.addItem(src, "isosafrole", 1)
Bridge.Inventory.AddItem(src, "isosafrole", 1)
end)
RegisterServerEvent('md-drugs:server:stealmdp2p', function(num)
local src = source
if not ps.checkDistance(src, xtcLocations.mdp2p[num].loc, 3.0) then
ps.notify(src, ps.lang('Checks.notIn'), "error")
if not checkDistance(src, Config.XTC.Locations.mdp2p[num].loc, 3.0,'md-drugs:server:stealmdp2p') then
return
end
if timeOut(src, 'md-drugs:server:stealmdp2p') then return end
ps.addItem(src, "mdp2p", 1)
Bridge.Inventory.AddItem(src, "mdp2p", 1)
end)
local presses = {
{item = 'singlepress', data = 'singlestack', recipes = RecipeList.singlestack},
{item = 'dualpress', data = 'dualstack', recipes = RecipeList.dualstack},
{item = 'triplepress', data = 'triplestack', recipes = RecipeList.triplestack},
{item = 'quadpress', data = 'quadstack', recipes = RecipeList.quadstack},
{item = 'singlepress', data = 'singlestack', recipes = Config.XTC.Recipes.singlestack},
{item = 'dualpress', data = 'dualstack', recipes = Config.XTC.Recipes.dualstack},
{item = 'triplepress', data = 'triplestack', recipes = Config.XTC.Recipes.triplestack},
{item = 'quadpress', data = 'quadstack', recipes = Config.XTC.Recipes.quadstack},
}
for k, v in pairs (presses) do
ps.createUseable(v.item, function(source, item)
Bridge.Framework.RegisterUsableItem(v.item, function(source, item)
local src = source
local location = ps.callback('md-drugs:client:setpress', src, v)
local location = Bridge.Callback.Trigger('md-drugs:client:setpress', src, v)
if location then
if ps.removeItem(src, v.item, 1) then
if Bridge.Inventory.RemoveItem(src, v.item, 1) then
activePresses[src] = {
press = v.data,
get = v.item,
owner = ps.getPlayerName(src),
ownerid = ps.getIdentifier(src),
owner = Bridge.Framework.GetPlayerName(src),
ownerid = Bridge.Framework.GetPlayerIdentifier(src),
src = src,
loc = location
}
@@ -110,66 +49,61 @@ RegisterServerEvent('md-drugs:server:getpressback', function()
local src = source
if not activePresses[src] then return end
local press = activePresses[src]
if not ps.checkDistance(src, press.loc, 2.0) then return end
ps.addItem(src, press.get, 1)
if not checkDistance(src, press.loc, 2.0,'md-drugs:server:getpressback' ) then
return
end
Bridge.Inventory.AddItem(src, press.get, 1)
activePresses[src] = nil
end)
RegisterServerEvent('md-drugs:server:makextc', function(data)
local src = source
if not activePresses[src] then
ps.notify(src, ps.lang('xtc.noPressOut'), 'error')
Bridge.Prints.Warn(Bridge.Language.Locale('xtc.noActivePress', Bridge.Framework.GetPlayerIdentifier(src)))
return
end
if timeOut(src, 'md-drugs:server:makextc') then return end
if not ps.checkDistance(src, activePresses[src].loc, 2.0) then return end
if not ps.craftItem(src, RecipeList[activePresses[src].press][data]) then
verifyHas(src, RecipeList[activePresses[src].press][data].take)
if not checkDistance(src, activePresses[src].loc, 2.0, 'md-drugs:server:makextc') then
return
end
if not craft(src, Config.XTC.Recipes[activePresses[src].press][data]) then
return
end
end)
RegisterServerEvent('md-drugs:server:buypress', function(loc, item)
local src = source
if not ps.checkDistance(src, xtcLocations.xtcpress[loc].loc, 2.0) then
ps.notify(src, ps.lang('Catches.notIn'), "error")
if not checkDistance(src, Config.XTC.Locations.xtcpress[loc].loc, 2.0, 'md-drugs:server:buypress') then
return
end
if timeOut(src, 'md-drugs:server:buypress') then return end
if ps.removeMoney(src,"cash", RecipeList.presses['singlepress'].cash) then
ps.addItem(src, "singlepress", 1)
if Bridge.Framework.RemoveAccountBalance(src,"cash", Config.XTC.Recipes.presses['singlepress'].cash) then
Bridge.Inventory.AddItem(src, "singlepress", 1)
else
ps.notify(src, ps.lang('Catches.notEnoughMoney'), "error")
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Catches.notEnoughMoney'), "error")
end
end)
RegisterServerEvent('md-drugs:server:upgradepress', function(data)
RegisterServerEvent('md-drugs:server:upgradepress', function(data, item)
local src = source
if timeOut(src, 'md-drugs:server:upgradepress') then return end
if not ps.checkDistance(src, xtcLocations.xtcpress[data].loc, 2.0) then
ps.notify(src, ps.lang('Catches.notIn'), "error")
return
end
if not ps.craftItem(src, RecipeList.presses[data]) then
verifyHas(src, RecipeList.presses[data].take)
if not checkDistance(src, Config.XTC.Locations.xtcpress[data].loc, 2.0, 'md-drugs:server:buypress') then
return
end
if not craft(src, Config.XTC.Recipes.presses[item]) then
return
end
end)
ps.registerCallback('md-drugs:server:getpressrecipes', function(source)
return RecipeList.presses
end)
------------- making powder
RegisterServerEvent('md-drugs:server:makingrawxtc', function(num)
local src = source
if not ps.checkDistance(src, xtcLocations.rawxtcloc[num].loc, 3.0) then
ps.notify(src, ps.lang('Checks.notIn'), "error")
if not checkDistance(src, Config.XTC.Locations.rawxtcloc[num].loc, 3.0, 'md-drugs:server:makingrawxtc') then
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('Checks.notIn'), "error")
return
end
if timeOut(src, 'md-drugs:server:makingrawxtc') then return end
if not ps.craftItem(src, RecipeList.raw.raw_xtc) then
verifyHas(src, RecipeList.raw.raw_xtc.take)
if not craft(src, Config.XTC.Recipes.raw.raw_xtc) then
return
end
end)
@@ -189,7 +123,7 @@ end
RegisterServerEvent('md-drugs:server:stamp', function(num, color)
local src = source
if not ps.checkDistance(src, xtcLocations.stamp[num].loc, 3.0) then return end
if not checkDistance(src, Config.XTC.Locations.stamp[num].loc, 3.0, 'md-drugs:server:stamp') then return end
if timeOut(src, 'md-drugs:server:stamp') then return end
local item = getColor(color)
local colors = {
@@ -198,23 +132,23 @@ RegisterServerEvent('md-drugs:server:stamp', function(num, color)
orange = 'orange_xtc',
blue = 'blue_xtc'
}
if ps.removeItem(src, colors[color], 1) then
ps.addItem(src, item, 1)
elseif ps.removeItem(src, colors[color].."2", 1) then
ps.addItem(src, item..'2', 1)
elseif ps.removeItem(src, colors[color].."3", 1) then
ps.addItem(src, item..'3', 1)
elseif ps.removeItem(src, colors[color].."4", 1) then
ps.addItem(src, item..'4', 1)
if Bridge.Inventory.RemoveItem(src, colors[color], 1) then
Bridge.Inventory.AddItem(src, item, 1)
elseif Bridge.Inventory.RemoveItem(src, colors[color].."2", 1) then
Bridge.Inventory.AddItem(src, item..'2', 1)
elseif Bridge.Inventory.RemoveItem(src, colors[color].."3", 1) then
Bridge.Inventory.AddItem(src, item..'3', 1)
elseif Bridge.Inventory.RemoveItem(src, colors[color].."4", 1) then
Bridge.Inventory.AddItem(src, item..'4', 1)
else
ps.notify(src, ps.lang('xtc.noPills'), 'error')
Bridge.Notify.SendNotify(src, Bridge.Language.Locale('xtc.noPills'), 'error')
end
end)
AddEventHandler('playerDropped', function()
local src = source
if activePresses[src] then
ps.addItem(src, activePresses[src].get, 1)
Bridge.Inventory.AddItem(src, activePresses[src].get, 1)
activePresses[src] = nil
end
end)
-26
View File
@@ -1,26 +0,0 @@
function loadFile(filePath)
local resourceName = 'md-drugs'
local fullScript = LoadResourceFile(resourceName, filePath)
if not fullScript then
ps.error("Error: Failed to load module '" .. filePath .. "' from resource '" .. resourceName .. "'.")
return false
end
local chunk, err = load(fullScript, filePath, "t")
if not chunk then
ps.error("Error loading Lua chunk from '" .. filePath .. "': " .. tostring(err))
return false
end
local success, execErr = pcall(chunk)
if not success then
ps.error("Error executing Lua chunk from '" .. filePath .. "': " .. tostring(execErr))
return false
end
return true
end
for scriptName, toggle in pairs(Config.Drugs) do
if not toggle then goto continue end
loadFile('server/' .. scriptName .. '.lua')
::continue::
end
+36
View File
@@ -0,0 +1,36 @@
if not Config.Drugs['TravellingMerchant'] then return end
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,
}
}
+34
View File
@@ -0,0 +1,34 @@
if not Config.Drugs['cocaine'] then return end
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}},
}
}
}
+193
View File
@@ -0,0 +1,193 @@
if not Config.Drugs['consumables'] then return end
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 }},
}
+143
View File
@@ -0,0 +1,143 @@
if not Config.Drugs['cornerselling'] then return end
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%
}
}
+23
View File
@@ -0,0 +1,23 @@
if not Config.Drugs['crack'] then return end
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 = ""},
},
}
}
+92
View File
@@ -0,0 +1,92 @@
if not Config.Drugs['deliveries'] then return end
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},
}
}
+42
View File
@@ -0,0 +1,42 @@
if not Config.Drugs['heroin'] then return end
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
}
}
+33
View File
@@ -0,0 +1,33 @@
if not Config.Drugs['lean'] then return end
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},
}
}
}
}
+29
View File
@@ -0,0 +1,29 @@
if not Config.Drugs['lsd'] then return end
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
}
}
+13
View File
@@ -0,0 +1,13 @@
if not Config.Drugs['mescaline'] then return end
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} }
}
}
}
+42
View File
@@ -0,0 +1,42 @@
if not Config.Drugs['meth'] then return end
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} }
}
},
}
+30
View File
@@ -0,0 +1,30 @@
if not Config.Drugs['oxyruns'] then return end
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},
}
}
+8
View File
@@ -0,0 +1,8 @@
if not Config.Drugs['pharma'] then return end
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 = ""},
},
},
}
+2
View File
@@ -0,0 +1,2 @@
if not Config.Drugs['shrooms'] then return end
Config.Shrooms ={}
+104
View File
@@ -0,0 +1,104 @@
if not Config.Drugs['weed'] then return end
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,
}
}
}
+30
View File
@@ -0,0 +1,30 @@
if not Config.Drugs['whippit'] then return end
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' },
}
}
}
+56
View File
@@ -0,0 +1,56 @@
if not Config.Drugs['wholesale'] then return end
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
}
}
}
+55
View File
@@ -0,0 +1,55 @@
if not Config.Drugs['xtc'] then return end
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 = ""},
},
}
}
+20 -21
View File
@@ -1,28 +1,13 @@
Config = {} --Ignore.
if GetResourceState('ps_lib') ~= 'started' then
print('^1ERROR: ps_lib is not started, please start ps_lib before starting this resource.^0')
return
end
if GetResourceState('ps_lib') == 'missing' then
print('^1ERROR: ps_lib is missing, please install ps_lib to use this resource.^0')
print('^1You can find ps_lib here: https://github.com/Project-Sloth/ps_lib')
return
end
ps = exports.ps_lib:init() --Ignore.
ps.loadLangs("en") -- set your language
Config.Fuel = "LegacyFuel" -- type the name of script you use i.e. ps-fuel, cdn-fuel, LegacyFuel, ox_fuel
Config.TierSystem = true -- allows for three tiers of certain drugs ( coke, heroin, crack, lsd)
Config, Bridge, targets = {}, exports.community_bridge:Bridge(), {}
----------------------------------- TierSystem levels ** ONLY IN USE IF CONFIG.TIERSYTEM IS TRUE
Config.TierSystem = true -- allows for three tiers of certain drugs ( coke, heroin, crack, lsd)
Config.Tier1 = 100 -- amount to hit for level 2
Config.Tier2 = 300 -- amount to hit for level 3
Config.Dispatch = 'ps' -- either 'ps', 'cd', 'core', 'aty'
--- Customizations
Config.Dispatch = 'ox' -- either 'ps', 'cd', 'core', 'aty'
Config.Minigames = {
ps_circle = {amount = 2, speed = 8,},
ps_maze = {timelimit = 15},
@@ -41,9 +26,24 @@ Config.Minigames = {
glspot = {gridSize = 6, timeLimit = 999999, charSet = "alphabet", required = 10},
glmath = {timeLimit = 300000},
}
Config.minigametype = 'ps_circle' -- look above for options or choose none if you dont want any minigames
Config.minigametype = 'ox' -- look above for options or choose none if you dont want any minigames
Config.Emotes = 'rpemotes' -- this is if you want to use emotes, you can pass the string of the emote name instead of the animDict and animClip like below
Config.DefaultAnimation = {
dict = "mp_arresting",
clip = "a_uncuff",
flag = 49,
}
Config.ProgressBar = {
Disables = {
move = true, -- Disable movement
car = true, -- Disable vehicle movement
combat = true, -- Disable combat
mouse = false -- Disable mouse
}
}
-- Drug System Configs
Config.Drugs = { -- want a drug turn on? keep it true, want it turned off, mark it false
cocaine = true,
consumables = true,
@@ -70,5 +70,4 @@ Config.Bzz = { -- if you have BZZZ props for these turn it on if you want
heroin =false,
shrooms = false,
weed = false,
}
-20
View File
@@ -1,20 +0,0 @@
QBConfig = {}
----------- qb-drugs update built in here below
----------- Everything is now a target and not displaytext. Dealers are no longer just doors, they will spawn peds where you place your dealer. This is a literally qb-drugs with SLIGHT edits. mainly added peds for deliveries, made everything a target
QBConfig.Dealers = {}
-- Delivery locations and items is now in server/deliveries.lua
-- cornerselling pricing and rep is now in server/cornerselling.lua
QBConfig.NoSellZones = {
{loc = vector3(445.11, -991.3, 30.69), width = 10.0, length = 10.0, height = 10.0, rot = 180.0},
}
QBConfig.SellLevel = {
{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'},
}
-79
View File
@@ -1,79 +0,0 @@
Build: 4.0.0
- update to ps_lib
Build: 4.0.1
- fix saving location of pill presses in xtc
- Adjust XTC item crafting
- notify after check for heroin baking soda
- HOW TO UPDATE BELOW
- bump version in fxmanifest from 4.0.0 to 4.0.1
- redownload and add these files
- client/xtc.lua
- server/xtc.lua
- version.txt
- client/heroin.lua
Build: 4.0.2
- updated qb items
- updated ox items
- ABOVE IS JUST LABEL CHANGES AND IMAGE CHANGES NOT NECESSARY
- fix for weed drying
- if you didnt update 4.0.1 here is the thing you need
- fix saving location of pill presses in xtc
- Adjust XTC item crafting
- notify after check for heroin baking soda
- HOW TO UPDATE BELOW
- bump version in fxmanifest from 4.0.0 to 4.0.1
- redownload and add these files
- client/xtc.lua
- server/xtc.lua
- version.txt
- client/heroin.lua
Build: 4.0.3
- updated weed client
- updated ox and qb items fixing them sorry yall
- updated images
- CHANGES FROM 4.0.0 - 4.0.2
- updated qb items
- updated ox items
- ABOVE IS JUST LABEL CHANGES AND IMAGE CHANGES NOT NECESSARY
- fix for weed drying
- fix saving location of pill presses in xtc
- Adjust XTC item crafting
- notify after check for heroin baking soda
Build: 4.0.4
- fix meth
- `to update`
- update version.txt
- update version in fxmanifest to 4.0.4
- update client/meth.lua
Build: 4.0.5
- fix server/xtc.lua to use src for activePresses
- fix server/xtc.lua to work with crafting pills
- HOT TO UPDATE
- Replace server/xtc.lua
- adjust fxmanifest version to 4.0.5
Build: 4.0.6
- add whippits to the script
- to add move the folder `ate_balloon` to standalone folder
- or anywhere else like it is its own script
- add the items ( located at the bottom of ox.md/qb.md) and images
- add the server and client file named whippit.lua
Newest Build: 4.0.7
- add checks in config for ps lib being installed and started before to
- reduce the questions i get
- small fix for notifications not displaying what you need properly
- THIS VERSION HAS NO STRUCTURAL CHANGES. IF YOU WANT THE FIX FOR NOTIFICATIONS, ONLY UPDATE YOUR LOCALE FILE
- if you are seeing this, you most likely already have ps_lib working properly