Files
DayZ-Epoch/SQF/dayz_code/compile/player_harvest.sqf
AirwavesMan 8dc6ef8def Update player_harvest.sqf
Fix that trees going down directly after hit by a chainsaw or hatchet. This is a long time bug because DZE_TEMP_treedmg got not resetted after the tree was cut down.

Also, this commit makes sure that every tree gives at least 16 or more wood on harvesting. Ive added that to reduce the number of cut down trees to not affect the network traffic too much as it is the case at the moment. All trees and damage get sync over the network.
2020-10-22 12:05:56 +02:00

46 lines
1.4 KiB
Plaintext

private ["_ammo","_tree","_distance2d","_damage","_itemOut"];
_ammo = _this select 4;
if (_ammo in ["Hatchet_Swing_Ammo","Chainsaw_Swing_Ammo"]) then {
_tree = objNull;
{
if (typeOf _x in dayz_treeTypes && {alive _x} && {(_x call fn_getModelName) in dayz_trees}) exitWith {
// Exit since we found a tree
_tree = _x;
};
} count nearestObjects [getPosATL player, [], 20];
if (!isNull _tree) then {
// 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 (isNil "DZE_WoodCounter") then {
DZE_WoodCounter = 0;
};
DZE_WoodCounter = DZE_WoodCounter + 1;
if (_damage < 0.99 && {(random 1) > 0.9} && {DZE_WoodCounter > 15}) then {
if (typeOf _tree == "") then {
// Ask server to setDamage on tree and sync for JIP
PVDZ_objgather_Knockdown = [_tree,player];
publicVariableServer "PVDZ_objgather_Knockdown";
} else {
deleteVehicle _tree;
};
DZE_TEMP_treedmg = 1;
DZE_WoodCounter = nil;
};
_itemOut = [["PartWoodPile","PartWoodPile","ItemLog"] call BIS_fnc_selectRandom,"PartWoodLumber"] select (_ammo == "Chainsaw_Swing_Ammo");
[_itemOut,1,1] call fn_dropItem;
[player,60,false,getPosATL player] spawn player_alertZombies;
};
DZE_TEMP_treedmg = _damage;
};
};
};