529 lines
		
	
	
	
		
			20 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			529 lines
		
	
	
	
		
			20 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| -- Variables
 | |
| 
 | |
| local QBCore = exports['qb-core']:GetCoreObject()
 | |
| local alcoholCount = 0
 | |
| local healing, parachuteEquipped = false, false
 | |
| local currVest, currVestTexture = nil, nil
 | |
| 
 | |
| -- Functions
 | |
| RegisterNetEvent('QBCore:Client:UpdateObject', function()
 | |
|     QBCore = exports['qb-core']:GetCoreObject()
 | |
| end)
 | |
| 
 | |
| local function loadAnimDict(dict)
 | |
|     if HasAnimDictLoaded(dict) then return end
 | |
|     RequestAnimDict(dict)
 | |
|     while not HasAnimDictLoaded(dict) do
 | |
|         Wait(10)
 | |
|     end
 | |
| end
 | |
| 
 | |
| local function equipParachuteAnim()
 | |
|     loadAnimDict('clothingshirt')
 | |
|     TaskPlayAnim(PlayerPedId(), 'clothingshirt', 'try_shirt_positive_d', 8.0, 1.0, -1, 49, 0, false, false, false)
 | |
| end
 | |
| 
 | |
| local function healOxy()
 | |
|     if healing then return end
 | |
| 
 | |
|     healing = true
 | |
| 
 | |
|     local count = 9
 | |
|     while count > 0 do
 | |
|         Wait(1000)
 | |
|         count -= 1
 | |
|         SetEntityHealth(PlayerPedId(), GetEntityHealth(PlayerPedId()) + 6)
 | |
|     end
 | |
|     healing = false
 | |
| end
 | |
| 
 | |
| local function trevorEffect()
 | |
|     StartScreenEffect('DrugsTrevorClownsFightIn', 3.0, 0)
 | |
|     Wait(3000)
 | |
|     StartScreenEffect('DrugsTrevorClownsFight', 3.0, 0)
 | |
|     Wait(3000)
 | |
|     StartScreenEffect('DrugsTrevorClownsFightOut', 3.0, 0)
 | |
|     StopScreenEffect('DrugsTrevorClownsFight')
 | |
|     StopScreenEffect('DrugsTrevorClownsFightIn')
 | |
|     StopScreenEffect('DrugsTrevorClownsFightOut')
 | |
| end
 | |
| 
 | |
| local function methBagEffect()
 | |
|     local startStamina = 8
 | |
|     trevorEffect()
 | |
|     SetRunSprintMultiplierForPlayer(PlayerId(), 1.49)
 | |
|     while startStamina > 0 do
 | |
|         Wait(1000)
 | |
|         if math.random(5, 100) < 10 then
 | |
|             RestorePlayerStamina(PlayerId(), 1.0)
 | |
|         end
 | |
|         startStamina = startStamina - 1
 | |
|         if math.random(5, 100) < 51 then
 | |
|             trevorEffect()
 | |
|         end
 | |
|     end
 | |
|     SetRunSprintMultiplierForPlayer(PlayerId(), 1.0)
 | |
| end
 | |
| 
 | |
| local function ecstasyEffect()
 | |
|     local startStamina = 30
 | |
|     SetFlash(0, 0, 500, 7000, 500)
 | |
|     while startStamina > 0 do
 | |
|         Wait(1000)
 | |
|         startStamina -= 1
 | |
|         RestorePlayerStamina(PlayerId(), 1.0)
 | |
|         if math.random(1, 100) < 51 then
 | |
|             SetFlash(0, 0, 500, 7000, 500)
 | |
|             ShakeGameplayCam('SMALL_EXPLOSION_SHAKE', 0.08)
 | |
|         end
 | |
|     end
 | |
|     if IsPedRunning(PlayerPedId()) then
 | |
|         SetPedToRagdoll(PlayerPedId(), math.random(1000, 3000), math.random(1000, 3000), 3, false, false, false)
 | |
|     end
 | |
| end
 | |
| 
 | |
| local function alienEffect()
 | |
|     StartScreenEffect('DrugsMichaelAliensFightIn', 3.0, 0)
 | |
|     Wait(math.random(5000, 8000))
 | |
|     StartScreenEffect('DrugsMichaelAliensFight', 3.0, 0)
 | |
