From fe456264a586daab729b7490fd2a81239c8527a4 Mon Sep 17 00:00:00 2001 From: Meyndflay Date: Thu, 12 Jun 2025 07:23:44 +0800 Subject: [PATCH] fix(es_extended/imports.lua): Update Metatable On Imports --- .gitignore | 1 + [core]/es_extended/imports.lua | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..e43b0f98 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store diff --git a/[core]/es_extended/imports.lua b/[core]/es_extended/imports.lua index 719d0623..91d5f887 100644 --- a/[core]/es_extended/imports.lua +++ b/[core]/es_extended/imports.lua @@ -3,7 +3,28 @@ ESX.currentResourceName = GetCurrentResourceName() OnPlayerData = function (key, val, last) end +local function TrackPedCoordsOnce() + ESX.PlayerData.coords = nil + + setmetatable(ESX.PlayerData, { + __index = function(self, key) + if key ~= "coords" then + return + end + + local coords = GetEntityCoords(ESX.PlayerData.ped) + + return coords + end + }) +end + if not IsDuplicityVersion() then -- Only register this event for the client + -- On Resource Start + local OnStart = (function() + TrackPedCoordsOnce() + end)() + AddEventHandler("esx:setPlayerData", function(key, val, last) if GetInvokingResource() == "es_extended" then ESX.PlayerData[key] = val @@ -17,6 +38,8 @@ if not IsDuplicityVersion() then -- Only register this event for the client ESX.PlayerData = xPlayer while not ESX.PlayerData.ped or not DoesEntityExist(ESX.PlayerData.ped) do Wait(0) end ESX.PlayerLoaded = true + + TrackPedCoordsOnce() end) ESX.SecureNetEvent("esx:onPlayerLogout", function()