This commit is contained in:
icomrade
2014-06-13 15:31:43 -04:00
parent a79e86ba33
commit aa416e43fc

View File

@@ -2,7 +2,7 @@
Anti-Teleport - Created By Razor / Refactored By Alby & CopyPasted to Epoch by Skaronator Anti-Teleport - Created By Razor / Refactored By Alby & CopyPasted to Epoch by Skaronator
*/ */
private ["_log","_playerName","_playerUID","_al1veOnce","_debug","_lastpos","_lastheight","_lasttime","_lastVehicle","_v","_h","_topv","_toph","_curpos","_distance","_curtime","_difftime","_plant","_curheight","_speed","_topSpeed","_terrainHeight","_differenceCheck","_lastPosVar","_safetyVehicle","_curPos"]; private ["_log","_playerName","_playerUID","_al1veOnce","_debug","_lastpos","_lastheight","_lasttime","_lastVehicle","_v","_h","_topv","_toph","_curpos","_distance","_acceptableDistance","_curtime","_difftime","_plant","_curheight","_speed","_topSpeed","_terrainHeight","_differenceCheck","_lastPosVar","_safetyVehicle","_curPos"];
waitUntil {vehicle player == player}; waitUntil {vehicle player == player};
@@ -34,7 +34,29 @@ waitUntil {vehicle player == player};
sleep 10; sleep 10;
}; };
_al1veOnce = false; [] spawn {
_al1veOnce = false;
if (!_al1veOnce) then {
private [ "_loc", "_plant","_debug"];
_debug = getMarkerpos "respawn_west";
// check that plants libs are properly loaded
// thanks to Tansien the great
// run only once per character life
{
_plant = _x createVehicleLocal _debug;
sleep 0.1;
if (sizeOf _x == 0) exitWith {
PVDZE_atp = "Plants texture hack for type " + _x;
publicVariableServer "PVDZE_atp";
endMission "LOSER";
};
deleteVehicle _plant;
} count ["grass", "prunus", "picea", "fallentree", "phragmites", "acer", "amygdalusn", "Brush", "fiberplant", "amygdalusc", "boulder"];
diag_log format [ "%1: Plants libs tests done!", __FILE__];
};
_al1veOnce = true;
};
while {1 == 1} do { while {1 == 1} do {
_debug = getMarkerpos "respawn_west"; _debug = getMarkerpos "respawn_west";
_lastpos = getPosATL (vehicle player); _lastpos = getPosATL (vehicle player);
@@ -53,71 +75,37 @@ while {1 == 1} do {
_distance = _lastpos distance _curpos; _distance = _lastpos distance _curpos;
_curtime = diag_ticktime; _curtime = diag_ticktime;
_difftime = _curtime - _lasttime; _difftime = _curtime - _lasttime;
_acceptableDistance = if (_lastVehicle isKindOf "Plane") then { 15; } else { 10; };
if ((_distance > 10) || {(_difftime > 1)}) then { if ((_distance > _acceptableDistance) || {(_difftime > 1)}) then {
if (!_al1veOnce) then {
private [ "_loc", "_plant"];
// check that plants libs are properly loaded
// thanks to Tansien the great
// run only once per character life
{
_plant = _x createVehicleLocal _debug;
sleep 0.1;
if (sizeOf _x == 0) exitWith {
PVDZE_atp = "Plants texture hack for type " + _x;
publicVariableServer "PVDZE_atp";
endMission "LOSER";
};
deleteVehicle _plant;
} count ["grass", "prunus", "picea", "fallentree", "phragmites", "acer", "amygdalusn", "Brush", "fiberplant", "amygdalusc", "boulder"];
diag_log format [ "%1: Plants libs tests done!", __FILE__];
};
_al1veOnce = true;
_curheight = (ATLtoASL _curpos) select 2; _curheight = (ATLtoASL _curpos) select 2;
_speed = _distance / _difftime; _speed = _distance / _difftime;
_topSpeed = 10; _topSpeed = if (_acceptableDistance == 15) then { 20; } else { 10; };
if (vehicle player != player) then { if (vehicle player != player) then {
_topSpeed = (getNumber (configFile >> "CfgVehicles" >> typeOf (vehicle player) >> "maxSpeed")) min 500; if (_acceptableDistance == 15) then {
_topSpeed = (getNumber (configFile >> "CfgVehicles" >> typeOf (vehicle player) >> "maxSpeed")) max 500;
} else {
_topSpeed = (getNumber (configFile >> "CfgVehicles" >> typeOf (vehicle player) >> "maxSpeed")) min 500;
};
}; };
_terrainHeight = getTerrainHeightASL [_curpos select 0, _curpos select 1]; _terrainHeight = getTerrainHeightASL [_curpos select 0, _curpos select 1];
_safetyVehicle = vehicle player; _safetyVehicle = vehicle player;
if (_lastVehicle == vehicle player) then { if (_lastVehicle == vehicle player) then {
if ((_speed > _topSpeed) && (alive player) && ((driver (vehicle player) == player) || (isNull (driver (vehicle player)))) && (_debug distance _lastpos > 3000) && !((vehicle player == player) && (_curheight < _lastheight) && ((_curheight - _terrainHeight) > 1))) then { if ((_speed > _topSpeed) && (alive player) && ((driver (vehicle player) == player) || (isNull (driver (vehicle player)))) && (_debug distance _lastpos > 3000) && !((vehicle player == player) && (_curheight < _lastheight) && ((_curheight - _terrainHeight) > 1))) then {
(vehicle player) setposATL _lastpos; (vehicle player) setposATL _lastpos;
//PVDZE_atp = [name player, dayz_characterID, _lastpos, _curPos, getPosATL player];
PVDZE_atp = format["TELEPORT REVERT for player UID#%1 from %2 to %3, %4 meters, now at %5", getPlayerUID player, _lastpos, _curPos, round(_lastpos distance _curpos), getPosATL player]; PVDZE_atp = format["TELEPORT REVERT for player UID#%1 from %2 to %3, %4 meters, now at %5", getPlayerUID player, _lastpos, _curPos, round(_lastpos distance _curpos), getPosATL player];
publicVariableServer "PVDZE_atp"; publicVariableServer "PVDZE_atp";
} else { } else {
_lastpos = _curpos; _lastpos = _curpos;
_lastheight = _curheight; _lastheight = _curheight;
}; };
_lasttime = _curtime; _lasttime = _curtime;
}; };
if (_safetyVehicle == vehicle player) then { if (_safetyVehicle == vehicle player) then {
_lastVehicle = vehicle player; _lastVehicle = vehicle player;
}; };
}; };
/*if ((animationState player) != "HaloFreeFall_non") then {
// freefall detection:
_v = -((velocity player) select 2);
_h = (getPosATL player) select 2;
if (_v > 4 && _h > 3) then {
_topv = _topv max _v;
_toph = _toph max _h;
Dayz_freefall = [ time, _toph, _topv ];
}
else {
_topv = 0;
_toph = 0;
};
};*/
sleep 0.25; sleep 0.25;
}; };
sleep 0.1; sleep 0.1;