BIS fnc setUnitInsignia: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "\|game([0-9])= *([^ ]+) * +\|version([0-9])= *([^ ]+) * " to "|game$1=$2 |version$3=$4 ")
No edit summary
Line 39: Line 39:
Config.cpp (addon) is more reliable. Description.ext, in this case, should be used for SP mission only.<br>
Config.cpp (addon) is more reliable. Description.ext, in this case, should be used for SP mission only.<br>
This function calls [[setObjectTextureGlobal]], which is a broken command in MP (see feedback tracker) August 2016.
This function calls [[setObjectTextureGlobal]], which is a broken command in MP (see feedback tracker) August 2016.
</dl>
<dl class="command_description">
<dt></dt>
<dd class="notedate">Posted on July 21, 2021 - 19:51 (UTC)</dd>
<dt class="note">[[User:Leopard20|Leopard20]]</dt>
<dd class="note">
To set the insignia after respawn, add this code to [[Event Scripts#initPlayerLocal.sqf|initPlayerLocal.sqf]]
<code>[[params]] ["_player"];
_player [[addMPEventHandler]] ["MPRespawn", {
[[params]] ["_unit", "_corpse"];
[[private]] _insignia {{=}} [_corpse] [[call]] [[BIS_fnc_getUnitInsignia]];
_unit [[setVariable]] ["BIS_fnc_setUnitInsignia_class", [[nil]]]; {{cc|you can also do [_unit, ""] call BIS_fnc_setUnitInsignia, but this way is faster (plus no network traffic)}}
[_unit, _insignia] [[call]] [[BIS_fnc_setUnitInsignia]];
}];</code>
Notice that the previous insignia has been '''cleared''' first to make the change happen (possibly a bug as of Arma 3 v2.05)
</dd>
</dl>
</dl>

Revision as of 21:51, 21 July 2021

Hover & click on the images for description

Description

Description:
Sets unit insignia (e.g., shoulder insignia on soldiers). See Arma 3: Unit Insignia for more details and a list of official insignias.
Execution:
call
Multiplayer:
This function must not be remoteExecuted.
Groups:
Object Manipulation

Syntax

Syntax:
[target, className] call BIS_fnc_setUnitInsignia
Parameters:
target: Object - unit to which the insignia is going to be attached
class: String - CfgUnitInsignia class name to use. Use an empty string to remove the current insignia.
Return Value:
Boolean - Returns true if successful.

Examples

Example 1:
Place insignia: [player, "111thID"] call BIS_fnc_setUnitInsignia;
Example 2:
Remove insignia: [player, ""] call BIS_fnc_setUnitInsignia;

Additional Information

See also:
BIS_fnc_getUnitInsignia

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
Posted on August 9, 2016 2300
Pierre MGI
In Arma 3: Unit Insignia, you can read:
«
« You can add a new insignia in Config.cpp and Description.ext. »

If it is possible to add a cfgUnitInsignia class in a description.ext, please note that the path of the texture differs for server and client in MP environment. Config.cpp (addon) is more reliable. Description.ext, in this case, should be used for SP mission only.
This function calls setObjectTextureGlobal, which is a broken command in MP (see feedback tracker) August 2016.


Posted on July 21, 2021 - 19:51 (UTC)
Leopard20
To set the insignia after respawn, add this code to initPlayerLocal.sqf params ["_player"]; _player addMPEventHandler ["MPRespawn", { params ["_unit", "_corpse"]; private _insignia = [_corpse] call BIS_fnc_getUnitInsignia; _unit setVariable ["BIS_fnc_setUnitInsignia_class", nil]; // you can also do [_unit, ""] call BIS_fnc_setUnitInsignia, but this way is faster (plus no network traffic) [_unit, _insignia] call BIS_fnc_setUnitInsignia; }]; Notice that the previous insignia has been cleared first to make the change happen (possibly a bug as of Arma 3 v2.05)