private ["_unit","_ammo","_distance","_weapon","_projectile","_endPos","_dir","_doWait","_vel"]; _unit = _this select 0; _weapon = _this select 1; _ammo = _this select 4; _projectile = _this select 6; if (_ammo isKindOf "Hatchet_Swing_Ammo" or _ammo isKindOf "Chainsaw_Swing_Ammo") then { _findNearestTree = []; { if("" == typeOf _x) then { if (alive _x) then { _objName = _x call DZE_getModelName; // Exit since we found a tree if (_objName in DZE_trees) exitWith { _findNearestTree set [(count _findNearestTree),_x]; }; }; }; } foreach nearestObjects [getPosATL player, [], 20]; //diag_log ("POSITION: " + str(_endPos)); if (count(_findNearestTree) >= 1) then { _tree = _findNearestTree select 0; // get 2d distance _distance2d = [player, _tree] call BIS_fnc_distance2D; if(_distance2d <= 5) then { // damage must be going down _damage = damage _tree; if (DZE_TEMP_treedmg < _damage) then { if (_damage < 0.99) then { if("" == typeOf _tree) then { _tree setDamage 0.99; }; }; //diag_log ("DAMAGE: " + str(damage _tree)); if (round(random 1) > 0.5) then { _countOut = 1; _itemOut = "PartWoodPile"; if(_ammo isKindOf "Chainsaw_Swing_Ammo") then { _itemOut = "PartWoodLumber"; }; _nearByPile= nearestObjects [getPosATL player, ["WeaponHolder"],2]; if (count _nearByPile == 0) then { _item = createVehicle ["WeaponHolder", getPosATL player, [], 1, "CAN_COLLIDE"]; _item addMagazineCargoGlobal [_itemOut,_countOut]; player reveal _item; } else { _item = _nearByPile select 0; _item addMagazineCargoGlobal [_itemOut,_countOut]; }; _distance = 60; [player,_distance,false,getPosATL player] spawn player_alertZombies; }; }; DZE_TEMP_treedmg = _damage; }; }; };