Scripts/resources/[qb]/[qb_extras]/qb-gym/client/skills.lua
2024-12-29 21:07:50 +01:00

68 lines
1.9 KiB
Lua

local QBCore = exports['qb-core']:GetCoreObject()
RegisterNetEvent('QBCore:Client:OnPlayerLoaded', function()
Citizen.CreateThread(function()
FetchSkills()
while true do
local seconds = Config.UpdateFrequency * 1000
Citizen.Wait(seconds)
for skill, value in pairs(Config.Skills) do
UpdateSkill(skill, value["RemoveAmount"])
end
TriggerServerEvent("skillsystem:update", json.encode(Config.Skills))
end
end)
RegisterNetEvent('QBCore:Client:OnPlayerUnload', function()
for skill, value in pairs(Config.Skills) do
Config.Skills[skill]["Current"] = 0
end
end)
Citizen.CreateThread(function()
while true do
Citizen.Wait(25000) -- the value for the test - default 60000
local ped = PlayerPedId()
local vehicle = GetVehiclePedIsUsing(ped)
local isDead = QBCore.Functions.GetPlayerData().metadata["isdead"]
local islaststand = QBCore.Functions.GetPlayerData().metadata["islaststand"]
if LocalPlayer.state.isLoggedIn and not isDead and not islaststand then
if IsPedRunning(ped) then
UpdateSkill("Stamina", 0.1)
elseif IsPedInMeleeCombat(ped) then
UpdateSkill("Strength", 0.2)
elseif IsPedSwimmingUnderWater(ped) then
UpdateSkill("LungCapacity", 0.5)
elseif IsPedShooting(ped) then
UpdateSkill("Shooting", 0.1)
elseif DoesEntityExist(vehicle) and GetPedInVehicleSeat(vehicle, -1) == ped then
local speed = GetEntitySpeed(vehicle) * 3.6
if GetVehicleClass(vehicle) == 8 or GetVehicleClass(vehicle) == 13 and speed >= 5 then
local rotation = GetEntityRotation(vehicle)
if IsControlPressed(0, 210) then
if rotation.x >= 25.0 then
UpdateSkill("Wheelie", 0.2)
end
end
end
if speed >= 80 then
UpdateSkill("Driving", 0.1)
end
end
end
end
end)
end)
AddEventHandler('onResourceStart', function(resource)
if resource == GetCurrentResourceName() then
Wait(100)
FetchSkills()
end
end)