diff --git a/resources/[qb]/Duck_Relog/client.lua b/resources/[qb]/Duck_Relog/client.lua index 3934c2338..9a57dd9cc 100644 --- a/resources/[qb]/Duck_Relog/client.lua +++ b/resources/[qb]/Duck_Relog/client.lua @@ -1,20 +1,27 @@ -local hasUsedRelog = false - RegisterCommand("relog", function() local coords = GetEntityCoords(PlayerPedId()) - TriggerServerEvent("relog:saveCoords", coords) - hasUsedRelog = true + local heading = GetEntityHeading(PlayerPedId()) + + + TriggerServerEvent("duckrelog:saveCoords", { + x = coords.x, + y = coords.y, + z = coords.z, + w = heading + }) ShutdownLoadingScreenNui() TriggerEvent("um-multichar:client:chooseChar") end, false) +-- Wenn Spieler geladen wurde, Position vom Server anfordern RegisterNetEvent('QBCore:Client:OnPlayerLoaded', function() - TriggerServerEvent("relog:checkLastPosition") + TriggerServerEvent("duckrelog:requestCoords") end) -RegisterNetEvent("relog:teleportPlayer", function(pos) +-- Spieler teleportieren +RegisterNetEvent("duckrelog:setCoords", function(pos) if pos then local ped = PlayerPedId() RequestCollisionAtCoord(pos.x, pos.y, pos.z) diff --git a/resources/[qb]/Duck_Relog/server.lua b/resources/[qb]/Duck_Relog/server.lua index 3b28138ad..96d2e1ce2 100644 --- a/resources/[qb]/Duck_Relog/server.lua +++ b/resources/[qb]/Duck_Relog/server.lua @@ -1,38 +1,22 @@ local QBCore = exports['qb-core']:GetCoreObject() +local LastPositions = {} -RegisterServerEvent("relog:saveCoords", function(coords) +RegisterServerEvent("duckrelog:saveCoords", function(pos) local src = source - local Player = QBCore.Functions.GetPlayer(src) - if not Player then return end + LastPositions[src] = pos - local data = { - x = coords.x, - y = coords.y, - z = coords.z, - w = GetEntityHeading(GetPlayerPed(src)) - } - - MySQL.update('UPDATE players SET last_position = ? WHERE citizenid = ?', { - json.encode(data), - Player.PlayerData.citizenid - }) - - + -- Spieler korrekt abmelden QBCore.Player.Logout(src) + + -- RoutingBucket auf 0 setzen SetPlayerRoutingBucket(src, 0) end) -RegisterServerEvent("relog:checkLastPosition", function() +RegisterServerEvent("duckrelog:requestCoords", function() local src = source - local Player = QBCore.Functions.GetPlayer(src) - if not Player then return end - - local result = MySQL.single.await('SELECT last_position FROM players WHERE citizenid = ?', { - Player.PlayerData.citizenid - }) - - if result and result.last_position then - local pos = json.decode(result.last_position) - TriggerClientEvent("relog:teleportPlayer", src, pos) + local pos = LastPositions[src] + if pos then + TriggerClientEvent("duckrelog:setCoords", src, pos) + LastPositions[src] = nil -- nach der Verwendung löschen end end)