folkarps / F3

ArmA 3 mission development framework customized for Folk ARPS
http://www.folkarps.com/
12 stars 5 forks source link

Remove body removal #51

Closed Raptoer closed 5 years ago

Raptoer commented 7 years ago

Game now has built in body removal, although the F3 component does allow you to specify units that should never be removed.

Do we even rack up enough bodies for this to matter?

CSDGC commented 7 years ago

The overlap between missions where we're killing enough guys for it to matter and need to keep a specific body is most likely non-existent [citation needed]. We do have a couple of missions where there are enough bodies, but then the BI tool is adequate.

shadow-fa commented 7 years ago

This might be related: replace dead body component? https://github.com/ferstaberinde/F3/issues/660

shadow-fa commented 6 years ago

I researched and tested the in-engine solution and it seems that it can do everything we expect it to. It can be provided with a list of excluded units (removeFromRemainsCollector), just like the old component did. Additionally, we get some nice new features like:

I would suggest removing the old f3 component and switching to the in-engine solution. I recommend these settings in description.ext:

// F3 - Body Removal Settings

//Corpses
corpseManagerMode = 1; //0 = None, 1 = All, 2 = None_But_Respawned, 3 = All_But_Respawned
corpseLimit = 30; // Corpse limit before which ( <= ) corpseRemovalMaxTime applies and after which ( > ) corpseRemovalMinTime applies. 
corpseRemovalMinTime = 180; // Remove all bodies that have been dead longer than corpseRemovalMinTime when corpseLimit is breached. 
corpseRemovalMaxTime = 600; // Maximum time a corpse can remain on the ground (if total number of corpses is equal or under corpseLimit). 
minPlayerDistance = 500; // The minimum distance between corpse or wreck and nearest player before the corpse or wreck is allowed to be removed by the garbage collector. 

//Wrecks
//wreckManagerMode = 1; //0 = None, 1 = All, 2 = None_But_Respawned, 3 = All_But_Respawned
//wreckLimit = 20; //Vehicle wreck limit before which ( <= ) wreckRemovalMaxTime applies and after which ( > ) wreckRemovalMinTime applies. 
//wreckRemovalMinTime = 180; // Remove all wrecks that have existed longer than wreckRemovalMinTime when wreckLimit is breached. 
//wreckRemovalMaxTime = 3600; // Maximum time a wreck can remain on the ground (if total number of wrecks is equal or under wreckLimit). 

And additionally this in the init.sqf in place of the call to the old component:

//Exclude from automatic body/wreck removal:
removeFromRemainsCollector playableUnits;
//removeFromRemainsCollector [unit1, unit2, vehicle1];

Of course we can and should discuss these settings as they're slightly different than before. Previously we only had these settings:

f_var_removeBodyDelay = 180;
f_var_removeBodyDistance = 500;
SamLex commented 5 years ago

Test Plan Testing in 3.5.2 test mission with two players

  1. Check bodies are removed as expected
    1. Up to 30 allowed at all times
    2. Between 180 and 600 seconds since death
    3. all players must be 500 metres away

Edit Shado': Also test with units that are not local to the server. (createVehicle on player or hc)