1
0
Fork 0
forked from Simnation/Main
Main/resources/[qb]/qb-adminmenu/client/events.lua

163 lines
5.5 KiB
Lua
Raw Permalink Normal View History

2025-06-07 08:51:21 +02:00
-- Variables
local blockedPeds = {
'mp_m_freemode_01',
'mp_f_freemode_01',
'tony',
'g_m_m_chigoon_02_m',
'u_m_m_jesus_01',
'a_m_y_stbla_m',
'ig_terry_m',
'a_m_m_ktown_m',
'a_m_y_skater_m',
'u_m_y_coop',
'ig_car3guy1_m',
}
local lastSpectateCoord = nil
local isSpectating = false
-- Events
RegisterNetEvent('qb-admin:client:spectate', function(targetPed)
QBCore.Functions.TriggerCallback('qb-admin:isAdmin', function(isAdmin)
if not isAdmin then return end
local myPed = PlayerPedId()
local targetplayer = GetPlayerFromServerId(targetPed)
local target = GetPlayerPed(targetplayer)
if not isSpectating then
isSpectating = true
SetEntityVisible(myPed, false) -- Set invisible
SetEntityCollision(myPed, false, false) -- Set collision
SetEntityInvincible(myPed, true) -- Set invincible
NetworkSetEntityInvisibleToNetwork(myPed, true) -- Set invisibility
lastSpectateCoord = GetEntityCoords(myPed) -- save my last coords
NetworkSetInSpectatorMode(true, target) -- Enter Spectate Mode
else
isSpectating = false
NetworkSetInSpectatorMode(false, target) -- Remove From Spectate Mode
NetworkSetEntityInvisibleToNetwork(myPed, false) -- Set Visible
SetEntityCollision(myPed, true, true) -- Set collision
SetEntityCoords(myPed, lastSpectateCoord) -- Return Me To My Coords
SetEntityVisible(myPed, true) -- Remove invisible
SetEntityInvincible(myPed, false) -- Remove godmode
lastSpectateCoord = nil -- Reset Last Saved Coords
end
end)
end)
RegisterNetEvent('qb-admin:client:SendReport', function(name, src, msg)
TriggerServerEvent('qb-admin:server:SendReport', name, src, msg)
end)
local function getVehicleFromVehList(hash)
for _, v in pairs(QBCore.Shared.Vehicles) do
if hash == v.hash then
return v.model
end
end
end
RegisterNetEvent('qb-admin:client:SaveCar', function()
QBCore.Functions.TriggerCallback('qb-admin:isAdmin', function(isAdmin)
if not isAdmin then return end
local ped = PlayerPedId()
local veh = GetVehiclePedIsIn(ped)
if veh ~= nil and veh ~= 0 then
local plate = QBCore.Functions.GetPlate(veh)
local props = QBCore.Functions.GetVehicleProperties(veh)
local hash = props.model
local vehname = getVehicleFromVehList(hash)
if QBCore.Shared.Vehicles[vehname] ~= nil and next(QBCore.Shared.Vehicles[vehname]) ~= nil then
TriggerServerEvent('qb-admin:server:SaveCar', props, QBCore.Shared.Vehicles[vehname], GetHashKey(veh), plate)
else
QBCore.Functions.Notify(Lang:t('error.no_store_vehicle_garage'), 'error')
end
else
QBCore.Functions.Notify(Lang:t('error.no_vehicle'), 'error')
end
end)
end)
local function LoadPlayerModel(skin)
RequestModel(skin)
while not HasModelLoaded(skin) do
Wait(0)
end
end
local function isPedAllowedRandom(skin)
local retval = false
for _, v in pairs(blockedPeds) do
if v ~= skin then
retval = true
end
end
return retval
end
RegisterNetEvent('qb-admin:client:SetModel', function(skin)
QBCore.Functions.TriggerCallback('qb-admin:isAdmin', function(isAdmin)
if not isAdmin then return end
local ped = PlayerPedId()
local model = GetHashKey(skin)
SetEntityInvincible(ped, true)
if IsModelInCdimage(model) and IsModelValid(model) then
LoadPlayerModel(model)
SetPlayerModel(PlayerId(), model)
if isPedAllowedRandom(skin) then
SetPedRandomComponentVariation(ped, true)
end
SetModelAsNoLongerNeeded(model)
end
SetEntityInvincible(ped, false)
end)
end)
RegisterNetEvent('qb-admin:client:SetSpeed', function(speed)
QBCore.Functions.TriggerCallback('qb-admin:isAdmin', function(isAdmin)
if not isAdmin then return end
local ped = PlayerId()
if speed == 'fast' then
SetRunSprintMultiplierForPlayer(ped, 1.49)
SetSwimMultiplierForPlayer(ped, 1.49)
else
SetRunSprintMultiplierForPlayer(ped, 1.0)
SetSwimMultiplierForPlayer(ped, 1.0)
end
end)
end)
RegisterNetEvent('qb-admin:client:GiveNuiFocus', function(focus, mouse)
SetNuiFocus(focus, mouse)
end)
local performanceModIndices = { 11, 12, 13, 15, 16 }
function PerformanceUpgradeVehicle(vehicle, customWheels)
customWheels = customWheels or false
local max
if DoesEntityExist(vehicle) and IsEntityAVehicle(vehicle) then
SetVehicleModKit(vehicle, 0)
for _, modType in ipairs(performanceModIndices) do
max = GetNumVehicleMods(vehicle, tonumber(modType)) - 1
SetVehicleMod(vehicle, modType, max, customWheels)
end
ToggleVehicleMod(vehicle, 18, true) -- Turbo
SetVehicleFixed(vehicle)
end
end
RegisterNetEvent('qb-admin:client:maxmodVehicle', function()
QBCore.Functions.TriggerCallback('qb-admin:isAdmin', function(isAdmin)
if not isAdmin then return end
local vehicle = GetVehiclePedIsIn(PlayerPedId())
PerformanceUpgradeVehicle(vehicle)
end)
end)