Skip to content

Commit 0fb90c0

Browse files
authored
freeroam: fix desync and false positive issue in onPlayerTeleport event (#599)
1 parent 60e680e commit 0fb90c0

File tree

3 files changed

+9
-2
lines changed

3 files changed

+9
-2
lines changed

[gameplay]/freeroam/fr_client.lua

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ local knifeRestrictionsOn = false
3434
-- Local settings received from server
3535
local g_settings = {}
3636
local _addCommandHandler = addCommandHandler
37-
local _setElementPosition = setElementPosition
3837

3938
if not (g_PlayerData) then
4039
g_PlayerData = {}
@@ -135,7 +134,7 @@ local function setElementPosition(element,x,y,z)
135134
setTimer(resetKnifing,5000,1)
136135
end
137136

138-
_setElementPosition(element,x,y,z)
137+
server.setElementPosition(element, x, y, z)
139138
end
140139

141140
---------------------------

[gameplay]/freeroam/fr_server.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ g_RPCFunctions = {
3838
setElementAlpha = { option = 'alpha', descr = 'Changing your alpha' },
3939
setElementInterior = true,
4040
setCameraInterior = true,
41+
setElementPosition = true,
4142
setMySkin = { option = 'setskin', descr = 'Setting skin' },
4243
setPedAnimation = { option = 'anim', descr = 'Setting an animation' },
4344
setPedFightingStyle = { option = 'setstyle', descr = 'Setting fighting style' },

[gameplay]/freeroam/remote_player_call_validation_server.lua

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,13 @@ g_RPCFunctionsValidation = {
6363
if (#{ ... } > 0) then return false end
6464
return true
6565
end,
66+
setElementPosition = function(element, x, y, z)
67+
if client ~= element and element ~= getPedOccupiedVehicle(client) then return false end
68+
if type(x) ~= "number" then return false end
69+
if type(y) ~= "number" then return false end
70+
if type(z) ~= "number" then return false end
71+
return true
72+
end,
6673
setCameraInterior = function (thePlayer, interior, ...)
6774
if client ~= thePlayer then return false end
6875
if type(tonumber(interior)) ~= "number" then return false end

0 commit comments

Comments
 (0)