refactor: general improvement and cleanup

This commit is contained in:
Manason authored and GitHub committed 2023-11-08 23:23:33 -08:00
1 parent 5173547b24
commit 5b5ba9e1af
3 files changed
+31 -44

No files matched your search

+25 -39
View File
@@ -5,18 +5,17 @@ local currentGear = {
enabled = false
}
local isWearingSuit = false
local oxygenLevel = 0
RegisterNetEvent("qb-diving:client:setoxygenlevel", function()
if oxygenLevel == 0 then
oxygenLevel = Config.OxygenLevel
exports.qbx_core:Notify(Lang:t("success.tube_filled"), 'success')
TriggerServerEvent('qb-diving:server:removeItemAfterFill')
return
lib.callback.register('qbx_divegear:client:fillTank', function()
if oxygenLevel ~= 0 then
exports.qbx_core:Notify(Lang:t("error.oxygenlevel", {oxygenlevel = oxygenLevel}), 'error')
return false
end
exports.qbx_core:Notify(Lang:t("error.oxygenlevel", {oxygenlevel = oxygenLevel}), 'error')
oxygenLevel = Config.OxygenLevel
exports.qbx_core:Notify(Lang:t("success.tube_filled"), 'success')
return true
end)
local function deleteGear()
@@ -33,8 +32,7 @@ local function deleteGear()
end
end
RegisterNetEvent('qb-diving:client:UseGear', function()
if isWearingSuit then
local function takeOffSuit()
if lib.progressBar({
duration = 5000,
label = Lang:t("info.pullout_suit"),
@@ -52,19 +50,17 @@ RegisterNetEvent('qb-diving:client:UseGear', function()
deleteGear()
exports.qbx_core:Notify(Lang:t("success.took_out"))
TriggerServerEvent("InteractSound_SV:PlayOnSource", nil, 0.25)
isWearingSuit = false
oxygenLevel = oxygenLevel
end
ClearPedTasks(cache.ped)
else
end
local function putOnSuit()
if oxygenLevel <= 0 then
exports.qbx_core:Notify(Lang:t("error.need_otube"), 'error')
return
end
isWearingSuit = true
if IsPedSwimming(cache.ped) or cache.vehicle then
exports.qbx_core:Notify(Lang:t("error.not_standing_up"), 'error')
return
@@ -105,40 +101,30 @@ RegisterNetEvent('qb-diving:client:UseGear', function()
elseif oxygenLevel == 0 then
SetEnableScuba(cache.ped, false)
SetPedMaxTimeUnderwater(cache.ped, 1.00)
currentGear.enabled = false
isWearingSuit = false
TriggerServerEvent("InteractSound_SV:PlayOnSource", nil, 0.25)
break
end
end
Wait(1000)
end
end)
CreateThread(function()
while currentGear.enabled do
if IsPedSwimmingUnderWater(cache.ped) then
DrawText2D(oxygenLevel..'⏱', vec2(0.45, 0.90), 1.0, 1.0, 0.45)
end
Wait(0)
end
end)
end
ClearPedTasks(cache.ped)
end
end)
local function DrawText(text)
SetTextFont(4)
SetTextProportional(true)
SetTextScale(0.0, 0.45)
SetTextDropshadow(1, 0, 0, 0, 255)
SetTextEdge(1, 0, 0, 0, 255)
SetTextDropShadow()
SetTextOutline()
BeginTextCommandDisplayText("STRING")
AddTextComponentSubstringPlayerName(text)
EndTextCommandDisplayText(0.45, 0.90)
end
CreateThread(function()
while true do
if currentGear.enabled and isWearingSuit then
if IsPedSwimmingUnderWater(cache.ped) then
DrawText(oxygenLevel..'⏱')
end
end
Wait(0)
RegisterNetEvent('qbx_divegear:client:useGear', function()
if currentGear.enabled then
takeOffSuit()
else
putOnSuit()
end
end)
+2
View File
@@ -10,6 +10,8 @@ shared_script {
'locales/en.lua',
'locales/*.lua',
'config.lua',
'@qbx_core/import.lua',
'qbx_core:utils',
}
server_scripts {
+4 -5
View File
@@ -1,11 +1,10 @@
exports.qbx_core:CreateUseableItem("diving_gear", function(source)
TriggerClientEvent("qb-diving:client:UseGear", source)
TriggerClientEvent('qbx_divegear:client:useGear', source)
end)
exports.qbx_core:CreateUseableItem("diving_fill", function(source)
TriggerClientEvent("qb-diving:client:setoxygenlevel", source)
end)
RegisterNetEvent('qb-diving:server:removeItemAfterFill', function()
local success = lib.callback.await('qbx_divegear:client:fillTank', source)
if success then
exports.ox_inventory:RemoveItem(source, 'diving_fill', 1)
end
end)