|     Wait(math.random(5000, 8000))
 | |
|     StartScreenEffect('DrugsMichaelAliensFightOut', 3.0, 0)
 | |
|     StopScreenEffect('DrugsMichaelAliensFightIn')
 | |
|     StopScreenEffect('DrugsMichaelAliensFight')
 | |
|     StopScreenEffect('DrugsMichaelAliensFightOut')
 | |
| end
 | |
| 
 | |
| local function crackBaggyEffect()
 | |
|     local startStamina = 8
 | |
|     local ped = PlayerPedId()
 | |
|     alienEffect()
 | |
|     SetRunSprintMultiplierForPlayer(PlayerId(), 1.3)
 | |
|     while startStamina > 0 do
 | |
|         Wait(1000)
 | |
|         if math.random(1, 100) < 10 then
 | |
|             RestorePlayerStamina(PlayerId(), 1.0)
 | |
|         end
 | |
|         startStamina -= 1
 | |
|         if math.random(1, 100) < 60 and IsPedRunning(ped) then
 | |
|             SetPedToRagdoll(ped, math.random(1000, 2000), math.random(1000, 2000), 3, false, false, false)
 | |
|         end
 | |
|         if math.random(1, 100) < 51 then
 | |
|             alienEffect()
 | |
|         end
 | |
|     end
 | |
|     if IsPedRunning(ped) then
 | |
|         SetPedToRagdoll(ped, math.random(1000, 3000), math.random(1000, 3000), 3, false, false, false)
 | |
|     end
 | |
|     SetRunSprintMultiplierForPlayer(PlayerId(), 1.0)
 | |
| end
 | |
| 
 | |
| local function cokeBaggyEffect()
 | |
|     local startStamina = 20
 | |
|     local ped = PlayerPedId()
 | |
|     alienEffect()
 | |
|     SetRunSprintMultiplierForPlayer(PlayerId(), 1.1)
 | |
|     while startStamina > 0 do
 | |
|         Wait(1000)
 | |
|         if math.random(1, 100) < 20 then
 | |
|             RestorePlayerStamina(PlayerId(), 1.0)
 | |
|         end
 | |
|         startStamina -= 1
 | |
|         if math.random(1, 100) < 10 and IsPedRunning(ped) then
 | |
|             SetPedToRagdoll(ped, math.random(1000, 3000), math.random(1000, 3000), 3, false, false, false)
 | |
|         end
 | |
|         if math.random(1, 300) < 10 then
 | |
|             alienEffect()
 | |
|             Wait(math.random(3000, 6000))
 | |
|         end
 | |
|     end
 | |
|     if IsPedRunning(ped) then
 | |
|         SetPedToRagdoll(ped, math.random(1000, 3000), math.random(1000, 3000), 3, false, false, false)
 | |
|     end
 | |
|     SetRunSprintMultiplierForPlayer(PlayerId(), 1.0)
 | |
| end
 | |
| 
 | |
| -- Events
 | |
| 
 | |
| RegisterNetEvent('consumables:client:Eat', function(itemName)
 | |
|     QBCore.Functions.Progressbar('eat_something', Lang:t('consumables.eat_progress'), 5000, false, true, {
 | |
|         disableMovement = false,
 | |
|         disableCarMovement = false,
 | |
|         disableMouse = false,
 | |
|         disableCombat = true
 | |
|     }, {
 | |
|         animDict = 'mp_player_inteat@burger',
 | |
|         anim = 'mp_player_int_eat_burger',
 | |
|         flags = 49
 | |
|     }, {
 | |
|         model = 'prop_cs_burger_01',
 | |
|         bone = 60309,
 | |
|         coords = vec3(0.0, 0.0, -0.02),
 | |
|         rotation = vec3(30, 0.0, 0.0),
 | |
|     }, {}, function() -- Done
 | |
|         TriggerEvent('qb-inventory:client:ItemBox', QBCore.Shared.Items[itemName], 'remove')
 | |
|         TriggerServerEvent('consumables:server:addHunger', QBCore.Functions.GetPlayerData().metadata.hunger + Config.Consumables.eat[itemName])
 | |
|         TriggerServerEvent('hud:server:RelieveStress', math.random(2, 4))
 | |
|     end)
 | |
| end)
 | |
| 
 | |
