This commit is contained in:
Nordi98 2025-07-01 11:20:24 +02:00
parent 7e2451be50
commit 176f249885
23 changed files with 1323 additions and 0 deletions

View file

@ -0,0 +1,78 @@
if GetResourceState('qb-core') ~= 'started' then return end
QBCore = exports['qb-core']:GetCoreObject()
Framework, PlayerLoaded, PlayerData = 'qb', nil, {}

AddStateBagChangeHandler('isLoggedIn', '', function(_bagName, _key, value, _reserved, _replicated)
if value then
PlayerData = QBCore.Functions.GetPlayerData()
else
table.wipe(PlayerData)
end
PlayerLoaded = value
end)

AddEventHandler('onResourceStart', function(resourceName)
if GetCurrentResourceName() ~= resourceName or not LocalPlayer.state.isLoggedIn then return end
PlayerData = QBCore.Functions.GetPlayerData()
PlayerLoaded = true
end)


AddEventHandler('gameEventTriggered', function(event, data)
if event ~= 'CEventNetworkEntityDamage' then return end
local victim, victimDied = data[1], data[4]
if not IsPedAPlayer(victim) then return end
local player = PlayerId()
if victimDied and NetworkGetPlayerIndexFromPed(victim) == player and (IsPedDeadOrDying(victim, true) or IsPedFatallyInjured(victim)) then
TriggerEvent('wasabi_fishing:onPlayerDeath')
end
end)

RegisterNetEvent('QBCore:Client:OnPlayerLoaded', function()
TriggerEvent('wasabi_fishing:onPlayerSpawn')
end)

RegisterNetEvent('QBCore:Player:SetPlayerData', function(newPlayerData)
if source ~= '' and GetInvokingResource() ~= 'qb-core' then return end
PlayerData = newPlayerData
end)

function HasGroup(filter)
local groups = { 'job', 'gang' }
local type = type(filter)

if type == 'string' then
for i = 1, #groups do
local data = PlayerData[groups[i]]

if data.name == filter then
return data.name, data.grade.level
end
end
else
local tabletype = table.type(filter)

if tabletype == 'hash' then
for i = 1, #groups do
local data = PlayerData[groups[i]]
local grade = filter[data.name]

if grade and grade <= data.grade.level then
return data.name, data.grade.level
end
end
elseif tabletype == 'array' then
for i = 1, #filter do
local group = filter[i]

for j = 1, #groups do
local data = PlayerData[groups[j]]

if data.name == group then
return data.name, data.grade.level
end
end
end
end
end
end