From c78372ad07aba2058109b5c6d5217a5a63e02782 Mon Sep 17 00:00:00 2001 From: TenuredCLOUD <85143513+TenuredCLOUD@users.noreply.github.com> Date: Sat, 4 Jul 2026 12:05:27 -0700 Subject: [PATCH] Forestry - Fix wood collection - title, fixed wood drops, used proper formatting on `spawnLoot` function to fix weights of wood since previously wood would float and be weightless --- addons/forestry/functions/fnc_axeAction.sqf | 16 +++++++++++++++- .../forestry/functions/fnc_forageTreeAction.sqf | 2 +- addons/forestry/functions/fnc_sawAction.sqf | 16 +++++++++++++++- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/addons/forestry/functions/fnc_axeAction.sqf b/addons/forestry/functions/fnc_axeAction.sqf index e0371793..70599213 100644 --- a/addons/forestry/functions/fnc_axeAction.sqf +++ b/addons/forestry/functions/fnc_axeAction.sqf @@ -50,9 +50,23 @@ _soundDummy say3D [QCLASS(audio_sound_chopWood), 500]; deleteVehicle _soundDummy; }; - [getPosATL player, [[QCLASS(firewood), selectRandom [1, 2]]], [[QCLASS(woodenlog), 1]], [[QCLASS(woodensticks), selectRandom [1, 2, 3, 4, 5]]]] call EFUNC(common,spawnLoot); + private _markerPos = getPosATL player; + private _playerName = name player; + private _markerName = format ["%1_%2_%3", CBA_missionTime, _playerName, random 100]; + private _marker = createMarkerLocal [_markerName, _markerPos]; + _marker setMarkerShapeLocal "ELLIPSE"; + _marker setMarkerSizeLocal [2.5, 2.5]; + _marker setMarkerAlphaLocal 0; + + [[_marker, true] call CBA_fnc_randPosArea, [[]], [[]], [[QCLASS(woodensticks), selectRandom [1, 2, 3, 4, 5]]]] call EFUNC(common,spawnLoot); + [[_marker, true] call CBA_fnc_randPosArea, [[]], [[]], [[QCLASS(firewood), selectRandom [1, 2]]]] call EFUNC(common,spawnLoot); + [[_marker, true] call CBA_fnc_randPosArea, [[]], [[]], [[QCLASS(woodenlog), 1]]] call EFUNC(common,spawnLoot); _tree setDamage 1; + + [{ + deleteMarkerLocal _this; + }, _marker, 1] call CBA_fnc_waitAndExecute; }, { params ["_args"]; diff --git a/addons/forestry/functions/fnc_forageTreeAction.sqf b/addons/forestry/functions/fnc_forageTreeAction.sqf index f6b6394f..798bb39c 100644 --- a/addons/forestry/functions/fnc_forageTreeAction.sqf +++ b/addons/forestry/functions/fnc_forageTreeAction.sqf @@ -49,7 +49,7 @@ _soundDummy say3D [QCLASS(audio_sound_gatheringFirewood), 25]; deleteVehicle _soundDummy; }; - [getPosATL player, [[QCLASS(woodensticks), selectRandom [1, 2, 3, 4, 5]]]] call EFUNC(common,spawnLoot); + [getPosATL player, [[]], [[]], [[QCLASS(woodensticks), selectRandom [1, 2, 3, 4, 5]]]] call EFUNC(common,spawnLoot); private _position = getPosWorld player; diff --git a/addons/forestry/functions/fnc_sawAction.sqf b/addons/forestry/functions/fnc_sawAction.sqf index 40d7e4b3..8db06d96 100644 --- a/addons/forestry/functions/fnc_sawAction.sqf +++ b/addons/forestry/functions/fnc_sawAction.sqf @@ -54,11 +54,25 @@ call FUNC(chainsawFuelDecrement); deleteVehicle _soundDummy; }; - [getPosATL player, [[QCLASS(firewood), selectRandom [1, 2, 3, 4, 5]]], [[QCLASS(woodenlog), selectRandom [1, 2, 3]]], [[QCLASS(woodensticks), selectRandom [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]]] call EFUNC(common,spawnLoot); + private _markerPos = getPosATL player; + private _playerName = name player; + private _markerName = format ["%1_%2_%3", CBA_missionTime, _playerName, random 100]; + private _marker = createMarkerLocal [_markerName, _markerPos]; + _marker setMarkerShapeLocal "ELLIPSE"; + _marker setMarkerSizeLocal [2.5, 2.5]; + _marker setMarkerAlphaLocal 0; + + [[_marker, true] call CBA_fnc_randPosArea, [[]], [[]], [[QCLASS(woodensticks), selectRandom [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]]] call EFUNC(common,spawnLoot); + [[_marker, true] call CBA_fnc_randPosArea, [[]], [[]], [[QCLASS(firewood), selectRandom [1, 2, 3, 4, 5]]]] call EFUNC(common,spawnLoot); + [[_marker, true] call CBA_fnc_randPosArea, [[]], [[]], [[QCLASS(woodenlog), selectRandom [1, 2, 3]]]] call EFUNC(common,spawnLoot); _tree setDamage 1; player setVariable [QGVAR(cuttingWood), nil]; + + [{ + deleteMarkerLocal _this; + }, _marker, 1] call CBA_fnc_waitAndExecute; }, { params ["_args"];