Files
DayZ-Epoch/SQF/dayz_code/compile/player_projectileNear.sqf
icomrade e446603ea2 Fix combat logging
In the initialize section of the fsm r_player_unconscious and
r_player_timeout return their default values (false and 0). Also, the
Vanilla server-side combat check doesn't appear to work, or it doesn't
work with the antihack disabled (I haven't tested with it enabled).

New variable inCombat is set more quickly than the combatTimeout
variable
2016-07-26 20:51:10 -04:00

54 lines
1.6 KiB
Plaintext

private ["_currentNear","_listNear","_callCount"];
_unit = _this select 0;
_projectile = _this select 6;
//diag_log ("0");
//_isInComat = _unit getVariable["startcombattimer",0];
//diag_log ("Bullit Speed: " +str(Speed _projectile));
//diag_log ("Bullit Velocity: " +str(velocity _projectile));
_listNear = [];
_callCount = 0;
//approx 1020 meters
while {(alive _projectile) && !(isNull _projectile) && (_callCount < 85)} do {
_projectilespeed = Speed _projectile;
_projectflight = (((_projectilespeed / 60) * 1000));
if (_projectflight > 0) then {
uiSleep (12 / (_projectflight));
};
if (alive _projectile && !(isNull _projectile)) then {_currentNear = (getPosATL _projectile) nearEntities [["CAManBase","AllVehicles"],15];};
_listNear = _listNear + _currentNear;
_callCount = _callCount + 1;
};
//diag_log ("2");
{
_nearVehicle = _x;
_listNear = _listNear - [_x];
//diag_log ("3");
if (isPlayer _nearVehicle) then {
_isInCombat = _nearVehicle getVariable["startcombattimer",0];
if ((alive _nearVehicle) and _isInCombat == 0) then {
_nearVehicle setVariable["startcombattimer", 1];
_nearVehicle setVariable["inCombat", 1, true];
diag_log("Now in Combat (Player): " + name _unit);
};
};
if (_nearVehicle isKindOf "AllVehicles") then {
{
_isInCombat = _x getVariable["startcombattimer",0];
if (isPlayer _x and _isInCombat == 0 and alive _x) then {
_x setVariable["startcombattimer", 1];
_x setVariable["inCombat", 1, true];
diag_log("Now in Combat (Crew): " + name _x);
};
} forEach (crew _nearVehicle);
};
} forEach _listNear;