deleteGroupWhenEmpty: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (template:command argument fix)
m (Some wiki formatting)
 
(69 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Command|= Comments
{{RV|type=command
____________________________________________________________________________________________


| arma3 |= Game name
|game1= arma3
|1.68|= Game version
|version1= 1.68
|arg= global|=
|eff= global |Multiplayer Effects=
____________________________________________________________________________________________


| Marks given group for auto-deletion when group is empty. [[true]] will mark the group for auto-deletion, however [[false]] will only unmark the group that was marked previously. There are other engine group auto-deletion mechanisms in place, which are not affected by this.<br><br>
|arg= local
'''NOTE:''' It might take up to a minute for the groups marked for auto-deletion when empty to get deleted when they become empty.|=
____________________________________________________________________________________________


| group '''deleteGroupWhenEmpty''' delete |SYNTAX=
|eff= global


|p1= group: [[Group]] |PARAMETER1=
|gr1= Groups
|p2= delete: [[Boolean]] - [[true]] to mark for auto-deletion|PARAMETER1=


| [[Nothing]] |RETURNVALUE=
|descr= Marks given group for auto-deletion when group is empty.
[[true]] will mark the group for auto-deletion once empty, [[false]] will simply unmark the group that was marked previously.
{{Feature|important|This command does '''not''' prevent group deletion (through e.g [[deleteGroup]] or any engine group management).}}


____________________________________________________________________________________________
|s1= group [[deleteGroupWhenEmpty]] delete
 
|x1= <code>_group [[deleteGroupWhenEmpty]] [[true]];</code> |EXAMPLE1=
____________________________________________________________________________________________


| [[deleteGroup]], [[isGroupDeletedWhenEmpty]], [[createGroup]], [[group]], [[setGroupId]], [[groupID]], [[units]], [[groupFromNetId]], [[netId]], [[leader]], [[selectLeader]], [[join]], [[createCenter]], [[createUnit]], [[createVehicle]], [[Side]] |SEEALSO=
|p1= group: [[Group]]


}}
|p2= delete: [[Boolean]] - [[true]] to mark for auto-deletion on empty group, [[false]] to not use this auto-deletion system


<h3 style="display:none">Notes</h3>
|r1= [[Nothing]]
<dl class="command_description">


</dl>
|x1= <sqf>_group deleteGroupWhenEmpty true;</sqf>


<h3 style="display:none">Bottom Section</h3>
|x2= Executed on the server:
<sqf>
if (local _group) then
{
_group deleteGroupWhenEmpty true;
}
else // group is local to a client
{
[_group, true] remoteExec ["deleteGroupWhenEmpty", groupOwner _group];
};
</sqf>


[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
|seealso= [[deleteGroup]] [[isGroupDeletedWhenEmpty]] [[createGroup]] [[group]] [[setGroupId]] [[groupID]] [[units]] [[groupFromNetId]] [[netId]] [[leader]] [[selectLeader]] [[join]] [[createCenter]] [[createUnit]] [[createVehicle]] [[Side]]
}}


<!-- CONTINUE Notes -->
{{Note
<dl class="command_description">
|user= PierreMGI
<dd class="notedate">Posted on February 8, 2018 - 22:01 (UTC)</dd>
|timestamp= 20231201050428
<dt class="note">[[User:Wyqer|Wyqer]]</dt>
|text= The auto-deletion of a group is not automatic. For example, if you place a group in editor, name it (grp1), and kill the units in preview, this group remains not null and is counted as group (checked by count allGroups).
<dd class="note">
On the other hand, if you write: <sqf inline>this deleteGroupWhenEmpty true</sqf> in composition init (group init), this group will become null sometimes after the units are killed. It takes a little time for dead units to exit the group, then an extra time for the group to be deleted once all units dead. (count allGroups decreases).
It seems, that the argument has to be local (like for deleteGroup).
Of course, in both cases, grp1 remains a variable ("grp1" is not nil).
So if you run it on a server and the group isn't local to the server this wouldn't work:
}}
<code>_group deleteGroupWhenEmpty true;</code>
But this would work:
<code>if (local _group) then {
    _group deleteGroupWhenEmpty true;
} else {
    [_group, true] remoteExec ["deleteGroupWhenEmpty", groupOwner _group];
};</code>
</dd>
</dl>
<!-- DISCONTINUE Notes -->

Latest revision as of 12:37, 12 March 2024

Hover & click on the images for description

Description

Description:
Marks given group for auto-deletion when group is empty. true will mark the group for auto-deletion once empty, false will simply unmark the group that was marked previously.
This command does not prevent group deletion (through e.g deleteGroup or any engine group management).
Groups:
Groups

Syntax

Syntax:
group deleteGroupWhenEmpty delete
Parameters:
group: Group
delete: Boolean - true to mark for auto-deletion on empty group, false to not use this auto-deletion system
Return Value:
Nothing

Examples

Example 1:
_group deleteGroupWhenEmpty true;
Example 2:
Executed on the server:
if (local _group) then { _group deleteGroupWhenEmpty true; } else // group is local to a client { [_group, true] remoteExec ["deleteGroupWhenEmpty", groupOwner _group]; };

Additional Information

See also:
deleteGroup isGroupDeletedWhenEmpty createGroup group setGroupId groupID units groupFromNetId netId leader selectLeader join createCenter createUnit createVehicle Side

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note
PierreMGI - c
Posted on Dec 01, 2023 - 05:04 (UTC)
The auto-deletion of a group is not automatic. For example, if you place a group in editor, name it (grp1), and kill the units in preview, this group remains not null and is counted as group (checked by count allGroups). On the other hand, if you write: this deleteGroupWhenEmpty true in composition init (group init), this group will become null sometimes after the units are killed. It takes a little time for dead units to exit the group, then an extra time for the group to be deleted once all units dead. (count allGroups decreases). Of course, in both cases, grp1 remains a variable ("grp1" is not nil).