From faace18968018a6e3d81bdc3755bd82b8b46fa93 Mon Sep 17 00:00:00 2001 From: Arctos2win <116841243+Arctos2win@users.noreply.github.com> Date: Tue, 18 Jun 2024 12:52:32 +0200 Subject: [PATCH] fix(es_extended): xPlayer.getCoords backwards compatibility --- [core]/es_extended/server/classes/player.lua | 22 ++++++++++++++------ [core]/es_extended/server/functions.lua | 2 +- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/[core]/es_extended/server/classes/player.lua b/[core]/es_extended/server/classes/player.lua index 8d389d7f..e284f96e 100644 --- a/[core]/es_extended/server/classes/player.lua +++ b/[core]/es_extended/server/classes/player.lua @@ -77,13 +77,23 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, end ---@param vector boolean - ---@return vector3 | table - function self.getCoords(vector) - local ped = _GetPlayerPed(self.source) - local coordinates = _GetEntityCoords(ped) - local heading = _GetEntityHeading(ped) + --- @param heading boolean + ---@return vector3 | vector4 | table + function self.getCoords(vector, heading) + local ped = _GetPlayerPed(self.source) + local coords = _GetEntityCoords(ped) - return vector and vector4(coordinates.xyz, heading) or { x = coordinates.x, y = coordinates.y, z = coordinates.z, heading = heading } + local coordinates + if vector then + coordinates = (heading and vector4(coords.xyz, _GetEntityHeading(ped)) or coords) + else + coordinates = { x = coords.x, y = coords.y, z = coords.z } + if heading then + coordinates.heading = _GetEntityHeading(ped) + end + end + + return coordinates end ---@param reason string diff --git a/[core]/es_extended/server/functions.lua b/[core]/es_extended/server/functions.lua index dcf313d3..4ed4b39a 100644 --- a/[core]/es_extended/server/functions.lua +++ b/[core]/es_extended/server/functions.lua @@ -199,7 +199,7 @@ function Core.SavePlayer(xPlayer, cb) xPlayer.job.name, xPlayer.job.grade, xPlayer.group, - json.encode(xPlayer.getCoords()), + json.encode(xPlayer.getCoords(false, true)), json.encode(xPlayer.getInventory(true)), json.encode(xPlayer.getLoadout(true)), json.encode(xPlayer.getMeta()),