| RegisterNetEvent('consumables:client:Drink', function(itemName)
 | |
|     QBCore.Functions.Progressbar('drink_something', Lang:t('consumables.drink_progress'), 5000, false, true, {
 | |
|         disableMovement = false,
 | |
|         disableCarMovement = false,
 | |
|         disableMouse = false,
 | |
|         disableCombat = true
 | |
|     }, {
 | |
|         animDict = 'mp_player_intdrink',
 | |
|         anim = 'loop_bottle',
 | |
|         flags = 49
 | |
|     }, {
 | |
|         model = 'vw_prop_casino_water_bottle_01a',
 | |
|         bone = 60309,
 | |
|         coords = vec3(0.0, 0.0, -0.05),
 | |
|         rotation = vec3(0.0, 0.0, -40),
 | |
|     }, {}, function() -- Done
 | |
|         TriggerEvent('qb-inventory:client:ItemBox', QBCore.Shared.Items[itemName], 'remove')
 | |
|         TriggerServerEvent('consumables:server:addThirst', QBCore.Functions.GetPlayerData().metadata.thirst + Config.Consumables.drink[itemName])
 | |
|     end)
 | |
| end)
 | |
| 
 | |
| RegisterNetEvent('consumables:client:DrinkAlcohol', function(itemName)
 | |
|     QBCore.Functions.Progressbar('drink_alcohol', Lang:t('consumables.liqour_progress'), math.random(3000, 6000), false, true, {
 | |
|         disableMovement = false,
 | |
|         disableCarMovement = false,
 | |
|         disableMouse = false,
 | |
|         disableCombat = true
 | |
|     }, {
 | |
|         animDict = 'mp_player_intdrink',
 | |
|         anim = 'loop_bottle',
 | |
|         flags = 49
 | |
|     }, {
 | |
|         model = 'prop_cs_beer_bot_40oz',
 | |
|         bone = 60309,
 | |
|         coords = vec3(0.0, 0.0, -0.05),
 | |
|         rotation = vec3(0.0, 0.0, -40),
 | |
|     }, {}, function() -- Done
 | |
|         TriggerEvent('qb-inventory:client:ItemBox', QBCore.Shared.Items[itemName], 'remove')
 | |
|         TriggerServerEvent('consumables:server:drinkAlcohol', itemName)
 | |
|         TriggerServerEvent('consumables:server:addThirst', QBCore.Functions.GetPlayerData().metadata.thirst + Config.Consumables.alcohol[itemName])
 | |
|         TriggerServerEvent('hud:server:RelieveStress', math.random(2, 4))
 | |
|         alcoholCount += 1
 | |
|         AlcoholLoop()
 | |
|         if alcoholCount > 1 and alcoholCount < 4 then
 | |
|             TriggerEvent('evidence:client:SetStatus', 'alcohol', 200)
 | |
|         elseif alcoholCount >= 4 then
 | |
|             TriggerEvent('evidence:client:SetStatus', 'heavyalcohol', 200)
 | |
|         end
 | |
|     end, function() -- Cancel
 | |
|         QBCore.Functions.Notify(Lang:t('consumables.canceled'), 'error')
 | |
|     end)
 | |
| end)
 | |
| 
 | |
| RegisterNetEvent('consumables:client:Custom', function(itemName)
 | |
|     QBCore.Functions.TriggerCallback('consumables:itemdata', function(data)
 | |
|         QBCore.Functions.Progressbar('custom_consumable', data.progress.label, data.progress.time, false, true, {
 | |
|             disableMovement = false,
 | |
|             disableCarMovement = false,
 | |
|             disableMouse = false,
 | |
|             disableCombat = true
 | |
|         }, {
 | |
|             animDict = data.animation.animDict,
 | |
|             anim = data.animation.anim,
 | |
|             flags = data.animation.flags
 | |
|         }, {
 | |
|             model = data.prop.model,
 | |
|             bone = data.prop.bone,
 | |
|             coords = data.prop.coords,
 | |
|             rotation = data.prop.rotation
 | |
|         }, {}, function() -- Done
 | |
|             ClearPedTasks(PlayerPedId())
 | |
|             TriggerEvent('qb-inventory:client:ItemBox', QBCore.Shared.Items[itemName], 'remove')
 | |
|             if data.replenish.type then
 | |
|                 TriggerServerEvent('consumables:server:add' .. data.replenish.type, QBCore.Functions.GetPlayerData().metadata[string.lower(data.replenish.type)] + data.replenish.replenish)
 | |
|             end
 | |
|             if data.replenish.isAlcohol then
 | |
|                 alcoholCount += 1
 | |
|                 AlcoholLoop()
 | |
|                 if alcoholCount > 1 and alcoholCount < 4 then
 | |
|                     TriggerEvent('evidence:client:SetStatus', 'alcohol', 200)
 | |
|                 elseif alcoholCount >= 4 then
 | |
|                     TriggerEvent('evidence:client:SetStatus', 'heavyalcohol', 200)
 | |
|                 end
 | |
|             end
 | |
|             if data.replenish.event then
 | |
|                 TriggerEvent(data.replenish.event)
 | |
|             end
 | |
|         end)
 | |
|     end, itemName)
 | |
| end)
 | |
