mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-15 21:29:59 +03:00
prevent get out of vehicle phasing though objects
This commit is contained in:
@@ -12,7 +12,7 @@ _this addeventhandler ["Killed",{ _this call vehicle_handleKilled } ];
|
|||||||
if (isServer) then {
|
if (isServer) then {
|
||||||
_this removeAllEventHandlers "GetOut";
|
_this removeAllEventHandlers "GetOut";
|
||||||
_this removeAllEventHandlers "GetIn";
|
_this removeAllEventHandlers "GetIn";
|
||||||
_this addEventHandler ["GetOut", {[(_this select 0),"all"] call server_updateObject;}];
|
_this addEventHandler ["GetOut", {_this call server_antiWall; [(_this select 0),"all"] call server_updateObject;}];
|
||||||
_this addEventHandler ["GetIn", {[(_this select 0),"all"] call server_updateObject;}];
|
_this addEventHandler ["GetIn", {[(_this select 0),"all"] call server_updateObject;}];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,22 +0,0 @@
|
|||||||
/***********************************************************
|
|
||||||
ASSIGN DAMAGE HANDLER TO A UNIT
|
|
||||||
- Function set_EH
|
|
||||||
- unit call set_EH;
|
|
||||||
************************************************************/
|
|
||||||
private ["_unit","_eh1","_eh2","_dir","_location","_eh3","_eh4","_eh5","_eh6"];
|
|
||||||
_unit = _this;
|
|
||||||
_dir = getdir _this;
|
|
||||||
_location = getPosATL _this;
|
|
||||||
|
|
||||||
//Assign event handlers
|
|
||||||
_eh1 = _unit addeventhandler ["HandleDamage",{ _this call vehicle_handleDamage } ];
|
|
||||||
_eh2 = _unit addeventhandler ["Killed",{ _this call vehicle_handleKilled } ];
|
|
||||||
|
|
||||||
//diag_log format ["set EH %1 for vehicle:%2", _eh1, typeOf _unit ];
|
|
||||||
|
|
||||||
if (isServer) then {
|
|
||||||
_eh3 = _unit addEventHandler ["GetOut", {[(_this select 0),"all"] call server_updateObject;}];
|
|
||||||
_eh4 = _unit addEventHandler ["GetIn", {[(_this select 0),"all"] call server_updateObject;}];
|
|
||||||
_eh5 = _unit addEventHandler ["Killed",{ _this call vehicle_handleKilled } ];
|
|
||||||
_eh6 = _unit addeventhandler ["HandleDamage",{ _this call vehicle_handleDamage } ];
|
|
||||||
};
|
|
||||||
45
SQF/dayz_server/compile/server_antiWall.sqf
Normal file
45
SQF/dayz_server/compile/server_antiWall.sqf
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
/*
|
||||||
|
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];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -26,6 +26,8 @@ server_spawnCrashSite = compile preprocessFileLineNumbers "\z\addons\dayz_se
|
|||||||
server_handleZedSpawn = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_handleZedSpawn.sqf";
|
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_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";
|
fnc_plyrHit = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\fnc_plyrHit.sqf";
|
||||||
server_deaths = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerDeaths.sqf";
|
server_deaths = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerDeaths.sqf";
|
||||||
|
|
||||||
@@ -55,24 +57,15 @@ array_reduceSizeReverse = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
array_reduceSize = {
|
array_reduceSize = {
|
||||||
private["_array1","_array","_count","_num","_newarray","_startnum","_index"];
|
private ["_array1","_array","_count","_num"];
|
||||||
_array1 = _this select 0;
|
_array1 = _this select 0;
|
||||||
_array = _array1 - ["Hatchet_Swing","Machete_Swing","Fishing_Swing","sledge_swing","crowbar_swing"];
|
_array = _array1 - ["Hatchet_Swing","Machete_Swing","Fishing_Swing","sledge_swing","crowbar_swing"];
|
||||||
//diag_log format ["array_reduceSize IN: %1", _array];
|
|
||||||
_newarray = [];
|
|
||||||
_count = _this select 1;
|
_count = _this select 1;
|
||||||
_num = count _array;
|
_num = count _array;
|
||||||
if (_num > _count) then {
|
if (_num > _count) then {
|
||||||
_startnum = _num - 1;
|
_array resize _count;
|
||||||
_index = _count - 1;
|
|
||||||
for "_i" from 0 to _index do {
|
|
||||||
_newarray set [_i,_array select _i];
|
|
||||||
};
|
};
|
||||||
_array = _newarray;
|
|
||||||
};
|
|
||||||
//diag_log format ["array_reduceSize OUT: %1", _array];
|
|
||||||
_array
|
_array
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
vehicle_handleServerKilled = {
|
vehicle_handleServerKilled = {
|
||||||
|
|||||||
Reference in New Issue
Block a user