init commit

This commit is contained in:
unknown
2023-11-08 17:52:35 -08:00
parent 2e903cb642
commit 5173547b24
14 changed files with 553 additions and 0 deletions
+144
View File
@@ -0,0 +1,144 @@
local currentGear = {
mask = 0,
tank = 0,
oxygen = 0,
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
end
exports.qbx_core:Notify(Lang:t("error.oxygenlevel", {oxygenlevel = oxygenLevel}), 'error')
end)
local function deleteGear()
if currentGear.mask ~= 0 then
DetachEntity(currentGear.mask, false, true)
DeleteEntity(currentGear.mask)
currentGear.mask = 0
end
if currentGear.tank ~= 0 then
DetachEntity(currentGear.tank, false, true)
DeleteEntity(currentGear.tank)
currentGear.tank = 0
end
end
RegisterNetEvent('qb-diving:client:UseGear', function()
if isWearingSuit then
if lib.progressBar({
duration = 5000,
label = Lang:t("info.pullout_suit"),
useWhileDead = false,
canCancel = true,
anim = {
dict = "clothingshirt",
clip = "try_shirt_positive_d",
blendIn = 8.0
}
}) then
SetEnableScuba(cache.ped, false)
SetPedMaxTimeUnderwater(cache.ped, 50.00)
currentGear.enabled = false
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
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
end
if lib.progressBar({
duration = 5000,
label = Lang:t("info.put_suit"),
useWhileDead = false,
canCancel = true,
anim = {
dict = "clothingshirt",
clip = "try_shirt_positive_d",
blendIn = 8.0
}
}) then
deleteGear()
local maskModel = `p_d_scuba_mask_s`
local tankModel = `p_s_scuba_tank_s`
lib.requestModel(maskModel)
lib.requestModel(tankModel)
currentGear.tank = CreateObject(tankModel, 1.0, 1.0, 1.0, true, true, false)
local bone1 = GetPedBoneIndex(cache.ped, 24818)
AttachEntityToEntity(currentGear.tank, cache.ped, bone1, -0.25, -0.25, 0.0, 180.0, 90.0, 0.0, true, true, false, false, 2, true)
currentGear.mask = CreateObject(maskModel, 1.0, 1.0, 1.0, true, true, false)
local bone2 = GetPedBoneIndex(cache.ped, 12844)
AttachEntityToEntity(currentGear.mask, cache.ped, bone2, 0.0, 0.0, 0.0, 180.0, 90.0, 0.0, true, true, false, false, 2, true)
SetEnableScuba(cache.ped, true)
SetPedMaxTimeUnderwater(cache.ped, 2000.00)
currentGear.enabled = true
TriggerServerEvent("InteractSound_SV:PlayOnSource", "breathdivingsuit", 0.25)
CreateThread(function()
while currentGear.enabled do
if IsPedSwimmingUnderWater(cache.ped) and oxygenLevel > 0 then
oxygenLevel -= 1
if oxygenLevel % 10 == 0 and oxygenLevel ~= Config.OxygenLevel then
TriggerServerEvent("InteractSound_SV:PlayOnSource", "breathdivingsuit", 0.25)
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)
end
end
Wait(1000)
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)
end
end)