Page MenuHomeFeedback Tracker

GroundWeaponHolder identifiable only by nearestObjects unlike WeaponHolderSimulated
New, WishlistPublic

Description

Main GroundWeaponHolder (GWH) vs WeaponHolderSimulated (WHS) issue:

  1. GWH is identifiable only by costly nearestObjects functions whereas WHS is easily identifiable by vehicles, entities etc. GWH not identifiable by vehicles or entities, makes it difficult or costly for clean up scripts, littering game world with such objects, causing performance degradation over time.

Other GroundWeaponHolder (GWH) vs WeaponHolderSimulated (WHS) differences:

  1. GWH is created when someone drags an item to the ground tab in the Inventory/Gear panel whereas WHS is created by items dropped by killed or disconnected players.
  2. GWH is parented by "WeaponHolder","ReammoBox", "Strategic", "Building", "Static" whereas WHS is parented by "thingX", "Thing"

Details

Legacy ID
3473259201
Severity
None
Resolution
Open
Reproducibility
Always
Category
Scripting
Steps To Reproduce

Compare objects dropped via Inventory panel vs objects dropped when unit is killed.

Event Timeline

cyckuan edited Steps To Reproduce. (Show Details)May 13 2014, 12:41 AM
cyckuan edited Additional Information. (Show Details)
cyckuan set Category to Scripting.
cyckuan set Reproducibility to Always.
cyckuan set Severity to None.
cyckuan set Resolution to Open.
cyckuan set Legacy ID to 3473259201.May 7 2016, 6:36 PM

They are different types so it is expected I guess.

Its a problem indeed, GroundWeaponHolder should be returned by entities command.

cyckuan added a subscriber: cyckuan.May 7 2016, 6:36 PM

vehicles, entities, nearEntities do not pick up GroundWeaponHolder.

nearObjects and nearestObjects do pick up GroundWeaponHolder.

It seems that entities and nearEntities pick up everything in "ReammoBox_F" but not "ReammoBox". Legacy issue? GroundWeaponHolder falls under ReammoBox whereas most of Arma 3 crates are in ReammoBox_F.

Two interim workarounds to this issue:

  1. nearObjects is not so costly afterall e.g.

systemChat str count (position player nearObjects ["GroundWeaponHolder",10000000]) doesnt seem to cost any more if the range value is lower. Perhaps, the function has to loop through the entire object space anyway to work out distance to the reference position. Still, its a cost to have to work out the distance.

  1. get the client to tell the server that a GroundWeaponHolder is created and have the server clean up the GroundWeaponHolder after a certain delay.

player addEventHandler ["Put",{
private ["_container"];
_container = _this select 1;
if (_container isKindOf "GroundWeaponHolder") then {

		
		serverRegisterGWH = _container;
		publicVariableServer "serverDespawnGWH";

};
}];

"serverDespawnGWH" addPublicVariableEventHandler {
[_this select 1] spawn {

		private ["_obj"];
		_obj = _this select 0;
		sleep 120;
		if (!isNull _obj) then { deleteVehicle _obj; };

};
};

Or you can use allMissionObjects "GroundWeaponHolder" which is fairly slow by might be better than nearObjects.

allMissionObjects is more elegant :)

Its ok to close this.

Its still a problem, using allMissionObjects is bad approach because it is VERY slow command unlike entities or vehicles.