Skip to content

Commit

Permalink
chore: accommodate new core (#11)
Browse files Browse the repository at this point in the history
* chore: accommodate new core

* fix: linting errors
  • Loading branch information
mafewtm authored Oct 13, 2023
1 parent 02e4511 commit 3dc6615
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 55 deletions.
67 changes: 33 additions & 34 deletions client.lua
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
local QBCore = exports['qbx-core']:GetCoreObject()
local isUsingAdvanced
local openingRegister
local openRegisterDict = 'veh@break_in@0h@p_m_one@'
Expand All @@ -14,11 +13,9 @@ local function StartLockpick(bool)
SetCursorLocation(0.5, 0.2)
end

local function LoadAnimDict(dict) while not HasAnimDictLoaded(dict) do RequestAnimDict(dict) Wait(0) end end

local function OpeningRegisterHandler(LockpickTime)
openingRegister = true
LoadAnimDict(openRegisterDict)
lib.requestAnimDict(openRegisterDict)
TaskPlayAnim(cache.ped, openRegisterDict, openRegisterAnim, 3.0, 3.0, -1, 16, 0, false, false, false)
CreateThread(function()
while openingRegister do
Expand All @@ -36,26 +33,12 @@ local function OpeningRegisterHandler(LockpickTime)
end

local function SafeAnim()
LoadAnimDict('amb@prop_human_bum_bin@idle_b')
lib.requestAnimDict('amb@prop_human_bum_bin@idle_b')
TaskPlayAnim(cache.ped, 'amb@prop_human_bum_bin@idle_b', 'idle_d', 8.0, 8.0, -1, 50, 0, false, false, false)
Wait(2500)
TaskPlayAnim(cache.ped, 'amb@prop_human_bum_bin@idle_b', 'exit', 8.0, 8.0, -1, 50, 0, false, false, false)
end

local function DrawText3D(coords, text)
SetTextScale(0.35, 0.35)
SetTextFont(4)
SetTextColour(255, 255, 255, 215)
BeginTextCommandDisplayText("STRING")
SetTextCentre(true)
AddTextComponentSubstringPlayerName(text)
SetDrawOrigin(coords.x, coords.y, coords.z, 0)
EndTextCommandDisplayText(0.0, 0.0)
local factor = (string.len(text)) / 370
DrawRect(0.0, 0.0 + 0.0125, 0.017 + factor, 0.03, 0, 0, 0, 75)
ClearDrawOrigin()
end

lib.callback.register('qbx-storerobbery:client:getAlertChance', function()
local chance = Config.PoliceAlertChance
if GetClockHours() >= 1 and GetClockHours() <= 6 then
Expand All @@ -75,13 +58,20 @@ CreateThread(function()
WaitTime = 0
Nearby = true
if Config.UseDrawText then
if not HasShownText then HasShownText = true exports['qbx-core']:DrawText(Lang:t('text.register_empty')) end
if not HasShownText then
HasShownText = true
lib.showTextUI(Lang:t('text.register_empty'), {position = 'left-center'})
exports['qbx-core']:DrawText()
end
else
DrawText3D(Config.Registers[i].coords, Lang:t('text.register_empty'))
DrawText3D(Lang:t('text.register_empty'), Config.Registers[i].coords)
end
end
end
if not Nearby and HasShownText then HasShownText = false exports['qbx-core']:HideText() end
if not Nearby and HasShownText then
HasShownText = false
lib.hideTextUI()
end
Wait(WaitTime)
end
end)
Expand All @@ -106,13 +96,16 @@ CreateThread(function()
end
end
if Config.UseDrawText then
if not HasShownText then HasShownText = true exports['qbx-core']:DrawText(Text) end
if not HasShownText then
HasShownText = true
lib.showTextUI(Text, {position = 'left-center'})
end
else
DrawText3D(Config.Safes[i].coords, Text)
DrawText3D(Text, Config.Safes[i].coords)
end
end
end
if not Nearby and HasShownText then HasShownText = false exports['qbx-core']:HideText() end
if not Nearby and HasShownText then HasShownText = false lib.hideTextUI() end
Wait(WaitTime)
end
end)
Expand All @@ -125,25 +118,31 @@ end)
RegisterNUICallback('success', function(_, cb)
StartLockpick(false)
OpeningRegisterHandler(Config.OpenRegisterTime)
QBCore.Functions.Progressbar('search_register', Lang:t('text.emptying_the_register'), Config.OpenRegisterTime, false, true, {
disableMovement = true,
disableCarMovement = true,
disableMouse = false,
disableCombat = true,
}, {}, {}, {}, function() -- Done
if lib.progressBar({
duration = Config.OpenRegisterTime,
label = Lang:t('text.emptying_the_register'),
useWhileDead = false,
canCancel = true,
disable = {
move = true,
car = true,
mouse = false,
combat = true
}
}) then -- if completed
openingRegister = false
TriggerServerEvent('qb-storerobbery:server:openregister', true)
end, function() -- Cancel
else -- if canceled
openingRegister = false
TriggerServerEvent('qb-storerobbery:server:cancelledregister')
QBCore.Functions.Notify(Lang:t('error.process_canceled'), 'error')
end)
end
cb('ok')
end)

RegisterNUICallback('fail', function(_, cb)
StartLockpick(false)
if not QBCore.Functions.IsWearingGloves() then
if not IsWearingGloves() then
local FingerDropChance = isUsingAdvanced and math.random(0, 30) or math.random(0, 60)
if FingerDropChance > math.random(0, 100) then TriggerServerEvent('evidence:server:CreateFingerDrop', GetEntityCoords(cache.ped)) end
end
Expand Down
9 changes: 7 additions & 2 deletions fxmanifest.lua
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
fx_version 'cerulean'
game 'gta5'

description 'QBX-Storerobbery'
repository 'https://github.com/Qbox-project/qbx_storerobbery'
version '1.1.1'
repository 'https://github.com/QBCore-Remastered/qb-storerobbery'

ui_page 'html/index.html'

shared_scripts {
'@qbx_core/import.lua',
'configs/default.lua',
'@qb-core/shared/locale.lua',
'@qbx_core/shared/locale.lua',
'locales/en.lua',
'locales/*.lua',
'@ox_lib/init.lua'
Expand All @@ -17,6 +19,8 @@ shared_scripts {
client_script 'client.lua'
server_script 'server.lua'

modules {'qbx_core:utils'}

files {
'html/index.html',
'html/script.js',
Expand All @@ -25,3 +29,4 @@ files {
}

lua54 'yes'
use_experimental_fxv2_oal 'yes'
36 changes: 17 additions & 19 deletions server.lua
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
local QBCore = exports['qbx-core']:GetCoreObject()
local StartedRegister = {}
local StartedSafe = {}
local SafeCodes = {}
local CalledCops = {}
local ITEMS = exports.ox_inventory:Items()

local function GetClosestRegister(Coords)
local ClosestRegisterIndex
Expand Down Expand Up @@ -47,12 +47,12 @@ end
AddEventHandler('lockpicks:UseLockpick', function(PlayerSource, IsAdvanced)
local PlayerCoords = GetEntityCoords(GetPlayerPed(PlayerSource))
local ClosestRegisterIndex = GetClosestRegister(PlayerCoords)
local leoCount = QBCore.Functions.GetDutyCountType('leo')
local leoCount = exports.qbx_core:GetDutyCountType('leo')

if not ClosestRegisterIndex then return end
if Config.Registers[ClosestRegisterIndex].robbed then return end
if leoCount < Config.MinimumCops and Config.NotEnoughCopsNotify then
QBCore.Functions.Notify(PlayerSource, Lang:t('error.no_police', { Required = Config.MinimumCops }), 'error')
exports.qbx_core:Notify(PlayerSource, Lang:t('error.no_police', {Required = Config.MinimumCops}), 'error')
return
end

Expand All @@ -64,21 +64,21 @@ AddEventHandler('lockpicks:UseLockpick', function(PlayerSource, IsAdvanced)
end)

RegisterNetEvent('qb-storerobbery:server:failedregister', function(IsUsingAdvanced)
local Player = QBCore.Functions.GetPlayer(source)
local Player = exports.qbx_core:GetPlayer(source)
local PlayerCoords = GetEntityCoords(GetPlayerPed(source))
local ClosestRegisterIndex = GetClosestRegister(PlayerCoords)
local DeleteChance = IsUsingAdvanced and math.random(0, 30) or math.random(0, 60)

StartedRegister[source] = false
Config.Registers[ClosestRegisterIndex].robbed = false
if DeleteChance > math.random(0, 100) then
QBCore.Functions.Notify(source, Lang:t('error.lockpick_broken'), 'error')
exports.qbx_core:Notify(source, Lang:t('error.lockpick_broken'), 'error')
if IsUsingAdvanced then
Player.Functions.RemoveItem('advancedlockpick', 1)
TriggerClientEvent('inventory:client:ItemBox', source, QBCore.Shared.Items['advancedlockpick'], 'remove')
TriggerClientEvent('inventory:client:ItemBox', source, ITEMS['advancedlockpick'], 'remove')
else
Player.Functions.RemoveItem('lockpick', 1)
TriggerClientEvent('inventory:client:ItemBox', source, QBCore.Shared.Items['lockpick'], 'remove')
TriggerClientEvent('inventory:client:ItemBox', source, ITEMS['lockpick'], 'remove')
end
end
end)
Expand All @@ -96,16 +96,16 @@ RegisterNetEvent('qb-storerobbery:server:cancelledregister', function()
end)

RegisterNetEvent('qb-storerobbery:server:openregister', function(IsDone)
local Player = QBCore.Functions.GetPlayer(source)
local Player = exports.qbx_core:GetPlayer(source)
local PlayerCoords = GetEntityCoords(GetPlayerPed(source))
local ClosestRegisterIndex = GetClosestRegister(PlayerCoords)
local Amount = QBCore.Functions.GetDutyCountType('leo')
local Amount = exports.qbx_core:GetDutyCountType('leo')

if not ClosestRegisterIndex then return end
if #(PlayerCoords - Config.Registers[ClosestRegisterIndex].coords) > 2 then return end
if not StartedRegister[source] then return end
if Amount < Config.MinimumCops and Config.NotEnoughCopsNotify then
QBCore.Functions.Notify(PlayerSource, Lang:t('error.no_police', { Required = Config.MinimumCops }), 'error')
if Amount < Config.MinimumCops and Config.NotEnoughCopsNotify then
exports.qbx_core:Notify(source, Lang:t('error.no_police', {Required = Config.MinimumCops}), 'error')
return
end

Expand All @@ -127,7 +127,7 @@ RegisterNetEvent('qb-storerobbery:server:openregister', function(IsDone)
}
end
Player.Functions.AddItem('stickynote', 1, false, Info)
TriggerClientEvent('inventory:client:ItemBox', source, QBCore.Shared.Items['stickynote'], 'add')
TriggerClientEvent('inventory:client:ItemBox', source, ITEMS['stickynote'], 'add')
end

StartedRegister[source] = false
Expand All @@ -141,11 +141,11 @@ RegisterNetEvent('qb-storerobbery:server:trysafe', function()
local src = GetPlayerPed(source)
local PlayerCoords = GetEntityCoords(src)
local ClosestSafeIndex = GetClosestSafe(PlayerCoords)
local leoCount = QBCore.Functions.GetDutyCountType('leo')
local leoCount = exports.qbx_core:GetDutyCountType('leo')

if not ClosestSafeIndex then return end
if leoCount < Config.MinimumCops and Config.NotEnoughCopsNotify then
QBCore.Functions.Notify(source, Lang:t('error.no_police', { Required = Config.MinimumCops }), 'error')
exports.qbx_core:Notify(source, Lang:t('error.no_police', {Required = Config.MinimumCops}), 'error')
return
end

Expand All @@ -163,7 +163,7 @@ RegisterNetEvent('qb-storerobbery:server:failedsafe', function()
end)

RegisterNetEvent('qb-storerobbery:server:successsafe', function()
local Player = QBCore.Functions.GetPlayer(source)
local Player = exports.qbx_core:GetPlayer(source)
local PlayerCoords = GetEntityCoords(GetPlayerPed(source))
local ClosestSafeIndex = GetClosestSafe(PlayerCoords)
local worthMarkedBills = math.random(Config.SafeReward.MarkedBillsWorth.Min, Config.SafeReward.MarkedBillsWorth.Max)
Expand All @@ -181,10 +181,10 @@ RegisterNetEvent('qb-storerobbery:server:successsafe', function()

if Config.SafeReward.ChanceAtSpecial > math.random(0, 100) then
Player.Functions.AddItem('rolex', math.random(Config.SafeReward.RolexAmount.Min, Config.SafeReward.RolexAmount.Max))
TriggerClientEvent('inventory:client:ItemBox', source, QBCore.Shared.Items['rolex'], 'add')
TriggerClientEvent('inventory:client:ItemBox', source, ITEMS['rolex'], 'add')
if Config.SafeReward.ChanceAtSpecial / 2 > math.random(0, 100) then
Player.Functions.AddItem('goldbar', Config.SafeReward.GoldbarAmount)
TriggerClientEvent('inventory:client:ItemBox', source, QBCore.Shared.Items['goldbar'], 'add')
TriggerClientEvent('inventory:client:ItemBox', source, ITEMS['goldbar'], 'add')
end
end
StartedSafe[source] = false
Expand Down Expand Up @@ -215,5 +215,3 @@ CreateThread(function()
Wait(Config.SafeRefresh.Min)
end
end)

lib.versionCheck('Qbox-project/qb-storerobbery')

0 comments on commit 3dc6615

Please sign in to comment.