mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-08-31 21:01:43 +00:00
Add files via upload
This commit is contained in:
@@ -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'
|
||||
@@ -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
@@ -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}
|
||||
}
|
||||
@@ -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')
|
||||
;
|
||||
@@ -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)
|
||||
Reference in New Issue
Block a user