From 3cab3cb78229f10ff5f6eda324ca686382ed0f0b Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Thu, 24 Oct 2024 22:55:44 +0100 Subject: [PATCH] feat(es_extended) cache PlayerId and Player Server Id --- [core]/es_extended/client/common.lua | 4 +++- [core]/es_extended/client/functions.lua | 7 +++---- [core]/es_extended/client/main.lua | 18 ++++++++---------- [core]/es_extended/client/modules/actions.lua | 8 ++++---- [core]/es_extended/client/modules/death.lua | 2 +- [core]/esx_multicharacter/client/main.lua | 4 ++-- .../client/modules/multicharacter.lua | 18 ++++++++---------- 7 files changed, 29 insertions(+), 32 deletions(-) diff --git a/[core]/es_extended/client/common.lua b/[core]/es_extended/client/common.lua index a1c1a8da..1da1659b 100644 --- a/[core]/es_extended/client/common.lua +++ b/[core]/es_extended/client/common.lua @@ -1,5 +1,7 @@ Core = {} ESX.PlayerData = {} +ESX.playerId = PlayerId() +ESX.serverId = GetPlayerServerId(PlayerId()) ESX.PlayerLoaded = false Core.Input = {} ESX.UI = {} @@ -19,7 +21,7 @@ CreateThread(function() while not Config.Multichar do Wait(100) - if NetworkIsPlayerActive(PlayerId()) then + if NetworkIsPlayerActive(ESX.playerId) then exports.spawnmanager:setAutoSpawn(false) DoScreenFadeOut(0) Wait(500) diff --git a/[core]/es_extended/client/functions.lua b/[core]/es_extended/client/functions.lua index f0917a01..5f4d6447 100644 --- a/[core]/es_extended/client/functions.lua +++ b/[core]/es_extended/client/functions.lua @@ -60,9 +60,8 @@ end ---@param freeze boolean Whether to freeze the player ---@return nil function Core.FreezePlayer(freeze) - local player = PlayerId() local ped = PlayerPedId() - SetPlayerControl(player, not freeze, 0) + SetPlayerControl(ESX.playerId, not freeze, 0) if freeze then SetEntityCollision(ped, false, false) @@ -571,14 +570,14 @@ end ---@param returnPeds? boolean Whether to return the peds ---@return table function ESX.Game.GetPlayers(onlyOtherPlayers, returnKeyValue, returnPeds) - local players, myPlayer = {}, PlayerId() + local players = {} local active = GetActivePlayers() for i = 1, #active do local currentPlayer = active[i] local ped = GetPlayerPed(currentPlayer) - if DoesEntityExist(ped) and ((onlyOtherPlayers and currentPlayer ~= myPlayer) or not onlyOtherPlayers) then + if DoesEntityExist(ped) and ((onlyOtherPlayers and currentPlayer ~= ESX.playerId) or not onlyOtherPlayers) then if returnKeyValue then players[currentPlayer] = ped else diff --git a/[core]/es_extended/client/main.lua b/[core]/es_extended/client/main.lua index ad3e3e6e..c3b7ebcc 100644 --- a/[core]/es_extended/client/main.lua +++ b/[core]/es_extended/client/main.lua @@ -108,7 +108,6 @@ local function DisableAmmoOrVehicleRewards(playerId) end local function ApplyConfig() - local playerId = PlayerId() -- RemoveHudComponents for i = 1, #Config.RemoveHudComponents do if Config.RemoveHudComponents[i] then @@ -117,14 +116,14 @@ local function ApplyConfig() end if Config.DisableAimAssist then - SetPlayerLockon(playerId, false) + SetPlayerLockon(ESX.playerId, false) end -- DisableNPCDrops if Config.DisableNPCDrops then local weaponPickups = { `PICKUP_WEAPON_CARBINERIFLE`, `PICKUP_WEAPON_PISTOL`, `PICKUP_WEAPON_PUMPSHOTGUN` } for i = 1, #weaponPickups do - ToggleUsePickupsForPlayer(playerId, weaponPickups[i], false) + ToggleUsePickupsForPlayer(ESX.playerId, weaponPickups[i], false) end end @@ -138,11 +137,11 @@ local function ApplyConfig() end if Config.DisableHealthRegeneration then - SetPlayerHealthRechargeMultiplier(playerId, 0.0) + SetPlayerHealthRechargeMultiplier(ESX.playerId, 0.0) end if Config.DisableDisplayAmmo or Config.DisableVehicleRewards then - DisableAmmoOrVehicleRewards(playerId) + DisableAmmoOrVehicleRewards(ESX.playerId) end EnablePvP() @@ -270,7 +269,7 @@ AddStateBagChangeHandler("VehicleProperties", nil, function(bagName, _, value) return end - if not NetworkGetEntityOwner(vehicle) == PlayerId() then + if not NetworkGetEntityOwner(vehicle) == ESX.playerId then return end @@ -466,7 +465,7 @@ end -- disable wanted level if not Config.EnableWantedLevel then - ClearPlayerWantedLevel(PlayerId()) + ClearPlayerWantedLevel(ESX.playerId) SetMaxWantedLevel(0) end @@ -691,15 +690,14 @@ end) RegisterNetEvent("esx:freezePlayer") AddEventHandler("esx:freezePlayer", function(input) - local player = PlayerId() if input == "freeze" then SetEntityCollision(ESX.PlayerData.ped, false, false) FreezeEntityPosition(ESX.PlayerData.ped, true) - SetPlayerInvincible(player, true) + SetPlayerInvincible(ESX.playerId, true) elseif input == "unfreeze" then SetEntityCollision(ESX.PlayerData.ped, true, true) FreezeEntityPosition(ESX.PlayerData.ped, false) - SetPlayerInvincible(player, false) + SetPlayerInvincible(ESX.playerId, false) end end) diff --git a/[core]/es_extended/client/modules/actions.lua b/[core]/es_extended/client/modules/actions.lua index 7af8db25..e3e38d09 100644 --- a/[core]/es_extended/client/modules/actions.lua +++ b/[core]/es_extended/client/modules/actions.lua @@ -39,7 +39,7 @@ CreateThread(function() TriggerEvent("esx:playerPedChanged", playerPed) TriggerServerEvent("esx:playerPedChanged", PedToNet(playerPed)) if Config.DisableHealthRegeneration then - SetPlayerHealthRechargeMultiplier(PlayerId(), 0.0) + SetPlayerHealthRechargeMultiplier(ESX.PlayerId, 0.0) end end @@ -58,8 +58,8 @@ CreateThread(function() inPauseMenu = false TriggerEvent("esx:pauseMenuActive", inPauseMenu) end - - if not isInVehicle and not IsPlayerDead(PlayerId()) then + + if not isInVehicle and not IsPlayerDead(ESX.playerId) then if DoesEntityExist(GetVehiclePedIsTryingToEnter(playerPed)) and not isEnteringVehicle then -- trying to enter a vehicle! local vehicle = GetVehiclePedIsTryingToEnter(playerPed) @@ -89,7 +89,7 @@ CreateThread(function() ToggleVehicleStatus(current.vehicle, current.seat) end elseif isInVehicle then - if (current.vehicle ~= GetVehiclePedIsUsing(playerPed)) or IsPlayerDead(PlayerId()) then + if (current.vehicle ~= GetVehiclePedIsUsing(playerPed)) or IsPlayerDead(ESX.playerId) then -- bye, vehicle TriggerEvent("esx:exitedVehicle", current.vehicle, current.plate, current.seat, current.displayName, current.netId) TriggerServerEvent("esx:exitedVehicle", current.plate, current.seat, current.displayName, current.netId) diff --git a/[core]/es_extended/client/modules/death.lua b/[core]/es_extended/client/modules/death.lua index ed3347f0..8d80c904 100644 --- a/[core]/es_extended/client/modules/death.lua +++ b/[core]/es_extended/client/modules/death.lua @@ -6,7 +6,7 @@ AddEventHandler("gameEventTriggered", function(event, data) if not IsPedAPlayer(victim) then return end - local player = PlayerId() + local player = ESX.playerId local playerPed = PlayerPedId() if victimDied and NetworkGetPlayerIndexFromPed(victim) == player and (IsPedDeadOrDying(victim, true) or IsPedFatallyInjured(victim)) then local killerEntity, deathCause = GetPedSourceOfDeath(playerPed), GetPedCauseOfDeath(playerPed) diff --git a/[core]/esx_multicharacter/client/main.lua b/[core]/esx_multicharacter/client/main.lua index 50161b31..19eeba8e 100644 --- a/[core]/esx_multicharacter/client/main.lua +++ b/[core]/esx_multicharacter/client/main.lua @@ -19,7 +19,7 @@ CreateThread(function() while not ESX.PlayerLoaded do Wait(100) - if NetworkIsPlayerActive(ESX.PlayerData.playerId) then + if NetworkIsPlayerActive(ESX.playerId) then DisableSpawnManager() DoScreenFadeOut(0) @@ -67,4 +67,4 @@ if Config.Relog then end end,false) -end \ No newline at end of file +end diff --git a/[core]/esx_multicharacter/client/modules/multicharacter.lua b/[core]/esx_multicharacter/client/modules/multicharacter.lua index a50dd76e..ae1ca0f9 100644 --- a/[core]/esx_multicharacter/client/modules/multicharacter.lua +++ b/[core]/esx_multicharacter/client/modules/multicharacter.lua @@ -48,7 +48,7 @@ end function Multicharacter:ResetHideActivePlayer() self.playerPed = PlayerPedId() - MumbleSetVolumeOverride(ESX.PlayerData.playerId, -1.0) + MumbleSetVolumeOverride(ESX.playerId, -1.0) SetEntityVisible(self.playerPed, true, false) SetPlayerInvincible(self.playerPed, true) FreezeEntityPosition(self.playerPed, false) @@ -66,7 +66,7 @@ function Multicharacter:HideActivePlayerLoop() SetEntityVisible(self.playerPed, false, false) SetLocalPlayerVisibleLocally(true) - SetPlayerInvincible(ESX.PlayerData.playerId, true) + SetPlayerInvincible(ESX.playerId, true) HideComponents() @@ -93,7 +93,7 @@ function Multicharacter:ConcealLoop() for i = 1, #players do local player = players[i] - if player ~= ESX.PlayerData.playerId and not playerPool[player] then + if player ~= ESX.playerId and not playerPool[player] then playerPool[player] = true NetworkConcealPlayer(player, true, true) end @@ -112,7 +112,7 @@ end function Multicharacter:StartLoops() self.hidePlayers = true - MumbleSetVolumeOverride(ESX.PlayerData.playerId, 0.0) + MumbleSetVolumeOverride(ESX.playerId, 0.0) self:HideActivePlayerLoop() self:ConcealLoop() end @@ -120,8 +120,6 @@ end function Multicharacter:SetupCharacters() ESX.PlayerLoaded = false ESX.PlayerData = {} - ESX.PlayerData.playerId = PlayerId() - ESX.PlayerData.serverId = GetPlayerServerId(ESX.PlayerData.playerId) self.spawned = false self.cam = CreateCam("DEFAULT_SCRIPTED_CAMERA", true) @@ -169,11 +167,11 @@ end function Multicharacter:ChangeExistingPed() local newCharacter = self.Characters[self.tempIndex] local spawnedCharacter = self.Characters[self.spawned] - + if spawnedCharacter and spawnedCharacter.model then local model = ESX.Streaming.RequestModel(newCharacter.model) if model then - SetPlayerModel(ESX.PlayerData.playerId, newCharacter.model) + SetPlayerModel(ESX.playerId, newCharacter.model) SetModelAsNoLongerNeeded(newCharacter.model) end end @@ -265,7 +263,7 @@ function Multicharacter:SetDefaultSkin(playerData) return end - SetPlayerModel(ESX.PlayerData.playerId, model) + SetPlayerModel(ESX.playerId, model) SetModelAsNoLongerNeeded(model) self.playerPed = PlayerPedId() @@ -333,4 +331,4 @@ function Multicharacter:PlayerLoaded(playerData, isNew, skin) TriggerEvent("esx:restoreLoadout") self:Reset() -end \ No newline at end of file +end