- fix up heroin
This commit is contained in:
1 parent
1b29aaa3b0
commit
4fdef3cf30
8 files changed
+795
-476
No files matched your search
+148
-90
@@ -1,115 +1,173 @@
|
||||
local sell = false
|
||||
local sold = false
|
||||
local targbusy = false
|
||||
local inZone = false
|
||||
local active = false
|
||||
local buyers = {}
|
||||
|
||||
local function reset(targ)
|
||||
local function walkAway(targ)
|
||||
FreezeEntityPosition(targ, false)
|
||||
ClearPedTasks(targ)
|
||||
local coords = GetEntityCoords(targ)
|
||||
TaskWanderInArea(targ, coords.x, coords.y, coords.z, 100.0, 2, 10.0)
|
||||
Wait(10000)
|
||||
DeletePed(targ)
|
||||
targbusy = false
|
||||
sold = true
|
||||
active = false
|
||||
end
|
||||
|
||||
local function walkAway(targ)
|
||||
FreezeEntityPosition(targ, false)
|
||||
ClearPedTasks(targ)
|
||||
local coords = GetEntityCoords(targ)
|
||||
TaskWanderInArea(targ, coords.x, coords.y, coords.z, 100.0, 2, 10.0)
|
||||
Wait(10000)
|
||||
DeletePed(targ)
|
||||
targbusy = false
|
||||
active = false
|
||||
end
|
||||
|
||||
local function sellDrug(item, amount, price, targ)
|
||||
PoliceCall(20)
|
||||
targbusy = true
|
||||
if IsPedInAnyVehicle(PlayerPedId(), true) then
|
||||
Notify(Lang.Cornerselling.inveh, 'error')
|
||||
reset(targ)
|
||||
return end
|
||||
if not progressbar(string.format(Lang.Cornerselling.selling, GetLabel(item), price), 4000, 'uncuff') then return end
|
||||
-- PoliceCall(20)
|
||||
if ps.vehicleData() then
|
||||
Notify(ps.lang('Cornerselling.inveh', 'error'))
|
||||
walkAway(targ)
|
||||
return
|
||||
end
|
||||
|
||||
if not ps.progressbar(string.format(ps.lang('Cornerselling.selling', GetLabel(item), price)), 4000, 'uncuff') then walkAway(targ) return end
|
||||
buyers[targ] = 'sold'
|
||||
TriggerServerEvent('md-drugs:server:sellCornerDrugs', item, amount, price)
|
||||
reset(targ)
|
||||
walkAway(targ)
|
||||
end
|
||||
|
||||
local function deny(targ)
|
||||
PoliceCall(20)
|
||||
targbusy = true
|
||||
if not progressbar(Lang.Cornerselling.deny, 4000, 'argue5') then return end
|
||||
reset(targ)
|
||||
-- PoliceCall(20)
|
||||
buyers[targ] = 'sold'
|
||||
if not ps.progressbar(ps.lang('Cornerselling.deny'), 4000, 'argue5') then return end
|
||||
walkAway(targ)
|
||||
end
|
||||
|
||||
local function findPed()
|
||||
local targ = nil
|
||||
repeat
|
||||
Wait(100)
|
||||
targ = ps.getNearestPed(GetEntityCoords(PlayerPedId()), 8)
|
||||
|
||||
if IsPedInAnyVehicle(targ, false) or GetEntityHealth(targ) == 0 or not IsPedHuman(targ) then
|
||||
targ = nil
|
||||
end
|
||||
if buyers[targ] then
|
||||
targ = nil
|
||||
end
|
||||
if inZone then
|
||||
targ = nil
|
||||
end
|
||||
until targ ~= nil
|
||||
|
||||
buyers[targ] = true
|
||||
ps.drawText('Waiting For Customer')
|
||||
|
||||
repeat
|
||||
Wait(1000)
|
||||
TaskGoToCoordAnyMeans(targ, GetEntityCoords(PlayerPedId()), 1.0, 0, 0, 0, 0)
|
||||
until #(GetEntityCoords(PlayerPedId()) - GetEntityCoords(targ)) < 2.0
|
||||
|
||||
TaskTurnPedToFaceEntity(targ, PlayerPedId(), -1)
|
||||
ps.hideText()
|
||||
CreateThread(function()
|
||||
Wait(45000)
|
||||
walkAway(targ)
|
||||
buyers[targ] = 'sold'
|
||||
end)
|
||||
return targ
|
||||
end
|
||||
|
||||
local function checkItems()
|
||||
local count = 0
|
||||
for k, v in pairs (GlobalState.DrugNames) do
|
||||
if ps.hasItem(v) then
|
||||
count = count + 1
|
||||
break
|
||||
end
|
||||
end
|
||||
if count == 0 then ps.notify(ps.lang('Cornerselling.nodrugs', 'error')) return false end
|
||||
return true
|
||||
end
|
||||
|
||||
function Cornersell()
|
||||
if active then return false end
|
||||
local targ = lib.GetClosestPed(GetEntityCoords(PlayerPedId()), 8)
|
||||
if targ == nil then return end
|
||||
if IsPedInAnyVehicle(targ, false) or GetEntityHealth(targ) == 0 or not IsPedHuman(targ) then return end
|
||||
local data = ps.callback('md-drugs:server:cornerselling:getAvailableDrugs', false, targ)
|
||||
if data.item == 'nothing' then Notify(Lang.Cornerselling.nodrugs, 'error') sell = false FreezeEntityPosition(targ, false) ClearPedTasks(targ) active = false return false end
|
||||
TaskGoToCoordAnyMeans(targ, GetEntityCoords(PlayerPedId()), 1.0, 0, 0, 0, 0)
|
||||
active = true
|
||||
repeat
|
||||
Wait(1000)
|
||||
until #(GetEntityCoords(PlayerPedId()) - GetEntityCoords(targ)) < 2.0
|
||||
lib.requestAnimDict("rcmme_tracey1")
|
||||
TaskStartScenarioInPlace(targ, "WORLD_HUMAN_STAND_IMPATIENT_UPRIGHT", 0, false) FreezeEntityPosition(targ, true)
|
||||
AddMultiModel(data.ped, {
|
||||
{ label = string.format(Lang.targets.CornerSell.sell, data.amount, GetLabel(data.item), data.price), icon ="fa-solid fa-money-bill",
|
||||
action = function() sellDrug(data.item, data.amount, data.price, targ) end,
|
||||
canInteract = function()
|
||||
if not targbusy then return true end end,
|
||||
},
|
||||
{ label = Lang.targets.CornerSell.deny, icon = "fa-solid fa-person-harassing",
|
||||
action = function() deny(targ) end,
|
||||
canInteract = function()
|
||||
if not targbusy then return true end end,
|
||||
if inZone then sell = false return end
|
||||
|
||||
if not sell then
|
||||
return
|
||||
end
|
||||
|
||||
local hasDrugs = checkItems()
|
||||
if not hasDrugs then
|
||||
sell = false
|
||||
return
|
||||
end
|
||||
|
||||
ps.drawText('Searching For Nearby Customers')
|
||||
|
||||
local targ = findPed()
|
||||
local data = ps.callback('md-drugs:server:cornerselling:getAvailableDrugs', targ)
|
||||
|
||||
if data == false then
|
||||
sell = false
|
||||
return
|
||||
end
|
||||
|
||||
if data == 'robbed' then
|
||||
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, {
|
||||
{
|
||||
label = "Take Back Drugs",
|
||||
icon ="fa-solid fa-money-bill",
|
||||
action = function()
|
||||
got = true
|
||||
TriggerServerEvent('md-drugs:server:getBackRobbed')
|
||||
Cornersell()
|
||||
end,
|
||||
canInteract = function()
|
||||
if IsEntityDead(targ) and not got then
|
||||
return true
|
||||
end
|
||||
end,
|
||||
}}, nil)
|
||||
local timer = 45
|
||||
repeat
|
||||
Wait(1000)
|
||||
timer = timer - 1
|
||||
until sold or timer == 0
|
||||
if sold then sold = false return true end
|
||||
if timer == 0 then Notify(Lang.Cornerselling.timeout, 'error') targbusy = true walkAway(targ) return false end
|
||||
else
|
||||
ps.requestAnim("rcmme_tracey1")
|
||||
TaskStartScenarioInPlace(targ, "WORLD_HUMAN_STAND_IMPATIENT_UPRIGHT", 0, false)
|
||||
FreezeEntityPosition(targ, true)
|
||||
ps.entityTarget(data.ped, {
|
||||
{
|
||||
label = string.format(ps.lang('targets.CornerSell.sell', data.amount, GetLabel(data.item), data.price)),
|
||||
icon ="fa-solid fa-money-bill",
|
||||
action = function()
|
||||
sellDrug(data.item, data.amount, data.price, targ)
|
||||
Cornersell()
|
||||
end,
|
||||
canInteract = function()
|
||||
if buyers[targ] ~= 'sold' and sell then
|
||||
return true
|
||||
end
|
||||
end,
|
||||
},
|
||||
{
|
||||
label = ps.lang('targets.CornerSell.deny'),
|
||||
icon = "fa-solid fa-person-harassing",
|
||||
action = function()
|
||||
deny(targ)
|
||||
walkAway(targ)
|
||||
Cornersell()
|
||||
end,
|
||||
canInteract = function()
|
||||
if buyers[targ] == true and sell then
|
||||
return true
|
||||
end
|
||||
end
|
||||
}
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
RegisterNetEvent('md-drugs:client:cornerselling', function()
|
||||
if not GetCops(QBConfig.MinimumDrugSalePolice) then return end
|
||||
if inZone then Notify(Lang.Cornerselling.no, 'error') return end
|
||||
local has = ps.callback('md-drugs:server:hasDrugs', false)
|
||||
if has then
|
||||
if sell then
|
||||
TriggerServerEvent('md-drugs:server:cornerselling:stop')
|
||||
Notify(Lang.Cornerselling.stop, 'error')
|
||||
sell = false
|
||||
active = false
|
||||
else
|
||||
sell = true
|
||||
Notify(Lang.Cornerselling.start, 'success')
|
||||
repeat
|
||||
Wait(1000)
|
||||
Cornersell()
|
||||
until not sell
|
||||
end
|
||||
if sell then
|
||||
sell = false
|
||||
ps.hideText()
|
||||
ps.notify(ps.lang('Cornerselling.stopped', 'error'))
|
||||
else
|
||||
Notify(Lang.Cornerselling.nodrugs, 'error')
|
||||
sell = true
|
||||
ps.notify(ps.lang('Cornerselling.started', 'success'))
|
||||
Cornersell()
|
||||
end
|
||||
end)
|
||||
|
||||
CreateThread(function()
|
||||
for k, v in pairs (QBConfig.NoSellZones) do
|
||||
local box = lib.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})
|
||||
end
|
||||
end)
|
||||
|
||||
RegisterNetEvent('md-drugs:client:cornerselling:remove', function(ped)
|
||||
DeletePed(ped)
|
||||
for k, v in pairs (QBConfig.NoSellZones) do
|
||||
local box = lib.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})
|
||||
end
|
||||
end)
|
||||
Reference in new issue
Block a user