Add files via upload

This commit is contained in:
ig0ne
2017-08-11 02:19:05 +02:00
committed by GitHub
parent 1724e778e8
commit de401cc8d2
5 changed files with 868 additions and 0 deletions
+7
View File
@@ -0,0 +1,7 @@
description 'esx_drugs'
server_script 'server/esx_drugs_sv.lua'
server_script 'config.lua'
client_script 'config.lua'
client_script 'client/esx_drugs_cl.lua'
+272
View File
@@ -0,0 +1,272 @@
local Keys = {
["ESC"] = 322, ["F1"] = 288, ["F2"] = 289, ["F3"] = 170, ["F5"] = 166, ["F6"] = 167, ["F7"] = 168, ["F8"] = 169, ["F9"] = 56, ["F10"] = 57,
["~"] = 243, ["1"] = 157, ["2"] = 158, ["3"] = 160, ["4"] = 164, ["5"] = 165, ["6"] = 159, ["7"] = 161, ["8"] = 162, ["9"] = 163, ["-"] = 84, ["="] = 83, ["BACKSPACE"] = 177,
["TAB"] = 37, ["Q"] = 44, ["W"] = 32, ["E"] = 38, ["R"] = 45, ["T"] = 245, ["Y"] = 246, ["U"] = 303, ["P"] = 199, ["["] = 39, ["]"] = 40, ["ENTER"] = 18,
["CAPS"] = 137, ["A"] = 34, ["S"] = 8, ["D"] = 9, ["F"] = 23, ["G"] = 47, ["H"] = 74, ["K"] = 311, ["L"] = 182,
["LEFTSHIFT"] = 21, ["Z"] = 20, ["X"] = 73, ["C"] = 26, ["V"] = 0, ["B"] = 29, ["N"] = 249, ["M"] = 244, [","] = 82, ["."] = 81,
["LEFTCTRL"] = 36, ["LEFTALT"] = 19, ["SPACE"] = 22, ["RIGHTCTRL"] = 70,
["HOME"] = 213, ["PAGEUP"] = 10, ["PAGEDOWN"] = 11, ["DELETE"] = 178,
["LEFT"] = 174, ["RIGHT"] = 175, ["TOP"] = 27, ["DOWN"] = 173,
["NENTER"] = 201, ["N4"] = 108, ["N5"] = 60, ["N6"] = 107, ["N+"] = 96, ["N-"] = 97, ["N7"] = 117, ["N8"] = 61, ["N9"] = 118
}
local PID = 0
local GUI = {}
local cokeQTE = 0
ESX = nil
GUI.Time = 0
local coke_poochQTE = 0
local weedQTE = 0
local weed_poochQTE = 0
local methQTE = 0
local meth_poochQTE = 0
local PlayerData = {}
local GUI = {}
local HasAlreadyEnteredMarker = false
local LastZone = nil
local CurrentAction = nil
local CurrentActionMsg = ''
local CurrentActionData = {}
Citizen.CreateThread(function()
while ESX == nil do
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
Citizen.Wait(0)
end
end)
AddEventHandler('esx_drugs:hasEnteredMarker', function(zone)
ESX.UI.Menu.CloseAll()
if zone == 'CokeFarm' then
if myJob ~= "police" then
CurrentAction = 'coke_harvest'
CurrentActionMsg = 'Appuez sur ~INPUT_CONTEXT~ pour récolter la coke'
CurrentActionData = {}
end
end
if zone == 'CokeTreatment' then
if myJob ~= "police" then
if cokeQTE >= 5 then
CurrentAction = 'coke_treatment'
CurrentActionMsg = 'Appuez sur ~INPUT_CONTEXT~ pour traiter la coke'
CurrentActionData = {}
end
end
end
if zone == 'CokeResell' then
if myJob ~= "police" then
if coke_poochQTE >= 1 then
CurrentAction = 'coke_resell'
CurrentActionMsg = 'Appuez sur ~INPUT_CONTEXT~ pour vendre la coke'
CurrentActionData = {}
end
end
end
if zone == 'MethFarm' then
if myJob ~= "police" then
CurrentAction = 'meth_harvest'
CurrentActionMsg = 'Appuez sur ~INPUT_CONTEXT~ pour récolter la meth'
CurrentActionData = {}
end
end
if zone == 'MethTreatment' then
if myJob ~= "police" then
if cokeQTE >= 5 then
CurrentAction = 'meth_treatment'
CurrentActionMsg = 'Appuez sur ~INPUT_CONTEXT~ pour traiter la meth'
CurrentActionData = {}
end
end
end
if zone == 'MethResell' then
if myJob ~= "police" then
if coke_poochQTE >= 1 then
CurrentAction = 'meth_resell'
CurrentActionMsg = 'Appuez sur ~INPUT_CONTEXT~ pour vendre la meth'
CurrentActionData = {}
end
end
end
if zone == 'WeedFarm' then
if myJob ~= "police" then
CurrentAction = 'weed_harvest'
CurrentActionMsg = 'Appuez sur ~INPUT_CONTEXT~ pour récolter la weed'
CurrentActionData = {}
end
end
if zone == 'WeedTreatment' then
if myJob ~= "police" then
if cokeQTE >= 5 then
CurrentAction = 'weed_treatment'
CurrentActionMsg = 'Appuez sur ~INPUT_CONTEXT~ pour traiter la weed'
CurrentActionData = {}
end
end
end
if zone == 'WeedResell' then
if myJob ~= "police" then
if coke_poochQTE >= 1 then
CurrentAction = 'weed_resell'
CurrentActionMsg = 'Appuez sur ~INPUT_CONTEXT~ pour vendre la weed'
CurrentActionData = {}
end
end
end
end)
AddEventHandler('esx_drugs:hasExitedMarker', function(zone)
CurrentAction = nil
ESX.UI.Menu.CloseAll()
TriggerServerEvent('esx_drugs:stopHarvestCoke')
TriggerServerEvent('esx_drugs:stopTransformCoke')
TriggerServerEvent('esx_drugs:stopSellCoke')
TriggerServerEvent('esx_drugs:stopHarvestMeth')
TriggerServerEvent('esx_drugs:stopTransformMeth')
TriggerServerEvent('esx_drugs:stopSellMeth')
TriggerServerEvent('esx_drugs:stopHarvestWeed')
TriggerServerEvent('esx_drugs:stopTransformWeed')
TriggerServerEvent('esx_drugs:stopSellWeed')
end)
-- Weed Effect
RegisterNetEvent('esx_drugs:onPot')
AddEventHandler('esx_drugs:onPot', function()
RequestAnimSet("MOVE_M@DRUNK@SLIGHTLYDRUNK")
while not HasAnimSetLoaded("MOVE_M@DRUNK@SLIGHTLYDRUNK") do
Citizen.Wait(0)
end
TaskStartScenarioInPlace(GetPlayerPed(-1), "WORLD_HUMAN_SMOKING_POT", 0, true)
Citizen.Wait(5000)
DoScreenFadeOut(1000)
Citizen.Wait(1000)
ClearPedTasksImmediately(GetPlayerPed(-1))
SetTimecycleModifier("spectator5")
SetPedMotionBlur(GetPlayerPed(-1), true)
SetPedMovementClipset(GetPlayerPed(-1), "MOVE_M@DRUNK@SLIGHTLYDRUNK", true)
SetPedIsDrunk(GetPlayerPed(-1), true)
DoScreenFadeIn(1000)
Citizen.Wait(600000)
DoScreenFadeOut(1000)
Citizen.Wait(1000)
DoScreenFadeIn(1000)
ClearTimecycleModifier()
ResetScenarioTypesEnabled()
ResetPedMovementClipset(GetPlayerPed(-1), 0)
SetPedIsDrunk(GetPlayerPed(-1), false)
SetPedMotionBlur(GetPlayerPed(-1), false)
end)
-- Render markers
Citizen.CreateThread(function()
while true do
Wait(0)
local coords = GetEntityCoords(GetPlayerPed(-1))
for k,v in pairs(Config.Zones) do
if(GetDistanceBetweenCoords(coords, v.x, v.y, v.z, true) < Config.DrawDistance) then
DrawMarker(Config.MarkerType, v.x, v.y, v.z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, Config.ZoneSize.x, Config.ZoneSize.y, Config.ZoneSize.z, Config.MarkerColor.r, Config.MarkerColor.g, Config.MarkerColor.b, 100, false, true, 2, false, false, false, false)
end
end
end
end)
-- RETURN NUMBER OF ITEMS FROM SERVER
RegisterNetEvent('esx_drugs:ReturnInventory')
AddEventHandler('esx_drugs:ReturnInventory', function(cokeNbr, cokepNbr, methNbr, methpNbr, weedNbr, weedpNbr, jobName, currentZone)
cokeQTE = cokeNbr
coke_poochQTE = cokepNbr
methQTE = methNbr
meth_poochQTE = methpNbr
weedQTE = weedNbr
weed_poochQTE = weedpNbr
myJob = jobName
TriggerEvent('esx_drugs:hasEnteredMarker', currentZone)
end)
-- Activate menu when player is inside marker
Citizen.CreateThread(function()
while true do
Wait(0)
local coords = GetEntityCoords(GetPlayerPed(-1))
local isInMarker = false
local currentZone = nil
for k,v in pairs(Config.Zones) do
if(GetDistanceBetweenCoords(coords, v.x, v.y, v.z, true) < Config.ZoneSize.x / 2) then
isInMarker = true
currentZone = k
end
end
if isInMarker and not hasAlreadyEnteredMarker then
hasAlreadyEnteredMarker = true
lastZone = currentZone
TriggerServerEvent('esx_drugs:GetUserInventory', currentZone)
end
if not isInMarker and hasAlreadyEnteredMarker then
hasAlreadyEnteredMarker = false
TriggerEvent('esx_drugs:hasExitedMarker', lastZone)
end
end
end)
-- Key Controls
Citizen.CreateThread(function()
while true do
Citizen.Wait(0)
if CurrentAction ~= nil then
SetTextComponentFormat('STRING')
AddTextComponentString(CurrentActionMsg)
DisplayHelpTextFromStringLabel(0, 0, 1, -1)
if IsControlJustReleased(0, 38) then
if CurrentAction == 'coke_harvest' then
TriggerServerEvent('esx_drugs:startHarvestCoke')
end
if CurrentAction == 'coke_treatment' then
TriggerServerEvent('esx_drugs:startTransformCoke')
end
if CurrentAction == 'coke_resell' then
TriggerServerEvent('esx_drugs:startSellCoke')
end
if CurrentAction == 'meth_harvest' then
TriggerServerEvent('esx_drugs:startHarvestMeth')
end
if CurrentAction == 'meth_treatment' then
TriggerServerEvent('esx_drugs:startTransformMeth')
end
if CurrentAction == 'meth_resell' then
TriggerServerEvent('esx_drugs:startSellCoke')
end
if CurrentAction == 'weed_harvest' then
TriggerServerEvent('esx_drugs:startHarvestWeed')
end
if CurrentAction == 'wedd_treatment' then
TriggerServerEvent('esx_drugs:startTransformWeed')
end
if CurrentAction == 'weed_resell' then
TriggerServerEvent('esx_drugs:startSellWeed')
end
CurrentAction = nil
end
end
end
end)
+20
View File
@@ -0,0 +1,20 @@
Config = {}
Config.MarkerType = 1
Config.DrawDistance = 100.0
Config.ZoneSize = {x = 5.0, y = 5.0, z = 3.0}
--Config.MarkerColor = {r = 100, g = 204, b = 100}
Config.RequiredCopsCoke = 2
Config.RequiredCopsMeth = 2
Config.RequiredCopsWeed = 0
Config.Zones = {
CokeFarm = {x=2448.9228515625, y=-1836.8076171875, z=51.953701019287},
CokeTreatment = {x=-458.13967895508, y=-2278.6174316406, z=7.5158290863037},
CokeResell = {x=-1756.1984863281, y=427.31674194336, z=126.68292999268},
MethFarm = {x=1525.298828125, y=1710.0217285156, z=109.00956726074},
MethTreatment = {x=-1001.4151611328, y=4848.0087890625, z=274.00686645508},
MethResell = {x=-63.592178344727, y=-1224.0709228516, z=27.768648147583},
WeedFarm = {x=1609.125, y=6663.5942382813, z=20.961572647095},
WeedTreatment = {x=91.061386108398, y=3750.0380859375, z=39.77326965332},
WeedResell = {x=-54.249694824219, y=-1443.3666992188, z=31.068626403809}
}
+8
View File
@@ -0,0 +1,8 @@
INSERT INTO `items` (name, label) VALUES
('weed', 'Weed'),
('weed_pooch', 'Pochon de weed'),
('coke', 'Coke'),
('coke_pooch', 'Pochon de coke'),
('meth', 'Meth'),
('meth_pooch', 'Pochon de meth')
;
+561
View File
@@ -0,0 +1,561 @@
ESX = nil
local CopsConnected = 0
local PlayersHarvestingCoke = {}
local PlayersTransformingCoke = {}
local PlayersSellingCoke = {}
local PlayersHarvestingMeth = {}
local PlayersTransformingMeth = {}
local PlayersSellingMeth = {}
local PlayersHarvestingWeed = {}
local PlayersTransformingWeed = {}
local PlayersSellingWeed = {}
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
function CountCops()
local xPlayers = ESX.GetPlayers()
CopsConnected = 0
for k,v in pairs(xPlayers) do
if v.job.name == 'police' then
CopsConnected = CopsConnected + 1
end
end
SetTimeout(5000, CountCops)
end
CountCops()
local function HarvestCoke(source)
if CopsConnected < Config.RequiredCopsCoke then
TriggerClientEvent('esx:showNotification', source, 'Action ~r~impossible~s~, ~b~policiers~s~: ' .. CopsConnected .. '/' .. Config.RequiredCopsCoke)
return
end
SetTimeout(5000, function()
if PlayersHarvestingCoke[source] == true then
local xPlayer = ESX.GetPlayerFromId(source)
local coke = xPlayer.getInventoryItem('coke')
if coke.limit ~= -1 and coke.count >= coke.limit then
TriggerClientEvent('esx:showNotification', source, 'Vous ne pouvez plus ramasser de Cocaine, votre inventaire est ~r~plein~s~')
else
xPlayer.addInventoryItem('coke', 1)
HarvestCoke(source)
end
end
end)
end
RegisterServerEvent('esx_drugs:startHarvestCoke')
AddEventHandler('esx_drugs:startHarvestCoke', function()
local _source = source
PlayersHarvestingCoke[_source] = true
TriggerClientEvent('esx:showNotification', _source, '~y~Ramassage en cours~s~...')
HarvestCoke(source)
end)
RegisterServerEvent('esx_drugs:stopHarvestCoke')
AddEventHandler('esx_drugs:stopHarvestCoke', function()
local _source = source
PlayersHarvestingCoke[_source] = false
end)
local function TransformCoke(source)
if CopsConnected < Config.RequiredCopsCoke then
TriggerClientEvent('esx:showNotification', source, 'Action ~r~impossible~s~, ~b~policiers~s~: ' .. CopsConnected .. '/' .. Config.RequiredCopsCoke)
return
end
SetTimeout(10000, function()
if PlayersTransformingCoke[source] == true then
local xPlayer = ESX.GetPlayerFromId(source)
local cokeQuantity = xPlayer.getInventoryItem('coke').count
local poochQuantity = xPlayer.getInventoryItem('coke_pooch').count
if poochQuantity > 35 then
TriggerClientEvent('esx:showNotification', source, 'Vous avez trop de pochons')
elseif cokeQuantity < 5 then
TriggerClientEvent('esx:showNotification', source, 'Vous n\'avez pas assez de feuille de coca à ~r~conditionner~s~')
else
xPlayer.removeInventoryItem('coke', 5)
xPlayer.addInventoryItem('coke_pooch', 1)
TransformCoke(source)
end
end
end)
end
RegisterServerEvent('esx_drugs:startTransformCoke')
AddEventHandler('esx_drugs:startTransformCoke', function()
local _source = source
PlayersTransformingCoke[_source] = true
TriggerClientEvent('esx:showNotification', _source, '~y~Conditonnement en cours~s~...')
TransformCoke(source)
end)
RegisterServerEvent('esx_drugs:stopTransformCoke')
AddEventHandler('esx_drugs:stopTransformCoke', function()
local _source = source
PlayersTransformingCoke[_source] = false
end)
local function SellCoke(source)
if CopsConnected < Config.RequiredCopsCoke then
TriggerClientEvent('esx:showNotification', source, 'Action ~r~impossible~s~, ~b~policiers~s~: ' .. CopsConnected .. '/' .. Config.RequiredCopsCoke)
return
end
SetTimeout(7500, function()
if PlayersSellingCoke[source] == true then
local xPlayer = ESX.GetPlayerFromId(source)
local poochQuantity = xPlayer.getInventoryItem('coke_pooch').count
if poochQuantity == 0 then
TriggerClientEvent('esx:showNotification', source, 'Vous n\'avez plus de pochons à ~r~vendre~s~')
else
xPlayer.removeInventoryItem('coke_pooch', 1)
if CopsConnected == 0 then
xPlayer.addAccountMoney('black_money', 198)
TriggerClientEvent('esx:showNotification', source, 'Vous avez vendu ~g~x1 Pochon de coke~s~')
elseif CopsConnected == 1 then
xPlayer.addAccountMoney('black_money', 258)
TriggerClientEvent('esx:showNotification', source, 'Vous avez vendu ~g~x1 Pochon de coke~s~')
elseif CopsConnected == 2 then
xPlayer.addAccountMoney('black_money', 308)
TriggerClientEvent('esx:showNotification', source, 'Vous avez vendu ~g~x1 Pochon de coke~s~')
elseif CopsConnected == 3 then
xPlayer.addAccountMoney('black_money', 358)
TriggerClientEvent('esx:showNotification', source, 'Vous avez vendu ~g~x1 Pochon de coke~s~')
elseif CopsConnected == 4 then
xPlayer.addAccountMoney('black_money', 396)
TriggerClientEvent('esx:showNotification', source, 'Vous avez vendu ~g~x1 Pochon de coke~s~')
elseif CopsConnected >= 5 then
xPlayer.addAccountMoney('black_money', 428)
TriggerClientEvent('esx:showNotification', source, 'Vous avez vendu ~g~x1 Pochon de coke~s~')
end
SellCoke(source)
end
end
end)
end
RegisterServerEvent('esx_drugs:startSellCoke')
AddEventHandler('esx_drugs:startSellCoke', function()
local _source = source
PlayersSellingCoke[_source] = true
TriggerClientEvent('esx:showNotification', _source, '~g~Vente en cours~s~...')
SellCoke(source)
end)
RegisterServerEvent('esx_drugs:stopSellCoke')
AddEventHandler('esx_drugs:stopSellCoke', function()
local _source = source
PlayersSellingCoke[_source] = false
end)
local function HarvestMeth(source)
if CopsConnected < Config.RequiredCopsMeth then
TriggerClientEvent('esx:showNotification', source, 'Action ~r~impossible~s~, ~b~policiers~s~: ' .. CopsConnected .. '/' .. Config.RequiredCopsMeth)
return
end
SetTimeout(5000, function()
if PlayersHarvestingMeth[source] == true then
local xPlayer = ESX.GetPlayerFromId(source)
local meth = xPlayer.getInventoryItem('meth')
if meth.limit ~= -1 and meth.count >= meth.limit then
TriggerClientEvent('esx:showNotification', source, 'Vous ne pouvez plus ramasser de Meth, votre inventaire est ~r~plein~s~')
else
xPlayer.addInventoryItem('meth', 1)
HarvestMeth(source)
end
end
end)
end
RegisterServerEvent('esx_drugs:startHarvestMeth')
AddEventHandler('esx_drugs:startHarvestMeth', function()
local _source = source
PlayersHarvestingMeth[_source] = true
TriggerClientEvent('esx:showNotification', _source, '~y~Ramassage en cours~s~...')
HarvestMeth(source)
end)
RegisterServerEvent('esx_drugs:stopHarvestMeth')
AddEventHandler('esx_drugs:stopHarvestMeth', function()
local _source = source
PlayersHarvestingMeth[_source] = false
end)
local function TransformMeth(source)
if CopsConnected < Config.RequiredCopsMeth then
TriggerClientEvent('esx:showNotification', source, 'Action ~r~impossible~s~, ~b~policiers~s~: ' .. CopsConnected .. '/' .. Config.RequiredCopsMeth)
return
end
SetTimeout(12000, function()
if PlayersTransformingMeth[source] == true then
local xPlayer = ESX.GetPlayerFromId(source)
local methQuantity = xPlayer.getInventoryItem('meth').count
local pochonQuantity = xPlayer.getInventoryItem('meth_pooch').count
if pochonQuantity > 35 then
TriggerClientEvent('esx:showNotification', source, 'Vous avez trop de pochons')
elseif methQuantity < 5 then
TriggerClientEvent('esx:showNotification', source, 'Vous n\'avez pas assez de Meth à ~r~conditionner~s~')
else
xPlayer.removeInventoryItem('meth', 5)
xPlayer.addInventoryItem('meth_pochon', 1)
TransformMeth(source)
end
end
end)
end
RegisterServerEvent('esx_drugs:startTransformMeth')
AddEventHandler('esx_drugs:startTransformMeth', function()
local _source = source
PlayersTransformingMeth[_source] = true
TriggerClientEvent('esx:showNotification', _source, '~y~Conditonnement en cours~s~...')
TransformMeth(source)
end)
RegisterServerEvent('esx_drugs:stopTransformMeth')
AddEventHandler('esx_drugs:stopTransformMeth', function()
local _source = source
PlayersTransformingMeth[_source] = false
end)
local function SellMeth(source)
if CopsConnected < Config.RequiredCopsMeth then
TriggerClientEvent('esx:showNotification', source, 'Action ~r~impossible~s~, ~b~policiers~s~: ' .. CopsConnected .. '/' .. Config.RequiredCopsMeth)
return
end
SetTimeout(7500, function()
if PlayersSellingMeth[source] == true then
local xPlayer = ESX.GetPlayerFromId(source)
local pochonQuantity = xPlayer.getInventoryItem('meth_pooch').count
if pochonQuantity == 0 then
TriggerClientEvent('esx:showNotification', source, 'Vous n\'avez plus de pochons à ~r~vendre~s~')
else
xPlayer.removeInventoryItem('meth_pochon', 1)
if CopsConnected == 0 then
xPlayer.addAccountMoney('black_money', 276)
TriggerClientEvent('esx:showNotification', source, 'Vous avez vendu ~g~x1 Pochon de meth~s~')
elseif CopsConnected == 1 then
xPlayer.addAccountMoney('black_money', 374)
TriggerClientEvent('esx:showNotification', source, 'Vous avez vendu ~g~x1 Pochon de meth~s~')
elseif CopsConnected == 2 then
xPlayer.addAccountMoney('black_money', 474)
TriggerClientEvent('esx:showNotification', source, 'Vous avez vendu ~g~x1 Pochon de meth~s~')
elseif CopsConnected == 3 then
xPlayer.addAccountMoney('black_money', 552)
TriggerClientEvent('esx:showNotification', source, 'Vous avez vendu ~g~x1 Pochon de meth~s~')
elseif CopsConnected == 4 then
xPlayer.addAccountMoney('black_money', 616)
TriggerClientEvent('esx:showNotification', source, 'Vous avez vendu ~g~x1 Pochon de meth~s~')
elseif CopsConnected == 5 then
xPlayer.addAccountMoney('black_money', 654)
TriggerClientEvent('esx:showNotification', source, 'Vous avez vendu ~g~x1 Pochon de meth~s~')
elseif CopsConnected >= 6 then
xPlayer.addAccountMoney('black_money', 686)
TriggerClientEvent('esx:showNotification', source, 'Vous avez vendu ~g~x1 Pochon de meth~s~')
end
SellMeth(source)
end
end
end)
end
RegisterServerEvent('esx_drugs:startSellMeth')
AddEventHandler('esx_drugs:startSellMeth', function()
local _source = source
PlayersSellingMeth[_source] = true
TriggerClientEvent('esx:showNotification', _source, '~g~Vente en cours~s~...')
SellMeth(source)
end)
RegisterServerEvent('esx_drugs:stopSellMeth')
AddEventHandler('esx_drugs:stopSellMeth', function()
local _source = source
PlayersSellingMeth[_source] = false
end)
local function HarvestWeed(source)
if CopsConnected < Config.RequiredCopsWeed then
TriggerClientEvent('esx:showNotification', source, 'Action ~r~impossible~s~, ~b~policiers~s~: ' .. CopsConnected .. '/' .. Config.RequiredCopsWeed)
return
end
SetTimeout(5000, function()
if PlayersHarvestingWeed[source] == true then
local xPlayer = ESX.GetPlayerFromId(source)
local weed = xPlayer.getInventoryItem('weed')
if weed.limit ~= -1 and weed.count >= weed.limit then
TriggerClientEvent('esx:showNotification', source, 'Vous ne pouvez plus ramasser de weed, votre inventaire est ~r~plein~s~')
else
xPlayer.addInventoryItem('weed', 1)
HarvestWeed(source)
end
end
end)
end
RegisterServerEvent('esx_drugs:startHarvestWeed')
AddEventHandler('esx_drugs:startHarvestWeed', function()
local _source = source
PlayersHarvestingWeed[_source] = true
TriggerClientEvent('esx:showNotification', _source, '~y~Ramassage en cours~s~...')
HarvestWeed(source)
end)
RegisterServerEvent('esx_drugs:stopHarvestWeed')
AddEventHandler('esx_drugs:stopHarvestWeed', function()
local _source = source
PlayersHarvestingWeed[_source] = false
end)
local function TransformWeed(source)
if CopsConnected < Config.RequiredCopsWeed then
TriggerClientEvent('esx:showNotification', source, 'Action ~r~impossible~s~, ~b~policiers~s~: ' .. CopsConnected .. '/' .. Config.RequiredCopsWeed)
return
end
SetTimeout(7500, function()
if PlayersTransformingWeed[source] == true then
local xPlayer = ESX.GetPlayerFromId(source)
local weedQuantity = xPlayer.getInventoryItem('weed').count
local poochQuantity = xPlayer.getInventoryItem('weed_pooch').count
if poochQuantity > 35 then
TriggerClientEvent('esx:showNotification', source, 'Vous avez trop de pochons')
elseif weedQuantity < 5 then
TriggerClientEvent('esx:showNotification', source, 'Vous n\'avez pas assez de weed à ~r~conditionner~s~')
else
xPlayer.removeInventoryItem('weed', 5)
xPlayer.addInventoryItem('weed_pooch', 1)
TransformWeed(source)
end
end
end)
end
RegisterServerEvent('esx_drugs:startTransformWeed')
AddEventHandler('esx_drugs:startTransformWeed', function()
local _source = source
PlayersTransformingWeed[_source] = true
TriggerClientEvent('esx:showNotification', _source, '~y~Conditonnement en cours~s~...')
TransformWeed(source)
end)
RegisterServerEvent('esx_drugs:stopTransformWeed')
AddEventHandler('esx_drugs:stopTransformWeed', function()
local _source = source
PlayersTransformingWeed[_source] = false
end)
local function SellWeed(source)
if CopsConnected < Config.RequiredCopsWeed then
TriggerClientEvent('esx_weedjob:showNotification', source, 'Action ~r~impossible~s~, ~b~policiers~s~: ' .. CopsConnected .. '/' .. Config.RequiredCopsWeed)
return
end
SetTimeout(7500, function()
if PlayersSellingWeed[source] == true then
local xPlayer = ESX.GetPlayerFromId(source)
local poochQuantity = xPlayer.getInventoryItem('weed_pooch').count
if poochQuantity == 0 then
TriggerClientEvent('esx:showNotification', source, 'Vous n\'avez plus de pochons à ~r~vendre~s~')
else
xPlayer:removeInventoryItem('weed_pooch', 1)
if CopsConnected == 0 then
xPlayer.addAccountMoney('black_money', 108)
TriggerClientEvent('esx:showNotification', source, 'Vous avez vendu ~g~x1 Pochon de weed~s~')
elseif CopsConnected == 1 then
xPlayer.addAccountMoney('black_money', 128)
TriggerClientEvent('esx:showNotification', source, 'Vous avez vendu ~g~x1 Pochon de weed~s~')
elseif CopsConnected == 2 then
xPlayer.addAccountMoney('black_money', 152)
TriggerClientEvent('esx:showNotification', source, 'Vous avez vendu ~g~x1 Pochon de weed~s~')
elseif CopsConnected == 3 then
xPlayer.addAccountMoney('black_money', 165)
TriggerClientEvent('esx:showNotification', source, 'Vous avez vendu ~g~x1 Pochon de weed~s~')
elseif CopsConnected >= 4 then
xPlayer.addAccountMoney('black_money', 180)
TriggerClientEvent('esx:showNotification', source, 'Vous avez vendu ~g~x1 Pochon de weed~s~')
end
SellWeed(source)
end
end
end)
end
RegisterServerEvent('esx_drugs:startSellWeed')
AddEventHandler('esx_drugs:startSellWeed', function()
local _source = source
PlayersSellingWeed[_source] = true
TriggerClientEvent('esx:showNotification', _source, '~g~Vente en cours~s~...')
SellWeed(source)
end)
RegisterServerEvent('esx_drugs:stopSellWeed')
AddEventHandler('esx_drugs:stopSellWeed', function()
local _source = source
PlayersSellingWeed[_source] = false
end)
-- RETURN INVENTORY TO CLIENT
RegisterServerEvent('esx_drugs:GetUserInventory')
AddEventHandler('esx_drugs:GetUserInventory', function(currentZone)
local _source = source
local xPlayer = ESX.GetPlayerFromId(_source)
TriggerClientEvent('esx_drugs:ReturnInventory', _source, xPlayer.getInventoryItem('coke').count, xPlayer.getInventoryItem('coke_pooch').count,
xPlayer.getInventoryItem('meth').count, xPlayer.getInventoryItem('meth_pooch').count,
xPlayer.getInventoryItem('weed').count, xPlayer.getInventoryItem('weed_pooch').count, xPlayer.job.name, currentZone)
end)
-- Register Usable Item
ESX.RegisterUsableItem('weed', function(source)
local _source = source
local xPlayer = ESX.GetPlayerFromId(source)
xPlayer.removeInventoryItem('weed', 1)
TriggerClientEvent('esx_drugs:onPot', _source)
TriggerClientEvent('esx:showNotification', _source, 'Vous avez utilisé 1 de ~b~Weed')
end)