mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-14 04:02:37 +03:00
47 lines
1.7 KiB
Plaintext
47 lines
1.7 KiB
Plaintext
/*
|
|
Anti-Teleport
|
|
Created By Razor
|
|
Refactored By Alby
|
|
*/
|
|
|
|
private["_curpos","_lastpos","_curheight","_lastheight","_terrainHeight","_curtime","_lasttime","_distance","_difftime","_speed","_topSpeed"];
|
|
|
|
waitUntil {vehicle player == player};
|
|
|
|
_lastpos = getPosATL (vehicle player);
|
|
_lastheight = (ATLtoASL _lastpos) select 2;
|
|
_lasttime = time;
|
|
|
|
while {alive player} do
|
|
{
|
|
_curpos = getPosATL (vehicle player);
|
|
_curheight = (ATLtoASL _curpos) select 2;
|
|
_curtime = time;
|
|
_distance = _lastpos distance _curpos;
|
|
_difftime = (_curtime - _lasttime) max 0.001;
|
|
_speed = _distance / _difftime;
|
|
_topSpeed = 10;
|
|
|
|
if (vehicle player != player) then {
|
|
_topSpeed = getNumber (configFile >> "CfgVehicles" >> typeOf (vehicle player) >> "maxSpeed");
|
|
};
|
|
|
|
_terrainHeight = getTerrainHeightASL [_curpos select 0, _curpos select 1];
|
|
|
|
//diag_log format["DEBUG: terrain: %1 current: %2", _terrainHeight, _curheight];
|
|
//diag_log format["DEBUG: all: %1 player: %2 fall: %3 terrain: %4", !((vehicle player == player) && (_curheight < _lastheight) && ((_curheight - _terrainHeight) > 1)), (vehicle player == player), (_curheight < _lastheight), (_curheight - _terrainHeight) > 1];
|
|
|
|
_debug = getMarkerPos "respawn_west";
|
|
if ((_speed > _topSpeed) && (alive player) && ((driver (vehicle player) == player) or (isNull (driver (vehicle player)))) && (_debug distance _lastpos > 3000) && !((vehicle player == player) && (_curheight < _lastheight) && ((_curheight - _terrainHeight) > 1))) then {
|
|
(vehicle player) setpos _lastpos;
|
|
atp = [name player, dayz_characterID, _lastpos, _curPos, getPosATL player];
|
|
publicVariableServer "atp";
|
|
} else {
|
|
|
|
_lastpos = _curpos;
|
|
_lastheight = _curheight;
|
|
};
|
|
|
|
_lasttime = _curtime;
|
|
sleep 0.5;
|
|
}; |