| 
 | |
| RegisterNetEvent('consumables:client:Cokebaggy', function()
 | |
|     local ped = PlayerPedId()
 | |
|     QBCore.Functions.Progressbar('snort_coke', Lang:t('consumables.coke_progress'), math.random(5000, 8000), false, true, {
 | |
|         disableMovement = false,
 | |
|         disableCarMovement = false,
 | |
|         disableMouse = false,
 | |
|         disableCombat = true,
 | |
|     }, {
 | |
|         animDict = 'switch@trevor@trev_smoking_meth',
 | |
|         anim = 'trev_smoking_meth_loop',
 | |
|         flags = 49,
 | |
|     }, {}, {}, function() -- Done
 | |
|         StopAnimTask(ped, 'switch@trevor@trev_smoking_meth', 'trev_smoking_meth_loop', 1.0)
 | |
|         TriggerServerEvent('consumables:server:useCokeBaggy')
 | |
|         TriggerEvent('qb-inventory:client:ItemBox', QBCore.Shared.Items['cokebaggy'], 'remove')
 | |
|         TriggerEvent('evidence:client:SetStatus', 'widepupils', 200)
 | |
|         cokeBaggyEffect()
 | |
|     end, function() -- Cancel
 | |
|         StopAnimTask(ped, 'switch@trevor@trev_smoking_meth', 'trev_smoking_meth_loop', 1.0)
 | |
|         QBCore.Functions.Notify(Lang:t('consumables.canceled'), 'error')
 | |
|     end)
 | |
| end)
 | |
| 
 | |
| RegisterNetEvent('consumables:client:Crackbaggy', function()
 | |
|     local ped = PlayerPedId()
 | |
|     QBCore.Functions.Progressbar('snort_coke', Lang:t('consumables.crack_progress'), math.random(7000, 10000), false, true, {
 | |
|         disableMovement = false,
 | |
|         disableCarMovement = false,
 | |
|         disableMouse = false,
 | |
|         disableCombat = true,
 | |
|     }, {
 | |
|         animDict = 'switch@trevor@trev_smoking_meth',
 | |
|         anim = 'trev_smoking_meth_loop',
 | |
|         flags = 49,
 | |
|     }, {}, {}, function() -- Done
 | |
|         StopAnimTask(ped, 'switch@trevor@trev_smoking_meth', 'trev_smoking_meth_loop', 1.0)
 | |
|         TriggerServerEvent('consumables:server:useCrackBaggy')
 | |
|         TriggerEvent('qb-inventory:client:ItemBox', QBCore.Shared.Items['crack_baggy'], 'remove')
 | |
|         TriggerEvent('evidence:client:SetStatus', 'widepupils', 300)
 | |
|         crackBaggyEffect()
 | |
|     end, function() -- Cancel
 | |
|         StopAnimTask(ped, 'switch@trevor@trev_smoking_meth', 'trev_smoking_meth_loop', 1.0)
 | |
|         QBCore.Functions.Notify(Lang:t('consumables.canceled'), 'error')
 | |
|     end)
 | |
| end)
 | |
| 
 | |
