From f2e0441538faf566490cefd4c4e7b5aec79c19da Mon Sep 17 00:00:00 2001 From: Hubert Date: Wed, 7 Jun 2023 21:53:45 +0200 Subject: [PATCH 1/2] Optimized saving of player position The changes I applied to the code regarding self.getCoords(), changing the conditions when joining the server at coordinates to userData.coords and getting rid of the self.updateCoords() function. I believe that my changes when saving are more efficient, because the player's position is not overwritten unnecessarily every second if he changes his position, but the position is saved when leaving the server to the database, and then loaded when entering the server. --- [core]/es_extended/server/classes/player.lua | 31 ++++++-------------- [core]/es_extended/server/main.lua | 4 +-- 2 files changed, 11 insertions(+), 24 deletions(-) diff --git a/[core]/es_extended/server/classes/player.lua b/[core]/es_extended/server/classes/player.lua index e0788424..b22cd2ff 100644 --- a/[core]/es_extended/server/classes/player.lua +++ b/[core]/es_extended/server/classes/player.lua @@ -47,31 +47,18 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, SetEntityHeading(Ped, vector.w) end - function self.updateCoords() - SetTimeout(1000,function() - local Ped = GetPlayerPed(self.source) - if DoesEntityExist(Ped) then - local coords = GetEntityCoords(Ped) - local distance = #(coords - vector3(self.coords.x, self.coords.y, self.coords.z)) - if distance > 1.5 then - local heading = GetEntityHeading(Ped) - self.coords = { - x = coords.x, - y = coords.y, - z = coords.z, - heading = heading or 0.0 - } - end - end - self.updateCoords() - end) - end - function self.getCoords(vector) + local ped = GetPlayerPed(self.source) + local coords = GetEntityCoords(ped) + if vector then - return vector3(self.coords.x, self.coords.y, self.coords.z) + return coords else - return self.coords + return { + x = coords.x, + y = coords.y, + z = coords.z, + } end end diff --git a/[core]/es_extended/server/main.lua b/[core]/es_extended/server/main.lua index 892b5a5e..87b8ef7a 100644 --- a/[core]/es_extended/server/main.lua +++ b/[core]/es_extended/server/main.lua @@ -309,7 +309,7 @@ function loadESXPlayer(identifier, playerId, isNew) xPlayer.triggerEvent('esx:playerLoaded', { accounts = xPlayer.getAccounts(), - coords = xPlayer.getCoords(), + coords = userData.coords, identifier = xPlayer.getIdentifier(), inventory = xPlayer.getInventory(), job = xPlayer.getJob(), @@ -331,7 +331,7 @@ function loadESXPlayer(identifier, playerId, isNew) else exports.ox_inventory:setPlayerInventory(xPlayer, userData.inventory) end - xPlayer.updateCoords() + xPlayer.triggerEvent('esx:registerSuggestions', Core.RegisteredCommands) print(('[^2INFO^0] Player ^5"%s"^0 has connected to the server. ID: ^5%s^7'):format(xPlayer.getName(), playerId)) end From 1b918cca3f315f39053eeb02cf412b881b90eead Mon Sep 17 00:00:00 2001 From: Hubert Date: Thu, 8 Jun 2023 13:47:44 +0200 Subject: [PATCH 2/2] Added showAdvancedNotification for xPlayer --- [core]/es_extended/server/classes/player.lua | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/[core]/es_extended/server/classes/player.lua b/[core]/es_extended/server/classes/player.lua index b22cd2ff..fc5a3e54 100644 --- a/[core]/es_extended/server/classes/player.lua +++ b/[core]/es_extended/server/classes/player.lua @@ -562,6 +562,10 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, self.triggerEvent('esx:showNotification', msg) end + function self.showAdvancedNotification(sender, subject, msg, textureDict, iconType, flash, saveToBrief, hudColorIndex) + self.triggerEvent('esx:showAdvancedNotification', sender, subject, msg, textureDict, iconType, flash, saveToBrief, hudColorIndex) + end + function self.showHelpNotification(msg, thisFrame, beep, duration) self.triggerEvent('esx:showHelpNotification', msg, thisFrame, beep, duration) end