SkyDogs Posted August 30, 2013 Report Share Posted August 30, 2013 Was playing last night and me and another person had problems with been teleported out of vehicles while driving. Now I'm not sure if it's at your end or at the server end, but I thought I'd post it up here in case others are having the same problem. Link to comment Share on other sites More sharing options...
0 ToejaM Posted August 30, 2013 Report Share Posted August 30, 2013 Many servers are getting this, we need to disable the anti teleport script as it's affecting vehicles and players who desync causing them to activate it. However disabling it isn't as straight forward as it usually is. Link to comment Share on other sites More sharing options...
0 MGT Posted August 30, 2013 Report Share Posted August 30, 2013 Yes devs, we need a solution to this, was just playing with Jack frags and crew and the pilot got tp'd back to where we took off from, killing us all ¬¬¬¬ Urgent.com Link to comment Share on other sites More sharing options...
0 vbawol Posted August 30, 2013 Report Share Posted August 30, 2013 Are there logs with "TELEPORT REVERT:" server side? The antihack.sqf script is not being used in epoch. So this is likely another issue, I am looking into this now. Link to comment Share on other sites More sharing options...
0 MGT Posted August 30, 2013 Report Share Posted August 30, 2013 Nothing in rpt , shall I look in other logs? Link to comment Share on other sites More sharing options...
0 Kind-Sir Posted August 30, 2013 Report Share Posted August 30, 2013 I am getting this as well.Nothing popping up in the logs.Had this problem with Origins, too.I will look into the problem later tonight. Link to comment Share on other sites More sharing options...
0 vbawol Posted August 30, 2013 Report Share Posted August 30, 2013 The built in teleport system from player_spawn_2.sqf was fixed, I believe it was not even working before. I suspect the problem is the player has script lag and or desync really badly and has somehow traveled more than 400 meters between checks. These checks should execute about every 2 seconds so the distance traveled should be really low. Working on a fix now, only problem is that it is hard to reproduce. Link to comment Share on other sites More sharing options...
0 vbawol Posted August 31, 2013 Report Share Posted August 31, 2013 If any of you can reproduce this issue reliably, please try to use this via the fixes override method to test if this is solves the problem. https://raw.github.com/vbawol/DayZ-Epoch/e6399d740f5a578def5d322d29a5983ddfaf0ff7/SQF/dayz_code/system/player_spawn_2.sqf Link to comment Share on other sites More sharing options...
0 MGT Posted August 31, 2013 Report Share Posted August 31, 2013 Can you explain what's been changed as I need that fix now and is it in the client files? :o Ok testing now on our dev server, have edited the dayz_code on server and my client.... Ok testing, first thing is the signature has changed so i've had to turn signature checking to "0" to get on Doesn't seem to of fixed it. _lastPos = getPosATL player; if (!isNil "_mylastPos") then { if (player == vehicle player) then { if (_mylastPos distance _lastPos > 200) then { if (alive player) then { player setPosATL _mylastPos; diag_log ("Player Teleport Revert : "+ str(_mylastPos distance _lastPos)); }; }; } else { if (_mylastPos distance _lastPos > 800) then { if (alive player) then { player setPosATL _mylastPos; diag_log ("Player Teleport Revert : "+ str(_mylastPos distance _lastPos)); }; }; }; }; ^^ Is that the snippet of code which corrects it as if it is it's unchanged from the regular 1.0.2 files _lastPos = getPosATL player; if (!isNil "_mylastPos") then { if (player == vehicle player) then { if (_mylastPos distance _lastPos > 20000) then { if (alive player) then { player setPosATL _mylastPos; diag_log ("Player Teleport Revert : "+ str(_mylastPos distance _lastPos)); }; }; } else { if (_mylastPos distance _lastPos > 20000) then { if (alive player) then { player setPosATL _mylastPos; diag_log ("Player Teleport Revert : "+ str(_mylastPos distance _lastPos)); }; }; }; }; Have changed mine to the 20000 and can confirm it fixes it. One of the problems is with vehicles with mounted guns and players on different sessions as some can get on the gunner seat and be left outside the vehicle, and the game will think they're too far away and eject them. Edit, can confirm 100% fixed at 20000 Link to comment Share on other sites More sharing options...
0 Kind-Sir Posted August 31, 2013 Report Share Posted August 31, 2013 The built in teleport system from player_spawn_2.sqf was fixed, I believe it was not even working before. I suspect the problem is the player has script lag and or desync really badly and has somehow traveled more than 400 meters between checks. These checks should execute about every 2 seconds so the distance traveled should be really low. Working on a fix now, only problem is that it is hard to reproduce.Happens to me frequently due to cruddy internet, lots of desync. Latency hovers around 60ms, however, desync tends to spike up every now and again.Will test again ASAP. Link to comment Share on other sites More sharing options...
0 vbawol Posted August 31, 2013 Report Share Posted August 31, 2013 MGT, how are you reproducing it? I did just get teleported out of a osprey but I was going 700+. Also what is the output of "Player Teleport Revert :" log entry when it does happen? Link to comment Share on other sites More sharing options...
0 MGT Posted August 31, 2013 Report Share Posted August 31, 2013 F35 at 800+km/h Can confirm that changing both of those to 20000 works as that could cover the furthest distance across the map. At 10000 there is still a good chance of it happening due to desync if in a fast vehicle such as MV22 Where is the log output? There's nothing being reported in the rpt. Link to comment Share on other sites More sharing options...
0 vbawol Posted August 31, 2013 Report Share Posted August 31, 2013 The fix/problem is not that it would be the part I commented out /* comment out to test if this is source of the issue if (!isNil "_mylastPos") then { _distance = _mylastPos distance _tempPos; if (_distance > 400) then { _randomSpot = false; }; }; */ Link to comment Share on other sites More sharing options...
0 vbawol Posted August 31, 2013 Report Share Posted August 31, 2013 With that commented out I did not get kicked out of the osprey at over 700+. Link to comment Share on other sites More sharing options...
0 MGT Posted August 31, 2013 Report Share Posted August 31, 2013 Ok will test again with that commented out. Link to comment Share on other sites More sharing options...
0 MGT Posted August 31, 2013 Report Share Posted August 31, 2013 With that snipped commented out (assume I did it correctly) it's still happening at speeds of 800+ which would still cause players to be reverted if there was desync /* comment out to test if this is source of the issue //if (!isNil "_mylastPos") then { _distance = _mylastPos distance _tempPos; if (_distance > 400) then { _randomSpot = false; }; }; Link to comment Share on other sites More sharing options...
0 MGT Posted August 31, 2013 Report Share Posted August 31, 2013 Have introduced artificial desync to my client and exactly the same thing happens. The problem is more prevalent on Venoms, HMMVV's and SUV with mounted guns, this due to the gunners ghost character being left standing at the location where they got in the vehicle in the gunner position, even though they are physically in the vehicle, the game thinks they're not and will eject them out and revert them to where they got in. My fix of editing those other values to 20000 stops that without commenting out the section as you've suggested. Link to comment Share on other sites More sharing options...
0 vbawol Posted August 31, 2013 Report Share Posted August 31, 2013 Doing it the way you have it will break the teleporting of players out of debug and [0,0,0]. Link to comment Share on other sites More sharing options...
0 vbawol Posted August 31, 2013 Report Share Posted August 31, 2013 With that snipped commented out (assume I did it correctly) it's still happening at speeds of 800+ which would still cause players to be reverted if there was desync /* comment out to test if this is source of the issue //if (!isNil "_mylastPos") then { _distance = _mylastPos distance _tempPos; if (_distance > 400) then { _randomSpot = false; }; }; Just to make sure can you double check using the the exact contents of this file? https://raw.github.com/vbawol/DayZ-Epoch/e6399d740f5a578def5d322d29a5983ddfaf0ff7/SQF/dayz_code/system/player_spawn_2.sqf Link to comment Share on other sites More sharing options...
0 MGT Posted August 31, 2013 Report Share Posted August 31, 2013 Doing it the way you have it will break the teleporting of players out of debug and [0,0,0]. Yes I can see that, I tried to comment out the whole block and it still happens. /* comment out to test if this is source of the issue //if (!isNil "_mylastPos") then { //_distance = _mylastPos distance _tempPos; //if (_distance > 400) then { //_randomSpot = false; //}; //}; With the original values as below, if the game reads that a player is more than 800m away from where they should be, i.e mounted gunner or desync (also teleporter) then it will revert them, and 200m if not in a vehicle. I can only assume that this code wasn't being called prior to Epoch 1.0.2? The code is great for preventing ind tp'ing and mass tp'ing of players, but with desync and glitched vehicles, it currently breaks the game. A guy was helping Lewis earlier with supplies in a heli and it happened, causing the player to be reverted to a position, the heli to crash and the purchased base building gear to be lost - Rage ensued ;) _lastPos = getPosATL player; if (!isNil "_mylastPos") then { if (player == vehicle player) then { if (_mylastPos distance _lastPos > 200) then { if (alive player) then { player setPosATL _mylastPos; diag_log ("Player Teleport Revert : "+ str(_mylastPos distance _lastPos)); }; }; } else { if (_mylastPos distance _lastPos > 800) then { if (alive player) then { player setPosATL _mylastPos; diag_log ("Player Teleport Revert : "+ str(_mylastPos distance _lastPos)); }; }; }; }; Would this be a more feasable change:- _lastPos = getPosATL player; if (!isNil "_mylastPos") then { if (player == vehicle player) then { if (_mylastPos distance _lastPos > 200) then { if (alive player) then { player setPosATL _mylastPos; diag_log ("Player Teleport Revert : "+ str(_mylastPos distance _lastPos)); }; }; } else { if (_mylastPos distance _lastPos > 20000) then { if (alive player) then { player setPosATL _mylastPos; diag_log ("Player Teleport Revert : "+ str(_mylastPos distance _lastPos)); }; }; }; }; As it wouldn't break tp'ing from debug and 0,0,0 because it would change only the distance parameters for vehicle bound players, or would it include players in vehicles? Link to comment Share on other sites More sharing options...
0 MGT Posted August 31, 2013 Report Share Posted August 31, 2013 Just to make sure can you double check using the the exact contents of this file? https://raw.github.com/vbawol/DayZ-Epoch/e6399d740f5a578def5d322d29a5983ddfaf0ff7/SQF/dayz_code/system/player_spawn_2.sqf Yes, pasted that into the playerspawn 2 in the dayz_code, repacked and put in on server and client. Link to comment Share on other sites More sharing options...
0 Kind-Sir Posted August 31, 2013 Report Share Posted August 31, 2013 Why don't you have a check for the player being in a vehicle that is meant to go fast / flying? Link to comment Share on other sites More sharing options...
0 MGT Posted August 31, 2013 Report Share Posted August 31, 2013 Why don't you have a check for the player being in a vehicle that is meant to go fast / flying? The problem is player desync causing a mismatch in reported positions and the player being reverted when in a vehicle. Link to comment Share on other sites More sharing options...
0 Kind-Sir Posted August 31, 2013 Report Share Posted August 31, 2013 The problem is player desync causing a mismatch in reported positions and the player being reverted when in a vehicle.Right! Working on 30 minutes of sleep, kind of skimming through the posts.I applied this to a server, and have not had problems in an MV22 when setting the vehicle position to 1600m. Have not tried it with stress-tests, but have tried it with 15fps and frequent stutter, if that helps. Link to comment Share on other sites More sharing options...
0 MGT Posted August 31, 2013 Report Share Posted August 31, 2013 Yes I can see that, I tried to comment out the whole block and it still happens. /* comment out to test if this is source of the issue //if (!isNil "_mylastPos") then { //_distance = _mylastPos distance _tempPos; //if (_distance > 400) then { //_randomSpot = false; //}; //}; With the original values as below, if the game reads that a player is more than 800m away from where they should be, i.e mounted gunner or desync (also teleporter) then it will revert them, and 200m if not in a vehicle. I can only assume that this code wasn't being called prior to Epoch 1.0.2? The code is great for preventing ind tp'ing and mass tp'ing of players, but with desync and glitched vehicles, it currently breaks the game. A guy was helping Lewis earlier with supplies in a heli and it happened, causing the player to be reverted to a position, the heli to crash and the purchased base building gear to be lost - Rage ensued ;) _lastPos = getPosATL player; if (!isNil "_mylastPos") then { if (player == vehicle player) then { if (_mylastPos distance _lastPos > 200) then { if (alive player) then { player setPosATL _mylastPos; diag_log ("Player Teleport Revert : "+ str(_mylastPos distance _lastPos)); }; }; } else { if (_mylastPos distance _lastPos > 800) then { if (alive player) then { player setPosATL _mylastPos; diag_log ("Player Teleport Revert : "+ str(_mylastPos distance _lastPos)); }; }; }; }; Would this be a more feasable change:- _lastPos = getPosATL player; if (!isNil "_mylastPos") then { if (player == vehicle player) then { if (_mylastPos distance _lastPos > 200) then { if (alive player) then { player setPosATL _mylastPos; diag_log ("Player Teleport Revert : "+ str(_mylastPos distance _lastPos)); }; }; } else { if (_mylastPos distance _lastPos > 20000) then { if (alive player) then { player setPosATL _mylastPos; diag_log ("Player Teleport Revert : "+ str(_mylastPos distance _lastPos)); }; }; }; }; As it wouldn't break tp'ing from debug and 0,0,0 because it would change only the distance parameters for vehicle bound players, or would it include players in vehicles? Just checking you didn't miss this on the previous page Awol. Link to comment Share on other sites More sharing options...
0 vbawol Posted August 31, 2013 Report Share Posted August 31, 2013 Gotcha, This has been completely fixed for 1.0.2.1 and will allow overriding of every setting related to this, just in case it is needed. If you are interested in the changes see here: https://github.com/vbawol/DayZ-Epoch/commit/f209148a32bde5ebcb1574a815d1c41f62396cdc Link to comment Share on other sites More sharing options...
Question
SkyDogs
Was playing last night and me and another person had problems with been teleported out of vehicles while driving.
Now I'm not sure if it's at your end or at the server end, but I thought I'd post it up here in case others are having the same problem.
Link to comment
Share on other sites
34 answers to this question
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now