player side anti wall glitch protection

This commit is contained in:
[VB]AWOL
2013-11-04 08:00:27 -06:00
parent 17b9d94fb5
commit 89a0840b93
6 changed files with 56 additions and 57 deletions

View File

@@ -21,14 +21,6 @@ if (_removed == 1) then {
} else {
publicVariable "PVDZE_veh_Lock";
};
/*
player moveInDriver _vehicle;
if (local vehicle player) then {
vehicle player engineOn true;
};
*/
};
} else {
cutText ["Failed to unlock car hotwire kit broken." , "PLAIN DOWN"];

View File

@@ -0,0 +1,54 @@
/*
DayZ Epoch anti wall
Made for DayZ Epoch please ask permission to use/edit/distrubute email vbawol@veteranbastards.com.
*/
private ["_vehicle","_intersects","_vehiclePos","_position","_playerPos"];
// Vehicle
_vehicle = _this;
_vehiclePos = aimpos _vehicle;
diag_log format["Vehicle: %1", _vehiclePos];
/*
_veh = createVehicle ["Sign_sphere10cm_EP1", _vehiclePos, [], 0, "CAN_COLLIDE"];
_veh setPosASL _vehiclePos;
_tagColor = "#(argb,8,8,3)color(0,1,0,0.5,ca)";
_veh setobjecttexture [0,_tagColor];
*/
_playerPos = visiblePositionASL player;
_playerPos set [2,(_playerPos select 2)+1];
diag_log format["Player: %1", _playerPos];
/*
_veh2 = createVehicle ["Sign_sphere10cm_EP1", _playerPos, [], 0, "CAN_COLLIDE"];
_veh2 setPosASL _playerPos;
*/
_intersectsWith = lineIntersectsWith [_playerPos, _vehiclePos, player, _vehicle];
diag_log format["intersectsWith : %1", _intersectsWith];
_position = "driver";
if ((count _intersectsWith) > 0) then {
diag_log format["Player Wall glitched %1 Result: %2 - player: %3 vehicle:%4", player,_intersects,_playerPos,_vehiclePos];
switch(true)do{
case (_position == "driver"): {
player moveInDriver _vehicle;
};
case (_position == "gunner"): {
player moveInGunner _vehicle;
};
case (_position == "commander"): {
player moveInCommander _vehicle;
};
case (_position == "cargo"): {
player moveInCargo _vehicle;
};
};
};

View File

@@ -70,7 +70,6 @@ if (!isDedicated) then {
pz_attack = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\pzombie\pz_attack.sqf";
//
dog_findTargetAgent = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\dog_findTargetAgent.sqf";
@@ -103,6 +102,7 @@ if (!isDedicated) then {
player_flipvehicle = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_flipvehicle.sqf";
player_sleep = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_sleep.sqf";
player_mineOre = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_mineOre.sqf";
player_antiWall = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_antiWall.sqf";
//ui
player_selectSlot = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\ui_selectSlot.sqf";

View File

@@ -12,7 +12,7 @@ _this addeventhandler ["Killed",{ _this call vehicle_handleKilled } ];
if (isServer) then {
_this removeAllEventHandlers "GetOut";
_this removeAllEventHandlers "GetIn";
_this addEventHandler ["GetOut", {_this call server_antiWall; [(_this select 0),"all"] call server_updateObject;}];
_this addEventHandler ["GetOut", {[(_this select 0),"all"] call server_updateObject;}];
_this addEventHandler ["GetIn", {[(_this select 0),"all"] call server_updateObject;}];
};

View File

@@ -1,45 +0,0 @@
/*
DayZ Epoch anti wall
Made for DayZ Epoch please ask permission to use/edit/distrubute email vbawol@veteranbastards.com.
*/
private ["_vehicle","_player","_intersects","_vehiclePos","_position","_playerPos"];
// Vehicle
_vehicle = _this select 0;
_vehiclePos = visiblePositionASL _vehicle;
diag_log format["Vehicle: %1", _vehiclePos];
// Position
_position = _this select 1;
// Player
_player = _this select 2;
_playerPos = visiblePositionASL _player;
diag_log format["Player: %1", _playerPos];
// check if intersects anything
_intersects = lineIntersects [_playerPos, _vehiclePos, _player, _vehicle];
if (_intersects) then {
diag_log format["Player Wall glitched %1 Result: %2 - player: %3 vehicle:%4", _player,_intersects,_playerPos,_vehiclePos];
switch(true)do{
case (_position == "driver"): {
_player action ["getInDriver", _vehicle];
};
case (_position == "gunner"): {
_player action ["GetInGunner", _vehicle];
};
case (_position == "commander"): {
_player action ["GetInCommander", _vehicle];
};
case (_position == "cargo"): {
_player action ["GetInCargo", _vehicle];
};
};
};

View File

@@ -26,8 +26,6 @@ server_spawnCrashSite = compile preprocessFileLineNumbers "\z\addons\dayz_se
server_handleZedSpawn = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_handleZedSpawn.sqf";
server_spawnEvents = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_spawnEvent.sqf";
server_antiWall = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_antiWall.sqf";
fnc_plyrHit = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\fnc_plyrHit.sqf";
server_deaths = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerDeaths.sqf";