| RegisterNetEvent('consumables:client:EcstasyBaggy', function()
 | |
|     QBCore.Functions.Progressbar('use_ecstasy', Lang:t('consumables.ecstasy_progress'), 3000, false, true, {
 | |
|         disableMovement = false,
 | |
|         disableCarMovement = false,
 | |
|         disableMouse = false,
 | |
|         disableCombat = true,
 | |
|     }, {
 | |
|         animDict = 'mp_suicide',
 | |
|         anim = 'pill',
 | |
|         flags = 49,
 | |
|     }, {}, {}, function() -- Done
 | |
|         StopAnimTask(PlayerPedId(), 'mp_suicide', 'pill', 1.0)
 | |
|         TriggerServerEvent('consumables:server:useXTCBaggy')
 | |
|         TriggerEvent('qb-inventory:client:ItemBox', QBCore.Shared.Items['xtcbaggy'], 'remove')
 | |
|         ecstasyEffect()
 | |
|     end, function() -- Cancel
 | |
|         StopAnimTask(PlayerPedId(), 'mp_suicide', 'pill', 1.0)
 | |
|         QBCore.Functions.Notify(Lang:t('consumables.canceled'), 'error')
 | |
|     end)
 | |
| end)
 | |
| 
 | |
| RegisterNetEvent('consumables:client:oxy', function()
 | |
|     QBCore.Functions.Progressbar('use_oxy', Lang:t('consumables.healing_progress'), 2000, false, true, {
 | |
|         disableMovement = false,
 | |
|         disableCarMovement = false,
 | |
|         disableMouse = false,
 | |
|         disableCombat = true,
 | |
|     }, {
 | |
|         animDict = 'mp_suicide',
 | |
|         anim = 'pill',
 | |
|         flags = 49,
 | |
|     }, {}, {}, function() -- Done
 | |
|         StopAnimTask(PlayerPedId(), 'mp_suicide', 'pill', 1.0)
 | |
|         TriggerServerEvent('consumables:server:useOxy')
 | |
|         TriggerEvent('qb-inventory:client:ItemBox', QBCore.Shared.Items['oxy'], 'remove')
 | |
|         ClearPedBloodDamage(PlayerPedId())
 | |
|         healOxy()
 | |
|     end, function() -- Cancel
 | |
|         StopAnimTask(PlayerPedId(), 'mp_suicide', 'pill', 1.0)
 | |
|         QBCore.Functions.Notify(Lang:t('consumables.canceled'), 'error')
 | |
|     end)
 | |
| end)
 | |
| 
 | |
| RegisterNetEvent('consumables:client:meth', function()
 | |
|     QBCore.Functions.Progressbar('snort_meth', Lang:t('consumables.meth_progress'), 1500, false, true, {
 | |
|         disableMovement = false,
 | |
|         disableCarMovement = false,
 | |
|         disableMouse = false,
 | |
|         disableCombat = true,
 | |
|     }, {
 | |
|         animDict = 'switch@trevor@trev_smoking_meth',
 | |
|         anim = 'trev_smoking_meth_loop',
 | |
|         flags = 49,
 | |
|     }, {}, {}, function() -- Done
 | |
|         StopAnimTask(PlayerPedId(), 'switch@trevor@trev_smoking_meth', 'trev_smoking_meth_loop', 1.0)
 | |
|         TriggerServerEvent('consumables:server:useMeth')
 | |
|         TriggerEvent('qb-inventory:client:ItemBox', QBCore.Shared.Items['meth'], 'remove')
 | |
|         TriggerEvent('evidence:client:SetStatus', 'widepupils', 300)
 | |
|         TriggerEvent('evidence:client:SetStatus', 'agitated', 300)
 | |
|         methBagEffect()
 | |
|     end, function() -- Cancel
 | |
|         StopAnimTask(PlayerPedId(), 'switch@trevor@trev_smoking_meth', 'trev_smoking_meth_loop', 1.0)
 | |
|         QBCore.Functions.Notify(Lang:t('consumables.canceled'), 'error')
 | |
|     end)
 | |
| end)
 | |
| 
 | |
