๐ QB-Jewellery
We can easily integrate this into QB-Jewellery by adding in two things.
Head to qb-jewelery/clients/main.lua
Around line 36 we have the smashVirtine function.
local function smashVitrine(k)
if not firstAlarm then
exports['ps-dispatch']:VangelicoRobbery(camId)
firstAlarm = true
end
Under our police alert lets add in a new line
TriggerServerEvent("qb-jewellery:server:gainXP", 5)
It should now look like this
local function smashVitrine(k)
if not firstAlarm then
exports['ps-dispatch']:VangelicoRobbery(camId)
TriggerServerEvent("qb-jewellery:server:gainXP", 5)
firstAlarm = true
end
QBCore.Functions.TriggerCallback('qb-jewellery:server:getCops', function(cops)
if cops >= Config.RequiredCops then
local animDict = 'missheist_jewel'
local animName = 'smash_case'
local ped = PlayerPedId()
local plyCoords = GetOffsetFromEntityInWorldCoords(ped, 0, 0.6, 0)
local pedWeapon = GetSelectedPedWeapon(ped)
if math.random(1, 100) <= 80 and not QBCore.Functions.IsWearingGloves() then
TriggerServerEvent('evidence:server:CreateFingerDrop', plyCoords)
elseif math.random(1, 100) <= 5 and QBCore.Functions.IsWearingGloves() then
TriggerServerEvent('evidence:server:CreateFingerDrop', plyCoords)
QBCore.Functions.Notify(Lang:t('error.fingerprints'), 'error')
end
smashing = true
QBCore.Functions.Progressbar('smash_vitrine', Lang:t('info.progressbar'), Config.WhitelistedWeapons[pedWeapon]['timeOut'], false, true, {
disableMovement = true,
disableCarMovement = true,
disableMouse = false,
disableCombat = true,
}, {}, {}, {}, function() -- Done
TriggerServerEvent('qb-jewellery:server:vitrineReward', k)
TriggerServerEvent('qb-jewellery:server:setTimeout')
--TriggerServerEvent('police:server:policeAlert', 'Robbery in progress')
smashing = false
TaskPlayAnim(ped, animDict, 'exit', 3.0, 3.0, -1, 2, 0, 0, 0, 0)
end, function() -- Cancel
TriggerServerEvent('qb-jewellery:server:setVitrineState', 'isBusy', false, k)
smashing = false
TaskPlayAnim(ped, animDict, 'exit', 3.0, 3.0, -1, 2, 0, 0, 0, 0)
end)
TriggerServerEvent('qb-jewellery:server:setVitrineState', 'isBusy', true, k)
CreateThread(function()
while smashing do
loadAnimDict(animDict)
TaskPlayAnim(ped, animDict, animName, 3.0, 3.0, -1, 2, 0, 0, 0, 0)
Wait(500)
TriggerServerEvent('InteractSound_SV:PlayOnSource', 'breaking_vitrine_glass', 0.25)
loadParticle()
StartParticleFxLoopedAtCoord('scr_jewel_cab_smash', plyCoords.x, plyCoords.y, plyCoords.z, 0.0, 0.0, 0.0, 1.0, false, false, false, false)
Wait(2500)
end
end)
else
QBCore.Functions.Notify(Lang:t('error.minimum_police', { value = Config.RequiredCops }), 'error')
end
end)
end
Now we need to modify the server sided file.
Scroll all the way to the bottom and add this.
RegisterNetEvent('qb-jewellery:server:gainXP', function(amount)
local src = source
exports["Haptic-Gangs"]:modifypoints(src, "add", amount)
end)
Congratulations, your players will now gain XP for robbing a vangelico
Last updated