Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0e55a18676 | ||
|
|
28d4244243 | ||
|
|
ff5a86b3f3 | ||
|
|
0f80534168 | ||
|
|
30f12ebbe5 | ||
|
|
fdd4b0cb7b | ||
|
|
32af7ae59a | ||
|
|
c08ff45617 | ||
|
|
97af3833b7 | ||
|
|
4e48857437 | ||
|
|
c3084abc78 | ||
|
|
d97cd43951 | ||
|
|
7ceaa97b5f | ||
|
|
11e7015672 | ||
|
|
c7eca0285b | ||
|
|
fdc28723bc | ||
|
|
1d82b8beba | ||
|
|
5db30458eb | ||
|
|
b5297bd109 | ||
|
|
547ba993d4 | ||
|
|
c380c75149 | ||
|
|
9c0723d4c7 | ||
|
|
c3aaf67421 | ||
|
|
addce12081 | ||
|
|
a975406031 | ||
|
|
c752baffda | ||
|
|
fc8a623067 | ||
|
|
c1c8b8cb86 | ||
|
|
690db7ce55 | ||
|
|
d46e28e8f2 | ||
|
|
fb500dc502 | ||
|
|
df9584711a | ||
|
|
66934fd68a | ||
|
|
ebc47ba5d7 | ||
|
|
d2f70d78ed | ||
|
|
0ed22eb62b |
No files matched your search
Vendored
+2
-1
@@ -21,6 +21,7 @@
|
||||
"heroinCooldown",
|
||||
"checkLoc",
|
||||
"getRandW",
|
||||
"shroomsCooldown"
|
||||
"shroomsCooldown",
|
||||
"targets"
|
||||
]
|
||||
}
|
||||
@@ -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
@@ -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()
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
@@ -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
@@ -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
|
||||
@@ -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
@@ -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;
|
||||
@@ -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">
|
||||
|
||||
[](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
|
||||
- [](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 :)
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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)
|
||||
@@ -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
|
||||
@@ -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,
|
||||
}
|
||||
}
|
||||
@@ -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}},
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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 }},
|
||||
}
|
||||
@@ -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%
|
||||
}
|
||||
}
|
||||
@@ -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 = ""},
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -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},
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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},
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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} }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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} }
|
||||
}
|
||||
},
|
||||
}
|
||||
@@ -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},
|
||||
}
|
||||
}
|
||||
@@ -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 = ""},
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
if not Config.Drugs['shrooms'] then return end
|
||||
Config.Shrooms ={}
|
||||
@@ -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,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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' },
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
@@ -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,
|
||||
|
||||
}
|
||||
@@ -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
@@ -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
|
||||
|
||||
Reference in new issue
Block a user