| RegisterNetEvent('consumables:client:UseJoint', function()
 | |
|     QBCore.Functions.Progressbar('smoke_joint', Lang:t('consumables.joint_progress'), 1500, false, true, {
 | |
|         disableMovement = false,
 | |
|         disableCarMovement = false,
 | |
|         disableMouse = false,
 | |
|         disableCombat = true,
 | |
|     }, {}, {}, {}, function() -- Done
 | |
|         TriggerEvent('qb-inventory:client:ItemBox', QBCore.Shared.Items['joint'], 'remove')
 | |
|         if IsPedInAnyVehicle(PlayerPedId(), false) then
 | |
|             QBCore.Functions.PlayAnim('timetable@gardener@smoking_joint', 'smoke_idle', false)
 | |
|         else
 | |
|             QBCore.Functions.PlayAnim('timetable@gardener@smoking_joint', 'smoke_idle', false)
 | |
|         end
 | |
|         TriggerEvent('evidence:client:SetStatus', 'weedsmell', 300)
 | |
|         TriggerServerEvent('hud:server:RelieveStress', Config.RelieveWeedStress)
 | |
|     end)
 | |
| end)
 | |
| 
 | |
| RegisterNetEvent('consumables:client:UseParachute', function()
 | |
|     equipParachuteAnim()
 | |
|     QBCore.Functions.Progressbar('use_parachute', Lang:t('consumables.use_parachute_progress'), 5000, false, true, {
 | |
|         disableMovement = false,
 | |
|         disableCarMovement = false,
 | |
|         disableMouse = false,
 | |
|         disableCombat = true,
 | |
|     }, {}, {}, {}, function() -- Done
 | |
|         local ped = PlayerPedId()
 | |
|         TriggerEvent('qb-inventory:client:ItemBox', QBCore.Shared.Items['parachute'], 'remove')
 | |
|         GiveWeaponToPed(ped, `GADGET_PARACHUTE`, 1, false, false)
 | |
|         local parachuteData = {
 | |
|             outfitData = { ['bag'] = { item = 7, texture = 0 } } -- Adding Parachute Clothing
 | |
|         }
 | |
|         TriggerEvent('qb-clothing:client:loadOutfit', parachuteData)
 | |
|         parachuteEquipped = true
 | |
|         TaskPlayAnim(ped, 'clothingshirt', 'exit', 8.0, 1.0, -1, 49, 0, false, false, false)
 | |
|     end)
 | |
| end)
 | |
| 
 | |
| RegisterNetEvent('consumables:client:ResetParachute', function()
 | |
|     if parachuteEquipped then
 | |
|         equipParachuteAnim()
 | |
|         QBCore.Functions.Progressbar('reset_parachute', Lang:t('consumables.pack_parachute_progress'), 40000, false, true, {
 | |
|             disableMovement = false,
 | |
|             disableCarMovement = false,
 | |
|             disableMouse = false,
 | |
|             disableCombat = true,
 | |
|         }, {}, {}, {}, function() -- Done
 | |
|             local ped = PlayerPedId()
 | |
|             TriggerEvent('qb-inventory:client:ItemBox', QBCore.Shared.Items['parachute'], 'add')
 | |
|             local parachuteResetData = {
 | |
|                 outfitData = { ['bag'] = { item = 0, texture = 0 } } -- Removing Parachute Clothing
 | |
|             }
 | |
|             TriggerEvent('qb-clothing:client:loadOutfit', parachuteResetData)
 | |
|             TaskPlayAnim(ped, 'clothingshirt', 'exit', 8.0, 1.0, -1, 49, 0, false, false, false)
 | |
|             TriggerServerEvent('consumables:server:AddParachute')
 | |
|             parachuteEquipped = false
 | |
|         end)
 | |
|     else
 | |
|         QBCore.Functions.Notify(Lang:t('consumables.no_parachute'), 'error')
 | |
|     end
 | |
| end)
 | |
| 
 | |
| RegisterNetEvent('consumables:client:UseArmor', function()
 | |
|     if GetPedArmour(PlayerPedId()) >= 75 then
 | |
|         QBCore.Functions.Notify(Lang:t('consumables.armor_full'), 'error')
 | |
|         return
 | |
|     end
 | |
|     QBCore.Functions.Progressbar('use_armor', Lang:t('consumables.armor_progress'), 5000, false, true, {
 | |
|         disableMovement = false,
 | |
|         disableCarMovement = false,
 | |
|         disableMouse = false,
 | |
|         disableCombat = true,
 | |
|     }, {}, {}, {}, function() -- Done
 | |
|         TriggerServerEvent('consumables:server:useArmor')
 | |
|     end)
 | |
| end)
 | |
| 
 | |
| RegisterNetEvent('consumables:client:UseHeavyArmor', function()
 | |
|     if GetPedArmour(PlayerPedId()) == 100 then
 | |
|         QBCore.Functions.Notify(Lang:t('consumables.armor_full'), 'error')
 | |
|         return
 | |
|     end
 | |
|     local ped = PlayerPedId()
 | |
|     local PlayerData = QBCore.Functions.GetPlayerData()
 | |
|     QBCore.Functions.Progressbar('use_heavyarmor', Lang:t('consumables.heavy_armor_progress'), 5000, false, true, {
 | |
|         disableMovement = false,
 | |
|         disableCarMovement = false,
 | |
|         disableMouse = false,
 | |
|         disableCombat = true,
 | |
|     }, {}, {}, {}, function() -- Done
 | |
|         if not Config.Disable.vestDrawable then
 | |
|             if PlayerData.charinfo.gender == 0 then
 | |
|                 currVest = GetPedDrawableVariation(ped, 9)
 | |
|                 currVestTexture = GetPedTextureVariation(ped, 9)
 | |
|                 if GetPedDrawableVariation(ped, 9) == 7 then
 | |
|                     SetPedComponentVariation(ped, 9, 19, GetPedTextureVariation(ped, 9), 2)
 | |
|                 else
 | |
|                     SetPedComponentVariation(ped, 9, 5, 2, 2)
 | |
|                 end
 | |
|             else
 | |
|                 currVest = GetPedDrawableVariation(ped, 30)
 | |
|                 currVestTexture = GetPedTextureVariation(ped, 30)
 | |
|                 SetPedComponentVariation(ped, 9, 30, 0, 2)
 | |
|             end
 | |
|         end
 | |
|         TriggerServerEvent('consumables:server:useHeavyArmor')
 | |
|     end)
 | |
| end)
 | |
| 
 | |
| RegisterNetEvent('consumables:client:ResetArmor', function()
 | |
|     local ped = PlayerPedId()
 | |
|     if currVest ~= nil and currVestTexture ~= nil then
 | |
|         QBCore.Functions.Progressbar('remove_armor', Lang:t('consumables.remove_armor_progress'), 2500, false, true, {
 | |
|             disableMovement = false,
 | |
|             disableCarMovement = false,
 | |
|             disableMouse = false,
 | |
|             disableCombat = true,
 | |
|         }, {}, {}, {}, function() -- Done
 | |
|             SetPedComponentVariation(ped, 9, currVest, currVestTexture, 2)
 | |
|             SetPedArmour(ped, 0)
 | |
|             TriggerEvent('qb-inventory:client:ItemBox', QBCore.Shared.Items['heavyarmor'], 'add')
 | |
|             TriggerServerEvent('consumables:server:resetArmor')
 | |
|         end)
 | |
|     else
 | |
|         QBCore.Functions.Notify(Lang:t('consumables.armor_empty'), 'error')
 | |
|     end
 | |
| end)
 | |
| 
 | |
| -- RegisterNetEvent('consumables:client:UseRedSmoke', function()
 | |
| --     if parachuteEquipped then
 | |
| --         local ped = PlayerPedId()
 | |
| --         SetPlayerParachuteSmokeTrailColor(ped, 255, 0, 0)
 | |
| --         SetPlayerCanLeaveParachuteSmokeTrail(ped, true)
 | |
| --         TriggerEvent("qb-inventory:client:ItemBox", QBCore.Shared.Items["smoketrailred"], "remove")
 | |
| --     else
 | |
| --         QBCore.Functions.Notify("You need to have a paracute to activate smoke!", "error")
 | |
| --     end
 | |
| -- end)
 | |
| 
 | |
| --Threads
 | |
| local looped = false
 | |
| function AlcoholLoop()
 | |
|     if not looped then
 | |
|         looped = true
 | |
|         CreateThread(function()
 | |
|             while true do
 | |
|                 Wait(10)
 | |
|                 if alcoholCount > 0 then
 | |
|                     Wait(1000 * 60 * 15)
 | |
|                     alcoholCount -= 1
 | |
|                 else
 | |
|                     looped = false
 | |
|                     break
 | |
|                 end
 | |
|             end
 | |
|         end)
 | |
|     end
 | |
| end
 | 
